--- title: "Export Survey Results with Raw User Data" slug: "export-survey-results-with-raw-user-data" description: "Explains the POST /api/raw/v1/export endpoint for exporting Survey event and attribute data per user to S3 via webhook, in CSV or Parquet format for BI." tags: ["export app survey results", "survey with raw user data"] updated: 2026-09-09T14:08:37Z published: 2026-09-09T14:08:37Z canonical: "academy.insiderone.com/export-survey-results-with-raw-user-data" --- > ## Documentation Index > Fetch the complete documentation index at: https://academy.insiderone.com/llms.txt > Use this file to discover all available pages before exploring further. # Export Survey Results with Raw User Data The [Export Raw User Data API](/v1/docs/export-raw-user-data-v2) prepares raw data for events and attributes. It also allows you to export [App Survey](https://academy.insiderone.com/docs/app-survey) results for multiple requested events and attributes of a user (e.g., name, phone number, age, city, etc.) to Insider One's AWS S3 bucket. The request returns a link to your webhook endpoint, which enables you to access the raw user data and transfer it to your end. When a user answers a survey question and submits their response, this action triggers the survey_result event along with its camp ID, variant ID, question, answer, and timestamp event parameters. This event and its parameters can be listed on the respective user's [User Profile](/v1/docs/user-profiles-overview). **Suggested Reading**: [Understanding Events and Attributes](/v1/docs/events-and-attributes) You should provide a **webhook endpoint** in the request to be notified when the export link is ready. After sending a request, your webhook endpoint receives an export link to access the raw user data. > https://insider-data-export.useinsider.com/{partner name}/p/{file name} You can export raw user data in the following use cases: - Analyze user information using a business intelligence tool. - Sync the data that you want via daily jobs. - Get detailed insights about users who submit responses to surveys. ## Endpoint and Headers > **POST** https://unification.useinsider.com/api/raw/v1/export [](https://developers.insiderone.com/#79788615-9eb0-45f7-8e1d-1e6f027ce118) > Visit our Postman collection to test this request. | Header | Sample Value | Description | | --- | --- | --- | | X-PARTNER-NAME | mybrand | This is your partner name. Navigate to **InOne** > **Inone Settings** > [**Account Settings**](/v1/docs/inone-account-settings) to copy your partner name. The partner name should be lowercase. | | X-REQUEST-TOKEN | 1a2b3c4e5d6f | This key is required to authorize your request. Refer to [API Authentication Tokens](https://academy.insiderone.com/docs/api-authentication-tokens) to generate your token. | | Content-Type | application/json | This header specifies the media type of the resource. | ## Body Parameters Before starting the implementation, make sure to share the following information with the Insider One team: - A webhook endpoint that will be notified when the export link is ready - A preferred format: CSV or Parquet - A list of attributes, events, and event parameters that you want to export - A dynamic segment that you want to export You can consult the Insider One team on which parameters to add to the request. Each request must have an **attributes** or **events** object to return the respective user profiles. If you use the *events* object, its keys are required, as stated in the table below. | Parameter | Description | Data Type | Required | | --- | --- | --- | --- | | segment | Segment ID of the user filter. To find your Dynamic Segment ID, navigate to **Audience** > **Segments** > **Dynamic Segments**. Click on the Segment whose ID you want to get. You can see it in the top right corner of the [summary page](https://academy.insiderone.com/docs/dynamic-segments). | Object | Yes | | attributes | Array of attributes | Array (of string) | No | | events | Array of events | Object | Yes | | start_date | Beginning of the date range for the wanted events | Number | Yes | | end_date | End of the date range for the wanted events | Number | Yes | | wanted | Object of the wanted events | Array | Yes | | event_name | Name of the event | String | Yes | | params | Event parameters of the event | Array (of string) | Yes | | format | The export format | String | Yes | | hook | Your webhook endpoint | String | Yes | ## Sample Request The sample below displays a request to get the survey results with raw user data (e.g., attributes such as insider ID(iid), unique device ID (udid), phone number(pn), unique user ID (uuid), email (em), app version, model (mo), and device software version (ov)). ```bash curl --location --request POST 'https://unification.useinsider.com/api/raw/v1/export' \ --header 'X-PARTNER-NAME: mybrand' \ --header 'X-REQUEST-TOKEN: 1a2b3c4d5e6f' \ --header 'Content-Type: application/json' \ --header 'Cookie: __cfduid=d1a0bc0c8335c7fecbd3485839787329b1615112066' \ --data-raw '{   "segment": {        "segment_id": 123456789    },   "attributes":[        "iid",        "udid",        "pn",        "uuid",        "em",        "app_version",        "mo",        "ov"    ],   "events":{      "start_date":1606311893,      "end_date":1611582293,      "wanted":[         {            "event_name":"survey_result",            "params":[               "answer",                "answer_content",                "camp_id",                "campaign_name",                "question",                "src",                "text",                "title",                "type",                "variant_id"            ]         }      ]   },   "format":"parquet",   "hook":"xyz.test.com" }' ``` ## Sample Responses #### 200 OK When the data is ready to download, you will receive the export link on your webhook URL as displayed below. ```json {"url":"https://insider-data-export.useinsider.com/{partner name}/p/{file name}"} ``` If a user has performed the requested event(s) *N* times, that user will be displayed in *N* rows in the exported file. However, since attributes always display the latest information of the user, the attributes on *N* rows will be the same. #### 429 Too Many Requests If you exceed the rate limits, you receive an error shown below: ```json {    "error": "rejected: too many requests" } ``` - 400 Empty Partner - 400 Empty Token - 403 Authentication Failed ## Limitations - All functions must be executed with a simple **HTTPS POST** request. - Only a response that states if the request is successful or failed can be received via this API. No data can be inserted. - The **request token** should be provided in the **request header**. If the token is incorrect, the operation will not be executed. - The exported data can be in CSV, Parquet, or JSON formats. - The export link expires **in 24 hours** after it is ready. - The rate limit is **1 request per day**. The API can be called **only once** in 24 hours with respect to the UTC time zone. The limitation timeline resets at UTC 00:00. - The value of **X-PARTNER-NAME** header should be **lowercase.** > The default limit shown here is a standard baseline. If your use case requires higher capacity, feel free to reach out to the Insider One team. We can adjust it to fit your needs. ## Related - [Export App Template Results with Raw User Data](/export-app-template-results-with-raw-user-data.md) - [Export App Push Results with Raw User Data](/export-app-push-results-with-raw-user-data.md) - [Get App Push Statistics](/get-app-push-statistics-api.md) - [App Survey](/app-survey.md) - [API Authentication Tokens](/api-authentication-tokens.md) - [API Rate Limits](/api-rate-limits.md) - [API Status and Error Codes](/api-status-and-error-codes.md) - [Insider One APIs in Postman](/insider-apis-in-postman.md)