List respondent engagements
const url = 'https://respondent.rex.dynata.com/list-engagements';const options = { method: 'POST', headers: { 'dynata-expiration': '2026-04-15T12:00:00Z', 'dynata-access-key': 'ABCD1234', 'dynata-signature': 'c156e91013eb715edb2b07df5491497a807206b1796bb7d031505107a9dbdcdf', 'Content-Type': 'application/json' }, body: '{"respondent_id":"user1234","fingerprinting_data":{"width":600,"height":800,"ip_address":"1.1.1.1","http_headers":{"additionalProperty":["example"]},"device_type":"DESKTOP"},"filters":{"max_opportunities":1}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://respondent.rex.dynata.com/list-engagements \ --header 'Content-Type: application/json' \ --header 'dynata-access-key: ABCD1234' \ --header 'dynata-expiration: 2026-04-15T12:00:00Z' \ --header 'dynata-signature: c156e91013eb715edb2b07df5491497a807206b1796bb7d031505107a9dbdcdf' \ --data '{ "respondent_id": "user1234", "fingerprinting_data": { "width": 600, "height": 800, "ip_address": "1.1.1.1", "http_headers": { "additionalProperty": [ "example" ] }, "device_type": "DESKTOP" }, "filters": { "max_opportunities": 1 } }'Please Note
Only ipv4 format is accepted for ip addresses.
The /list-engagements endpoint will return up to 10 engagements (quota_group_ids) for an individual respondent. If no engagements are available for a respondent, it will return a disposition and status.
Inbound (entry URL)
After receiving engagements the partner will need to use the start_url (inbound) to send the respondents into a survey.
Please Note
- The
start_urlmust be signed using the Dynata signing algorithm.- The engage
start_urldoes not require any additionalquery string parameters, all necessary fields are stored in the context (ctx).- Partners should still append any custom tracking
query string parametersrequired for their implementation.
Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”RFC3339 timestamp indicating request expiration
Dynata provided access key
Example
ABCD1234Signature created using the dynata methodology
Example
c156e91013eb715edb2b07df5491497a807206b1796bb7d031505107a9dbdcdfRequest Body
Section titled “Request Body”object
Partner’s respondent identifier. Accepts 100 characters, 3-byte chars.
object
Device width
Device height
Respondent’s ipv4 address (currently ipv6 isn’t supported)
object
Device form factor
object
Responses
Section titled “Responses”Qualified groups
Qualification
object
object
Opportunity group identifier
Opportunity project identifier
Inbound, entry URL
Context ID used in the qualification flow with /internal/continue-qualification
If true, the group_id is a full match. If false, additional profiling will be required to collect the missing respondent attributes.
Average length of interview in minutes based on prior completes.
Dynata recommends this as a high priority opportunity.
Disqualification
object
Examples
{ "qualified": [ { "quota_group_id": 123145, "project_id": 12354, "start_url": "https://respondent.qa-rex.dynata.com/start?ctx=ctx123", "exact_match": false, "actual_length_of_interview": 9, "priority": false, "bid_length_of_interview": 10, "bid_incidence_rate": 55, "categories": [ 550 ], "cpi": 3.5 } ]}{ "disposition": 4, "status": 0}Bad request
object
Examplegenerated
{ "message": "example"}Invalid credentials
object
Examplegenerated
{ "message": "example"}Unauthorized
object
Examplegenerated
{ "message": "example"}Too many requests
object
Examplegenerated
{ "message": "example"}Headers
Section titled “Headers”Example
300The number of seconds a client must wait before making a new request.
Internal server error
object
Examplegenerated
{ "message": "example"}