openapi: 3.2.0
info:
title: Morning Consult Data API
version: 1.0.0
description: The Morning Consult API provides access to various forms of survey data collected by Morning Consult
contact:
email: api-support@morningconsult.com
termsOfService: https://morningconsult.com/mci-terms-and-conditions
servers:
- url: https://api.morningconsult.com/v1
description: Version 1 API
security:
- JWT: []
tags:
- name: Data
description: Syndicated tracking survey data data responses.
paths:
/surveys/syndicated/scores:
post:
summary: Get Scores for Syndicated Timeseries Data
description: 'Deprecated. This endpoint will be sunset on October 1, 2026. Use the [/scores](#POST-postScores) resource API for updated score retrieval.
Get score data for a particular score. The `score_id` must be valid in the specified `country_code`. Every `question_id` included in the `audience` body must also be from the same `country_code`.'
tags:
- Data
deprecated: true
operationId: postSurveysSyndicatedScores
responses:
'200':
$ref: '#/components/responses/PostSurveysSyndicatedScoresOutput'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/InternalServerError'
requestBody:
description: Request body for syndicated tracking score data
content:
application/json:
schema:
$ref: '#/components/schemas/PostSurveysSyndicatedScoresInput'
examples:
Example:
$ref: '#/components/examples/PostSyndicatedScoresInput'
ExampleWithEntity:
$ref: '#/components/examples/PostSyndicatedScoresInputWithEntity'
/surveys/syndicated/timeseries:
post:
summary: Get Syndicated Survey Timeseries Data
description: 'Deprecated. This endpoint will be sunset on October 1, 2026. Use the [/responses](#POST-postResponses) resource API for updated question response retrieval.
Get respondents data for a particular question. Every `question_id` included in the request body --- whether as the question of interest or within the `audience` parameter --- must be from the same country.'
tags:
- Data
deprecated: true
operationId: postSurveysSyndicatedTimeseries
responses:
'200':
$ref: '#/components/responses/PostSurveysSyndicatedTimeseriesOutput'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/InternalServerError'
requestBody:
description: Request body for syndicated tracking survey data
content:
application/json:
schema:
$ref: '#/components/schemas/PostSurveysSyndicatedTimeseriesInput'
examples:
Example:
$ref: '#/components/examples/PostSyndicatedTimeseriesInput'
/surveys/syndicated/timeseries/batch:
post:
summary: Submit a Batch Timeseries Request
description: 'Deprecated. This endpoint will be sunset on October 1, 2026. Use the [/responses](#POST-postResponses) resource API for updated response retrieval.
Submit a request to asynchronously generate timeseries data for one or more questions and audiences. 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 [/surveys/syndicated/timeseries/batch/{request_id}](#GET-getSurveysSyndicatedTimeseriesBatchStatus) endpoint. When the report is complete, a download URL will be provided to retrieve the data.'
tags:
- Data
deprecated: true
operationId: postSurveysSyndicatedTimeseriesBatch
responses:
'200':
$ref: '#/components/responses/PostResponsesBulkOutput'
'400':
$ref: '#/components/responses/BadRequestError'
'403':
$ref: '#/components/responses/ForbiddenError'
'500':
$ref: '#/components/responses/InternalServerError'
requestBody:
description: Request body for submitting a batch timeseries report
content:
application/json:
schema:
$ref: '#/components/schemas/PostSurveysSyndicatedTimeseriesBatchInput'
examples:
Example:
$ref: '#/components/examples/PostSurveysSyndicatedTimeseriesBatchInput'
/scores:
post:
summary: Get Scores for Timeseries Data
description: 'Get score data for a particular score against any data source you have access to. The `score_id` must be valid in the specified `data_source_id` and `country_code`. Every `question_id` included in the `audience` body must also be from the same `country_code`.
The `min_date` and `max_date` range is bounded to 10 years. When both are omitted, the range defaults to the last 10 years. If only one is provided, the request is rejected.'
tags:
- Data
operationId: postScores
responses:
'200':
$ref: '#/components/responses/PostScoresOutput'
'400':
$ref: '#/components/responses/BadRequestError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
requestBody:
description: Request body for score data
content:
application/json:
schema:
$ref: '#/components/schemas/PostScoresInput'
examples:
Example:
$ref: '#/components/examples/PostScoresInput'
ExampleWithEntity:
$ref: '#/components/examples/PostScoresInputWithEntity'
/responses:
post:
summary: Get Aggregated Question Responses Data
description: Get aggregated data for a requested question. The range between `min_date` and `max_date` must not exceed 10 years.
tags:
- Data
operationId: postResponses
responses:
'200':
$ref: '#/components/responses/PostResponsesOutput'
'400':
$ref: '#/components/responses/BadRequestError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
requestBody:
description: Request body for responses data
content:
application/json:
schema:
$ref: '#/components/schemas/PostResponsesInput'
examples:
Example:
$ref: '#/components/examples/PostResponsesInput'
/responses/bulk:
post:
summary: Submit a Bulk Responses Request
description: 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.
tags:
- Data
operationId: postResponsesBulk
responses:
'200':
$ref: '#/components/responses/PostResponsesBulkOutput'
'400':
$ref: '#/components/responses/BadRequestError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
requestBody:
description: Request body for submitting a bulk responses report
content:
application/json:
schema:
$ref: '#/components/schemas/PostResponsesBulkInput'
examples:
Example:
$ref: '#/components/examples/PostResponsesBulkInput'
/scores/bulk:
post:
summary: Submit a Bulk Scores Request
description: Submit a request to asynchronously generate timeseries score data for one or more named scores 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 [/scores/bulk/{request_id}](#GET-getScoresBulkStatus) endpoint. When the report is complete, a download URL will be provided to retrieve the data.
tags:
- Data
operationId: postScoresBulk
responses:
'200':
$ref: '#/components/responses/PostScoresBulkOutput'
'400':
$ref: '#/components/responses/BadRequestError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
requestBody:
description: Request body for submitting a bulk scores report
content:
application/json:
schema:
$ref: '#/components/schemas/PostScoresBulkInput'
examples:
Example:
$ref: '#/components/examples/PostScoresBulkInput'
components:
schemas:
PostSurveysSyndicatedTimeseriesInput:
type: object
additionalProperties: false
properties:
min_date:
$ref: '#/components/schemas/MinDate'
max_date:
$ref: '#/components/schemas/MaxDate'
audience:
$ref: '#/components/schemas/Audience'
aggregation:
$ref: '#/components/schemas/Aggregation'
question_id:
title: Question ID
type: string
format: uuid
description: 'The unique identifier for a question.
The question itself must have fewer than 100 predefined responses. You can get the number of responses for a question from the /surveys/syndicated/questions/{question_id} endpoint.'
example: a7ee637c-e5d1-4cf8-b484-8eb372f22941
required:
- question_id
MaxDate:
type: string
format: date
description: 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.
example: '2018-01-31'
pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
minLength: 10
maxLength: 10
PostResponsesBulkInput:
type: object
additionalProperties: false
properties:
data_source_id:
$ref: '#/components/schemas/DataSourceID'
country:
$ref: '#/components/schemas/CountryCode'
question_ids:
type: array
description: The unique identifiers for the questions to include in the report.
minItems: 1
items:
$ref: '#/components/schemas/QuestionID'
audiences:
type: object
description: 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.
additionalProperties:
$ref: '#/components/schemas/Audience'
min_date:
$ref: '#/components/schemas/MinDate'
max_date:
$ref: '#/components/schemas/MaxDate'
aggregation:
$ref: '#/components/schemas/BulkAggregation'
required:
- data_source_id
- country
- question_ids
- aggregation
ResponseID:
title: ResponseID
type: string
pattern: ^[0-9]+$
minLength: 0
maxLength: 100
description: Unique identifier for a question response. Response IDs are only unique within a question, and not across them.
example: '1'
PostScoresInput:
type: object
additionalProperties: false
properties:
data_source_id:
$ref: '#/components/schemas/DataSourceID'
min_date:
$ref: '#/components/schemas/MinDate'
max_date:
$ref: '#/components/schemas/MaxDate'
audience:
$ref: '#/components/schemas/Audience'
aggregation:
$ref: '#/components/schemas/Aggregation'
score_id:
$ref: '#/components/schemas/ScoreID'
country_code:
$ref: '#/components/schemas/CountryCode'
entity_id:
title: Entity ID
type: string
description: Entity ID to run the score against if an Entity ID is required.
example: avon
component_ids:
type: array
description: The component IDs to use when computing the score. Required for scores whose metadata lists `components` (for example "Price Surprise" and "Unavailability"). See [/scores](#GET-getScores) to discover the components available for a score.
items:
type: string
example:
- home_appliances
required:
- data_source_id
- score_id
- country_code
Audience:
title: Audience
type: object
description: 'The description of respondents considered in a request. Data in the response will be filtered to only include respondents who match the audience described in this parameter.
The `match` field specifies respondents that selected one or more particular response options for a question. The `and`, `or`, and `not` fields allow Boolean logic to be applied to matches. These logic fields can be nested as necessary to create audiences. See Workflow: Building a Custom Audience for an example.
The maximum number of conditions that can be used to build an audience in a single request is 20. This includes all nested conditions within `and`, `or`, and `not` fields.'
oneOf:
- $ref: '#/components/schemas/AudienceMatch'
- type: array
title: and
description: A list of audience definitions of which all must match.
items:
$ref: '#/components/schemas/Audience'
- type: array
title: or
description: A list of audience definitions of which at least one must match.
items:
$ref: '#/components/schemas/Audience'
- type: object
title: not
description: A list of audience definitions of which none must match.
allOf:
- $ref: '#/components/schemas/Audience'
DataPoint:
title: DataPoint
type: object
description: An individual data point representing a particular response.
example:
percent: 42.953760405946554
id: '2'
label: Somewhat Favorable
properties:
id:
$ref: '#/components/schemas/ResponseID'
label:
$ref: '#/components/schemas/ResponseLabel'
percent:
type: number
format: double
description: Numeric representation of the value associated with a response. This is the weighted percentage of respondents who chose the corresponding response to the requested question on the given date, or the date range if aggregated over an interval.
minimum: 0
maximum: 100
Aggregation:
title: Aggregation
type: object
description: '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.'
example:
interval: month
properties:
interval:
type: string
description: Interval to aggregate the data.
enum:
- day
- week
- month
- quarter
- year
- all
example: month
required:
- interval
PostSurveysSyndicatedScoresInput:
type: object
additionalProperties: false
properties:
min_date:
$ref: '#/components/schemas/MinDate'
max_date:
$ref: '#/components/schemas/MaxDate'
audience:
$ref: '#/components/schemas/Audience'
aggregation:
$ref: '#/components/schemas/Aggregation'
score_id:
$ref: '#/components/schemas/ScoreID'
country_code:
$ref: '#/components/schemas/CountryCode'
entity_id:
title: Entity ID
type: string
description: Entity ID to run the score against if an Entity ID is required.
example: avon
required:
- score_id
- country_code
PostSurveysSyndicatedTimeseriesBatchInput:
type: object
additionalProperties: false
properties:
country:
$ref: '#/components/schemas/CountryCode'
question_ids:
type: array
description: The unique identifiers for the questions to include in the report.
minItems: 1
items:
$ref: '#/components/schemas/QuestionID'
audiences:
type: object
description: 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.
additionalProperties:
$ref: '#/components/schemas/Audience'
min_date:
$ref: '#/components/schemas/MinDate'
max_date:
$ref: '#/components/schemas/MaxDate'
aggregation:
$ref: '#/components/schemas/BulkAggregation'
required:
- country
- question_ids
- aggregation
BulkAggregation:
title: BulkAggregation
type: string
description: '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.'
enum:
- day
- week
- month
- quarter
- year
example: month
AudienceMatch:
type: object
title: match
description: A question ID and the valid responses for that question. The `response_ids` are a list of IDs which the question must match one of in order for the response to be included in the final aggregation.
example:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '1'
- '2'
properties:
question_id:
$ref: '#/components/schemas/QuestionID'
response_ids:
type: array
description: 'The list of IDs which the question must match one of.
Response IDs can be found from the [/surveys/syndicated/questions](#GET-getSurveysSyndicatedQuestions) and [/surveys/syndicated/questions/{question_id}](#GET-getSurveysSyndicatedQuestionsByID) endpoints under the `responses[]` array.'
minItems: 1
maxItems: 100
uniqueItems: true
items:
$ref: '#/components/schemas/ResponseID'
required:
- question_id
- response_ids
ScoreDataPoint:
title: Score Data Point
type: object
description: Data point associated with a score.
example:
date: '2025-11-14'
score:
value: 43
total_n: 1550
properties:
date:
type: string
format: date
description: Date of the sample in YYYY-MM-DD format. For interval aggregations, this date represents the start date of that interval.
example: '2019-08-13'
pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
minLength: 10
maxLength: 10
score:
$ref: '#/components/schemas/ScoreDataPointValue'
total_n:
type: number
format: double
description: Weighted number of respondents for this data point.
minimum: 0
ScoreID:
title: Score ID
description: The unique identifier for a score.
type: string
format: uuid
example: 7fa7d4a5-8b79-462c-b9ae-03a0431cb5e5
ResponseLabel:
title: ResponseLabel
type: string
description: The full textual label for the response, as selected by a respondent.
example: Very Favorable
CountryCode:
title: CountryCode
description: 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.
type: string
example: us
pattern: ^[a-z]+
minLength: 2
maxLength: 2
PostScoresBulkOutput:
type: object
properties:
request_id:
type: string
format: uuid
description: The unique identifier for the bulk scores request. Use this ID to poll the status of the report via the [/scores/bulk/{request_id}](#GET-getScoresBulkStatus) endpoint.
example: b1a2c3d4-e5f6-7890-abcd-ef1234567890
PostScoresBulkInput:
type: object
additionalProperties: false
properties:
data_source_id:
$ref: '#/components/schemas/DataSourceID'
country:
$ref: '#/components/schemas/CountryCode'
scores:
type: object
description: A map of caller-defined score names to score selections. Each named score will appear as a separate series in the report output. Score names must be unique within a request.
minProperties: 1
additionalProperties:
$ref: '#/components/schemas/NamedScore'
audiences:
type: object
description: A map of audience names to audience definitions. Each named audience will produce a separate series in the report output. An empty audience object `{}` represents all respondents. If omitted, the report defaults to a single all-respondents series.
additionalProperties:
$ref: '#/components/schemas/Audience'
min_date:
$ref: '#/components/schemas/MinDate'
max_date:
$ref: '#/components/schemas/MaxDate'
aggregation:
$ref: '#/components/schemas/BulkAggregation'
required:
- data_source_id
- country
- scores
- aggregation
PostResponsesInput:
type: object
additionalProperties: false
properties:
data_source_id:
$ref: '#/components/schemas/DataSourceID'
question_id:
$ref: '#/components/schemas/QuestionID'
min_date:
$ref: '#/components/schemas/MinDate'
max_date:
$ref: '#/components/schemas/MaxDate'
audience:
$ref: '#/components/schemas/Audience'
aggregation:
$ref: '#/components/schemas/Aggregation'
required:
- data_source_id
- question_id
PostResponsesBulkOutput:
type: object
properties:
request_id:
type: string
format: uuid
description: 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.
example: b1a2c3d4-e5f6-7890-abcd-ef1234567890
DataSourceID:
title: Data Source ID
description: The unique identifier for a data source.
type: string
format: uuid
example: 00de2081-e013-411d-823c-cd483283e38d
NamedScore:
title: NamedScore
type: object
description: Selection of a single score, optionally bound to a specific entity and subset of components, to include in a bulk scores report.
additionalProperties: false
properties:
score_id:
$ref: '#/components/schemas/ScoreID'
entity_id:
type: string
description: Entity ID to run the score against if the score's entity type is set. See [/entities](#GET-getEntities) to discover the entities available for a country and data source.
example: nike
component_ids:
type: array
description: The component IDs to use when computing the score. Required for scores whose metadata lists `components` (for example "Price Surprise" and "Unavailability"). See [/scores](#GET-getScores) to discover the components available for a score.
items:
type: string
example:
- home_appliances
required:
- score_id
Error:
type: object
description: Error message.
additionalProperties: false
example:
code: 500
status: Internal Server Error
errors:
- Oops, something went wrong
properties:
code:
type: integer
description: Numeric HTTP status code.
example: 500
format: int32
minimum: 100
maximum: 599
status:
type: string
description: Text description of HTTP status code.
example: Internal Server Error
errors:
type: array
description: Messages describing errors.
items:
title: error
type: string
description: A specific error message.
example:
- Oops, something went wrong
QuestionID:
title: Question ID
description: The unique identifier for a question.
type: string
format: uuid
example: a7ee637c-e5d1-4cf8-b484-8eb372f22941
MinDate:
type: string
format: date
description: 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.
example: '2018-01-31'
pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
minLength: 10
maxLength: 10
TimeseriesDataPoint:
title: TimeseriesDataPoint
type: object
description: Data point associated with a single survey data trend.
example:
date: '2017-11-23'
responses:
- percent: 42.953760405946554
id: '1'
label: Very Favorable
- percent: 57.046239594053446
id: '2'
label: Somewhat Favorable
total_n: 1570
properties:
date:
type: string
format: date
description: Date of the sample in YYYY-MM-DD format. For interval aggregations, this date represents the start date of that interval.
example: '2019-08-13'
pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
minLength: 10
maxLength: 10
total_n:
type: number
format: double
description: Weighted number of respondents for this data point.
minimum: 0
responses:
type: array
description: Individual data points associated with a specific response.
items:
$ref: '#/components/schemas/DataPoint'
ScoreDataPointValue:
title: Score Data Point Value
type: object
description: Data point value associated with a score.
example:
value: 43
properties:
value:
type: number
format: double
description: Calculated score.
examples:
PostSyndicatedTimeseriesInput:
value:
min_date: '2018-01-01'
max_date: '2018-01-31'
audience:
and:
- match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '1'
- '2'
- or:
- match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '1'
- '2'
- match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '1'
- '2'
- not:
match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '1'
- '2'
question_id: a7ee637c-e5d1-4cf8-b484-8eb372f22941
aggregation:
interval: month
PostSyndicatedScoresInput:
value:
min_date: '2025-01-01'
max_date: '2025-01-31'
audience:
and:
- match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '1'
- '2'
- or:
- match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '1'
- '2'
- match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '1'
- '2'
- not:
match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '1'
- '2'
score_id: 48ef9961-1dc8-42d1-b03c-c480681bc732
aggregation:
interval: month
PostResponsesBulkOutput:
value:
request_id: b1a2c3d4-e5f6-7890-abcd-ef1234567890
PostScoresInputWithEntity:
value:
data_source_id: 00de2081-e013-411d-823c-cd483283e38d
min_date: '2025-01-01'
max_date: '2025-01-31'
score_id: 7fa7d4a5-8b79-462c-b9ae-03a0431cb5e5
country_code: us
entity_id: avon
PostResponsesBulkInput:
value:
data_source_id: 00de2081-e013-411d-823c-cd483283e38d
country: us
question_ids:
- a7ee637c-e5d1-4cf8-b484-8eb372f22941
- 29433f2b-3ea0-4214-ae8f-9ad09549c082
audiences:
women:
match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '2'
min_date: '2024-01-01'
max_date: '2024-12-31'
aggregation: month
PostResponsesInput:
value:
data_source_id: 00de2081-e013-411d-823c-cd483283e38d
question_id: a7ee637c-e5d1-4cf8-b484-8eb372f22941
min_date: '2018-01-01'
max_date: '2018-01-31'
audience:
and:
- match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '1'
- '2'
aggregation:
interval: month
PostScoresInput:
value:
data_source_id: 00de2081-e013-411d-823c-cd483283e38d
min_date: '2025-01-01'
max_date: '2025-01-31'
audience:
and:
- match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '1'
- '2'
score_id: 48ef9961-1dc8-42d1-b03c-c480681bc732
country_code: us
aggregation:
interval: month
PostSurveysSyndicatedTimeseriesBatchInput:
value:
country: us
question_ids:
- a7ee637c-e5d1-4cf8-b484-8eb372f22941
- 29433f2b-3ea0-4214-ae8f-9ad09549c082
audiences:
women:
match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '2'
min_date: '2024-01-01'
max_date: '2024-12-31'
aggregation: month
PostScoresBulkInput:
value:
data_source_id: 00de2081-e013-411d-823c-cd483283e38d
country: us
scores:
nike_net_favorability:
score_id: 6558ddce-af98-4867-bb84-3bf99342968c
entity_id: nike
audiences:
women:
match:
question_id: 29433f2b-3ea0-4214-ae8f-9ad09549c082
response_ids:
- '2'
min_date: '2024-01-01'
max_date: '2024-12-31'
aggregation: month
PostScoresBulkOutput:
value:
request_id: b1a2c3d4-e5f6-7890-abcd-ef1234567890
PostSyndicatedScoresInputWithEntity:
value:
min_date: '2025-01-01'
max_date: '2025-01-31'
score_id: 7fa7d4a5-8b79-462c-b9ae-03a0431cb5e5
entity_id: avon
responses:
PostScoresBulkOutput:
description: Bulk Scores Request Submitted
content:
application/json:
schema:
$ref: '#/components/schemas/PostScoresBulkOutput'
examples:
Example:
$ref: '#/components/examples/PostScoresBulkOutput'
headers:
X-Rate-Limit-Limit:
$ref: '#/components/headers/X-Rate-Limit-Limit'
X-Rate-Limit-Remaining:
$ref: '#/components/headers/X-Rate-Limit-Remaining'
X-Rate-Limit-Reset:
$ref: '#/components/headers/X-Rate-Limit-Reset'
BadRequestError:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
BadRequest:
description: Multiple Errors
value:
code: 400
status: Bad Request
errors:
- 'invalid value "uuu" for field "country_code": must be 2 characters'
- 'invalid value "not base64" for field "pagination_token": must be valid base64'
PageSize:
description: Invalid Page Size
value:
code: 400
status: Bad Request
errors:
- 'invalid value "1000" for field "page_size": must be maximum 100'
PostScoresOutput:
description: Score Data
content:
application/json:
schema:
type: object
properties:
scores:
type: array
description: An array of individual scores.
minItems: 0
items:
$ref: '#/components/schemas/ScoreDataPoint'
PostSurveysSyndicatedScoresOutput:
description: Score Data
content:
application/json:
schema:
type: object
properties:
scores:
type: array
description: An array of individual scores.
items:
$ref: '#/components/schemas/ScoreDataPoint'
NotFoundError:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
NotFound:
description: Not Found
value:
code: 404
status: Not Found
errors:
- Not Found
PostResponsesOutput:
description: Responses Data
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: An array of individual data points.
items:
$ref: '#/components/schemas/TimeseriesDataPoint'
example:
DataPoints:
description: Responses Data
value:
data:
- date: '2017-11-23'
responses:
- percent: 42.953760405946554
id: '1'
label: Very Favorable
- percent: 57.046239594053446
id: '2'
label: Somewhat Favorable
total_n: 1570
ForbiddenError:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Forbidden:
description: Forbidden
value:
code: 403
status: Forbidden
errors:
- missing necessary claims
PostSurveysSyndicatedTimeseriesOutput:
description: Trend Data
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: An array of individual data points.
items:
$ref: '#/components/schemas/TimeseriesDataPoint'
examples:
DataPoints:
description: Trend Data
value:
data:
- date: '2017-11-23'
responses:
- percent: 42.953760405946554
id: '1'
label: Very Favorable
- percent: 57.046239594053446
id: '2'
label: Somewhat Favorable
total_n: 1570
PostResponsesBulkOutput:
description: Bulk Responses Request Submitted
content:
application/json:
schema:
$ref: '#/components/schemas/PostResponsesBulkOutput'
examples:
Example:
$ref: '#/components/examples/PostResponsesBulkOutput'
headers:
X-Rate-Limit-Limit:
$ref: '#/components/headers/X-Rate-Limit-Limit'
X-Rate-Limit-Remaining:
$ref: '#/components/headers/X-Rate-Limit-Remaining'
X-Rate-Limit-Reset:
$ref: '#/components/headers/X-Rate-Limit-Reset'
InternalServerError:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InternalServerError:
description: Internal Server Error
value:
code: 500
status: Internal Server Error
errors:
- a server error occurred
headers:
X-Rate-Limit-Remaining:
description: The number of remaining requests in the current rate limit period.
schema:
type: integer
example: 179
X-Rate-Limit-Reset:
description: The time at which the rate limit resets, specified in UTC epoch time (in milliseconds).
schema:
type: integer
example: 1633538752414
X-Rate-Limit-Limit:
description: The rate limit ceiling that is applicable for the current request.
schema:
type: integer
example: 200
securitySchemes:
Basic:
type: http
scheme: basic
description: Username and password credentials for initial authentication.
JWT:
type: http
scheme: bearer
bearerFormat: JWT
description: JWT Bearer header authentication for performing regular requests.
RefreshToken:
type: http
scheme: bearer
description: Refresh Token bearer header authentication for renewing tokens.
x-dd-extra-monitors:
- "{\n \"name\": \"Henosis: MCP internal service errors on env:{{environment}}\",\n \"type\": \"trace-analytics alert\",\n \"query\": \"trace-analytics(\\\"service:henosis env:{{environment}} operation_name:http.request @span.kind:server @mcp.internal_error:true\\\").index(\\\"trace-search\\\", \\\"djm-search\\\").rollup(\\\"count\\\").last(\\\"5m\\\") > 0\",\n \"message\": \"Henosis MCP returned internal service errors in the last 5 minutes.\\n@pagerduty-henosis-mcp\",\n \"tags\": [\n \"henosis\",\n \"mcp\"\n ],\n \"options\": {\n \"thresholds\": {\n \"critical\": 0\n },\n \"notify_no_data\": false,\n \"include_tags\": true\n },\n \"priority\": 3\n}\n"