Sarj AI Developer API · Authentication Profile
Sarj Ai Developer Api Authentication
Authentication
Sarj AI Developer API secures its APIs with http and oauth2 across 4 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode flow(s).
Voice AIVoice AgentsConversational AIArabic AIOutbound CallsTelephonySpeech-to-TextText-to-SpeechVoice CloningMCPAgent-NativeSaudi ArabiaMENAA2A
Methods: http, oauth2
Schemes: 4
OAuth flows: authorizationCode
API key in: header, query
Security Schemes
ApiKeyAuth http
scheme: bearer
BearerAuth http
scheme: bearer
RecordingToken apiKey
· in: header ()
MCP OAuth oauth2
· flows: authorizationCode
Source
Authentication Profile
generated: '2026-09-11'
method: searched
docs: https://platform-docs.sarj.ai/getting-started
source: >-
openapi/_original/sarj-ai-developer-api-developer-openapi.json, openapi/_original/sarj-ai-developer-api-stt-openapi.json,
openapi/_original/sarj-ai-developer-api-tts-openapi.json, https://platform-docs.sarj.ai/getting-started,
https://platform-docs.sarj.ai/mcp-server, https://platform-api.sarj.ai/.well-known/oauth-authorization-server
summary:
types:
- http
- oauth2
http_schemes:
- bearer
oauth2_flows:
- authorizationCode
api_key_in:
- header
- query
declared_security_schemes: 1
undeclared_credentials: 1
key_management: dashboard
schemes:
- name: ApiKeyAuth
type: http
scheme: bearer
description: 'API key from the Sarj.ai dashboard. Pass as: Authorization: Bearer <api-key>'
header: Authorization
sources:
- openapi/_original/sarj-ai-developer-api-developer-openapi.json
applies_to: https://platform-api.sarj.ai/api/v1
- name: BearerAuth
type: http
scheme: bearer
description: The same Sarj.ai API key, used against the Speech-to-Text and Text-to-Speech hosts.
header: Authorization
sources:
- openapi/_original/sarj-ai-developer-api-stt-openapi.json
- openapi/_original/sarj-ai-developer-api-tts-openapi.json
applies_to:
- https://stt-rnnt-ar.sarj.ai/openai/v1
- https://sarj-omni-tts.sarj.ai/v1
- name: RecordingToken
type: apiKey
in: header
header: X-Sarj-Recording-Token
alternative_in: query
alternative_param: t
added: '2026-09-11'
description: >-
A call-scoped credential that authorizes ONE operation — GET /calls/{call_id}/recording — for ONE call.
Exists for header-less consumers such as an HTML5 audio player. If an API key is present it always wins
and the token is ignored. Not declared as a securityScheme; it is described in the operation's own
description, and the operation's security is [{ApiKeyAuth: []}, {}] — optional auth.
applies_to: https://platform-api.sarj.ai/api/v1/calls/{call_id}/recording
sources:
- openapi/_original/sarj-ai-developer-api-developer-openapi.json
note: >-
The first and only scoped credential Sarj.ai issues. The provider advises the header form over the `t`
query parameter precisely because a query credential ends up in logs and referrers.
- name: MCP OAuth
type: oauth2
description: >-
Browser-based sign-in used only by the hosted MCP server. The client is registered dynamically (RFC 7591), the
user signs in, and an API key is minted server-side and cached by the MCP client. Not declared in any OpenAPI.
flows:
- flow: authorizationCode
authorizationUrl: https://platform-api.sarj.ai/api/v1/oauth/authorize
tokenUrl: https://platform-api.sarj.ai/api/v1/oauth/token
registrationUrl: https://platform-api.sarj.ai/api/v1/oauth/register
pkce: S256
scopes: 1
sources:
- https://platform-api.sarj.ai/.well-known/oauth-authorization-server
- https://platform-docs.sarj.ai/mcp-server
applies_to: https://platform-api.sarj.ai/api/v1/mcp
key_lifecycle:
issued_at: https://platform.sarj.ai/api-keys
display: shown once at creation
rotation: generate a new key from the dashboard; no documented programmatic rotation
storage_guidance: 'documented as an environment variable (SARJ_API_KEY)'
scoping: account and organization
revocation: not documented
unauthenticated_operations:
- operationId: getHealth
path: /health
note: Health check is explicitly documented as requiring no authentication.
findings:
- id: single-credential-across-three-hosts
detail: >-
One API key authenticates the call API, Speech-to-Text and Text-to-Speech across three different hosts. There is
no per-service credential and no scoping, so a key leaked from a transcription workload can also place billable
outbound phone calls.
- id: scoped-credential-is-undeclared
detail: >-
The call-scoped recording token is a genuinely good idea — the only narrow credential on the whole
surface — and it is invisible to tooling. It is not a securityScheme, so no SDK generator, no gateway
and no agent reading the spec's security model will know it exists. Declaring it as an apiKey scheme
would cost nothing.
- id: optional-auth-operation
detail: >-
GET /calls/{call_id}/recording declares security [{ApiKeyAuth: []}, {}] — an empty requirement object,
meaning anonymous access is permitted at the spec level. Anonymous access actually requires the
call-scoped token, which the spec cannot express. A strict client will conclude the recording endpoint
is public.
- id: no-oauth-for-rest
detail: >-
OAuth exists only for the MCP transport. Direct REST and SDK integrators have no authorization-code path and no
scoped tokens — only long-lived bearer API keys.
x-evidence:
- url: https://platform-docs.sarj.ai/getting-started
http_status: 200
- url: https://platform-docs.sarj.ai/mcp-server
http_status: 200
- url: https://platform-api.sarj.ai/.well-known/oauth-authorization-server
http_status: 200
- url: https://platform-api.sarj.ai/api/v1/openapi.json
http_status: 200
note: re-derived 2026-09-11 against the refreshed 7-operation spec
Work with this as data
Every security artifact here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for security posture
4 MCP tools reach this
find_securityBrowse and filter every security artifact in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This security artifact
curl "https://apis.io/api/v1/security/sarj-ai-developer-api-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.