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
| Field | Required | Meaning |
|---|---|---|
UserId | Yes | Stable user ID in your system. |
AppId | Yes | Publisher app ID shown in the dashboard. |
IpAddress | Yes | Current public IP of the respondent. |
City | Yes | Respondent city. |
CountryLanguageCode | Yes | Active locale in LANG-CC form, such as ENG-US. |
DateOfBirth | No | Date in YYYY-MM-DD form, when you have permission to provide it. |
Gender | No | M or F, when you have permission to provide it. |
ZipCode | No | Postal code for the locale's country. |
gps_id | No | Stable device identifier, only when permitted by your privacy policy and platform rules. |
PublisherProfiling | No | Partner 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.