To keep the platform responsive for everyone, the number of calls you can make to the Showcase API is limited.
Calls are counted per company, over a fixed clock minute: the counters are reset at the beginning of each minute, they are not a sliding window. All the API keys of your account share the same quotas.
Each call is either a standard call or an intensive call, and each type has its own quota :
| Type of call | Default limit |
|---|---|
| standard All the calls that are not intensive | 250 requests per minute |
| intensive The resource-heavy calls listed below | 10 requests per minute |
The two quotas are independent: exhausting your intensive quota does not prevent you from making standard calls, and the other way round.
These are the default limits of the platform: the limits that actually apply to your account are displayed on the API consumption page, under Settings, then API. If they are too low for your use case, get in touch with us.
These endpoints need significantly more resources on our side, so they are counted against the intensive quota. They are also flagged as intensive in the reference documentation of each endpoint.
| Endpoint | Description |
|---|---|
GET /api/v1/cv/{id}/export/{format} |
Export a CV in a given format |
GET /api/v1/users/search |
Search for a user |
PUT /api/v1/users/{id} |
Update a user |
DELETE /api/v1/users/{id} |
Delete a user |
GET /api/v1/tags/{id}/users |
Get all users linked to a tag |
Responses carry the state of the quota of the call :
| Header | Description |
|---|---|
| X-RateLimit-Limit | The number of calls allowed for the current minute. |
| X-RateLimit-Remaining | The number of calls you can still make during the current minute. |
| X-RateLimit-Reset | The Unix timestamp (in seconds) at which the counter is reset, i.e. the beginning of the next minute. |
These headers describe the quota of the type of the call: the response to an intensive call gives the state of your intensive quota, the response to a standard call the state of your standard quota.
Once a quota is exhausted, the API answers with a 429 carrying the same headers (with X-RateLimit-Remaining: 0), plus a Retry-After header giving the number of seconds to wait before the counter is reset, and this body :
{"error": {"code": 429, "message": "API rate limit exceeded: maximum 250 standard request(s) per minute reached for your company. Retry after 14:32:00 Europe/Paris."}}
A rejected call is not counted against your quota, but please do wait for Retry-After seconds rather than retrying immediately.