Introduction

Welcome to the official engineering documentation of Audience-Align

Audience Align boasts one of the strongest sample networks in the industry and has been delivering high-quality managed services to its clients for nearly three years.

To further streamline the experience, we now offer automated access via our RESTful API, allowing seamless integration for real-time data collection.

With just a few inputs such as demographics and quotas, buyers can easily connect with millions of respondents worldwide, whether targeting broad audiences or niche segments.

We kindly request our partners to be practical and fair with CPI expectations, so we can jointly safeguard the health of the data collection ecosystem.

Demand Integration API

The Demand API provides a RESTful interface that enables partners to build technical integrations within their own systems, allowing seamless and fully automated access to our platform for purchasing online sample.

Getting Started

To use the Demand API, client must first register for API access and authentication credentials. Once authenticated, they can utilize the provided endpoints and data payloads to programmatically submit their project plans.

How it works?

To begin the process, create a new survey by calling Create survey endpoint.

Get Token

GET endpoints/getHashData

This request will create a new project using the provided details, such as project name, project name, number of completes, and project status. Upon success, it will return the details of the newly created project.

Request

REQUEST BODY

url Required

The url of the request.

Example: https://api.audience-align.com/v1/endpoints/get_master_data

key Required

The user's unique identifier.

Example: C2967fc7bc3df6b4a12f1e61efcb827a111

REQUEST BODY JSON

application/json
{ "url":"https://api.audience-align.com/v1/endpoints/get_master_data", "key":"a2987fc7ac3df6b4a11f1e81efcb727a121" }

RESPONSE BODY

d098bc2734bea016f495e561d974007aecae6eb2b260321da424105b5a77bac7

Get existing Surveys

GET endpoints/get_survey?hash={hashdata}&project_id={project_id}

Fetch a paginated list of projects for a specific account. Each individual project contains details such as the project name, last activity and statistics.

Request

QUERY PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

page Optional

The Pagination Number.

Example: page=15

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

X-Project-Id Optional

The survey's unique identifier.

Example: oE11qxIUwU9mvS1M

RESPONSE BODY

{ "status": 200, "message": "\"Great news — we’ve found the data you were looking for.", "data": [ { "project_id": "SqoY6lyRbxIdGDoL", "project_code": "ALGN4532", "project_name": "Test2 Project 08-08-25", "project_country": "229", "project_language": "5", "currency": "2", "loi": "10", "ir": "10", "status": "Inactive", "project_cpi": "20.00", "sample_size": "100", "complete_goal": "100", "complete_needed": "100", "project_start_date": "2025-09-25", "project_end_date": "2025-09-27", "progress": { "complete": 0, "survey_entrant": 0, "remaining": 100 }, "qualifications": [ { "qualification_id": 43, "conditions": [ { "condition_code": "1", "condition_name": "Male" }, { "condition_code": "2", "condition_name": "Female" } ], "Name": "GENDER", "QuestionText": "Are you...?" } ], "quotas": [ { "qualification_id": 43, "criteria": [ { "required_count": 100, "condition_codes": "1" } ] } ] } ] }
{ "status": 400, "error": "Hash data mismatch. Please verify the integrity of the request." }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status":422, "error": "Survey data not found!" }

Create Survey

POST endpoints/create_survey?hash={hashdata}

This API call creates a new survey.

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

REQUEST BODY

project_name string Required

The name of the project to be created.

Example: "My New Project"

country string Required

country id for the project.

Example: "229"

language string Required

language id for the project.

Example: "229"

live_link string Required

The live url of the project.

Example: "https://www.google.com?uid=[identifier]"

test_link string Required

The test url of the project.

Example: "https://www.google.com?uid=[identifier]"

audience_type string Required

The audience type of the project.

Allowed values: "B2B =1","B2C =2","Health Care =3"

Example: "1"

pii_collection string Required

The pii collection of the project.

Example: "No"

Allowed values: "Yes", "No"

ir Numeric Required

The incidence rate of the project.

Example: "20"

loi Numeric Required

The length of interview of the project.

Example: "20"

cpi Numeric Required

The cost per interview of the project.

If the audience type is B2B, the minimum CPI should be 6; if it is B2C, the minimum CPI should be 1.75.

Example: "12"

complete_needed string Required

The survey complete needed numbers.

Example: "100"

project_start_date string Required

The start date of the project.

Example: "2025-06-25"

Start date must be in future or equal to current date.

project_end_date string

End date must be in future or greater than current date.

Required

The end date of the project.

Example: "2025-10-25"

qualifications array

Qualifications for the project.

Example: " "qualifications": [ { "qualification_code": 43, "condition_codes": [1,2] }, { "qualification_code": 45, "zipcodes": [200301,200302] } ]"

quota array

The quota for the Qualifications.

Example: "quota": [ { "qualification_code": 43, "criteria": [ { "required_count": 100, "condition_codes": 1 } ] } ]

REQUEST BODY JSON

application/json
{ "project_name": "AUD1 - 14-08-2025", "country": "229", "language": "5", "study_category": "5", "vertical": "1", "audience_type": "1", "pii_collection": "No", "ir": "10", "loi": "10", "cpi": "10", "complete_needed": "50", "project_start_date": "2025-08-14", "project_end_date": "2025-08-15", "live_link": "https://www.google.com?uid=[identifier]", "test_link":"https://www.google2.com?uid=[identifier]", "qualifications": [ { "qualification_code": 42, "range_sets": [ { "from": 18, "to": 24 }, { "from": 25, "to": 34 } ] }, { "qualification_code": 43, "condition_codes": [ 1 ] }, { "qualification_code": 45, "zipcodes": [ 126535, 283733 ] } ], "quota": [ { "qualification_code": 43, "criteria": [ { "required_count": 120, "condition_codes": 1 } ] }, { "qualification_code": 42, "criteria": [ { "required_count": 140, "condition_codes": "25-34" } ] }, { "qualification_code": 45, "criteria": [ { "required_count": 150, "condition_codes": [126535] } ] } ] }

RESPONSE BODY

{ "status": 200, "message": "Survey created successfully.", "data": { "project_id": "SqoY6lyRbxIdGDoL", "project_code": "ALGN4532", "project_name": "Test2 Project 08-08-25", "project_country": "229", "project_language": "5", "currency": "2", "loi": "10", "ir": "10", "status": "Inactive", "project_cpi": "20.00", "sample_size": "100", "complete_goal": "100", "complete_needed": "100", "project_start_date": "2025-09-25", "project_end_date": "2025-09-27", "progress": { "complete": 0, "survey_entrant": 0, "remaining": 100 }, "qualifications": [ { "qualification_id": 43, "conditions": [ { "condition_code": "1", "condition_name": "Male" }, { "condition_code": "2", "condition_name": "Female" } ], "Name": "GENDER", "QuestionText": "Are you...?" } ], "quotas": [ { "qualification_id": 43, "criteria": [ { "required_count": 100, "condition_codes": "1" } ] } ] } }
{ "status": 400, "error": "Hash data mismatch. Please verify the integrity of the request." }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status":422, "error": "Survey data not found!" }

Update Survey

PATCH endpoints/update_survey?hash={hashdata}

This API call is used to update the survey details.

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

REQUEST BODY

project_id string Required

The project_id of the survey when created.

Example: "My New Project"

loi string

Optional loi for the project.

Example: "25"

cpi string

Optional cpi for the project.

Example: "25"

REQUEST BODY JSON

application/json
{ "project_id": "jOhbijLC2SEum5Km", "loi":"15" }

RESPONSE BODY

{ "status": 200, "message": "Survey Data updated successfully!", "data": { "project_id": "SqoY6lyRbxIdGDoL", "project_code": "ALGN4532", "project_name": "Test2 Project 08-08-25", "project_country": "229", "project_language": "5", "currency": "2", "loi": "10", "ir": "80", "status": "Inactive", "project_cpi": "20.00", "sample_size": "100", "complete_goal": "100", "complete_needed": "120", "project_start_date": "2025-09-25", "project_end_date": "2025-09-27", "progress": { "complete": 0, "survey_entrant": 0, "remaining": 100 } } }
{ "status":400, "error": "Validation failed", }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status": 422, "error": "Survey Data not found!" }
{ "status":500 "error": "Internal server error" }

Update Survey Status

PUT endpoints/survey_status?hash={hashdata}

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

REQUEST BODY

project_id string Required

The Survey project id.

Example: "oE45MBhrWGowXuLE"

status string

The initial status of the project.

Example: "2"

Allowed values: "Active = 1", "Inactive = 2", "Completed = 4", "Closed = 5"

REQUEST BODY JSON

application/json
{ "project_id": "jOhbijLC2SEum5Km", "status":"1" }

RESPONSE BODY

{ "status": 200, "message": "Survey status updated successfully." }
{ "status": 204, "message": "No changes made or survey not found." }
{ "status":400, "error": "Hash data mismatch. Please verify the integrity of the request." }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status":422, "error": "Status update failed. The project has been closed and cannot be modified." }

Get All Qualifications

GET endpoints/qualifications?hash={hashdata}

Fetch a paginated list of qualifications for a specific survey. Each individual qualification contains details such as the qualification_code, title, text and conditions etc.

Request

QUERY PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

X-Project-Id Required

The survey's unique identifier.

Example: oE11qxIUwU9mvS1M

RESPONSE BODY

{ "status": 422, "message": "Great news — we’ve found the data you were looking for.", "qualifications_data": [ { "qualification_code": 42, "title": "AGE", "text": "What is your age?", "range_sets": [ { "from": 18, "to": 24 }, { "from": 25, "to": 34 } ] }, { "qualification_code": 43, "title": "GENDER", "text": "Are you...?", "conditions": [ { "condition_code": 1, "condition_name": "Male" }, { "condition_code": 2, "condition_name": "Female" } ] }, { "qualification_code": 639, "title": "STANDARD_PETS", "text": "Which of the following pets are present in your household?", "conditions": [ { "condition_code": 1, "condition_name": "Cat(s)" }, { "condition_code": 2, "condition_name": "Dog(s)" }, { "condition_code": 3, "condition_name": "Bird(s)" }, { "condition_code": 4, "condition_name": "Fish" }, { "condition_code": 5, "condition_name": "Amphibians (frogs, toads, etc.)" }, { "condition_code": 6, "condition_name": "Small animals or rodents (hamsters, mice, rabbits, ferrets, etc.)" }, { "condition_code": 7, "condition_name": "Reptiles (turtles, snakes, lizards, etc.)" }, { "condition_code": 8, "condition_name": "Horse(s)" }, { "condition_code": 9, "condition_name": "I do not have any pets" }, { "condition_code": 10, "condition_name": "Other" } ] }, { "qualification_code": 45, "title": "ZIP", "text": "What is your zip code?", "zipcodes": [ "200301", "200302", "200303" ] } ] }
{ "status": 400, "error": "Hash data mismatch. Please verify the integrity of the request." }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status":422, "error": "No data found against this survey!" }

Get Qualification

GET endpoints/qualifications?hash={hashdata}

Fetch a paginated list of qualifications for a specific survey Qualification id. Qualification contains details such as the qualification_code, title, text and conditions etc.

Request

QUERY PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

X-Project-Id Required

The survey's unique identifier.

Example: oE11qxIUwU9mvS1M

X-Qualification-Id

The survey's unique identifier.

Example: 123

RESPONSE BODY

{ "status": 422, "message": "Great news — we’ve found the data you were looking for.", "qualifications_data": [ { "qualification_code": 42, "title": "AGE", "text": "What is your age?", "range_sets": [ { "from": 18, "to": 24 }, { "from": 25, "to": 34 } ] } ] }
{ "status": 400, "error": "Hash data mismatch. Please verify the integrity of the request." }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status":422, "error": "No data found against this survey!" }

Add Qualification

POST endpoints/save_qualification?hash={hashdata}

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

REQUEST BODY

project_id string Required

The Survey project id.

Example: "oE45MBhrWGowXuLE"

qualifications string

The qualifications for the survey.

Example: "qualifications": [ { "qualification_code": 42, "range_sets": [ { "from": 35, "to": 40 }, { "from": 45, "to": 50 } ] }, { "qualification_code": 43, "condition_codes": [ 1 ] }, { "qualification_code": 45, "zipcodes": [ 126535, 283733 ] } ]

Allowed qualification types: "range_sets", "condition_codes", "zip_codes"

REQUEST BODY JSON

application/json
{ "project_id": "jOhbijLC2SEum5Km", "qualifications": [ { "qualification_code": 42, "range_sets": [ { "from": 18, "to": 24 }, { "from": 25, "to": 34 } ] }, { "qualification_code": 43, "condition_codes": [ 1 ] }, { "qualification_code": 45, "zipcodes": [ 126535, 283733 ] } ] }

RESPONSE BODY

{ "status": 200, "message": " Qualification Saved successfully." }
{ "status":400 "error": "Invalid request parameters", }
{ "status":403 "error": "Client ID mismatch. Please verify and try again." }
{ "status": 422, "error": " Qualification Already exists, Please Remove these qualification from data & try again!", "Question_exists": "STANDARD_WEBCAM,GENDER,STANDARD_HHI,AGE" }

Update Qualification

PATCH endpoints/update_qualification?hash={hashdata}

This API call is used to update the targeting criteria for an existing qualification in an existing survey.

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

REQUEST BODY

project_id string Required

The Survey project id.

Example: "oE45MBhrWGowXuLE"

qualifications string

The qualifications for the survey.

Example: "qualifications": [ { "qualification_code": 43501, "condition_codes": [1] }, { "qualification_code": 43, "condition_codes": [1,2] }, { "qualification_code": 61076, "condition_codes":[16,17,18,19,20] }, { "qualification_code": 42, "range_sets": [ { "from": 25, "to": 48 } ] } ]

Allowed single qualification type from these types: "range_sets", "condition_codes", "zip_codes"

REQUEST BODY JSON

application/json
{ "project_id": "jOhbijLC2SEum5Km", "qualifications": [ { "qualification_code": 43501, "condition_codes": [1] } ] }

RESPONSE BODY

{ "status": 200, "message": " Qualification Updated successfully." }
{ "status":400 "error": "Invalid request parameters", }
{ "status":403 "error": "Client ID mismatch. Please verify and try again." }
{ "status": 422, "error": " Qualification not exists" }

Delete Qualification

DEL endpoints/delete_qualification?hash={hashdata}

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

REQUEST BODY

project_id string Required

The Survey project id.

Example: "oE45MBhrWGowXuLE"

qualification_code string

The qualification code used in survey.

Example: "qualification_code": "42"

Allowed qualification types: "range_sets", "condition_codes", "zip_codes"

REQUEST BODY JSON

application/json
{ "project_id": "oE43sNDE4oEBaaEO", "qualification_code": "42" }

RESPONSE BODY

{ "status": 200, "message": "Qualification deleted successfully." }
{ "status":400 "error": "Invalid request parameters", }
{ "status":403 "error": "Client ID mismatch. Please verify and try again." }
{ "status": 422, "error": " Qualification not exists" }

Get Quota

GET endpoints/qualifications_quota?hash={hashdata}

Fetch a paginated list of qualification's quota data for a specific survey. Each individual qualification quota contains details such as the qualification_code, criteria, condition_codes and required_count.

Quota Handling

  • If a quota is not explicitly defined for an option, it will default to the overall complete goal.
  • To close a specific quota, define it using the corresponding qualification.
  • Audience Align uses a soft quota structure.

Request

QUERY PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

X-Project-Id Required

The survey's unique identifier.

Example: oE11qxIUwU9mvS1M

RESPONSE BODY

{ "status": 200, "message": "Great news — we’ve found the data you were looking for.", "quota_data": [ { "qualification_id": 42, "criteria": [ { "required_count": 100, "condition_codes": "20-24" } ] } ] }
{ "status": 400, "error": "Hash data mismatch. Please verify the integrity of the request." }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status":422, "error": "No data found against this survey!" }

Get Quota By Qualification ID

GET endpoints/qualifications_quota?hash={hashdata}

Fetch a paginated list of qualification's quota data for a specific survey qualification id. Each individual qualification quota contains details such as the qualification_code, criteria, condition_codes and required_count.

Request

QUERY PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

X-Project-Id Required

The survey's unique identifier.

Example: oE11qxIUwU9mvS1M

X-Qualification-Id

The survey's unique identifier.

Example: 123

RESPONSE BODY

{ "status": 200, "message": "Great news — we’ve found the data you were looking for.", "quota_data": [ { "qualification_code": 42, "criteria": [ { "condition_codes": "18-24", "required_count": 50 }, { "condition_codes": "25-34", "required_count": 50 } ] } ] }
{ "status": 400, "error": "Hash data mismatch. Please verify the integrity of the request." }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status":422, "error": "No data found against this survey!" }

Add Qouta

POST endpoints/save_quota?hash={hashdata}

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

REQUEST BODY

project_id string Required

The Survey project id.

Example: "oE45MBhrWGowXuLE"

quota array

The quota for the survey qualifications .

Example: "quota": [ { "qualification_code": 43, "criteria": [ { "required_count": 100, "condition_codes": 1 } ] }, { "qualification_code": 43, "criteria": [ { "required_count": 100, "condition_codes": 1 } ] }, { "qualification_code": 45, "criteria": [ { "required_count": 120, "condition_codes":[200301,200302] } ] }, { "qualification_code": 42, "criteria": [ { "required_count": 120, "condition_codes": "20-24" } ] } ]

REQUEST BODY JSON

application/json
{ "project_id": "jOhbijLC2SEum5Km", "quota": [ { "qualification_code": 43, "criteria": [ { "required_count": 100, "condition_codes": 1 } ] }, { "qualification_code": 43, "criteria": [ { "required_count": 100, "condition_codes": 1 } ] }, { "qualification_code": 45, "criteria": [ { "required_count": 120, "condition_codes":[200301,200302] } ] }, { "qualification_code": 42, "criteria": [ { "required_count": 120, "condition_codes": "20-24" } ] } ] }

RESPONSE BODY

{ "status": 200, "message": "Quota Updated Successfully." }
{ "status":400, "error": "Invalid request parameters", }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status": 422, "error": " Quota data not found!" }

Get Quota Interlocking

GET endpoints/get_interlocking?hash={hashdata}

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

REQUEST BODY

project_id string Required

The Survey project id.

Example: "oE45MBhrWGowXuLE"

REQUEST BODY JSON

application/json
{ "project_id": "jOhbijLC2SEum5Km" }

RESPONSE BODY

{ "status": 200, "message": "Great news — we’ve found the data you were looking for.", "data": { "project_id": "oE40ydzSJHElV35Y", "combinations": [ { "id": "Aud06888d1662ab50", "option": "Male,20-24", "quota": "21" }, { "id": "Aud16888d1662ab5a", "option": "Male,25-30", "quota": "50" }, { "id": "Aud26888d1662ab5b", "option": "Female,20-24", "quota": "50" }, { "id": "Aud36888d1662ab5c", "option": "Female,25-30", "quota": "5" } ], "qualifications": [ { "id": "2", "title": "GENDER", "options": "Male,Female" }, { "id": "1", "title": "AGE", "options": "20-24,25-30" } ], "created_date": "2025-07-29 19:05:49", "updated_date": "2025-07-29 19:19:26" } }
{ "status":400 "error": "Invalid request parameters", }
{ "status":403 "error": "Client ID mismatch. Please verify and try again." }
{ "status": 422, "error": "Valid project ID is required!" }

Create Quota Interlocking

POST endpoints/create_interlocking?hash={hashdata}

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

REQUEST BODY

project_id string Required

The Survey project id.

Example: "oE45MBhrWGowXuLE"

qualification_code string

qualification_code must less than or eqaul to 4 in survey.

The maximum allowed interlocking combinations are 200.

Example: "qualification_code": [43,42]

REQUEST BODY JSON

application/json
{ "project_id": "oE40ydzSJHElV35Y", "qualification_code": [43,42] }

RESPONSE BODY

{ "status": 200, "message": "Great! Interlocking was created successfully.", "Interlocking": { "project_id": "oE40ydzSJHElV35Y", "combinations": [ { "id": "Aud06888ce35061b2", "option": "Male,20-24", "quota": "50" }, { "id": "Aud16888ce35061bb", "option": "Male,25-30", "quota": "50" }, { "id": "Aud26888ce35061bc", "option": "Female,20-24", "quota": "5" }, { "id": "Aud36888ce35061bd", "option": "Female,25-30", "quota": "5" } ], "qualifications": [ { "id": "2", "title": "GENDER", "options": "Male,Female" }, { "id": "1", "title": "AGE", "options": "20-24,25-30" } ], "created_date": "2025-07-29 19:05:49", "updated_date": "2025-07-29 19:05:49" } }
{ "status":400 "error": "Invalid request parameters", }
{ "status":403 "error": "Client ID mismatch. Please verify and try again." }
{ "status": 422, "error": "The following qualification code were not found in the system: 5" }

Update Quota Interlocking

PATCH endpoints/update_interlocking?hash={hashdata}

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

REQUEST BODY

project_id string Required

The Survey project id.

Example: "oE45MBhrWGowXuLE"

combinations array

required_count must greater than 0 and less than or equal to 10000.

Example: "combinations":[ { "id": "Aud06888d1662ab50", "required_count": 21 } ]

REQUEST BODY JSON

application/json
{ "project_id": "oE40ydzSJHElV35Y", "combinations":[ { "id": "Aud06888d1662ab50", "required_count": 21 } ] }

RESPONSE BODY

{ "status": 200, "message": "Great! Interlocking was created successfully.", "Interlocking": { "project_id": "oE40ydzSJHElV35Y", "combinations": [ { "id": "Aud06888ce35061b2", "option": "Male,20-24", "quota": "50" }, { "id": "Aud16888ce35061bb", "option": "Male,25-30", "quota": "50" }, { "id": "Aud26888ce35061bc", "option": "Female,20-24", "quota": "5" }, { "id": "Aud36888ce35061bd", "option": "Female,25-30", "quota": "5" } ], "qualifications": [ { "id": "2", "title": "GENDER", "options": "Male,Female" }, { "id": "1", "title": "AGE", "options": "20-24,25-30" } ], "created_date": "2025-07-29 19:05:49", "updated_date": "2025-07-29 19:05:49" } }
{ "status":400 "error": "Invalid request parameters", }
{ "status":403 "error": "Client ID mismatch. Please verify and try again." }
{ "status": 422, "error": "No changes were made. Either the quotas are already up to date or the update failed. Please verify and try again." }

Get Project Reconciliation

GET reconciliations/reconciliation?hash={hashdata}

Once reconciliations are approved by Audience Align, this endpoint retrieves the list of approved completed UIDs along with their total count.

Request

QUERY PARAMETER

hash string Required

A unique identifier included in the URL as a query parameter. This value is typically used to retrieve specific data or validate access to a resource.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

The client's unique ID.

Example: 2b60bC8284bcdaA50fd7d116Bb8e5b6

X-Project-Id string Required

The character string representing a unique project ID.

Example: QSnoUStJDXiANB

RESPONSE BODY

{ "status": "Completed", "result_count": 4, "accepted_uids": [ "j8G7Y170924878SjNlC", "Z5hjB170924872cokEx", "m7iIy170924859biRIw", "ehDEY170924811qKzOn" ] }
{ "status": "Processing", "result_count": 0, "accepted_uids": [] }
{ "status": false, "error": "Bad Request", "message": "An expected field is missing." }
{ "status": false, "error": "Unauthorized", "message": "No valid authorisation for this operation." }
{ "status": false, "error": "Not Found", "message": "The requested resource was not found." }
{ "status": false, "error": "Unprocessable Entity", "message": "The entity does not meet the required state." }
{ "status": false, "error": "Internal Server Error", "message": "An internal error occurred." }

Submit Project Reconciliation

POST reconciliations/submit_reconciliation?hash={hashdata}

Use this endpoint to submit the list of completed UIDs that the client has approved for reconciliation on the project.

Request

QUERY PARAMETER

hash string Required

A unique identifier included in the URL as a query parameter. This value is typically used to retrieve specific data or validate access to a resource.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

The client's unique ID.

Example: 2b60bC8284bcdaA50fd7d116Bb8e5b6

X-Project-Id string Required

The character string representing a unique project ID.

Example: QSnoUStJDXiANB

Content-Type string Required

The content type of the request body.

Example: application/json

REQUEST BODY

contact_email string Required

An email address must be provided in the request to facilitate communication regarding the reconciliation process.

Example: noreply@example.com

request_uids array Required

A list of respondent UIDs included in the reconciliation request.

REQUEST SAMPLE

application/json
{ "contact_email": "noreply@example.com", "request_uids": [ "j8G7Y170924878SjNlC", "Z5hjB170924872cokEx", "m7iIy170924859biRIw", "ehDEY170924811qKzOn" ] }

RESPONSE BODY

{ "status": true, "message": "The reconciliation request has been successfully processed." }
{ "status": true, "message": "The reconciliation request was accepted but requires manual review." }
{ "status": false, "error": "Bad Request", "message": "An expected field is missing." }
{ "status": false, "error": "Unauthorized", "message": "No valid authorisation for this operation." }
{ "status": false, "error": "Not Found", "message": "The requested resource was not found." }
{ "status": false, "error": "Conflict", "message": "The entity does not meet the required state." }
{ "status": false, "error": "Gone", "message": "The requested resource is no longer available." }
{ "status": false, "error": "Unprocessable Entity", "message": "The entity does not meet the required state." }
{ "status": false, "error": "Internal Server Error", "message": "An internal error occurred." }

Get Country Data

GET endpoints/get_master_data?type=country&hash={hashdata}

This API call returns a list of all the countries along with their other attributes, that Audience Align supports via API. For any non-conventional markets that you are unable to find, please reach out to bids@audience-align.com

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

RESPONSE BODY

{ "status": 200, "message": "Great news — we’ve found the data you were looking for.", "data": [ { "country_id": "1", "name": "Afghanistan", "short_name": "AF", "iso_code": "AFG", "country_code": "93", "language": "5" }, { "country_id": "2", "name": "Albania", "short_name": "AL", "iso_code": "ALB", "country_code": "355", "language": "5" } ] }
{ "status":400 "error": "Invalid request parameters", }
{ "status":403 "error": "Client ID mismatch. Please verify and try again." }
{ "status": 422, "error": " No Data Found!" }

Get Language Data

GET endpoints/get_master_data?type=language&hash={hashdata}

This API calls return a list of all the languages that are supported to launch a campaign.

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

RESPONSE BODY

{ "status": 200, "message": "Great news — we’ve found the data you were looking for.", "data": [ { "language_id": "1", "name": "French", "short_name": "fr" }, { "language_id": "2", "name": "Chinese Simplified", "short_name": "zh" }, { "language_id": "3", "name": "Chinese Traditional", "short_name": "zh" }, { "language_id": "4", "name": "Dutch", "short_name": "nl" } ] }
{ "status":400 "error": "Invalid request parameters", }
{ "status": 422, "error": " No Data Found!" }

Get Qualifications

GET endpoints/get_qualification_master?hash={hashdata}

This API calls returns a list of all the standard qualifications of a specific country and language combination.

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

REQUEST BODY JSON

application/json
{ "country_id":"229", "language_id":"5" }

RESPONSE BODY

{ "status": 200, "message": "Great news — we’ve found the data you were looking for.", "qualifications_data": [ { "qualification_id": 42, "Name": "AGE", "QuestionText": "What is your age?", "questionType": "Numeric - Open-end", "range_sets": [ { "from": 18, "to": 60 } ] }, { "qualification_id": 43, "Name": "GENDER", "QuestionText": "Are you...?", "questionType": "Single Punch", "conditions": [ { "condition_code": "1", "condition_name": "Male" }, { "condition_code": "2", "condition_name": "Female" } ] } ] }
{ "status":400 "error": "Invalid request parameters", }
{ "status": 422, "error": " No Data Found!" }

Get Study Category

GET endpoints/get_master_data?type=study_category&hash={hashdata}

This API calls return a list of all the study categories that are supported to launch a campaign.

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

RESPONSE BODY

{ "status": 200, "message": "Great news — we’ve found the data you were looking for.", "data": [ { "category_id": "5", "name": "Adhoc" }, { "category_id": "6", "name": "Community Build" }, { "category_id": "7", "name": "Face to Face" }, { "category_id": "8", "name": "IHUT" }, { "category_id": "9", "name": "Incidence Check" }, { "category_id": "10", "name": "Qualitative Screening" }, { "category_id": "11", "name": "Panel Recruit" }, { "category_id": "12", "name": "Recontact" }, { "category_id": "13", "name": "Tracking-Weekly" }, { "category_id": "14", "name": "Tracking-Biweekly" }, { "category_id": "15", "name": "Tracking-Monthly" }, { "category_id": "16", "name": "Tracking-Quarterly" }, { "category_id": "17", "name": "Wave" } ] }
{ "status":400 "error": "Invalid request parameters", }
{ "status": 422, "error": " No Data Found!" }

Get Vertical

GET endpoints/get_master_data?type=vertical&hash={hashdata}

This API calls return a list of all the verticals that are supported to launch a campaign.

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: 1tdWUlOYUdyedRUa

RESPONSE BODY

{ "status": 200, "message": "Great news — we’ve found the data you were looking for.", "data": [ { "vertical_id": "1", "name": "Automotive" }, { "vertical_id": "2", "name": "Beauty/Cosmetics" }, { "vertical_id": "3", "name": "Beverages - Alcoholic" }, { "vertical_id": "4", "name": "Beverages - Non Alcoholic" }, { "vertical_id": "5", "name": "Education" }, { "vertical_id": "6", "name": "Electronics/Computer/Software" }, { "vertical_id": "7", "name": "Entertainment (Movies, Music, TV, etc)" }, { "vertical_id": "8", "name": "Explicit Content" }, { "vertical_id": "9", "name": "Fashion/Clothing" }, { "vertical_id": "10", "name": "Financial Services/Insurance" }, { "vertical_id": "11", "name": "Food/SnacksGambling/Lottery" }, { "vertical_id": "12", "name": "Healthcare/Pharmaceuticals" }, { "vertical_id": "13", "name": "Home (Utilities, Appliances, ...)" }, { "vertical_id": "14", "name": "Home Entertainment (DVD, VHS)" }, { "vertical_id": "15", "name": "Home Improvement/Real Estate/Construction" }, { "vertical_id": "16", "name": "IT (Servers, Databases, etc)" }, { "vertical_id": "17", "name": "Other" }, { "vertical_id": "18", "name": "Personal Care/Toiletries" }, { "vertical_id": "19", "name": "Pets" }, { "vertical_id": "20", "name": "Politics" }, { "vertical_id": "21", "name": "Publishing (Newspaper, Magazines, Books)" }, { "vertical_id": "22", "name": "Restaurants" }, { "vertical_id": "23", "name": "Sensitive Content" }, { "vertical_id": "24", "name": "Sports" }, { "vertical_id": "25", "name": "Telecommunications (phone, cell phone, cable)" }, { "vertical_id": "26", "name": "Tobacco (Smokers)" }, { "vertical_id": "27", "name": "Toys" }, { "vertical_id": "28", "name": "Transportation/Shipping" }, { "vertical_id": "29", "name": "Travel" }, { "vertical_id": "30", "name": "Video Games" }, { "vertical_id": "31", "name": "Websites/Internet/E-Commerce" } ] }
{ "status":400 "error": "Invalid request parameters", }
{ "status": 422, "error": " No Data Found!" }

Get Exclusion

GET endpoints/exclusion?hash={hashdata}

Use this endpoint to retrieve the list of Survey IDs from which the specified Survey is excluded.

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: npgdxyy1uSJJVt3i

X-Project-Id string Required

The Survey project id.

Example: "oE45MBhrWGowXuLE"

RESPONSE BODY

{ "status": 200, "message": "Great news — we’ve found the data you were looking for.", "data": { "exclusion_project": [ "oE40xE4jAxAMpusW", "oE40vSBJl34s0V7E" ] } }
{ "status":400, "error": "Exclusion data not found!", }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status": 422, "error": "Provided Projects status must be complete or closed!" }
{ "status": 500, "error": "Failed to insert data.!" }

Save Exclusion

POST endpoints/exclusion?hash={hashdata}

Use this endpoint to exclude completes from a specified survey ID from participating in the survey.

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: npgdxy3muSJJVt1i

X-Project-Id string Required

The Survey project id.

Example: "oE45MBhrWGowXuLE"

REQUEST BODY

exclusion_project array

The project ids which you want to add in exclusion .

Example: { "exclusion_project": ["oE40ydzSJHElV35Y","oE40vSBJl34s0V7E"] }

Project id should be: "complete or closed"

REQUEST BODY JSON

application/json
{ "exclusion_project": ["oE40ydzSJHElV35Y","oE40vSBJl34s0V7E"] }

RESPONSE BODY

{ "status": 200, "message": "Exclusion data inserted successfully." }
{ "status":400, "error": "Exclusion data not found!", }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status": 422, "error": "Provided Projects status must be complete or closed!" }
{ "status": 500, "error": "Failed to insert data.!" }

Delete Exclusion

DELETE endpoints/exclusion?hash={hashdata}

This endpoint is used to remove an existing exclusion from the specified Survey.

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: npgdxyy1uSJJVt3i

X-Project-Id string Required

The Survey project id.

Example: "oE45MBhrWGowXuLE"

RESPONSE BODY

{ "status": 200, "message": "Exclusion data deleted successfully." }
{ "status":400, "error": "Exclusion data not found!", }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }
{ "status":404, "error":"No exclusion data found agian this project id!" }
{ "status": 422, "error": "Valid project ID is required!" }

Get Feasibility

GET endpoints/getFeasibility?hash={hashdata}

Use this endpoint to retrieve the feasibility.

Request

Query PARAMETERS

hash Required

The url's unique identifier.

Example: 24e56c4435cb18503c7cb2da2b857c9df0daadcd4c34cdb8cbb949b4c4d83af9

HEADER PARAMETERS

X-Client-Id string Required

Specifies the X-Client-Id to use for the request.

Example: npgdxyy1uSJJVt3i

REQUEST BODY

locale string Required

Locale code with language and country.

Example: "eng_us"

incidence_rate number Required

Percentage of respondents that will qualify for the study after targeting using standard qualifications.

Minimum : "0"

Maximum : "1"

Example: "0.5"

length_of_interview integer Required

Expected time to finish the target group in minutes.

Minimum : "1"

Maximum : "45"

Example: "20"

filling_goal integer Required

Indicates the new value for filling goal.

Minimum : "1"

Maximum : "10000"

Example: "40"

start_date string Required

The start date and time of the target group. Must be earlier than the 'end_date'.

Example: "2025-01-01T23:00:00.000Z"

end_date string Required

The end date and time of the target group. Must be later than the 'start_date'.

Example: "2025-01-01T23:00:00.000Z"

category string Required

Example: "B2B"

profiles array Required
profiles array

The profiles for the feasibility.

Example: "profiles": [ { "question_id": 43, "conditions": { "data": [ { "option": "1" }, { "option": "2" } ] } }, { "question_id": 42, "conditions": { "data": [ { "min": 18, "max": 50 }, { "min": 51, "max": 99 } ] } }, { "question_id": 45, "conditions": { "data": [ { "zip_codes": [ "90001", "90002", "90003", "90004" ], "allow_all_zip": false } ] } } ]

REQUEST BODY JSON

application/json
{ "locale": "eng_us", "incidence_rate": 0.5, "length_of_interview": 20, "filling_goal": 40, "start_date": "2025-08-13T23:00:00.000Z", "end_date": "2026-01-01T23:00:00.000Z", "profiles": [ { "question_id": 43, "conditions": { "data": [ { "option": "1" }, { "option": "2" } ] } }, { "question_id": 42, "conditions": { "data": [ { "min": 18, "max": 50 }, { "min": 51, "max": 99 } ] } }, { "question_id": 45, "conditions": { "data": [ { "zip_codes": [ "90001", "90002", "90003", "90004" ], "allow_all_zip": false } ] } } ] }

RESPONSE BODY

{ "status": 200, "feasibility_data": { "minimum_feasibility": 10000, "maximum_feasibility": 10000, "recommended_price": "10" } }
{ "status":400, "error": "Feasibility data not found!", }
{ "status":403, "error": "Client ID mismatch. Please verify and try again." }