{"openapi":"3.1.0","info":{"title":"Sonix (BYOK) API","version":"0.1.0","description":"Sonix (BYOK) lets an AI assistant read your own Sonix data through the Sonix API with a key you supply (API key). Read-only: 8 tools (list_media, get_media, list_translations, get_translation_status, get_summarization, list_folders, list_users, list_shares). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-sonix.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-sonix/docs"},"termsOfService":"https://connectorbay.com/byok-sonix/terms"},"servers":[{"url":"https://byok-sonix.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-sonix/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_media":{"post":{"operationId":"list_media","summary":"List the audio and video files in your Sonix account, newest first, with name, duration, language, status and shareable ","description":"List the audio and video files in your Sonix account, newest first, with name, duration, language, status and shareable link. 100 files per page. Use for \"Which files are still transcribing in Sonix\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["completed","transcribing","aligning","failed"],"type":"string"},{"type":"null"}],"default":null,"description":"Only files in this status.","title":"Status"},"folder_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only files in the folder with this ID (from list_folders).","title":"Folder Id"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only files whose name matches this text.","title":"Search"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; the answer reports total_pages.","title":"Page"}},"title":"list_mediaArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_media":{"post":{"operationId":"get_media","summary":"Get one Sonix file: name, duration, language, status, folder and shareable link. Use for \"What is the status of Sonix fi","description":"Get one Sonix file: name, duration, language, status, folder and shareable link. Use for \"What is the status of Sonix file qmnY1nD5\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"media_id":{"description":"Media file ID as returned by list_media (id), for example 'qmnY1nD5'.","maxLength":60,"title":"Media Id","type":"string"}},"required":["media_id"],"title":"get_mediaArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_translations":{"post":{"operationId":"list_translations","summary":"List the languages a Sonix file has been translated into, with status and request time. Use for \"Which translations exis","description":"List the languages a Sonix file has been translated into, with status and request time. Use for \"Which translations exist for Sonix file qmnY1nD5\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"media_id":{"description":"Media file ID as returned by list_media (id), for example 'qmnY1nD5'.","maxLength":60,"title":"Media Id","type":"string"}},"required":["media_id"],"title":"list_translationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_translation_status":{"post":{"operationId":"get_translation_status","summary":"Get the status of one translation of a Sonix file: queued, translating, completed or failed. Use for \"Is the Spanish tra","description":"Get the status of one translation of a Sonix file: queued, translating, completed or failed. Use for \"Is the Spanish translation of Sonix file qmnY1nD5 finished\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"media_id":{"description":"Media file ID as returned by list_media (id), for example 'qmnY1nD5'.","maxLength":60,"title":"Media Id","type":"string"},"language":{"description":"Language code of the translation, for example 'es' or 'fr'.","maxLength":12,"title":"Language","type":"string"}},"required":["media_id","language"],"title":"get_translation_statusArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_summarization":{"post":{"operationId":"get_summarization","summary":"Get the status and result of a Sonix AI summarization by ID: subtype, media file, timestamps and the summary text. Use f","description":"Get the status and result of a Sonix AI summarization by ID: subtype, media file, timestamps and the summary text. Use for \"Show Sonix summarization abc123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"summarization_id":{"description":"Summarization ID, as returned when the summarization was requested in Sonix.","maxLength":60,"title":"Summarization Id","type":"string"}},"required":["summarization_id"],"title":"get_summarizationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_folders":{"post":{"operationId":"list_folders","summary":"List the folders in your Sonix account with ID, name and access control. Use for \"What folders do I have in Sonix\".","description":"List the folders in your Sonix account with ID, name and access control. Use for \"What folders do I have in Sonix\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_foldersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_users":{"post":{"operationId":"list_users","summary":"List the users of your Sonix account with ID, name, email and role. Use for \"Who has access to our Sonix account\".","description":"List the users of your Sonix account with ID, name, email and role. Use for \"Who has access to our Sonix account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_usersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_shares":{"post":{"operationId":"list_shares","summary":"List who a Sonix file is shared with: email and whether they can edit. Use for \"Who can see Sonix file qmnY1nD5\".","description":"List who a Sonix file is shared with: email and whether they can edit. Use for \"Who can see Sonix file qmnY1nD5\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"media_id":{"description":"Media file ID as returned by list_media (id), for example 'qmnY1nD5'.","maxLength":60,"title":"Media Id","type":"string"}},"required":["media_id"],"title":"list_sharesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}