Skip to main content
The Supply API is designed to be polled. Allocations, qualifications, and quotas change throughout fieldwork — for example, a quota may close when it paces ahead of plan, or an allocation may be reassigned if a supplier underperforms. Polling keeps your platform in sync so you only send respondents to open targets. Rather than re-reading every Stream on each poll, use the QualificationsLastChangedTimestamp and QuotasLastChangedTimestamp fields on the Surveys response to detect which Streams changed and refresh only those.
In-field metrics warm up with volume: ActualLOI and ActualIR are initially calculated after 20 completes.

Pausing Sample

Use the Remaining (Surveys) and QuotaRemaining (Quotas) fields as your primary indicators of whether more respondents are needed. When a value reaches 0, pause sample to that Stream or quota cell.

Best Practices

Detect changes by timestamp

Compare QualificationsLastChangedTimestamp and QuotasLastChangedTimestamp between polls and refresh only the Streams that changed.

Cache lookup data

Languages, countries, and the qualification library change infrequently. Cache them and refresh on a schedule rather than per request.

Respect closed cells

When Remaining or QuotaRemaining hits 0, stop sending to that Stream or quota cell to avoid over-delivery.

Test in staging

Run integration and load testing against staging (https://stage-api.researchdesk.com) before pointing traffic at production.
If you see a rate card higher than 100CPI,alerttheSupplyteamandpausesampletothatStream.ThereisnohardmaximumCPI,butconsumerprojectsshouldnottypicallyexceed100 CPI, alert the Supply team and pause sample to that Stream. There is no hard maximum CPI, but consumer projects should not typically exceed 40.