Base URL
All API endpoints share the following base URL:v1) is part of the path. When a new major version is released, the old version remains available at its original path so your integrations keep working without changes.
HTTPS required
The API only accepts requests over HTTPS. Requests sent over plain HTTP will be rejected. Ensure your HTTP client follows redirects and validates TLS certificates.Authentication
Every request must include anAuthorization header with a valid API key. See Authentication for instructions on creating keys and adding the header to your requests.
Response format
All responses — including errors — returnContent-Type: application/json. Successful responses return a top-level object containing the requested resource or list.
Rate limits
Rate limits apply per API key, per minute:| Plan | Requests per minute |
|---|---|
| Free | 10 |
| Pro | 60 |
| Enterprise | 300 |
429 Too Many Requests. Wait until the next minute window before retrying.
Error format
All errors return a consistent JSON structure:code field is a machine-readable string you can use for programmatic error handling. The message field provides a human-readable explanation.
Common error codes
| HTTP status | Code | Meaning |
|---|---|---|
| 401 | unauthorized | The API key is missing or invalid. |
| 403 | forbidden | The API key does not have permission for this resource. |
| 404 | not_found | The requested resource does not exist. |
| 429 | rate_limit_exceeded | You have exceeded your plan’s rate limit. |
| 500 | internal_error | An unexpected error occurred on the ScreenScore AI side. |