Receive opportunity notifications
const url = 'https://registry.rex.dynata.com/receive-notifications';const options = { method: 'POST', headers: { 'dynata-expiration': '2026-04-15T12:00:00Z', 'dynata-access-key': 'ADSF23ADF354GFDDS23', 'dynata-signature': 'dsklj435kljhfdSAFdsalk34', 'Content-Type': 'application/json' }, body: '{"limit":25,"shards":{"count":3,"current":3},"visibility_timeout":300}'};
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://registry.rex.dynata.com/receive-notifications \ --header 'Content-Type: application/json' \ --header 'dynata-access-key: ADSF23ADF354GFDDS23' \ --header 'dynata-expiration: 2026-04-15T12:00:00Z' \ --header 'dynata-signature: dsklj435kljhfdSAFdsalk34' \ --data '{ "limit": 25, "shards": { "count": 3, "current": 3 }, "visibility_timeout": 300 }'To process opportunity notifications we recommend the following.
- Call to get notifications in queue (max 50 will be returned, based on provided limit value)
- if there are no notifications to process, pause
5seconds, then try again - if notifications are present, process and acknowledge each one using
/ack-notifications, then loop immediately back to step 1 to receive more notifications.
This will ensure that the queue is processed as quickly as possible without overwhelming either system with a constant loop of nothing to process.
Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”RFC3339 timestamp indicating request expiration
Dynata provided access key
Example
ADSF23ADF354GFDDS23Signature created using the Dynata methodology
Example
dsklj435kljhfdSAFdsalk34Request Body
Section titled “Request Body”object
Maximum number of opportunities to return per request
Example
25Sharding options for concurrent consumption
object
Total number of shards; should equal number of consumers
Example
3Requesting consumer identifier; cannot be greater than number of shards
Example
3The period of time, in seconds, during which other consumers will be unable to receive a notification
Example
300Responses
Section titled “Responses”List of opportunity notifications
object
Unique identifier of opportunity
Current opportunity status
Estimated length of interview
Estimated incidence rate (IR) for a quota group. The IR is the percentage of respondents in the general population expected to qualify for the quota group.
Offer price per interview
Total fielding completes requested
Identifier of opportunity group
Click balancing mode
Expected duration of opportunity in days
Localization of the opportunity
object
Lowercase two-character ISO language value
Uppercase two-character ISO country value
Devices supported by opportunity
Entry links of opportunity
object
Live entry link
Creation date of opportunity
Projects that prevent respondent participation in this project
Categories that prevent respondent participation in this project
RFC3339 timestamp of notification
Identifier of opportunity project – opportunities in the same project have mutual participation exclusions
Unique project identifier.
object
Requires inviting (recontacting) specific respondents to a follow up survey.
Requires respondents to provide personally identifiable information (PII) within client survey.
Requires respondents to utilize their webcam to participate.
Requires use of facial recognition technology with respondents, such as eye tracking.
Requires partner to allow Dynata to drop a cookie on respondent.
Requires partner-uploaded respondent PII to expand third-party matched data.
Requires respondents to download a software application.
Requires additional incentives to be manually awarded to respondent by partner outside of the typical online survey flow.
Categories related to opportunity
Identifier of client requesting the study. (requires permission to view)
Individual target definitions
object
Cell reference tag
Identifier of the Dynata attribute. If the value is -1 it means it’s an ineffable cell and it should discarded
Negative evaluation of value(s)
Single cell value; populated when cell kind is VALUE
object
Cell reference tag
Identifier of the Dynata attribute. If the value is -1 it means it’s an ineffable cell and it should discarded
Negative evaluation of value(s)
Describes the bounds of the cell value range; populated when cell kind is RANGE
object
Lower bound of cell value range
Upper bound of cell value range
object
Cell reference tag
Identifier of the Dynata attribute. If the value is -1 it means it’s an ineffable cell and it should discarded
Negative evaluation of value(s)
Indicates the comparison operation to use.
List of cell values; populated when cell kind is LIST
object
Cell reference tag
Identifier of the Dynata attribute. If the value is -1 it means it’s an ineffable cell and it should discarded
Negative evaluation of value(s)
Indicates the comparison operation to use.
Identifier of a large collection of values available for download; populated when cell kind is COLLECTION
object
Cell reference tag
Identifier of the Dynata attribute. If the value is -1 it means it’s an ineffable cell and it should discarded
Negative evaluation of value(s)
Indicates the comparison operation to use.
Identifier of a large collection of respondent ids available for download.
object
Cell reference tag
Identifier of the Dynata attribute. If the value is -1 it means it’s an ineffable cell and it should discarded
Negative evaluation of value(s)
object
Cell reference tag
Identifier of the Dynata attribute. If the value is -1 it means it’s an ineffable cell and it should discarded
Negative evaluation of value(s)
Example
[ { "id": 12345, "status": "OPEN", "length_of_interview": 10, "incidence_rate": 80, "cost_per_interview": 0.55, "completes": 100, "group_id": 112411272, "evaluation": "COMPLETES", "days_in_field": 25, "locale": { "language": "en", "country": "US" }, "devices": [ "desktop", "tablet" ], "links": { "live": "https://respondent.qa-rex.dynata.com/start?ctx=7321f626-0de5-4d45-b138-29864ce635b4&language=en" }, "project_exclusions": [ 293847, 561112 ], "category_exclusions": [ 23, 10 ], "project_id": 1589419, "order_number": "ORD-1234-5ab678", "requirements": { "requires_recontact": false, "requires_pii_collection": false, "requires_webcam": false, "requires_eye_tracking": false, "requires_cookie_drops": false, "requires_sample_plus": false, "requires_app_vpn": false, "requires_manual_rewards": false }, "category_ids": [ 123, 456, 789 ], "client_id": 54321, "cells": [ { "tag": "163a74b4-68fd-4bae-b264-03e626a20b2f", "attribute_id": 80, "negate": false, "kind": "VALUE" } ], "filters": [ [ { "id": "1a2f3de4474642f684ec9ba4d72168f8f459efb49f971775a4eaf0c18ac22d83", "cells": [ "aa7169c0-cb34-499a-aadd-31e0013df8fd" ] }, { "id": "b331500690bfa19e442a32ad8c74923332318792f98441b025c5638028d4339", "cells": [ "a1c44026-6c20-40e4-ab7c-0bf6e7bd7890", "90606986-5508-461b-a821-216e9a72f1a0" ] } ], [ { "id": "a64df572cbb25b374bb1b7b702b6e96f2e256485f0631cae1dd5fbb011d3aa8c", "cells": [ "75a36c67-0328-4c1b-a4dd-67d34688ff68" ] } ] ], "quotas": [ [ { "id": "1a2f3de4474642f684ec9ba4d72168f8f459efb49f971775a4eaf0c18ac22d83", "cells": [ "aa7169c0-cb34-499a-aadd-31e0013df8fd" ], "count": 652, "status": "OPEN" }, { "id": "b331500690bfa19e442a32ad8c74923332318792f98441b025c5638028d4339", "cells": [ "a1c44026-6c20-40e4-ab7c-0bf6e7bd7890", "90606986-5508-461b-a821-216e9a72f1a0" ], "count": 56, "status": "CLOSED" } ], [ { "id": "a64df572cbb25b374bb1b7b702b6e96f2e256485f0631cae1dd5fbb011d3aa8c", "cells": [ "75a36c67-0328-4c1b-a4dd-67d34688ff68" ], "count": 100, "status": "OPEN" } ] ] }]Headers
Section titled “Headers”Example
50Number of returned notifications
Example
100Number of notifications in the account’s queue
Bad request
object
A human readable description of the error
Examplegenerated
{ "message": "example"}Invalid credentials
object
A human readable description of the error
Examplegenerated
{ "message": "example"}Unauthorized
object
A human readable description of the error
Examplegenerated
{ "message": "example"}Internal server error
object
A human readable description of the error
Examplegenerated
{ "message": "example"}