Docs › Overview
v1
Run in Postman
Dark
Loading API specification...
Base URL:
API information
Authentication
This API uses OAuth 2.0 Machine-to-Machine (M2M) authentication via Auth0. Follow the steps below to obtain and attach an access token.
Schemas
All request and response models. Fields marked * are required.
Error handling
Standard HTTP status codes returned by this API.
| 200 | OK | Request succeeded. |
| 201 | Created | Resource created successfully. |
| 202 | Accepted | Async request queued for processing. |
| 204 | No Content | Success with no response body. |
| 400 | Bad Request | Validation error or malformed input. |
| 401 | Unauthorized | Missing or invalid authentication token. |
| 403 | Forbidden | Authenticated but not authorized for this resource. |
| 404 | Not Found | The requested resource does not exist. |
| 422 | Unprocessable Entity | Request is well-formed but contains semantic errors. |
| 429 | Too Many Requests | Rate limit exceeded. Check Retry-After header. |
| 500 | Server Error | Unexpected internal server error. |
Error response format (RFC 7807)
JSON
{"type":"https://tools.ietf.org/html/rfc7807","title":"One or more validation errors occurred.","status":400,"detail":"'fieldName' is required.","instance":"/api/v1/your-endpoint"}
Rate limiting
All endpoints are protected by a fixed-window rate limit keyed to the authenticated caller (sub claim). Unauthenticated traffic is keyed by IP address.
| Algorithm | Fixed window — the counter resets fully at the end of each window. |
| Limit | 100 requests per 60 s window per caller. Configurable via RateLimit:PermitLimit and RateLimit:WindowSeconds. |
| Partition key | Auth0 sub claim (authenticated) or remote IP address (unauthenticated). |
| Response code | 429 Too Many Requests with a Retry-After header indicating seconds until the window resets. |
The limit is per caller, not per endpoint. A burst of import requests and status checks together counts toward the same 100-request budget.
Handling a 429 response
Read the Retry-After header and wait before retrying. The example below uses exponential back-off with jitter as a fallback when the header is absent.
HTTP Response
HTTP/1.1 429 Too Many Requests
Retry-After: 42
Content-Type: application/problem+json
{
"status": 429,
"title": "Too Many Requests"
}
C# — retry with Retry-After
var res = await client.SendAsync(request);
if ((int)res.StatusCode == 429)
{
var retryAfter = res.Headers.RetryAfter?.Delta ?? TimeSpan.FromSeconds(10);
await Task.Delay(retryAfter);
res = await client.SendAsync(request); // retry once
}