---
title: "Submit a Bulk Responses Request"
method: POST
path: "/responses/bulk"
tags: ["Data"]
---

# Submit a Bulk Responses Request

`POST /responses/bulk`

## Request

- Base URL: `https://api.morningconsult.com/v1`
- URL: `https://api.morningconsult.com/v1/responses/bulk`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/morningconsult/apis/morning-consult-api/docs/responses/bulk/post.ts> (a function with typed inputs; its response is checked against the schema)

Submit a request to asynchronously generate timeseries data for one or more questions and audiences from the specified data source. The max date range for a single request is 10 years. Returns a `request_id` that can be used to poll the status of the report via the [/responses/bulk/{request_id}](#GET-getResponsesBulkStatus) endpoint. When the report is complete, a download URL will be provided to retrieve the data.

## Request body

- PostResponsesBulkInput
  - `data_source_id` string, uuid, required: The unique identifier for a data source.
  - `country` string, required: Two letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. This can be used in the `country_code` query parameter of multiple endpoints to limit results to the specific country.
  - `question_ids` QuestionID[], required: The unique identifiers for the questions to include in the report.
  - `audiences` object: A map of audience names to audience definitions. Each named audience will produce a separate trend in the report output. An empty audience object `{}` represents all respondents. If omitted, the report defaults to a single all-respondents trend.
  - `min_date` string, date: Minimum date of data returned in YYYY-MM-DD format. The date provided is inclusive. Omitting this field will return the earliest available trend data.
  - `max_date` string, date: Maximum date of data returned in YYYY-MM-DD format. The date provided is inclusive. Omitting this field will return the most recent available trend data.
  - `aggregation` 'day' | 'week' | 'month' | 'quarter' | 'year', required: Options for aggregating data. For calendar durations, sample for that duration will be aggregated into a single data point. For example, requesting data between "2018-01-01" and "2018-12-31" with the month interval will return a data point for each month. Each data point representing an interval will be timestamped with the start date of that interval. The "week" interval starts on Monday, and the "all" option will return a single data point aggregating all trend data.

## Response `200`

Bulk Responses Request Submitted

- PostResponsesBulkOutput
  - `request_id` string, uuid: The unique identifier for the bulk responses request. Use this ID to poll the status of the report via the [/responses/bulk/{request_id}](#GET-getResponsesBulkStatus) endpoint.

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

---

[API](https://skmtc.dev/morningconsult/apis/morning-consult-api.md) - [All operations](https://skmtc.dev/morningconsult/apis/morning-consult-api/llms.txt) - [OpenAPI document](https://skmtc.dev/morningconsult/apis/morning-consult-api/revisions/70d621a9c59c?raw)
