The Speak AI API exposes 5 media embeds endpoints under the base URL https://api.speakai.co/v1. Every request needs the x-speakai-key and x-access-token headers described in Authentication.
Embed Individual Media Player or the Folder (as repository) to make the insights, transcription and insights publicly visible or share with others.
What can you do with the media embeds endpoints?
Speak AI groups these 5 endpoints under the media embeds resource. Each entry below links to the full reference for that endpoint further down this page.
Check Embed
/embedChecks if an embed already exits and returns status and token id.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
mediaId |
query | string | No | ID of the media file to check for an embed |
curl -X GET 'https://api.speakai.co/v1/embed' \
-H 'x-speakai-key: sk_test_speak_0000000000000000' \
-H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000'200 OK
Response body, application/json.
| Field | Type |
|---|---|
status |
string |
data |
object |
data.meta |
object |
data._id |
string |
data.mediaId |
string |
data.token |
string |
data.privacyMode |
string |
Deeper nested fields are not listed. See the example response below for the full shape.
Example response, application/json. Arrays are shortened to one entry and long strings are cut.
{
"status": "success",
"data": {
"meta": {
"backgroundImg": "",
"logo": "",
"primaryColor": "",
"isDataVizDownloadable": true,
"isSEOIndexing": true,
"isTitle": true,
"isDescription": true,
"callToActionButtons": [],
"features": [
{
"name": "transcript",
"isActive": true
}
]
},
"_id": "61280763ec13780791f004b2",
"mediaId": "e4e3079e3da9",
"token": "daily-standup-august-23-2021-239819a49b2d",
"privacyMode": "public"
}
}Create Embed
/embedCreate an Interactive Media Player by passing the value for mediaId OR folderIds
-
By passing
mediaId- Create an individual media player. -
By passing
folderIds- Create a repository for a folder to share with others.
Make sure you have access to Shareable Media Repository in your subscription.
Request body
Field types and names come from the request body the spec records. The spec does not mark request body fields as required, so read this as the shape the endpoint accepts rather than a required field list.
| Field | Type |
|---|---|
folderIds |
string[] |
curl -X POST 'https://api.speakai.co/v1/embed' \
-H 'x-speakai-key: sk_test_speak_0000000000000000' \
-H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000' \
-H 'Content-Type: application/json' \
-d '{
"folderIds": [
"e88575b384b6"
]
}'200 OK
Response body, application/json.
| Field | Type |
|---|---|
status |
string |
data |
object |
data._id |
string |
data.meta |
object |
data.mediaId |
string |
data.folderIds |
any[] |
data.mediaType |
string |
data.token |
string |
data.privacyMode |
string |
data.page |
string |
data.iframe |
string |
Deeper nested fields are not listed. See the example response below for the full shape.
Example response (Create Embed), application/json. Arrays are shortened to one entry and long strings are cut.
{
"status": "success",
"data": {
"_id": "65660bf97f916888ccc2f4ca",
"meta": {
"callToActionButtons": [
{
"url": "https://speakai.co",
"label": "Speak Ai"
}
],
"features": [
{
"name": "labels",
"isActive": true
}
],
"isDataVizDownloadable": false,
"isDescription": false,
"isSEOIndexing": false,
"isRemarks": true,
"isPromptAsk": true,
"isPromptHistory": true,
"isTitle": true,
"primaryColor": "#c42860"
},
"mediaId": "3afc714552cd",
"folderIds": [],
"mediaType": "video",
"token": "how-to-edit-the-transcript-79a590aa126b",
"privacyMode": "private",
"page": "",
"iframe": ""
}
}Update Embed
/embed/{embedId}Update an existing Embed Media Player.
- Make sure to pass in path
embedIdto update your existing player
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
embedId |
path | string | Yes |
Request body
Field types and names come from the request body the spec records. The spec does not mark request body fields as required, so read this as the shape the endpoint accepts rather than a required field list.
| Field | Type |
|---|---|
_id |
string |
mediaId |
string |
meta |
object |
meta.backgroundImg |
string |
meta.callToActionButtons |
object[] |
meta.features |
object[] |
meta.isDataVizDownloadable |
boolean |
meta.isDescription |
boolean |
meta.isSEOIndexing |
boolean |
meta.isRemarks |
boolean |
meta.isPromptAsk |
boolean |
meta.isPromptHistory |
boolean |
meta.isTitle |
boolean |
meta.logo |
string |
meta.primaryColor |
string |
Deeper nested fields are not listed. See the example response below for the full shape.
curl -X PUT 'https://api.speakai.co/v1/embed/65660bf97f916888ccc2f4ca' \
-H 'x-speakai-key: sk_test_speak_0000000000000000' \
-H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000' \
-H 'Content-Type: application/json' \
-d '{
"_id": "65660bf97f916888ccc2f4ca",
"mediaId": "3afc714552cd",
"meta": {
"backgroundImg": "",
"callToActionButtons": [
{
"url": "https://speakai.co",
"label": "Speak Ai"
}
],
"features": [
{
"name": "keywords",
"isActive": true
},
{
"name": "transcript",
"isActive": true
}
],
"isDataVizDownloadable": true,
"isDescription": true,
"isSEOIndexing": true,
"isRemarks": true,
"isPromptAsk": false,
"isPromptHistory": true,
"isTitle": true,
"logo": "",
"primaryColor": "#c42860"
}
}'200 OK
Response body, application/json.
| Field | Type |
|---|---|
status |
string |
data |
object |
data._id |
string |
data.meta |
object |
data.mediaId |
string |
data.folderIds |
any[] |
data.embedType |
string |
data.isActive |
boolean |
data.isDeleted |
boolean |
data.analytics |
any[] |
data.companyId |
string |
data.userId |
string |
data.mediaType |
string |
data.token |
string |
data.createdAt |
string (date-time) |
data.updatedAt |
string (date-time) |
data.__v |
integer |
data.password |
string |
Deeper nested fields are not listed. See the example response below for the full shape.
Example response (Update Embed), application/json. Arrays are shortened to one entry and long strings are cut.
{
"status": "success",
"data": {
"_id": "65660bf97f916888ccc2f4ca",
"meta": {
"backgroundImg": "",
"callToActionButtons": [
{
"url": "https://speakai.co",
"label": "Speak Ai"
}
],
"features": [
{
"name": "keywords",
"isActive": true
}
],
"isDataVizDownloadable": true,
"isDescription": true,
"isSEOIndexing": true,
"isRemarks": true,
"isPromptAsk": false,
"isPromptHistory": true,
"isTitle": true,
"logo": "",
"primaryColor": "#c42860"
},
"mediaId": "3afc714552cd",
"folderIds": [],
"embedType": "mediaPlayer",
"isActive": true,
"isDeleted": false,
"analytics": [],
"companyId": "5e21c8dd2d77242c64214816",
"userId": "5d03a9d5d4bca272e9c8cf89",
"mediaType": "video",
"token": "how-to-edit-the-transcript-79a590aa126b",
"createdAt": "2023-11-28T15:49:13.511Z",
"updatedAt": "2023-11-28T15:55:58.403Z",
"__v": 0,
"password": ""
}
}Get Iframe URL
/embed/iframeGet Embed Iframe and Page URL
Either pass mediaId for individaul file.
OR
Pass folderId for a repository URLs.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
mediaId |
query | string | No | Either Folder ID or Media ID |
folderId |
query | string | No | Either Folder ID or Media ID |
curl -X GET 'https://api.speakai.co/v1/embed/iframe?mediaId='\'''\''' \
-H 'x-speakai-key: sk_test_speak_0000000000000000' \
-H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000'200 OK
Response body, application/json.
| Field | Type |
|---|---|
status |
string |
data |
object |
data.iframe |
string |
data.page |
string |
Example response (Get Iframe URL), application/json. Arrays are shortened to one entry and long strings are cut.
{
"status": "success",
"data": {
"iframe": "<iframe style=\"height: 800px !important; width: 960px !important;\" src=\"https://embed.speakai.co/iframe/how-to-find-your-first-analyzed-video-edq6fuxmemn\" frameborder=\"0\" scrolling...",
"page": "https://embed.speakai.co/how-to-find-your-first-analyzed-video-edq6fuxmemn"
}
}Check Embed Privacy Mode
/embed/privacyStateEndpoint Description
This endpoint retrieves the privacy state of the application based on the provided token. It is primarily used to check whether the current privacy settings are secure.
Request
-
Method: GET
-
URL:
https://api.speakai.co/v1/embed/privacyState?token={token}
Query Parameters
token(string): A unique token that identifies the user’s session or request. This parameter is required for the request to be processed.
Response
The response will contain the following structure:
-
status (string): A status message indicating the result of the request.
-
data (object): An object containing the privacy state information.
- isSecure (boolean): A boolean value indicating whether the privacy settings are secure (
trueorfalse).
- isSecure (boolean): A boolean value indicating whether the privacy settings are secure (
Example Response
{
"status": "",
"data": {
"isSecure": true
}
}This response indicates that the privacy settings are currently secure.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
token |
query | string | No |
curl -X GET 'https://api.speakai.co/v1/embed/privacyState' \
-H 'x-speakai-key: sk_test_speak_0000000000000000' \
-H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000'200 OK
Response body, application/json.
| Field | Type |
|---|---|
status |
string |
data |
object |
data.isSecure |
boolean |
Example response (Check Embed Privacy Mode), application/json.
{
"status": "success",
"data": {
"isSecure": false
}
}Related pages
- API reference for the base URL, authentication, and the error format.
- Authenticate with the Speak AI API using access tokens
- Upload audio and video to Speak AI and read insights
- Create and update live transcription sessions in Speak AI
- Analyze text notes with the Speak AI text endpoints
Get an API key on the Speak AI developer page.