Authentication methods
Dynamo CSMS accepts credentials in two header formats. Both are equally valid — choose whichever fits your HTTP client or framework better.Bearer token (recommended)
Pass your API key as a Bearer token in theAuthorization header:
X-API-Key header
Alternatively, pass your API key in theX-API-Key header:
Do not pass credentials in the URL query string (for example,
?api_key=...). Query parameters appear in server logs and browser history. Use headers instead.Code examples
Obtaining an API key
Via the Developer Portal
- Log in to the Dynamo CSMS Developer Portal.
- Navigate to Settings → API Keys.
- Click Create API key, choose a name, and select the scopes you need.
- Copy the key immediately — it is only displayed once.
Via the API
If you already have a valid key with thewrite:api_keys scope, you can create additional keys programmatically:
Permission scopes
Scopes restrict what an API key can do. Assign only the scopes an application actually needs — this limits the blast radius if a key is ever leaked.Installer authentication
Installers in the field use a separate token-based flow rather than long-lived API keys. This is because installer credentials are personal and time-limited — they are not associated with an organisation’s API key quota. To authenticate as an installer:access_token value as a Bearer token in the same way as an API key. Installer tokens expire after 60 minutes. See the Installer quickstart for the full workflow.
Rate limits
Dynamo CSMS enforces rate limits per API key to ensure fair use and platform stability.
Every response includes rate-limit headers so you can track your consumption:
X-RateLimit-Reset value is a Unix timestamp indicating when your hourly quota resets.
Error responses
401 Unauthorized
A401 response means the request was not authenticated or the credential is invalid.
- The
AuthorizationorX-API-Keyheader is missing entirely. - The API key has been revoked or expired.
- The key belongs to a different organisation than the resource being accessed.
- The
Bearerprefix is missing from theAuthorizationheader value.
403 Forbidden
A403 response means the credential is valid but the key does not have the required scope for the requested operation.
429 Too Many Requests
A429 response means you have exceeded your hourly rate limit.
retry_after field tells you how many seconds to wait before retrying. Implement exponential backoff in your application rather than retrying immediately.
Revoking an API key
To revoke a key that is no longer needed or may have been compromised, delete it via the API or from Settings → API Keys in the Developer Portal.401.
Security best practices
- Rotate keys regularly. Create a new key, update your application, then revoke the old one.
- Use environment variables. Never hard-code API keys in source files.
- Apply least-privilege scopes. Give each key only the scopes it needs.
- Monitor usage. Review
X-RateLimit-Remainingin responses and alert on unexpected spikes. - Separate keys per environment. Use distinct keys for development, staging, and production.