Before you get started make sure to create an API key in your CaptionKit dashboard and read up on the API authentication.
The /me endpoints return information about the account your API key belongs to — no account ID needed. They're the easiest way to look up your account ID and profile IDs for use with other endpoints.
Getting your account
GET /v2/me
Returns the account your API key belongs to.
Using curl
curl "https://api.captionkit.com/v2/me?key={API_KEY}"Using fetch in JS or Node
fetch(`https://api.captionkit.com/v2/me?key=${API_KEY}`)Response
{
"id": "9c9a80c2-ee91-4590-a83a-cf2a454893c3",
"slug": "my-church",
"name": "My Church",
"image_url": "https://...",
"disclaimer": {
"text": "Captions are generated automatically and may contain errors.",
"t": 1755123456789
}
}The id field is your account ID — you'll need it for endpoints like Sessions that take an account ID in the URL. disclaimer is the caption disclaimer configured for your account, or null if you haven't set one.
Listing your profiles
GET /v2/me/profiles
Returns all of your account's caption profiles, including each profile's current settings.
Using curl
curl "https://api.captionkit.com/v2/me/profiles?key={API_KEY}"Using fetch in JS or Node
fetch(`https://api.captionkit.com/v2/me/profiles?key=${API_KEY}`)Response
[
{
"id": "b1f6d0d7-3d1c-4a4e-9a58-2f0d54cf40a1",
"account_id": "9c9a80c2-ee91-4590-a83a-cf2a454893c3",
"slug": "main-auditorium",
"name": "Main Auditorium",
"image_url": null,
"settings": {
"visible": true,
"pending": false,
"language": "en-US",
"translations": ["es-419"],
"interimResults": true,
"stopSilence": true,
"updated": 1755123456789
},
"created_at": "2026-01-12T09:15:00.000Z",
"updated_at": "2026-08-14T18:31:03.000Z"
}
]
settings reflects the profile's current caption configuration — the source language, active translations and whether captions are currently visible. A profile that hasn't been configured yet may have settings: null.
Checking a profile's stream status
GET /v2/me/profiles/{profileSlug}/status
Returns the live caption stream status for a single profile. You can use either the profile's slug or its ID in the URL. To check status at the account level instead, see Stream status.
Using curl
curl "https://api.captionkit.com/v2/me/profiles/main-auditorium/status?key={API_KEY}"Using fetch in JS or Node
fetch(`https://api.captionkit.com/v2/me/profiles/${PROFILE_SLUG}/status?key=${API_KEY}`)Response
{
"live": true,
"status": {
"live": true,
"sessionId": "2355239b-578f-4bca-bfa5-8cd544633967",
"accountId": "9c9a80c2-ee91-4590-a83a-cf2a454893c3",
"startedAt": 1783005063199,
"lastSeen": 1783005063607,
"options": {
"language": "en-US",
"translations": ["es-419"],
"interimResults": true,
"profanityFilter": true
}
}
}When the profile isn't streaming, live is false and status is null. If the profile slug doesn't exist you'll get a 404.