Skip to main content
Version: 3.x

Fetch surveys

Retrieve the surveys available to a participant. See profiling options.

GET https://api.tapresearch.com/supply_api/v4/campaigns
Configure your app first

Set a post-survey Redirect URL and add active content to your placement before requesting surveys.

Request​

Headers​

NameRequiredDescription
X-Api-TokenYesYour API token.
X-User-IdentifierYesYour unique, stable participant identifier.
X-Device-IdentifierNoOptional hardware/device ID for multi-device distinction.

Query parameters​

NameRequiredDescription
user_ipYesParticipant IP address (e.g., 107.193.140.76).
device_typeYesDevice type — 0 = tablet, 1 = phone, 2 = desktop.

Response​

The response returns a JSON object containing:

FieldTypeDescription
surveysArrayList of available surveys for the participant.
player_eligibilityObjectParticipant eligibility status.

Surveys object​

Each item in the surveys array contains:

FieldTypeDescription
identifierStringUnique campaign identifier.
length_in_minutesIntegerEstimated survey duration.
conversion_rateIntegerCompletion rate percentage.
reward_amountIntegerReward amount for the participant on a full complete.
epcString or IntegerYour earnings per click in USD after revenue share, returned as a decimal string or 0.
currency_nameStringName of the in-app currency.
offer_entry_urlStringURL to start the survey (redirect the participant here).
support_urlStringTapResearch-hosted support contact URL for this survey. Present this as a "Get Help" link alongside the campaign in your UI. See Support center.
is_hot_tileBoolean/IntegerIndicates whether this survey's performance exceeds our internal threshold.
categoryStringSurvey category label (e.g. Entertainment), or None when uncategorized.

Player eligibility object​

FieldTypeDescription
is_eligibleBooleanIndicates if the participant is eligible to take surveys.
reasonIntegerEligibility reason code. See Reason codes.
commentStringHuman-readable eligibility comment.

Reason codes​

When is_eligible is false, reason tells you why, and surveys is empty:

CodeMeaning
0Eligible
2App is in test mode — only registered test devices are eligible
4Not a supported country
5Under the supported age
6Missing user identifier
8Banned
12Missing device/user identifier
20User identifier is an anonymous device advertising ID, not a real user ID
22Blacklisted

Example response​

{
"surveys": [
{
"identifier": "4da2192594d2420648e5996e8bc1cb59",
"length_in_minutes": 6,
"conversion_rate": 66,
"reward_amount": 68,
"epc": "1.35",
"currency_name": "points",
"offer_entry_url": "https://www.tapresearch.com/router/offers/28e0f041675fb74b7ef254482ad1d502/pre_entry?...",
"support_url": "https://www.tapresearch.com/support/contact?reference_code=...",
"is_hot_tile": 1,
"category": "Entertainment"
}
],
"player_eligibility": {
"is_eligible": true,
"reason": 0,
"comment": "Qualified"
}
}

Errors​

Errors return a JSON error or message. Coded errors also include error_code.

StatusMeaning
401Missing or invalid API token.
422Missing or invalid request parameters, or incomplete app setup.
503Temporarily unavailable.

Notes​

  • Call this endpoint after successfully impaneling a participant. See Impanel.
  • Use the offer_entry_url to redirect participants into a live survey.
  • The player_eligibility block determines whether the user can proceed. If the participant is not qualified, the surveys array will be empty.
  • Surveys are already ordered by our internal yield management algorithm, so we recommend using them in the order returned.
  • Reward amounts represent what the participant earns on a full survey complete. The actual value to you may be lower since TapResearch also pays out for DQs/OQs based on time spent in the survey.
  • EPC (earnings per click) reflects all payout types—not just completes—giving you a holistic view of expected earnings. Use this field if you plan to manage yield on your end instead of relying solely on reward amount.

Next step: Handling rewards → — receive reward postbacks on your backend when a participant completes a survey.