aiOla · Authentication Profile
Aiola Authentication
Authentication
aiOla declares 2 security scheme(s) across its OpenAPI definitions.
Speech RecognitionSpeech-to-TextText-to-SpeechVoice AIConversational AIArtificial IntelligenceMachine-LearningAudioTranscriptionEnterprise
Methods:
Schemes: 2
OAuth flows:
API key in:
Security Schemes
http
scheme: bearer
· in: header ()
http
scheme: bearer
· in: header ()
Source
Authentication Profile
generated: '2026-09-14'
method: searched
source: https://docs.aiola.ai/developer-guides/authentication
docs: https://docs.aiola.ai/developer-guides/authentication
corroborated_by: https://github.com/aiola-lab/aiola-python-sdk (aiola/clients/auth/client.py,
aiola/constants.py)
summary: >-
Two-tier authentication. A long-lived API key never leaves the backend; it is exchanged
for a short-lived bearer token, which is exchanged for a session JWT access token bound
to a workflow. The access token is the credential every Speech API call carries.
schemes:
- id: api_key
type: http
scheme: bearer
in: header
header: Authorization
format: Bearer <api key>
used_for: the token-exchange call only (POST https://auth.aiola.ai/voip-auth/apiKey2Token)
obtained_from: https://platform.aiola.ai/
obtained_from_status: >-
unreachable 2026-09-14 — platform.aiola.ai is a dangling CNAME with no A record on
any public resolver, so the documented route to a key does not resolve.
note: The docs are explicit that the API key must stay server-side and must never ship
in frontend code or version control.
- id: access_token
type: http
scheme: bearer
in: header
header: Authorization
format: Bearer <JWT access token>
used_for: every Speech-to-Text and Text-to-Speech request, and the streaming Socket.IO
handshake
token_format: JWT (RFC 7519) — the SDK parses the payload and reads `exp`
lifetime: ~30 minutes (stated in the documentation FAQ)
refresh: >-
No refresh-token grant. A new access token is minted by repeating the API-key
exchange. The SDKs cache the token and re-mint it when `exp` is within a 5-minute
buffer.
flow:
- step: 1
operation: POST https://auth.aiola.ai/voip-auth/apiKey2Token
request_auth: Authorization Bearer <api key>
response_field: context.token
description: Exchanges the API key for a temporary bearer token.
- step: 2
operation: POST https://auth.aiola.ai/voip-auth/session
request_auth: Authorization Bearer <temporary token>
request_body: '{ "workflow_id": "<uuid>" }'
response_fields:
- jwt
- sessionId
description: >-
Creates a session and returns the JWT access token plus a session id. A session
occupies a concurrency slot on the account.
- step: 3
operation: DELETE https://auth.aiola.ai/voip-auth/session
request_auth: Authorization Bearer <access token>
response_fields:
- status
- deletedAt
description: >-
Closes the session and frees the concurrency slot. This is the explicit teardown an
agent must call; sessions are a metered resource, not a free handle.
oauth2: false
openid_connect: false
mutual_tls: false
scopes:
model: none
note: >-
No OAuth2 authorization server and no scope surface. A session is bound to a
workflow_id, which is a routing/configuration handle, not a permission scope, so no
scopes/ artifact is written.
errors:
- status: 401
code: UNAUTHORIZED
message: Invalid or expired access token
remediation: Verify the Authorization header, confirm the `Bearer <token>` format, and
mint a new access token.
- status: 403
code: FORBIDDEN
message: API key does not have required permissions
remediation: Confirm the API key is active and not revoked; contact aiOla support for
permission adjustments.
key_rotation: >-
Rotating the API key in the aiOla dashboard immediately invalidates every access token
minted from it.
environments:
default_api_base: https://apis.aiola.ai
default_auth_base: https://auth.aiola.ai
enterprise: >-
Self-hosted / dedicated deployments override both bases — the docs show
https://your-company.api.aiola.ai + https://your-company.auth.aiola.ai and a
single-host https://your-company.aiola-enterprise.com form, configured through the
SDK's base_url / auth_base_url options or the AIOLA_ENDPOINT environment variable.
note: >-
The documentation's environment-variable example still shows
AIOLA_ENDPOINT=https://api.aiola.com, a host that does not resolve; the SDK constant
shipped in the published packages is https://apis.aiola.ai. The docs and the code
disagree, and the code is the one that runs.
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/aiola-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.