Core concepts

Authentication

The API authenticates each request with an API key, sent in the Authorization header. The key identifies an organization: the request only reaches that organization's resources.
curl https://api.renderthink.com/v1/styles \
-H "Authorization: Bearer $RENDERTHINK_API_KEY"
PrefixModeUse
rt_test_Test, freeDevelopment
rt_live_LiveProduction
  • Send the key only in the Authorization: Bearer … header, never in the URL.
  • Call the API from a server: it refuses calls from a browser (CORS). Keep the key in an environment variable or a secrets manager, never in source code.
  • The full key is shown only once, at creation. Store it right away.
  • A missing, invalid, revoked or expired key gets a 401 error (see Errors).
Each key carries the permissions chosen at creation.
IdentifierIn the consoleRoutes
rendersRendersPOST /v1/renders
editsEditsPOST /v1/edits, GET /v1/edit-materials, GET /v1/edit-material-categories
decorationsDecorationsPOST /v1/decorations, GET /v1/styles
upscalesUpscalingPOST /v1/upscales
generations_readRead generationsGET /v1/generations, GET /v1/generations/{id}
POST /v1/generations/{id}/cancel requires generations_read and the permission of the generation's type. A request without the required permission gets 403 permission_denied.
Keys are managed in the console, on the API keys screen.
  • A key belongs to the organization, not to its creator.
  • The owner, admins and developers create keys. The owner and admins rename, restrict and revoke every key; a developer, their own.
  • At most 50 unrevoked keys per organization, expired keys included.
  • The console shows the start of each key, its last 4 characters, its last use and the IP address of that use.
  • Optional expiry: the key stops working at the end of the chosen day.
  • Revocation is immediate and final, from the next request. Revoke an exposed key immediately.
  • A revoked or expired key is deleted 13 months after it ends: it is then unknown (api_key_invalid). Billing members can view keys but not manage them.
A key can be restricted to a list of addresses, at creation or later. A request from another address gets 403 ip_not_allowed.
  • At most 20 entries: addresses (203.0.113.4) or CIDR ranges (198.51.100.0/24, 2001:db8::/48), IPv4 or IPv6.
  • Without a list, every address is accepted.
  • A change applies from the next request, on /v1 as on the MCP server.
  • Enter the public outbound address of your servers; the one the console offers is your browser's.
  • The list does not apply to the console's playground.
  1. Create a key with the same permissions.
  2. Deploy it to your servers.
  3. When the old key's last use date no longer changes, revoke it.