Quickstart
Exchange a server-side client credential for a short-lived access token, then call the Platform API with only the scope your operation requires.
Before you begin
You need a Vision-issued client ID and the client secret shown during creation. The secret is disclosed once and cannot be recovered later.
Client credentials belong on a trusted server. Never embed them in browser JavaScript, mobile binaries, repositories, logs, or analytics.
Request a token
Send form-encoded client credentials to the token endpoint. Tokens expire in no more than five minutes.
Token exchange
curl https://vision.ivisionstudios.com/oauth/token \
--request POST \
--header 'content-type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=vcr_your_client_id' \
--data-urlencode 'client_secret=your_one_time_secret' \
--data-urlencode 'scope=vision.apps:read'
Successful response
{
"access_token": "eyJ...",
"token_type": "Bearer",
"expires_in": 300,
"scope": "vision.apps:read"
}
Call the Platform API
List installed Apps
curl https://vision.ivisionstudios.com/platform/v1/apps \
--header 'authorization: Bearer eyJ...' \
--header 'accept: application/json'
Keep the x-request-id response header when investigating an error. Private responses use Cache-Control: no-store.
Production checklist
- Request only the scopes required for the current operation.
- Cache access tokens in server memory until shortly before expiry.
- Apply bounded connection and response timeouts.
- Retry only errors explicitly marked retryable.
- Rotate credentials deliberately and revoke them immediately after suspected exposure.
- Validate the exact issuer, audience, algorithm, key ID, workspace, App entitlement, and scope in resource servers.