Survey API
This surface belongs to the Olanzo portal and landing pages. It is not part of the public API product: it has no published specification, no versioning commitment and no support guarantee, and it can change without notice. If you are building an integration, none of the endpoints below are for you — start at the Authenticate guide instead.
This page exists so our own developers can find the surface without reading the controllers. It covers survey authoring — surveys, pages, questions and categories — the anonymous routes a respondent's browser calls while filling one in, and the analytics behind the portal's survey dashboards.
Everything under /Survey and /Insights expects a signed-in session. The five survey-taking routes do not — they are called by a member of the public's browser, which holds no credential.
Copy or download this guide as Markdown to paste into an AI assistant for help integrating against it.
Environment
You are reading the reference for the host that served this page, and every example below points at it.
| Property | Value |
|---|---|
| Environment | |
| Base URL | https://survey-dev.jirafix.net |
Unlike the public products, Survey has no entry in the deployment host list. It is reached internally, and the address above is simply the one you opened.
Authentication
The authoring and analytics routes expect a signed-in portal session. The survey-taking routes are anonymous by design.
This service's authentication registration is commented out in its startup configuration, so do not assume a given route is enforcing what its attributes suggest. Confirm against the running service before relying on it for anything sensitive.
Survey-taking (anonymous)
These are what a respondent's browser calls while filling in a survey. They take no token, because the person answering has no account. Our landing-page scripts are the caller.
Anything reachable without a credential is reachable by anyone. Treat what these accept and return accordingly, and do not extend them to carry anything a respondent should not be able to send or see.
Starts a survey session and returns its session id.
The first call a respondent's browser makes. The session id it returns is what every later call carries.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
curl -X POST https://survey-dev.jirafix.net/Survey/StartSurvey
Records that the respondent viewed a page of the survey.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
curl -X POST https://survey-dev.jirafix.net/Survey/SavePageViews
Saves one answer.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
curl -X POST https://survey-dev.jirafix.net/Survey/SingleResponse
Saves one answer through the streaming path.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
curl -X POST https://survey-dev.jirafix.net/Survey/KafkaSingleResponse/{rowuid}
Marks a survey session complete.
Called when the respondent finishes. Until this lands, the session counts as in progress.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
curl -X PUT https://survey-dev.jirafix.net/Survey/FinalSurvey/{surveyId}/{sessionId}
Surveys
Create, list, duplicate and delete surveys.
Lists the surveys on the account.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X GET https://survey-dev.jirafix.net/Survey/SurveyList \ -H "Authorization: Bearer <token>"
Creates a survey.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Survey \ -H "Authorization: Bearer <token>"
Deletes a survey.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X DELETE https://survey-dev.jirafix.net/Survey \ -H "Authorization: Bearer <token>"
Copies an existing survey, including its pages and questions.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Survey/DuplicateSurvey \ -H "Authorization: Bearer <token>"
Reads the authoring error log for a survey entity type.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X GET https://survey-dev.jirafix.net/Survey/ErrorLog/{journal_type}/{entitytype} \
-H "Authorization: Bearer <token>"
Pages
A survey is made of pages, and questions belong to pages.
Lists the pages of a survey.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X GET https://survey-dev.jirafix.net/Survey/Pages/{surveyId} \
-H "Authorization: Bearer <token>"
Adds a page.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Survey/Pages/{surveyId} \
-H "Authorization: Bearer <token>"
Replaces a page.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X PUT https://survey-dev.jirafix.net/Survey/Pages/{pageid}/{surveyId} \
-H "Authorization: Bearer <token>"
Updates part of a page.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X PATCH https://survey-dev.jirafix.net/Survey/Pages/{pageid}/{surveyId} \
-H "Authorization: Bearer <token>"
Removes a page.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X DELETE https://survey-dev.jirafix.net/Survey/Pages/{pageId}/{surveyid} \
-H "Authorization: Bearer <token>"
Questions
Questions and the question types available to them.
Lists a survey's questions.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X GET https://survey-dev.jirafix.net/Survey/Questions/{surveyId} \
-H "Authorization: Bearer <token>"
Adds a question.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Survey/Question \ -H "Authorization: Bearer <token>"
Removes a question.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X DELETE https://survey-dev.jirafix.net/Survey/Question/{surveyId}/{questionId} \
-H "Authorization: Bearer <token>"
Re-orders a survey's questions.
Note the spelling of the path segment — Seqeuence. It is misspelled in the route itself, so it has to be called that way.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X PATCH https://survey-dev.jirafix.net/Survey/SyncQuestionDisplaySeqeuence/{surveyId} \
-H "Authorization: Bearer <token>"
Lists the available question types.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X GET https://survey-dev.jirafix.net/Survey/QuestionType \ -H "Authorization: Bearer <token>"
Adds a question type for a region.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Survey/QuestionType/{region} \
-H "Authorization: Bearer <token>"
Removes a question type.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X DELETE https://survey-dev.jirafix.net/Survey/QuestionType/{id} \
-H "Authorization: Bearer <token>"
Categories
Categories group surveys within an account.
Lists a survey's categories.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X GET https://survey-dev.jirafix.net/Survey/{surveyid}/Category \
-H "Authorization: Bearer <token>"
Adds a category.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Survey/{surveyid}/Category \
-H "Authorization: Bearer <token>"
Updates a category.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X PUT https://survey-dev.jirafix.net/Survey/{surveyid}/Category/{categoryid} \
-H "Authorization: Bearer <token>"
Removes a category.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X DELETE https://survey-dev.jirafix.net/Survey/{surveyid}/Category/{categoryId} \
-H "Authorization: Bearer <token>"
Responses
The answers people have given.
Reads survey responses.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X GET https://survey-dev.jirafix.net/Survey/UserSurveyResponses \ -H "Authorization: Bearer <token>"
Saves survey responses on behalf of a user.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Survey/UserSurveyResponses \ -H "Authorization: Bearer <token>"
Survey analytics
Everything under /Insights backs the portal's survey dashboards. These are mostly POST even when reading, because the filter travels in the body.
Lists surveys for the analytics views.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/Survey_list \ -H "Authorization: Bearer <token>"
Headline figures across surveys.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/SurveyKPIData \ -H "Authorization: Bearer <token>"
Refreshes the analytics lookup data.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/SyncSurveyLookup \ -H "Authorization: Bearer <token>"
Counts the target audience for a survey.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/targetSourceCount/{id} \
-H "Authorization: Bearer <token>"
Dashboard tiles
The KPI tiles on a survey's dashboard, and which of them a user has pinned.
Reads the KPI set for one survey.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/Survey/{id}/KPI \
-H "Authorization: Bearer <token>"
Pins a KPI tile.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X PUT https://survey-dev.jirafix.net/Insights/Survey/{id}/KPI/Pin \
-H "Authorization: Bearer <token>"
Updates a pinned tile.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X PUT https://survey-dev.jirafix.net/Insights/Survey/{id}/KPI/Pin/{pinId} \
-H "Authorization: Bearer <token>"
Unpins a tile.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X DELETE https://survey-dev.jirafix.net/Insights/Survey/{id}/KPI/Pin/{pinId} \
-H "Authorization: Bearer <token>"
Breaks a KPI down by traffic source.
Note the casing — Kpi here, KPI on the routes above. Both spellings are live and are not interchangeable.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/Survey/{id}/Kpi/Source \
-H "Authorization: Bearer <token>"
Breakdowns
How one survey performed, cut various ways.
Visitor counts.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/Survey/{id}/visitors \
-H "Authorization: Bearer <token>"
Performance over time.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/Survey/{id}/performance \
-H "Authorization: Bearer <token>"
Response totals.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/Survey/{id}/Responses \
-H "Authorization: Bearer <token>"
Engagement figures.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/Survey/{id}/Engagement \
-H "Authorization: Bearer <token>"
Breakdown by device.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/Survey/{id}/Device \
-H "Authorization: Bearer <token>"
Engagement as a chart series.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/Survey/{surveyid}/engagementChart \
-H "Authorization: Bearer <token>"
Recipients and answers
Per-recipient detail behind a survey distribution.
Reads the answers given to a survey.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X GET https://survey-dev.jirafix.net/Insights/GetSurveyAnswer/{surveyId} \
-H "Authorization: Bearer <token>"
Reads recipient-level detail.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X POST https://survey-dev.jirafix.net/Insights/GetSurveyRecipientDetails/{surveyId} \
-H "Authorization: Bearer <token>"
Lists recipients in one KPI category of a distribution.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X GET https://survey-dev.jirafix.net/Insights/distribution/Survey/{queueId}/{datacategory}/{kpistatusId}/Recipients \
-H "Authorization: Bearer <token>"
Reads one recipient's page views.
Responses
| Status | Meaning |
|---|---|
200 | The operation succeeded. |
401 | Missing or invalid token. |
curl -X GET https://survey-dev.jirafix.net/Insights/distribution/Survey/{surveyId}/{queueId}/{recipient}/PageViews \
-H "Authorization: Bearer <token>"
Errors
This service predates the response conventions the public APIs follow, and its error shapes are not consistent across controllers. Read the body rather than relying on the status code alone.
| Status | What it generally means |
|---|---|
200 | The call succeeded. An empty result is still a 200. |
400 | The request could not be read, or a required value was missing. |
401 | No valid session on a route that expects one. |