Skip to main content
Version: v2

Fetch surveys for a user

Call this endpoint from your backend. It creates or updates a respondent profile and returns available survey opportunities for that user.

POST https://www.rapidoreach.com/getallsurveys-api
X-RapidoReach-Api-Key: YOUR_APP_KEY
Content-Type: application/json

Request body​

FieldRequiredMeaning
UserIdYesStable user ID in your system.
AppIdYesPublisher app ID shown in the dashboard.
IpAddressYesCurrent public IP of the respondent.
CityYesRespondent city.
CountryLanguageCodeYesActive locale in LANG-CC form, such as ENG-US.
DateOfBirthNoDate in YYYY-MM-DD form, when you have permission to provide it.
GenderNoM or F, when you have permission to provide it.
ZipCodeNoPostal code for the locale's country.
gps_idNoStable device identifier, only when permitted by your privacy policy and platform rules.
PublisherProfilingNoPartner profiling responses; see below.

The backend validates required fields and active locales. An invalid profile returns HTTP 400 with ErrorCode: "INVALID_PROFILE"; a well-formed but inactive locale returns HTTP 400 with COUNTRY_LANGUAGE_UNSUPPORTED.

curl --request POST 'https://www.rapidoreach.com/getallsurveys-api' \
--header 'X-RapidoReach-Api-Key: YOUR_APP_KEY' \
--header 'Content-Type: application/json' \
--data '{
"UserId": "YOUR_USER_ID",
"AppId": "YOUR_APP_ID",
"IpAddress": "YOUR_USER_PUBLIC_IP",
"City": "New York",
"CountryLanguageCode": "ENG-US"
}'

Response​

A successful reply uses ErrorCode: "SUCCESS" and a Data array. Returned surveys include SurveyNumber, SurveyUrl, Reward, LOI, vc_name, CPI, ProvidedBy, and supplier metadata in Survey. MatchingPercentage may be present. The response can also include an internal Link value; open SurveyUrl, not Link.

{
"Errors": [],
"Info": [],
"ErrorCode": "SUCCESS",
"Data": [
{
"SurveyNumber": "EXAMPLE_SURVEY_ID",
"SurveyUrl": "https://www.rapidoreach.com/ofw/api-surveys/?...",
"Reward": 50,
"LOI": 10,
"MatchingPercentage": 80,
"vc_name": "coins",
"CPI": 1.00,
"ProvidedBy": "RAPIDOREACH",
"Survey": {}
}
]
}

The SurveyUrl shown above is illustrative; use the complete URL returned by the API without modifying it. It contains user-bound routing and verification parameters. See survey entry links and security.

The API can return NOT_FOUND when no surveys are available and FRAUD_BLOCKED when a respondent is ineligible. Check ErrorCode, Errors, and any field errors rather than assuming a nonempty Data array.

Optional publisher profiling​

If you already collected partner-specific answers with appropriate permission, send them in PublisherProfiling:

{
"PublisherProfiling": [
{
"partnerCode": "YOURSURVEYS",
"countryLanguageCode": "ENG-US",
"responses": [
{ "questionId": "AGE", "answerIds": ["25-34"] }
]
}
]
}

The backend validates answers against the partner catalog and upserts repeated responses. The legacy ProfilingResponses key is accepted for compatibility.