What is the CosmosPanel Supplier API?
The CosmosPanel Supplier API is a RESTful interface that gives panel operators and research platforms programmatic access to CosmosPanel's live B2B survey inventory. Instead of manually coordinating project briefs via email, the API lets your platform automatically discover available surveys, match them to your panelists' professional profiles, and route qualifying respondents directly into live studies.
The integration is built for both high-volume consumer panels looking to diversify into B2B, and specialist B2B panel operators who want to expand their monetisable inventory without sourcing projects individually.
Core capabilities
- Pull live inventory — Fetch all surveys currently open to your panel, filtered by market, category, CPI, and target profile.
- Generate entry links — Create unique, trackable URLs for each panelist you route into a survey.
- Receive status callbacks — Get real-time postback notifications when respondents complete, terminate, or hit a quota-full condition.
- Manage profiling — Retrieve the full list of profiling attributes CosmosPanel uses to qualify B2B respondents, so you can match your own panel data accordingly.
- Monitor quotas — Check live quota availability before routing respondents, reducing dead-end experiences.
How Does It Work?
The API flow follows five steps that repeat for every survey campaign:
- Authenticate — Your platform authenticates with your API key in every request header.
- Fetch inventory — Call
GET /v3/surveysto retrieve all surveys currently available for your panel, including targeting criteria, CPI, and quota availability. - Match respondents — Compare each survey's targeting requirements against your panelists' stored profile data (job function, seniority, industry, company size, geography).
- Generate & send entry links — For each matching panelist, call the entry link endpoint to generate a unique URL, then embed it in your survey invitation.
- Receive callbacks — CosmosPanel posts a status notification to your configured endpoint when each respondent completes, terminates, reaches quota full, or is flagged as a security terminate.
Your platform bears no responsibility for survey scripting, sampling, or quality control — CosmosPanel handles all of that upstream. Your role is to supply verified B2B professionals and trust that the redirect flow accurately reflects each respondent's outcome.
Revenue & Pricing
CosmosPanel pays suppliers per verified complete (CPI — Cost Per Interview). The CPI for each survey is displayed in the survey listing response and varies based on LOI, incidence rate, and target profile complexity. No payment is made for terminates, quota-full redirects, or security terminates.
survey.cpi_usd field.Authentication
All API requests must include your unique API key in the request header. Keys are provisioned per supplier account and scoped to your approved panel markets.
Header format
X-API-Key: cp_live_xxxxxxxxxxxxxxxxxxxx
Obtaining your API key
- Log in to the CosmosPanel Supplier Dashboard at
supplier.cosmospanel.com - Navigate to Settings → API Access
- Click Generate Key — your live key will be displayed once. Copy and store it securely.
Key types
| Prefix | Environment | Description |
|---|---|---|
| cp_live_ | Production | Full access to live surveys. Completions generate real revenue. |
| cp_test_ | Sandbox | Integration testing. Surveys return synthetic data; no revenue accrued. |
Getting Started
Before routing live respondents, complete the following checklist with your integration team:
- Receive API credentials from your CosmosPanel account manager.
- Configure your Postback URL in the dashboard — this is the endpoint CosmosPanel will call with respondent status updates.
- Use your
cp_test_key to verify the full entry → complete/terminate → callback flow in sandbox. - Validate that your system correctly handles all four callback statuses: complete, terminate, quota full, and security terminate.
- Switch to your
cp_live_key and begin routing production traffic.
Quick test request
curl -X GET \ https://api.cosmospanel.com/v3/surveys \ -H "X-API-Key: cp_test_xxxxxxxxxxxxxxxxxxxx" \ -H "Accept: application/json"
Endpoints
All endpoints are served over HTTPS. The base URL for all requests is:
https://api.cosmospanel.com/v3
List Available Surveys
Returns all surveys currently available to your panel, filtered by your account's approved markets. Results are ordered by CPI descending.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| market | string | Optional | ISO 3166-1 alpha-2 country code (e.g. US, GB). Filters to a single market. |
| category | string | Optional | Survey category slug (e.g. it_decision_maker, c_suite). |
| min_cpi | number | Optional | Minimum CPI in USD. Filters out surveys below your revenue threshold. |
| quota_available | boolean | Optional | If true, returns only surveys with open quota remaining. |
| limit | integer | Optional | Max results per page. Default: 50. Maximum: 200. |
| cursor | string | Optional | Pagination cursor from a previous response's next_cursor field. |
Response
{
"data": [
{
"survey_id": "cp_srv_a3f9b2c1",
"title": "IT Security Decision-Makers — US",
"market": "US",
"category": "it_decision_maker",
"loi_minutes": 12,
"cpi_usd": 18.50,
"ir_estimate": 0.22,
"quota_remaining": 47,
"quota_total": 150,
"closes_at": "2026-05-10T23:59:00Z",
"targeting": {
"job_functions": ["IT", "Security"],
"seniority": ["Director", "VP", "C-Suite"],
"company_size": ["500-999", "1000+"],
"industries": ["Technology", "Financial Services"]
}
}
],
"meta": {
"total": 84,
"next_cursor": "eyJpZCI6ImNwX3Nydl9hM2Y5YjJjMiJ9"
}
}Get Survey Details
Returns full details for a specific survey, including all quota cells and their individual availability.
{
"survey_id": "cp_srv_a3f9b2c1",
"title": "IT Security Decision-Makers — US",
"status": "live",
"loi_minutes": 12,
"cpi_usd": 18.50,
"quotas": [
{
"quota_id": "q_001",
"description": "Director level, 500-999 employees",
"remaining": 24,
"total": 75
},
{
"quota_id": "q_002",
"description": "VP / C-Suite, 1000+ employees",
"remaining": 23,
"total": 75
}
]
}Generate Entry Link
Generates a unique, signed entry URL for a single respondent. Each call produces a one-use link — do not reuse links across respondents. The link expires after 72 hours if unused.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| respondent_id | string | Required | Your internal unique identifier for this panelist. Returned verbatim in all callbacks. |
| profile | object | Required | Profiling data for pre-qualification. Must include at minimum job_function, seniority, and company_size. |
| redirect_url | string | Required | Your base callback URL. CosmosPanel appends ?status=&rid= parameters on redirect. |
| locale | string | Optional | BCP 47 locale code (e.g. en-US). Defaults to the survey's market locale. |
{
"respondent_id": "your_panel_uid_12345",
"redirect_url": "https://yourpanel.com/survey-return",
"locale": "en-US",
"profile": {
"job_function": "IT",
"seniority": "Director",
"company_size": "500-999",
"industry": "Financial Services",
"country": "US"
}
}{
"entry_url": "https://api.cosmospanel.com/v3/enter/cp_tok_f8e2a91b3d",
"token": "cp_tok_f8e2a91b3d",
"expires_at": "2026-04-24T12:00:00Z",
"pre_qualified": true
}List Profile Attributes
Returns the complete taxonomy of B2B profiling attributes used by CosmosPanel for respondent qualification. Use this reference to map your panel's stored data to the correct field names and accepted values.
{
"attributes": [
{
"key": "job_function",
"label": "Job Function",
"type": "enum",
"values": ["IT", "Finance", "HR", "Marketing",
"Operations", "Sales", "Legal", "Procurement",
"C-Suite / General Management", "Other"]
},
{
"key": "seniority",
"label": "Seniority Level",
"type": "enum",
"values": ["Individual Contributor", "Manager",
"Director", "VP", "C-Suite", "Owner / Partner"]
},
{
"key": "company_size",
"label": "Company Size (employees)",
"type": "enum",
"values": ["1-9", "10-49", "50-249",
"250-499", "500-999", "1000+"]
},
{
"key": "industry",
"label": "Industry Sector",
"type": "enum",
"values": ["Technology", "Financial Services",
"Healthcare", "Manufacturing", "Retail",
"Professional Services", "Education", "Government",
"Energy & Utilities", "Media & Telecoms", "Other"]
}
]
}Check Quota Status
Returns live quota availability for a survey. Call this before generating bulk entry links to avoid routing respondents into a closed quota. Quota data is updated in real time.
Respondent Callbacks
When a respondent finishes their session — whether they complete the survey, get screened out, or hit a full quota — CosmosPanel redirects them back to the redirect_url you provided, appending status parameters to the URL.
CosmosPanel also fires a server-side postback to your configured Postback URL. Always rely on the server-side postback for revenue attribution — client-side redirects can be blocked by browsers or abandoned mid-session.
Redirect URL patterns
security status indicates that the respondent failed one or more quality checks during the survey (e.g. speeding, contradictory answers, device fingerprint mismatch). These respondents should be flagged in your panel management system. Repeated security terminates from a panelist are grounds for removal from your active pool.
Server-side postback
In addition to browser redirects, CosmosPanel fires a GET request to your configured Postback URL for every completion:
GET https://yourpanel.com/postback ?event=complete &respondent_id=your_panel_uid_12345 &survey_id=cp_srv_a3f9b2c1 &token=cp_tok_f8e2a91b3d &cpi_usd=18.50 ×tamp=2026-04-21T14:33:00Z &signature=sha256_hmac_signature
The signature field is an HMAC-SHA256 hash of the full postback URL signed with your API key. Verify this signature server-side before crediting a completion to prevent fraud.
URL Variables
CosmosPanel substitutes the following dynamic variables into redirect and postback URLs at runtime:
| Variable | Type | Description |
|---|---|---|
| {RID} | string | The respondent_id you provided when generating the entry link. Echoed back verbatim. |
| {SID} | string | CosmosPanel's internal survey identifier (survey_id). |
| {CPI} | number | The CPI in USD for this complete. Only present on status=complete redirects. |
| {TOKEN} | string | The unique session token. Use for deduplication if a redirect fires more than once. |
| {STATUS} | string | One of: complete, terminate, quotafull, security. |
| {TS} | string | ISO 8601 UTC timestamp of the redirect event. |
Error Reference
All errors return a JSON body with a code, message, and optional details field.
{
"error": {
"code": "survey_quota_full",
"message": "All quotas for this survey are complete.",
"status": 409
}
}unauthorized
Missing or invalid API key.
forbidden_market
Your API key is not approved for this market.
survey_not_found
The requested survey ID does not exist or is not available to your account.
survey_quota_full
All quota cells for this survey have been filled. Do not route new respondents.
survey_closed
The survey is no longer accepting respondents (paused or ended by the client).
profile_incomplete
The respondent profile is missing one or more required fields for this survey's targeting.
rate_limit_exceeded
Too many requests. Retry after the interval specified in the Retry-After header.
internal_error
Unexpected server error. These are rare; if they persist, contact support.
Rate Limits
Rate limits are applied per API key. If you exceed a limit, the API returns a 429 rate_limit_exceeded response with a Retry-After header indicating the number of seconds before you may retry.
| Endpoint | Limit | Window |
|---|---|---|
| GET /v3/surveys | 60 req | Per minute |
| GET /v3/surveys/{id} | 120 req | Per minute |
| POST /v3/surveys/{id}/entry | 300 req | Per minute |
| GET /v3/attributes | 10 req | Per hour (cache this response) |
Frequently Asked Questions
Who sends survey invitations to panelists?
You do. CosmosPanel provides the survey inventory and entry link generation. Your platform manages panelist communication, invitation scheduling, and the member experience. This gives you full control over your respondent relationship and incentive structures.
What incentives do panelists receive?
That is entirely your decision. CosmosPanel pays you the CPI on every verified complete. How you split that revenue with your panelists — whether through points, cash, vouchers, or charity donations — is governed by your own panel programme terms.
How is the CosmosPanel API different from other survey supply APIs?
CosmosPanel exclusively operates in the B2B segment. Every survey in our inventory targets business professionals by job function, seniority, industry, and company size. If your panel has a professional member base, our inventory is a direct, high-CPI match — without requiring you to build separate B2B sourcing relationships.
What happens if a survey closes mid-campaign?
The survey status transitions to closed. Any panelists who attempt to enter after closure receive a survey_closed error or a quota-full redirect. We recommend polling quota_remaining before sending bulk invitations.
Can I integrate across multiple markets with a single key?
Yes. A single API key can access all markets approved for your account. Use the market query parameter to filter survey listings per market when routing country-specific invitations.
Is there a sandbox environment?
Yes. Use your cp_test_ API key against the same base URL. Sandbox surveys simulate the full redirect and postback flow with synthetic respondent outcomes. No revenue is accrued in sandbox mode.
Technical Support
CosmosPanel provides dedicated integration support during your initial onboarding period, and ongoing technical assistance via email for all active supplier partners.
- Integration queries — Endpoint behaviour, parameter clarification, profile mapping assistance.
- Postback verification — Help verifying HMAC signatures and validating your server-side callback handler.
- Revenue discrepancies — Disputes over complete counts or CPI rates should be raised within 30 days of the relevant billing period.
- API key management — Key regeneration, market scope changes, and rate limit increases require account manager approval.