Skip to main content

Request Limits

To ensure service health and stability, Qualtrics enforces a limit on how rapidly APIs can be called.

Qualtrics enforces two rate-limits: 1) Total number of calls per brand, 2) Total number of calls to an endpoint per brand.

Total number of calls per brand​

Brands may make up to 3000 API requests per minute across all of its API calls. This request limit is enforced at the brand level.

Total number of calls to an endpoint per brand​

In addition to the Per Brand Limit, certain endpoints have a lower per brand limit to the number of calls that they will support per minute. What this means is that while a brand may make 3000 requests per minute, some endpoints will engage rate-limiting at a lower number of calls per minute. If an endpoint has a rate limit below 'Total number of calls per brand' (3000 requests per minute), a brand may encounter the endpoint rate limit, but still be able to make successful calls against a different endpoint until it hits the 'Total number of calls per brand' limit

APIs with Lower Request Limits​

Some APIs have lower request limits per minute. The limit for each endpoint is listed in the following table.

VerbEndpointLimit
Audit-Exports
POST/audit-exports30
GET/audit-exports/{exportId}30
GET/audit-exports/{exportId}/files/{fileId}30
GET/audit-events120
Audits
GET/logs/activitytypes3000
GET/logs3000
Automations File Service
GET/automations/{automationId}/files100
Bulk Entity Import
POST/directories/{directoryId}/imports10
Conjoint Collaboration
POST/conjoint-maxdiff/{projectId}/permissions/collaborations100
Contact Frequency
GET/directories/{directoryId}/frequencyrules3000
POST/directories/{directoryId}/frequencyrules3000
GET/directories/{directoryId}/frequencyrules/{ruleId}3000
PUT/directories/{directoryId}/frequencyrules/{ruleId}3000
DELETE/directories/{directoryId}/frequencyrules/{ruleId}3000
Contact Imports
POST/directories/{directoryId}/mailinglists/{mailingListId}/transactioncontacts400
GET/directories/{directoryId}/mailinglists/{mailingListId}/transactioncontacts/{importId}500
GET/directories/{directoryId}/mailinglists/{mailingListId}/transactioncontacts/{importId}/summary3000
GET/directories/{directoryId}/imports/api-import/jobs/{importId}/report60
Contact Transactions
GET/directories/{directoryId}/contacts/{contactId}/transactions3000
POST/directories/{directoryId}/transactions500
GET/directories/{directoryId}/transactions/{transactionId}3000
POST/directories/{directoryId}/transactions/{transactionId}500
PUT/directories/{directoryId}/transactions/{transactionId}500
DELETE/directories/{directoryId}/transactions/{transactionId}500
POST/directories/{directoryId}/transactions/{transactionId}/enrichments500
Contacts
GET/directories/{directoryId}/contacts/optedOutContacts3000
GET/directories/{directoryId}/contacts3000
POST/directories/{directoryId}/contacts500
GET/directories/{directoryId}/contacts/{contactId}3000
PUT/directories/{directoryId}/contacts/{contactId}500
DELETE/directories/{directoryId}/contacts/{contactId}500
POST/directories/{directoryId}/contacts/search500
GET/directories/{directoryId}/contacts/{contactId}/history3000
POST/directories/{directoryId}/export-contacts10
GET/directories/{directoryId}/export-contacts/{progressId}/status10
GET/directories/{directoryId}/export-contacts/{fileId}/file10
Data Access
GET/customer-data-requests/{customerDataRequestId}100
GET/customer-data-requests/{customerDataRequestId}/files/{fileId}100
POST/customer-data-requests100
Directories
GET/directories3000
Distributions
GET/distributions3000
POST/distributions3000
GET/distributions/{distributionId}3000
DELETE/distributions/{distributionId}3000
POST/distributions/{distributionId}/reminders3000
POST/distributions/{distributionId}/thankyous3000
GET/distributions/{distributionId}/links500
GET/distributions/{distributionId}/history300
Divisions
POST/divisions3000
GET/divisions/{divisionId}3000
PUT/divisions/{divisionId}3000
Event Subscriptions
GET/eventsubscriptions120
POST/eventsubscriptions120
GET/eventsubscriptions/{subscriptionId}120
DELETE/eventsubscriptions/{subscriptionId}120
EX APIs
GET/employee-directories/{directoryId}/participants/{participantId}75
GET/employee-directories/{directoryId}/participants75
POST/employee-directories/{directoryId}/participants75
POST/employee-directories/{directoryId}/import-participants75
GET/employee-directories/{directoryId}/import-participants/{jobId}75
GET/employee-directories/{directoryId}/import-participants/results/{resultId}75
POST/employee-directories/{directoryId}/delete-participants75
GET/employee-directories/{directoryId}/delete-participants/{jobId}75
GET/employee-directories/{directoryId}/delete-participants/results/{resultId}75
GET/employee-directories/{directoryId}/export-participants75
POST/employee-directories/{directoryId}/export-participants75
GET/employee-directories/{directoryId}/export-participants/{jobId}75
GET/employee-directories/{directoryId}/export-participants/results/{resultId}/file75
GET/ex-projects/{projectId}/participants/{participantId}75
GET/ex-projects/{projectId}/participants75
POST/ex-projects/{projectId}/participants75
POST/ex-projects/{projectId}/import-participants75
GET/ex-projects/{projectId}/import-participants/{jobId}75
GET/ex-projects/{projectId}/import-participants/results/{resultId}75
POST/ex-projects/{projectId}/import-subjects75
GET/ex-projects/{projectId}/import-subjects/{jobId}75
GET/ex-projects/{projectId}/import-subjects/results/{resultId}75
POST/ex-projects/{projectId}/import-evaluators75
GET/ex-projects/{projectId}/import-evaluators/{jobId}75
GET/ex-projects/{projectId}/import-evaluators/results/{resultId}75
POST/ex-projects/{projectId}/copy-participants75
GET/ex-projects/{projectId}/copy-participants/{jobId}75
GET/ex-projects/{projectId}/copy-participants/results/{resultId}75
POST/ex-projects/{projectId}/copy-subjects75
GET/ex-projects/{projectId}/copy-subjects/{jobId}75
GET/ex-projects/{projectId}/copy-subjects/results/{resultId}75
POST/ex-projects/{projectId}/copy-evaluators75
GET/ex-projects/{projectId}/copy-evaluators/{jobId}75
GET/ex-projects/{projectId}/copy-evaluators/results/{resultId}75
GET/ex-projects/{projectId}/export-participants/{jobId}75
POST/ex-projects/{projectId}/delete-participants75
GET/ex-projects/{projectId}/delete-participants/{jobId}75
GET/ex-projects/{projectId}/delete-participants/results/{resultId}75
POST/ex-projects/{projectId}/export-nominations75
GET/ex-projects/{projectId}/export-nominations/{jobId}75
GET/ex-projects/{projectId}/export-nominations/results/{resultId}/file75
POST/ex-projects/{projectId}/export-participants75
GET/ex-projects/{projectId}/export-participants/{jobId}75
GET/ex-projects/{projectId}/export-participants/results/{resultId}/file75
Groups
GET/groups600
POST/groups600
GET/groups/{groupId}600
PUT/groups/{groupId}600
DELETE/groups/{groupId}600
POST/groups/{groupId}/members600
GET/groups/{groupId}/members1000
DELETE/groups/{groupId}/members/{userId}3000
Imported Data Project
POST/imported-data-projects500
GET/imported-data-projects/{idpSourceId}500
POST/imported-data-projects/{idpSourceId}500
POST/imported-data-projects/{idpSourceId}/exports100
GET/imported-data-projects/{idpSourceId}/exports/{jobId}1000
GET/imported-data-projects/{idpSourceId}/exports/{fileId}/file100
POST/imported-data-projects/{idpSourceId}/record500
POST/imported-data-projects/{idpSourceId}/records500
GET/imported-data-projects/{idpSourceId}/records/{uniqueField}500
DELETE/imported-data-projects/{idpSourceId}/records/{uniqueField}500
PUT/imported-data-projects/{idpSourceId}/records/{uniqueField}500
Legacy Survey Response Import/Export API
POST/responseexports3000
GET/responseexports/{responseExportId}3000
GET/responseexports/{responseExportId}/file3000
POST/responseimports3000
GET/responseexports/{responseImportId}3000
Libraries
GET/libraries/{libraryId}/survey/blocks3000
GET/libraries3000
GET/libraries/{libraryId}/survey/questions3000
GET/libraries/{libraryId}/survey/surveys3000
GET/libraries/{libraryId}/messages3000
POST/libraries/{libraryId}/messages3000
GET/libraries/{libraryId}/messages/{messageId}3000
PUT/libraries/{libraryId}/messages/{messageId}3000
DELETE/libraries/{libraryId}/messages/{messageId}3000
POST/libraries/{libraryId}/graphics3000
DELETE/libraries/{libraryId}/graphics/{graphicId}3000
Mailing List Contacts
POST/directories/{directoryId}/mailinglists/{mailingListId}/contacts500
GET/directories/{directoryId}/mailinglists/{mailingListId}/contacts3000
GET/directories/{directoryId}/mailinglists/{mailingListId}/bouncedContacts3000
GET/directories/{directoryId}/mailinglists/{mailingListId}/optedOutContacts3000
GET/directories/{directoryId}/mailinglists/{mailingListId}/contacts/{contactId}3000
PUT/directories/{directoryId}/mailinglists/{mailingListId}/contacts/{contactId}500
DELETE/directories/{directoryId}/mailinglists/{mailingListId}/contacts/{contactId}500
GET/directories/{directoryId}/mailinglists/{mailingListId}/contacts/{contactId}/history3000
Mailing Lists
GET/directories/{directoryId}/mailinglists3000
POST/directories/{directoryId}/mailinglists500
GET/directories/{directoryId}/mailinglists/{mailingListId}3000
PUT/directories/{directoryId}/mailinglists/{mailingListId}500
DELETE/directories/{directoryId}/mailinglists/{mailingListId}500
Mutual Certificate Authentication
GET/organizations/{organizationId}/clientcertificates120
POST/organizations/{organizationId}/clientcertificates120
POST/organizations/{organizationId}/clientcertificates/{certificateId}120
GET/organizations/{organizationId}/clientcertificates/{certificateId}120
OAuth Tokens
GET/oauthtokens/{tokenType}
POST/oauthtokens/{tokenType}/delete
Organizations
GET/organizations/{organizationId}5
Qualtrics Survey API
POST/survey-definitions3000
GET/survey-definitions/{surveyId}3000
DELETE/survey-definitions/{surveyId}3000
GET/survey-definitions/{surveyId}/metadata3000
PUT/survey-definitions/{surveyId}/metadata3000
POST/survey-definitions/{surveyId}/blocks3000
GET/survey-definitions/{surveyId}/blocks/{blockId}3000
PUT/survey-definitions/{surveyId}/blocks/{blockId}3000
DELETE/survey-definitions/{surveyId}/blocks/{blockId}3000
GET/survey-definitions/{surveyId}/questions3000
POST/survey-definitions/{surveyId}/questions3000
GET/survey-definitions/{surveyId}/questions/{questionId}3000
PUT/survey-definitions/{surveyId}/questions/{questionId}3000
DELETE/survey-definitions/{surveyId}/questions/{questionId}3000
GET/survey-definitions/{surveyId}/flow3000
PUT/survey-definitions/{surveyId}/flow3000
PUT/survey-definitions/{surveyId}/flow/{flowId}3000
GET/survey-definitions/{surveyId}/options3000
PUT/survey-definitions/{surveyId}/options3000
GET/survey-definitions/{surveyId}/versions3000
POST/survey-definitions/{surveyId}/versions3000
GET/survey-definitions/{surveyId}/versions/{versionId}3000
GET/survey-definitions/{surveyId}/quotas3000
POST/survey-definitions/{surveyId}/quotas3000
GET/survey-definitions/{surveyId}/quotas/{quotaId}3000
PUT/survey-definitions/{surveyId}/quotas/{quotaId}3000
DELETE/survey-definitions/{surveyId}/quotas/{quotaId}3000
GET/survey-definitions/{surveyId}/quotagroups3000
POST/survey-definitions/{surveyId}/quotagroups3000
GET/survey-definitions/{surveyId}/quotagroups/{quotaGroupId}3000
PUT/survey-definitions/{surveyId}/quotagroups/{quotaGroupId}3000
DELETE/survey-definitions/{surveyId}/quotagroups/{quotaGroupId}3000
GET/surveys/{surveyId}/languages3000
PUT/surveys/{surveyId}/languages3000
GET/surveys/{surveyId}/translations/{languageCode}2000
PUT/surveys/{surveyId}/translations/{languageCode}2000
Research Core Contacts
GET/mailinglists/{mailingListId}3000
PUT/mailinglists/{mailingListId}3000
DELETE/mailinglists/{mailingListId}3000
GET/mailinglists3000
POST/mailinglists3000
GET/mailinglists/{mailingListId}/contacts3000
POST/mailinglists/{mailingListId}/contacts3000
GET/mailinglists/{mailingListId}/contacts/{contactId}3000
PUT/mailinglists/{mailingListId}/contacts/{contactId}3000
DELETE/mailinglists/{mailingListId}/contacts/{contactId}3000
POST/mailinglists/{mailingListId}/contactimports3000
GET/mailinglists/{mailingListId}/contactimports/{contactImportId}3000
GET/mailinglists/{mailingListId}/contactimports/{contactImportId}/summary3000
GET/mailinglists/{mailingListId}/samples3000
GET/mailinglists/{mailingListId}/samples/{sampleId}3000
Right to Erasure
GET/op-erase-personal-data20
POST/op-erase-personal-data20
GET/op-erase-personal-data/{requestId}20
Samples
GET/directories/{directoryId}/samples3000
POST/directories/{directoryId}/samples500
GET/directories/{directoryId}/samples/{sampleId}3000
PUT/directories/{directoryId}/samples/{sampleId}3000
DELETE/directories/{directoryId}/samples/{sampleId}3000
GET/directories/{directoryId}/samples/{sampleId}/contacts3000
GET/directories/{directoryId}/samples/progress/{progressId}3000
Segment Contacts
GET/directories/{directoryId}/segments/{segmentId}/contacts3000
GET/directories/{directoryId}/segments/{segmentId}/contacts/{contactId}3000
Segments
GET/directories/{directoryId}/segments60
POST/directories/{directoryId}/segments60
POST/directories/{directoryId}/export-contact-segment-memberships1
GET/directories/{directoryId}/export-contact-segment-memberships/{exportProgressId}50
GET/directories/{directoryId}/export-contact-segment-memberships/{fileId}/file50
GET/directories/{directoryId}/segments/{segmentId}60
PUT/directories/{directoryId}/segments/{segmentId}60
DELETE/directories/{directoryId}/segments/{segmentId}60
POST/directories/{directoryId}/segments/{segmentId}/refresh-jobs60
GET/directories/{directoryId}/segments/{segmentId}/refresh-jobs/{progressId}1000
SMS Distributions
POST/distributions/sms1000
GET/distributions/sms1000
GET/distributions/sms/{smsDistributionId}1000
DELETE/distributions/sms/{smsDistributionId}1000
Survey Taking APIs
POST/surveys/{surveyId}/sessions3000
GET/surveys/{surveyId}/sessions/{sessionId}3000
POST/surveys/{surveyId}/sessions/{sessionId}3000
DELETE/surveys/{surveyId}/sessions/{sessionId}3000
Survey Responses: Batch Update and Delete Responses
POST/surveys/{surveyId}/update-responses10
GET/surveys/{surveyId}/update-responses/{progressId}240
POST/surveys/{surveyId}/delete-responses10
GET/surveys/{surveyId}/delete-responses/{progressId}240
Survey Responses: Single Survey Responses
POST/surveys/{surveyId}/responses120
GET/surveys/{surveyId}/responses/{responseId}240
GET/surveys/{surveyId}/responses/{responseId}/uploaded-files/{fileId}120
DELETE/surveys/{surveyId}/responses/{responseId}60
PUT/responses/{responseId}3000
GET/surveys/{surveyId}/response-schema60
Survey Responses: Surveys Response Import/Export API
POST/surveys/{surveyId}/export-responses100
GET/surveys/{surveyId}/export-responses/{exportProgressId}1000
GET/surveys/{surveyId}/export-responses/{fileId}/file100
GET/surveys/{surveyId}/filters100
POST/surveys/{surveyId}/import-responses100
GET/surveys/{surveyId}/import-responses/{importProgressId}100
Survey CRUD API
GET/surveys/{surveyId}3000
PUT/surveys/{surveyId}3000
DELETE/surveys/{surveyId}3000
GET/surveys3000
POST/surveys3000
POST/surveys/{surveyId}/permissions/collaborations3000
POST/surveys/{surveyId}/embeddeddatafields3000
GET/surveys/{surveyId}/quotas3000
Ticketing API
GET/tickets1000
GET/tickets/statuses50
PUT/tickets/statuses50
GET/tickets/{ticketKey}50
PUT/tickets/{ticketKey}50
DELETE/tickets/{ticketKey}50
GET/tickets/{ticketKey}/events50
POST/tickets/search50
GET/tickets/{ticketKey}/rootCauses50
PUT/tickets/{ticketKey}/ticketAdditionalData50
POST/ticket-exports50
GET/ticket-exports/{exportId}/status300
GET/ticket-exports/{fileId}/file50
Transaction Batches
GET/directories/{directoryId}/transactionbatches3000
POST/directories/{directoryId}/transactionbatches3000
GET/directories/{directoryId}/transactionbatches/{batchId}/transactions3000
POST/directories/{directoryId}/transactionbatches/{batchId}/transactions3000
DELETE/directories/{directoryId}/transactionbatches/{batchId}/transactions/{transactionId}500
GET/directories/{directoryId}/transactionbatches/{batchId}3000
DELETE/directories/{directoryId}/transactionbatches/{batchId}500
Users
GET/users3000
POST/users3000
GET/users/{userId}3000
DELETE/users/{userId}3000
PUT/users/{userId}3000
GET/users/{userId}/apitoken3000
POST/users/{userId}/apitoken3000
GET/whoami3000
WhatsApp Distributions
POST/distributions/whatsapp1000
GET/distributions/whatsapp1000
GET/distributions/whatsapp/{whatsAppDistributionId}1000
DELETE/distributions/whatsapp/{whatsAppDistributionId}1000

API Call Duration​

To ensure responsive APIs, Qualtrics APIs have a 5 second call timeout. In very rare cases an API may have a longer timeout, this will be noted on API reference page.

Survey Response Limits​

The maximum number of records per survey response data file is 1M. If the maximum number of rows of data is reached, additional data files will be included in the .zip file in the format: {surveyname}_{filenum}.{fileExtension}

Mailing List Limits​

Mailing list names are limited to 100 characters.

File Size Limits​

Maximum file upload size is 5 MBs unless specified otherwise by the endpoint documentation.