Errors, Warnings & Limits
Permissions
Fields which you do not have permission to access will result in a response with an error block, with errorType set to Unauthorized. The response payload is still valid and may be consumed.
You can test your applications handling of deprecated fields by calling:
query MyQuery {
debug
{
permissionDeniedExample
}
}This will trigger the API to return a permissions error within your query. If you wish to access a field you do not have access to, contact your account representative.
Field Deprecation
Any query which uses a deprecated field will result in a response with an error block, with errorType set to DEPRECATED. The message field will provide an explanation of the deprecation and an alternative field to use, if available. The response payload is still valid and may be consumed.
You can test your applications handling of deprecated fields by calling:
query MyQuery {
debug
{
deprecatedExample
}
}This will trigger the API to return a deprecated error within your query. Note that this field may be hidden in the GraphiQL explorer (as it hides deprecated fields by default), however it is present.
Deprecated fields will be removed in future releases. If your application receives a DEPRECATED error message, remove the affected fields from your queries and mutations.
In the event of any other type of error being received, the response payload must be discarded
GraphQL Fragments
Altrata GraphQL API's do not support named GraphQL fragment spreads. This limitation also applies to nested fields.
If a request uses a named fragment spread such as ...PersonDetails, it will fail and result in a GenericError response.
query person {
person: personIDSearch(id: "xxxxxxxx") {
... on Person {
...PersonDetails
}
... on AuthorizationError {
authorizationErrorCode
}
}
}
fragment PersonDetails on Person {
id
name
}Instead, select the fields inline:
query person {
person: personIDSearch(id: "xxxxxxxx") {
... on Person {
id
name
}
... on AuthorizationError {
authorizationErrorCode
}
}
}Inline fragments used for type selection are supported:
... on Person {
id
name
}Rate Limits
Service | Rate | Burst | Quota |
|---|---|---|---|
Profile API | 2 per second | 2 Requests | None |
Matching API | 2 per second | 2 Requests | None |
Events API | 2 per second | 2 Requests | None |
Relationship API | 2 per second | 2 Requests | None |
Authentication API | 1 per Second | 1 Request | 200 per day |
Daily Quota
The authentication endpoint that issues access tokens is limited to 200 requests per day. Each token remains valid for 8 hours.
Best practice: Request an access token once and reuse it across multiple API calls for the duration of its 8-hour lifetime.
HTTP Errors
429 Too Many Requests - when you have exceeded your rate limit. To resolve this error, use retries and an exponential backoff algorithm with jitter, and then resubmit your API request.
429 Limit Exceeded - when you have exceeded your daily quota.