Skip to main content

Backstory APIs for Ingesting Transcripts

Bringing your transcripts into Backstory via API

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

-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",

"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",

"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",

"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",

"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!
Did this answer your question?