Skip navigation

Access and integrations

Access tokens and webhooks.

Access tokens

Create token

POST {{baseHost}}/v1/access-tokens

Creates a new access token for the workspace. Store the returned value — it is shown once.

Request body (json)
{  "name": "token1",  "scope": {    "api": {      "permissions": [        "read",        "write",        "delete"      ]    },    "upload": {      "permissions": []    }  }}

Create upload token to specific project

POST {{baseHost}}/v1/access-tokens

Creates an upload-only access token scoped to a single project.

Request body (json)
{  "name": "token for upload to project",  "scope": {    "upload": {      "entities": [        {          "id": "<UUID>",          "permissions": [            "read",            "write",            "delete"          ]        }      ],      "permissions": []    }  }}
Responses
{  "data": {    "id": "...",    "name": "token for upload to project",    "workspace_id": "....",    "scope": {      "upload": {        "permissions": [],        "entities": [          {            "id": "<UUID>",            "permissions": [              "read",              "write",              "delete"            ]          }        ]      }    }  }}

Tokens list

GET {{baseHost}}/v1/access-tokens

Returns a list of access tokens. Results are paginated and can be filtered via query parameters.

Responses
{  "meta": {    "offset": 0,    "limit": 10,    "total": 16,    "total_count": 0,    "order": {      "name": "asc"    },    "parent_id": null  },  "data": [    {      "id": "<UUID>",      "name": "Koltin-Kinescope-Player",      "workspace_id": "<UUID>",      "scope": {        "api": {          "permissions": [            "read",            "write",            "delete"          ]        }      }    },    {      "id": "<UUID>",      "name": "Kotlin-Kinescope-Shorts",      "workspace_id": "<UUID>",      "scope": {        "api": {          "permissions": [            "read",            "write",            "delete"          ]        }      }    },    {      "id": "<UUID>",      "name": "Restream",      "workspace_id": "<UUID>",      "scope": {        "api": {          "permissions": [            "read",            "write",            "delete"          ]        },        "upload": {          "permissions": []        }      }    },    {      "id": "<UUID>",      "name": "sadfasdf",      "workspace_id": "<UUID>",      "scope": {        "api": {          "permissions": [            "read",            "write",            "delete"          ]        }      }    },    {      "id": "<UUID>",      "name": "sdfsdfsdf",      "workspace_id": "<UUID>",      "scope": {        "api": {          "permissions": [            "read",            "write",            "delete"          ]        },        "upload": {          "permissions": []        }      }    },    {      "id": "<UUID>",      "name": "Speak",      "workspace_id": "<UUID>",      "scope": {        "api": {          "permissions": [            "read",            "write",            "delete"          ]        },        "upload": {          "permissions": []        }      }    },    {      "id": "<UUID>",      "name": "Speak LiveKit Test Token",      "workspace_id": "<UUID>",      "scope": {        "api": {          "permissions": [            "read",            "write",            "delete"          ]        },        "upload": {          "permissions": []        }      }    },    {      "id": "<UUID>",      "name": "Speak Room",      "workspace_id": "<UUID>",      "scope": {        "api": {          "permissions": [            "read",            "write",            "delete"          ]        },        "upload": {          "permissions": []        }      }    },    {      "id": "<UUID>",      "name": "Test MCP",      "workspace_id": "<UUID>",      "scope": {        "api": {          "permissions": [            "read",            "write",            "delete"          ]        }      }    },    {      "id": "<UUID>",      "name": "Timofey is the best",      "workspace_id": "<UUID>",      "scope": {        "api": {          "permissions": [            "read",            "write",            "delete"          ]        },        "upload": {          "permissions": []        }      }    }  ]}

Get token

GET {{baseHost}}/v1/access-tokens/:token_id

Retrieves the details of a single access token by its unique ID.

Responses
{  "data": {    "id": "<UUID>",    "name": "Koltin-Kinescope-Player",    "workspace_id": "<UUID>",    "scope": {      "api": {        "permissions": [          "read",          "write",          "delete"        ]      }    }  }}
{  "error": {    "code": 400404,    "message": "not found"  }}

Delete token

DELETE {{baseHost}}/v1/access-tokens/:token_id

Permanently deletes the access token. This action cannot be undone.

Webhooks

List webhooks

GET {{baseHost}}/v1/webhooks

Returns a list of webhooks. Results are paginated and can be filtered via query parameters.

Responses
{  "meta": {    "pagination": {      "page": 1,      "per_page": 10,      "total": 1    },    "order": {      "name": "asc"    }  },  "data": [    {      "id": "<UUID>",      "name": "doc_test_webhook_1776899949",      "endpoint": "https://example.com/kinescope-doc-test",      "login": "",      "password": "<REDACTED>",      "events": [        "media.update.status"      ],      "created_at": "2026-04-22T23:19:10.316926Z",      "updated_at": null,      "deleted_at": null    }  ]}

Create webhook

POST {{baseHost}}/v1/webhooks

Subscribes to one or more event types. The configured endpoint will receive signed POST requests when those events fire.

Request body (json)
{  "name": "webhook1",  "endpoint": "https://example.io/kinescope/webhook",  "login": "",  "password": "",  "events": [    "media.update.status"  ]}
Responses
{  "data": {    "id": "<UUID>",    "name": "doc_test_webhook_1776899949",    "endpoint": "https://example.com/kinescope-doc-test",    "login": "",    "password": "<REDACTED>",    "events": [      "media.update.status"    ],    "created_at": "2026-04-22T23:19:10.316926Z",    "updated_at": null,    "deleted_at": null  }}

Update webhook

PUT {{baseHost}}/v1/webhooks/:webhook_id

Updates the webhook (URL, HTTP Basic credentials, subscribed events).

Request body (json)
{  "name": "webhook1_edit2",  "endpoint": "https://example.io/kin/webhook",  "login": "123",  "password": "2222",  "events": [    "media.update.status"  ]}
Responses
{  "data": {    "id": "<UUID>",    "name": "doc_test_webhook_1776899949_upd",    "endpoint": "https://example.com/kinescope-doc-test",    "login": "",    "password": "<REDACTED>",    "events": [      "media.update.status"    ],    "created_at": "2026-04-22T23:19:10.316926Z",    "updated_at": "2026-04-22T23:19:11.087179Z",    "deleted_at": null  }}

Delete webhook

DELETE {{baseHost}}/v1/webhooks/:webhook_id

Permanently deletes the webhook. This action cannot be undone.

Responses
{  "data": {    "success": true  }}