Skip to main content
Version: v2

Survey quota and qualification API

These routes use the external /api/v1/campaigns base, X-Api-Key, and a correctly signed ?enc= URL. They are intended for approved advertiser server integrations. The campaign, quota, qualification, and market IDs must come from the same advertiser workflow; treat them as opaque. The survey campaign API overview describes signing.

Quotas​

Method and pathRequestSuccess
GET /{campaignId}/getcampaignquotaSigned URL.200 with campaignQuota array.
POST /{campaignId}/campaignsquotaJSON name, num_respondents.201 with campaignQuota.
POST /{campaignId}/clonecampaignsquotaJSON quotaId of a quota in this campaign.200 with cloned campaignQuota and its qualifications.
GET /{campaignId}/campaignsquota/{campaignQuotaId}Signed URL.One quota.
PUT /{campaignId}/campaignsquota/{campaignQuotaId}JSON quota fields to update.Updated quota.
DELETE /{campaignId}/campaignsquota/{campaignQuotaId}Signed URL.Deletion result.

num_respondents is the target completes for that quota. A newly created quota is attached to the campaign and returned with its generated ID. Read it back before building qualifications or supplier allocation. Cloning takes a quotaId in the body and requires that source quota to belong to the path campaign. Avoid copying target completes without reviewing the new study's actual design.

{"name":"US adults 25–34","num_respondents":100}

Qualifications​

Method and pathRequestSuccess
GET /{campaignId}/campaignsquota/{campaignQuotaId}/getcampaignsqualificationsSigned URL.200 with campaignQualifications array.
POST /{campaignId}/campaignsquota/{campaignQuotaId}/campaignsqualificationJSON question_id, pre_code_values.Qualification and question snapshot.
GET /{campaignId}/campaignsquota/{campaignQuotaId}/campaignsqualification/{campaignQualificationsId}Signed URL.One qualification.
PUT /{campaignId}/campaignsquota/{campaignQuotaId}/campaignsqualification/{campaignQualificationsId}JSON question_id, pre_code_values.Updated qualification.
DELETE /{campaignId}/campaignsquota/{campaignQuotaId}/campaignsqualification/{campaignQualificationsId}Signed URL.Deletion result.

question_id must exist in the profiling catalog for the campaign's country-language and supported provider. pre_code_values selects accepted answer codes. First request the current catalog through POST /getProfilingQuestionsForTargeting, choose the question and answer codes for that locale, then create the qualification. An unknown question or missing country-language master data is rejected. Read the saved qualification and test respondents who should qualify and fail.

The legacy handlers return different response envelopes and, for some validation failures, a CallbackReply in an HTTP 200. Inspect Errors/ErrorCode as well as HTTP status; do not treat a network success as a successful quota write. Use separate credentials and ID stores for each advertiser, restrict who can call your integration, and never treat possession of a resource ID as authorization in your own system.