Rate Limits

Requests to specific Zendesk endpoints from the Zendesk mobile SDKs are rate limited.

A certain number of requests are allowed per minute depending on the endpoint.

Zendesk reserves the right to adjust the rate limit for given endpoints to provide a high quality of service for all clients. The following are the endpoints which are rate limited, the maximum number of requests per minute permitted for each endpoint, and how you can interact with these endpoints while using the SDK.

If the rate limit is exceeded, the API responds with a HTTP 429 Too Many Requests response code and a body that details the reason for the rate limiter kicking in. The response has a Retry-After header that tells you for how many seconds to wait before retrying. You should anticipate this in your mobile app for the smoothest possible experience. See Best practices for avoiding rate limiting.

/access/sdk/anonymous (create)

  • 2,000 requests per minute
  • Used to create a user in the Zendesk backend for an anonymous identity
  • Called by all of the SDK providers the first time a new anonymous identity is used
  • Called the first time an end user interacts with any part of the SDK's UI when using an anonymous identity

/access/sdk/jwt (create)

  • 2,000 requests per minute
  • Used to create a user in the Zendesk backend for a JWT identity
  • Called by all of the SDK providers the first time a new JWT identity is used
  • Called the first time an end user interacts with any part of the SDK's UI when using a JWT identity

/api/mobile/requests.json (create)

  • 500 requests per minute
  • Used to create a Request
  • Called by the createRequest method on a RequestProvider
  • Called when an end user creates a ticket using the Request screen in the SDK's UI

/api/mobile/requests.json (index)

  • 5,000 requests per minute
  • Used to fetch all of an end user's tickets. This endpoint requires a real user ID, so can only be used with a JWT identity
  • Called by the getRequests and getUpdatesForDevice methods on a RequestProvider when using a JWT identity
  • Called when an end user opens or refreshes the Request List screen in the SDK's UI when using a JWT identity

/api/mobile/requests/show_many.json

  • 2,000 requests per minute
  • Takes a comma-separated list of Request tokens and fetches all the corresponding requests
  • Called by the getRequests and getUpdatesForDevice methods on a RequestProvider when using an anonymous identity
  • Called when an end user opens or refreshes the Request List screen in the SDK's UI when using an anonymous identity

/api/mobile/requests/{request_id}/comments.json

  • 5,000 requests per minute
  • Used to fetch all the comments for a Request. Optionally, takes a timestamp as a parameter and only returns comments created since that time
  • Called by the getComments and getCommentsSince methods on a RequestProvider
  • Called when an end user opens or refreshes a ticket using the Request screen in the SDK's UI

/api/mobile/requests/{request_id}.json (update)

  • 500 requests per minute
  • Used to update a Request. In the SDKs, this is specifically used to add comments to a Request.
  • Called by the addComment method on a RequestProvider, when conversations are enabled in SDK settings
  • Called when an end user submits a comment on the Request screen in the SDK's UI

/api/mobile/requests/{request_id}.json (show)

  • 500 requests per minute
  • Used to fetch an individual Request
  • Called by the getRequest method on a RequestProvider, when conversations are enabled in SDK settings
  • Called when an end user opens or refreshes a ticket using the Request screen in the SDK's UI

/api/mobile/user_tags.json (create)

  • 5,000 requests per minute
  • Used to add tags to a specific end-user profile.
  • Called by the addTags method on a UserProvider
  • This endpoint is not used in the default SDK UI

/api/mobile/user_tags/destroy_many.json?tags={tag} (delete)

  • 500 requests per minute
  • Used to remove tags from a specific end-user profile.
  • Called by the deleteTags method on a UserProvider
  • This endpoint is not used in the default SDK UI

/api/mobile/users/me (show)

  • 500 requests per minute
  • Used to get information about the current users
  • Called by the getUser method on a UserProvider
  • This endpoint is not used in the default SDK UI

/api/mobile/users/me (update)

  • 500 requests per minute
  • Used to get information about the current user
  • Called by the setUserFields method on a UserProvider
  • This endpoint is not used in the default SDK UI

/api/v2/ticket_forms/show_many.json

  • 5,000 requests per minute
  • Used to fetch information about the ticket forms and ticket fields on an account
  • Called by the getTicketFormsById method on the RequestProvider
  • This endpoint is not used in the default SDK UI

/api/mobile/uploads.json (create)

  • 500 requests per minute.
  • Called each time the end user sends a message containing a file.
  • This endpoint is not exposed in the SDK Providers.