Which endpoints accept OAuth tokens?
Which Orshot API endpoints are callable with an OAuth token rather than an API key.
Published ·Updated
Available Endpoints#
| Endpoint | Method | Required Scope |
|---|---|---|
/v1/me | GET | profile or workspace:read |
/v1/generate/:renderType (for example /v1/generate/images) | POST | render:generate |
/v1/studio/render | POST | render:generate |
/v1/studio/templates | GET | workspace:templates:read |
/v1/studio/templates/all | GET | workspace:templates:read |
/v1/studio/templates/:id | GET | workspace:templates:read |
/v1/studio/:id | GET | workspace:templates:read |
/v1/studio/:id/modifications | GET | workspace:templates:read |
/v1/studio/templates/:id/delete | DELETE | workspace:templates:write |
/v1/studio/templates/:id/share | GET | workspace:templates:read |
/v1/studio/templates/:id/share | POST | workspace:templates:write |
/v1/studio/templates/:id/folder | PATCH | workspace:templates:write |
/v1/studio/folders | GET | workspace:templates:read |
/v1/studio/folders | POST | workspace:templates:write |
/v1/studio/folders/:id | PATCH | workspace:templates:write |
/v1/studio/folders/:id | DELETE | workspace:templates:write |
/v1/studio/templates/:id/versions | GET | workspace:templates:read |
/v1/studio/templates/:id/versions/:vid | GET | workspace:templates:read |
/v1/studio/templates/:id/versions | POST | workspace:templates:write |
/v1/studio/templates/:id/versions/:vid | PATCH | workspace:templates:write |
/v1/studio/templates/:id/versions/:vid | DELETE | workspace:templates:write |
/v1/studio/templates/:id/versions/:vid/restore | POST | workspace:templates:write |
/v1/studio/templates/:id/versions/:vid/duplicate | POST | workspace:templates:write |
/v1/studio/render-jobs | GET | render:generate |
/v1/studio/render-jobs/:id | GET | render:generate |
/v1/studio/render-jobs/:id/cancel | POST | render:generate |
/v1/workspace/logs | GET | workspace:read |
/v1/ai/presets | GET | workspace:read |
/v1/ai/video/estimate | POST | render:generate |
/v1/ai/video | POST | render:generate |
The Approvals API uses its own workspace:approvals:* scopes. See Scopes.
Other endpoints return 403 oauth_not_allowed. Use an API key for those.
Errors#
| HTTP | Code | Meaning |
|---|---|---|
| 401 | oauth_token_invalid | The token is expired or revoked. Refresh it |
| 403 | insufficient_scope | The token lacks the scope this endpoint needs |
| 403 | oauth_not_allowed | This endpoint does not accept OAuth tokens. Use an API key |
| 403 | workspace_not_accessible | x-workspace-id names a workspace that is not on the token |
| 403 | sandbox_restricted | The app is in development mode and the user is not the owner or a test user |
Template endpoints currently return a plain 401 with no code for expired tokens, workspace_not_accessible and sandbox_restricted.
Dynamic Client Registration#
MCP clients (Claude, Cursor and others) can register themselves with POST /v1/oauth/register (RFC 7591). The discovery document at /.well-known/oauth-authorization-server lists it as registration_endpoint.
curl -X POST https://api.orshot.com/v1/oauth/register \
-H "Content-Type: application/json" \
-d '{
"client_name": "My MCP Client",
"redirect_uris": ["http://localhost:3334/callback"]
}'redirect_uris is required and must be a non-empty array. The call does not create a new app. It returns 201 with a public client_id (no secret), plus client_name, redirect_uris, grant_types, token_endpoint_auth_method: "none", scope and client_id_issued_at. The consent screen names Orshot, not your client. Use that client_id with the Authorization Code flow.
To build your own app with its own name on the consent screen, register an app instead.
Ready to automate?
Start rendering images, PDFs and videos from your templates in under 2 minutes. Free plan, no credit card.
Get your API key- Image, PDF and video generation via API
- Visual editor with AI and smart layouts
- Zapier, Make, MCP and 40+ integrations
- White-label embed for your own app
- 100 free credits a month, no credit card required