Making the most of your Backstory investment starts with deeply understanding the data we generate for your organization. Backstory has out-of-the-box integrations with major web conference vendors, including Zoom, Microsoft Teams, Google Meet, and Webex. If your organization uses another web conference vendor, you can still send transcripts to Backstory. Our API infrastructure empowers the customer teams to develop and design powerful data use cases to help make real-world business decisions.
The API’s below assume that when pushing a transcript to Backstory, the meeting invite records already exist within Backstory.
API Authentication
All Backstory API requests require a valid bearer token. To generate a token, pass the appropriate API key/secret pair (which you can get in the API Keys Management page in the Backstory application) into the token generation API:
curl -X POST https://api.people.ai/auth/v1/tokens -H "Content-Type: application/x-www-form-urlencoded" -d "client_id='[API key]'&client_secret='[API secret]'" |
Please note that, per the OAuth 2.0 specification, authentication requests must include the Content-Type: application/x-www-form-urlencoded header.
The API service will return your bearer token:
{ "access_token": [access token], "token_type": "bearer" "expires_in": [remaining lifespan in seconds, int] } |
Access is provided in the JSON Web Tokens (JWT) format and has a default lifespan of 7200 seconds. If you call the Token API before the access token has expired, the API will return the already generated access token for the API key/secret pair along with its remaining lifespan.
Responses
Code | Description |
200 | List of records |
401 | Unauthorized |
500 | Internal Server Error |
Push a Single Transcript to Backstory
This API endpoint allows you to push a single conference activity into the Backstory system. The data includes essential details about the conference, such as the provider, URL, meeting ID, transcript, and timestamp.
To send a single transcript activity to Backstory, you can use the following API:
Endpoint
Request Example
[ { "external_id": "string", "id": "99373180070", "provider": "zoom", "url": "https://peopleai.zoom.us/j/99373180070", "meeting": { "id": "string", "icaluid": "string", "uid": "string" }, "transcript": "string", "timestamp": 1723474792 } ] |
Curl Command
curl -X 'PUT' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "external_id": "string", "id": "99373180070", "provider": "zoom", "url": "https://peopleai.zoom.us/j/99373180070", "meeting": { "id": "string", "icaluid": "string", "uid": "string" }, "transcript": "string", "timestamp": 1723474792 }' |
Schema
Field | Type | Description | Required | Notes |
external_id | string | Unique identifier of this conference/transcript generated by the source system. | Yes |
|
id | string | Optional, provider-specific ID (sometimes included in URL). | No |
|
provider | string | The name of the provider of this conference. | Yes | Example: Zoom, Webex, Google, Microsoft |
url | string | A URL that users click to join the conference | No | Example:https://peopleai.zoom.us/j/[example]; maxLength: 2048 |
meeting | object | An object representing the meeting associated with the conference | No |
|
transcript | string | Transcript of the conference. | Yes | Backstory requires a specific format for this transcript. More details below. |
timestamp | integer | The start time of the meeting in seconds since 1970 (epoch). | No | Example: 1723474792 |
Push Multiple Transcripts to Backstory
This API endpoint allows you to push multiple conference activities into the Backstory system in a single request. The payload should be an array of conference activity objects.
To send multiple transcripts to Backstory, you can use the following API:
Endpoint
Request Example
[ { "external_id": "string", "id": "99373180070", "provider": "zoom", "url": "https://peopleai.zoom.us/j/99373180070", "meeting": { "id": "string", "icaluid": "string", "uid": "string" }, "transcript": "string", "timestamp": 1723474792 } ] |
Curl Command
curl -X 'PUT' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '[ { "external_id": "string", "id": "99373180070", "provider": "zoom", "url": "https://peopleai.zoom.us/j/99373180070", "meeting": { "id": "string", "icaluid": "string", "uid": "string" }, "transcript": "string", "timestamp": 1723474792 } ]' |
Required Transcript Content Format
Backstory requires that the transcript content follow a specific format to be correctly parsed for summarization and other processing.
The transcript content must adhere to the following:
The speaker must be represented as “
FirstName LastName” or “emailAddress”A colon “:” separates the speaker's name from the speaker's content
The speaker's content cannot contain line breaks (
/n)
Sample transcript content snippet
Alice Johnson: Good morning, everyone. Let’s get started with the Q2 performance review.
Michael Lee: Morning, Alice. I’ve prepared the sales figures—overall, we’re up 12% compared to Q1.
Sofia Ramirez: That’s great news. Have we identified the main drivers behind the increase?
Michael Lee: Yes, the new pricing model and the marketing push in April had the biggest impact.
David Chen: Are we planning to expand the model to other regions next quarter?
Alice Johnson: That’s the idea. Let’s set up a separate strategy session to explore that.
Sofia Ramirez: Sounds good. I’ll coordinate with marketing for potential timelines.
Alice Johnson: Perfect. Thanks, everyone—let’s regroup next Monday with updates.
Alice Johnson: Have a good day, Bye!
