Morning Consult Lookup API

Metadata information related to syndicated surveys.

Operations 17

GET /surveys/syndicated/countries Get Countries #
GET /surveys/syndicated/categories Get Categories #
GET /categories Get Categories #
GET /surveys/syndicated/entities Get Entities #
GET /surveys/syndicated/questions Get Questions #
GET /data_sources Get Data Sources #
GET /entities Get Entities #
GET /data_sources/{data_source_id}/countries/{country_code}/questions Get Questions #
GET /surveys/syndicated/questions/{question_id} Get a single question by its unique identifier #
GET /data_sources/{data_source_id}/countries/{country_code}/questions/{question_id} Get a single question by its unique identifier #
GET /surveys/syndicated/scores Get Scores #
GET /surveys/syndicated/scores/{score_id}/countries Get Countries for Score #
GET /surveys/syndicated/timeseries/batch/{request_id} Get Batch Timeseries Request Status #
GET /scores Get Scores #
GET /scores/{score_id}/data_sources Get Data Sources for Score #
GET /responses/bulk/{request_id} Get Bulk Responses Request Status #
GET /scores/bulk/{request_id} Get Bulk Scores Request Status #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/morning-consult-lookup-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

morning-consult-lookup-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Morning Consult Lookup 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: Lookup
  description: Metadata information related to syndicated surveys.
paths:
  /surveys/syndicated/countries:
    get:
      summary: Get Countries
      description: 'Deprecated. This endpoint will be sunset on October 1, 2026. Use the [/data_sources](#GET-getDataSources) resource API for updated data source and country discovery.

        Get available countries. The `country_code` parameter is required to browse categories and entities via the [/surveys/syndicated/categories](#GET-getSurveysSyndicatedCategories) and the [/surveys/syndicated/entities](#GET-getSurveysSyndicatedEntities) endpoints, respectively, and it can be included in the [/surveys/syndicated/questions](#GET-getSurveysSyndicatedQuestions) endpoint to filter questions to a specific country.

        If an expected country does not appear in the response body, reach out to your Account Executive to confirm your country-level access is properly configured.'
      deprecated: true
      operationId: getSurveysSyndicatedCountries
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetCountriesOutput'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /surveys/syndicated/categories:
    get:
      summary: Get Categories
      description: 'Deprecated. This endpoint will be sunset on October 1, 2026. Use the [/categories](#GET-getCategories) resource API for updated category discovery.

        Get question categories for a country. The categories can be used in the [/surveys/syndicated/entities](#GET-getSurveysSyndicatedEntities) and [/surveys/syndicated/questions](#GET-getSurveysSyndicatedQuestions) endpoints to filter entities and questions to a specific category.'
      deprecated: true
      operationId: getSurveysSyndicatedCategories
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetCategoriesOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - $ref: '#/components/parameters/country_code'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/pagination_token'
  /categories:
    get:
      summary: Get Categories
      description: Get question categories across all data sources the caller has access to. The categories can be used in metadata endpoints to filter entities and questions to a specific category.
      operationId: getCategories
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetCategoriesOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/pagination_token'
  /surveys/syndicated/entities:
    get:
      summary: Get Entities
      description: 'Deprecated. This endpoint will be sunset on October 1, 2026. Use the [/entities](#GET-getEntities) resource API for updated entity discovery.

        Search tracked entities (e.g., brands, products, public figures, issues) for a specific country. Queries are run against the `entity.label` field of all questions included in our syndicated surveys. Wildcard search is supported.'
      deprecated: true
      operationId: getSurveysSyndicatedEntities
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetEntitiesOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - $ref: '#/components/parameters/country_code'
      - $ref: '#/components/parameters/category_id'
      - $ref: '#/components/parameters/entity_type_id'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/query'
      - $ref: '#/components/parameters/pagination_token'
  /surveys/syndicated/questions:
    get:
      summary: Get Questions
      description: 'Deprecated. This endpoint will be sunset on October 1, 2026. Use the [/data_sources/{data_source_id}/countries/{country_code}/questions](#GET-getDataSourceQuestions) resource API for updated question discovery.

        Search questions. The ID field of each returned question can be used in the [/surveys/syndicated/timeseries](#POST-postSurveysSyndicatedTimeseries) endpoint as the question of interest or in the `audience` parameter to filter responses.'
      deprecated: true
      operationId: getSurveysSyndicatedQuestions
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetQuestionsOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - name: country_code
        in: query
        description: 'The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code used to filter results.

          The available countries can be retrieved from the [/surveys/syndicated/countries](#GET-getSurveysSyndicatedCountries) endpoint.'
        schema:
          $ref: '#/components/schemas/CountryCode'
      - $ref: '#/components/parameters/category_id'
      - $ref: '#/components/parameters/entity_id'
      - $ref: '#/components/parameters/query'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/pagination_token'
  /data_sources:
    get:
      summary: Get Data Sources
      description: 'Get the data sources the caller has access to. The `id` of each data source can be used in other endpoints (e.g. [/data_sources/{data_source_id}/countries/{country_code}/questions](#GET-getDataSourceQuestions)) to scope requests to a particular data source.

        Data sources the caller does not have access to are not returned. If an expected data source is missing, reach out to your Account Executive to confirm your entitlements are properly configured.'
      operationId: getDataSources
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetDataSourcesOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/pagination_token'
  /entities:
    get:
      summary: Get Entities
      description: List tracked entities (e.g., brands, products, public figures, issues).
      operationId: getEntities
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetEntitiesOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - $ref: '#/components/parameters/data_source_id_query'
      - $ref: '#/components/parameters/country_code'
      - $ref: '#/components/parameters/category_id'
      - $ref: '#/components/parameters/entity_type_id'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/query'
      - $ref: '#/components/parameters/pagination_token'
  /data_sources/{data_source_id}/countries/{country_code}/questions:
    get:
      summary: Get Questions
      description: Get questions for a data source and country.
      operationId: getDataSourceQuestions
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetDataSourceQuestionsOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - $ref: '#/components/parameters/data_source_id'
      - $ref: '#/components/parameters/path_country_code'
      - $ref: '#/components/parameters/category_id'
      - $ref: '#/components/parameters/entity_id'
      - $ref: '#/components/parameters/query'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/pagination_token'
  /surveys/syndicated/questions/{question_id}:
    get:
      summary: Get a single question by its unique identifier
      description: 'Deprecated. This endpoint will be sunset on October 1, 2026. Use the [/data_sources/{data_source_id}/countries/{country_code}/questions/{question_id}](#GET-getDataSourceQuestion) resource API for updated question lookup.

        Retrieve all information associated with a `question_id`. This endpoint can be leveraged to get the human readable information associated with a previously obtained ID.'
      deprecated: true
      operationId: getSurveysSyndicatedQuestionsByID
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetQuestionByIDOutput'
        '400':
          $ref: '#/components/responses/InvalidQuestionIDError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - name: question_id
        in: path
        required: true
        description: The question ID to get
        example: 1820851b-a527-4395-9529-f4da16de36a7
        schema:
          $ref: '#/components/schemas/QuestionID'
  /data_sources/{data_source_id}/countries/{country_code}/questions/{question_id}:
    get:
      summary: Get a single question by its unique identifier
      description: Retrieve all information associated with a question within a specific data source and country.
      operationId: getDataSourceQuestion
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetDataSourceQuestionOutput'
        '400':
          $ref: '#/components/responses/InvalidQuestionIDError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - $ref: '#/components/parameters/data_source_id'
      - $ref: '#/components/parameters/path_country_code'
      - name: question_id
        in: path
        required: true
        description: The question ID to get.
        example: 1820851b-a527-4395-9529-f4da16de36a7
        schema:
          $ref: '#/components/schemas/QuestionID'
  /surveys/syndicated/scores:
    get:
      summary: Get Scores
      description: 'Deprecated. This endpoint will be sunset on October 1, 2026. Use the [/scores](#GET-getScores) resource API for updated score discovery.

        Search scores (e.g., Net Favorability, NPS, ICS). Scores can be used in the [/surveys/syndicated/scores](#POST-postSurveysSyndicatedScores) endpoint as the score of interest.'
      deprecated: true
      operationId: getSurveysSyndicatedScores
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetScoresOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - name: country_code
        in: query
        description: 'The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code used to filter results.

          The available countries can be retrieved from the [/surveys/syndicated/countries](#GET-getSurveysSyndicatedCountries) endpoint.'
        schema:
          $ref: '#/components/schemas/CountryCode'
      - $ref: '#/components/parameters/query'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/pagination_token'
  /surveys/syndicated/scores/{score_id}/countries:
    get:
      summary: Get Countries for Score
      description: 'Deprecated. This endpoint will be sunset on October 1, 2026. Use the [/scores/{score_id}/data_sources](#GET-getScoreDataSources) resource API for updated score availability discovery.

        Not all scores are valid in all countries. This returns the list of countries a specific score is valid in.'
      deprecated: true
      operationId: getSurveysSyndicatedScoreCountries
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetScoreCountriesOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - name: score_id
        in: path
        required: true
        description: The score ID to get countries for
        example: 48ef9961-1dc8-42d1-b03c-c480681bc732
        schema:
          $ref: '#/components/schemas/ScoreID'
  /surveys/syndicated/timeseries/batch/{request_id}:
    get:
      summary: Get Batch Timeseries Request Status
      description: 'Deprecated. This endpoint will be sunset on October 1, 2026. Use the [/responses](#POST-postResponses) resource API for updated response retrieval.

        Get the status of a previously submitted batch timeseries report request. When the report is complete, the response will include a `download_url` that can be used to download the report data.'
      tags:
      - Lookup
      deprecated: true
      operationId: getSurveysSyndicatedTimeseriesBatchStatus
      responses:
        '200':
          $ref: '#/components/responses/GetResponsesBulkStatusOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - name: request_id
        in: path
        required: true
        description: The request ID returned from the batch timeseries request.
        example: b1a2c3d4-e5f6-7890-abcd-ef1234567890
        schema:
          type: string
          format: uuid
  /scores:
    get:
      summary: Get Scores
      description: 'Search scores (e.g., Net Favorability, NPS, ICS) across the data sources you have access to. Supply the optional `data_source_id` parameter to restrict results to a specific data source.

        Scores are universal: a given score ID is applicable to any data source where it can be calculated. To discover which data sources a score is valid in, use the [/scores/{score_id}/data_sources](#GET-getScoreDataSources) endpoint.'
      operationId: getScores
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetScoresOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - $ref: '#/components/parameters/data_source_id_query'
      - name: country_code
        in: query
        description: The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code used to filter results.
        schema:
          $ref: '#/components/schemas/CountryCode'
      - $ref: '#/components/parameters/query'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/pagination_token'
  /scores/{score_id}/data_sources:
    get:
      summary: Get Data Sources for Score
      description: Scores are not available in every data source, nor in every country within a given data source. This endpoint returns the list of data sources a score is available in, along with the countries the score can be calculated in for each data source.
      operationId: getScoreDataSources
      tags:
      - Lookup
      responses:
        '200':
          $ref: '#/components/responses/GetScoreDataSourcesOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - name: score_id
        in: path
        required: true
        description: The score ID to get data sources for.
        example: 48ef9961-1dc8-42d1-b03c-c480681bc732
        schema:
          $ref: '#/components/schemas/ScoreID'
  /responses/bulk/{request_id}:
    get:
      summary: Get Bulk Responses Request Status
      description: Get the status of a previously submitted bulk responses report request. When the report is complete, the response will include a `download_url` that can be used to download the report data.
      tags:
      - Lookup
      operationId: getResponsesBulkStatus
      responses:
        '200':
          $ref: '#/components/responses/GetResponsesBulkStatusOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - name: request_id
        in: path
        required: true
        description: The request ID returned from the bulk responses request.
        example: b1a2c3d4-e5f6-7890-abcd-ef1234567890
        schema:
          type: string
          format: uuid
  /scores/bulk/{request_id}:
    get:
      summary: Get Bulk Scores Request Status
      description: Get the status of a previously submitted bulk scores report request. When the report is complete, the response will include a `download_url` that can be used to download the report data.
      tags:
      - Lookup
      operationId: getScoresBulkStatus
      responses:
        '200':
          $ref: '#/components/responses/GetScoresBulkStatusOutput'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      parameters:
      - name: request_id
        in: path
        required: true
        description: The request ID returned from the bulk scores request.
        example: b1a2c3d4-e5f6-7890-abcd-ef1234567890
        schema:
          type: string
          format: uuid
components:
  parameters:
    query:
      name: query
      in: query
      required: false
      description: Terms to search. This parameter supports partial matching, normalization, and other common search features.
      schema:
        type: string
        example: Morning Consult
        minLength: 3
        maxLength: 100
    entity_type_id:
      name: entity_type_id
      in: query
      required: false
      description: An entity type ID to filter results.
      schema:
        type: string
        example: favorability
        pattern: ^[A-Za-z0-9_]+
        minLength: 1
        maxLength: 100
    path_country_code:
      name: country_code
      in: path
      required: true
      description: 'The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code to retrieve questions for.

        The available countries can be retrieved from the [/surveys/syndicated/countries](#GET-getSurveysSyndicatedCountries) endpoint.'
      schema:
        $ref: '#/components/schemas/CountryCode'
    page_size:
      name: page_size
      in: query
      required: false
      description: The number of results to return per request. Additional results past the page size can be retrieved using a pagination token, if one is returned in the response.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        format: int32
        default: 50
        example: 50
    pagination_token:
      name: pagination_token
      in: query
      required: false
      description: 'Pagination token returned from previous calls to an endpoint. When provided, no other query parameters can be specified.

        For more details, please see the [Pagination](#pagination) section.'
      schema:
        $ref: '#/components/schemas/PaginationToken'
    data_source_id:
      name: data_source_id
      in: path
      required: true
      description: The data source UUID to retrieve questions for.
      schema:
        $ref: '#/components/schemas/DataSourceID'
    data_source_id_query:
      name: data_source_id
      in: query
      required: false
      description: A data source UUID to filter results. When omitted, results include records across every data source you have access to.
      schema:
        type: string
        format: uuid
        example: 00de2081-e013-411d-823c-cd483283e38d
    country_code:
      name: country_code
      in: query
      required: true
      description: 'The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code used to filter results.

        The available countries can be retrieved from the [/surveys/syndicated/countries](#GET-getSurveysSyndicatedCountries) endpoint.'
      schema:
        $ref: '#/components/schemas/CountryCode'
    category_id:
      name: category_id
      in: query
      required: false
      description: 'A category ID to filter results.

        Available categories can be retrieved from the [/surveys/syndicated/categories](#GET-getSurveysSyndicatedCategories) endpoint.'
      schema:
        type: string
        pattern: ^[a-zA-Z]+
        minLength: 1
        maxLength: 100
        example: brand
    entity_id:
      name: entity_id
      in: query
      required: false
      description: 'An entity ID to filter results.

        Available entities can be retrieved from the [/surveys/syndicated/entities](#GET-getSurveysSyndicatedEntities) endpoint.'
      schema:
        type: string
        example: morning_consult
        pattern: ^[A-Za-z0-9_]+
        minLength: 1
        maxLength: 100
  examples:
    GetScoresBulkStatusOutputProcessing:
      value:
        request_id: b1a2c3d4-e5f6-7890-abcd-ef1234567890
        status: processing
    Question:
      description: Question
      value:
        id: cbaad021-12b7-5cd2-9a0f-3ed556946d0d
        label: Avon Usage Frequency
        text: How often do you use or purchase something from the following? --- Avon
        country:
          code: fr
          label: France
        category:
          id: brand
          label: Brand
        responses:
        - id: '1'
          label: Several times a day
        - id: '2'
          label: About once a day
        - id: '3'
          label: A few times a week
        - id: '4'
          label: About once a week
        - id: '5'
          label: About once a month or less often
        - id: '6'
          label: I do not have an account or do not use
        entity:
          id: avon
          label: Avon
    GetResponsesBulkStatusOutputProcessing:
      value:
        request_id: b1a2c3d4-e5f6-7890-abcd-ef1234567890
        status: processing
    GetScoresBulkStatusOutputComplete:
      value:
        request_id: b1a2c3d4-e5f6-7890-abcd-ef1234567890
        status: complete
        download_url: https://example.com/report.parquet
        expires_at: '2025-01-01T12:00:00Z'
    Questions:
      description: Questions
      value:
        pagination_token: eyJxdWVyeSI6ImRvZ3MifQ==
        questions:
        - id: cbaad021-12b7-5cd2-9a0f-3ed556946d0d
          label: Avon Usage Frequency
          text: How often do you use or purchase something from the following? --- Avon
          country:
            code: fr
            label: France
          category:
            id: brand
            label: Brand
          responses:
          - id: '1'
            label: Several times a day
          - id: '2'
            label: About once a day
          - id: '3'
            label: A few times a week
          - id: '4'
            label: About once a week
          - id: '5'
            label: About once a month or less often
          - id: '6'
            label: I do not have an account or do not use
          entity:
            id: avon
            label: Avon
    GetResponsesBulkStatusOutputComplete:
      value:
        request_id: b1a2c3d4-e5f6-7890-abcd-ef1234567890
        status: complete
        download_url: https://example.com/report.parquet
        expires_at: '2025-01-01T12:00:00Z'
    DataSourceQuestion:
      description: Question
      value:
        id: cbaad021-12b7-5cd2-9a0f-3ed556946d0d
        label: Avon Usage Frequency
        text: How often do you use or purchase something from the following? --- Avon
        data_source_id: 00de2081-e013-411d-823c-cd483283e38d
        country:
          code: fr
          label: France
        category:
          id: brand
          label: Brand
        responses:
        - id: '1'
          label: Several times a day
        - id: '2'
          label: About once a day
        - id: '3'
          label: A few times a week
        - id: '4'
          label: About once a week
        - id: '5'
          label: About once a month or less often
        - id: '6'
          label: I do not have an account or do not use
        entity:
          id: avon
          label: Avon
    DataSourceQuestions:
      description: Questions
      value:
        pagination_token: eyJxdWVyeSI6ImRvZ3MifQ==
        questions:
        - id: cbaad021-12b7-5cd2-9a0f-3ed556946d0d
          label: Avon Usage Frequency
          text: How often do you use or purchase something from the following? --- Avon
          data_source_id: 00de2081-e013-411d-823c-cd483283e38d
          country:
            code: fr
            label: France
          category:
            id: brand
            label: Brand
          responses:
          - id: '1'
            label: Several times a day
          - id: '2'
            label: About once a day
          - id: '3'
            label: A few times a week
          - id: '4'
            label: About once a week
          - id: '5'
            label: About once a month or less often
          - id: '6'
            label: I do not have an account or do not use
          entity:
            id: avon
            label: Avon
  responses:
    GetQuestionByIDOutput:
      description: Single Question
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Question'
          examples:
            question:
              $ref: '#/components/examples/Question'
      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'
    InvalidQuestionIDError:
      description: Invalid Question ID
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            InvalidQuestionID:
              description: Invalid Question ID
              value:
                code: 400
                status: Bad Request
                errors:
                - Invalid question id
    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'
    GetQuestionsOutput:
      description: Questions
      content:
        application/json:
          schema:
            type: object
            properties:
              pagination_token:
                $ref: '#/components/schemas/PaginationToken'
              questions:
                type: array
                description: A list of questions with data available.
                items:
                  $ref: '#/components/schemas/Question'
          examples:
            questions:
              $ref: '#/components/examples/Questions'
      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'
    GetScoresBulkStatusOutput:
      description: Bulk Scores Request Status
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetScoresBulkStatusOutput'
          examples:
            Processing:
              $ref: '#/components/examples/GetScoresBulkStatusOutputProcessing'
            Complete:
              $ref: '#/components/examples/GetScoresBulkStatusOutputComplete'
      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'
    GetScoresOutput:
      description: Scores
      content:
        application/json:
          schema:
            type: object
            properties:
              scores:
                type: array
                description: A list of countries the score is valid in.
                items:
                  $ref: '#/components/schemas/Score'
              pagination_token:
                $ref: '#/components/schemas/PaginationToken'
          examples:
            Example:
              description: Score
              value:
                scores:
                - id: 7fa7d4a5-8b79-462c-b9ae-03a0431cb5e5
                  label: Net Promoter Score
                  description: Net Promoter Score is the NPS Promoters score minus the NPS Detractors score.
                  entity_type:
                    id: brand
                    label: Brand
                - id: 48ef9961-1dc8-42d1-b03c-c480681bc732
                  label: Index of Consumer Sentiment (ICS)
                  description: The Index of Consumer Sentiment (ICS) is a composite score that measures consumer confidence based on economic outlook questions.
                pagination_token: eyJxdWVyeSI6ImRvZ3MifQ==
      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'
    GetDataSourceQuestionsOutput:
      description: Questions
      content:
        application/json:
          schema:
            type: object
            description: A paginated list of questions across accessible data sources.
            required:
            - questions
            properties:
              pagination_token:
                $ref: '#/components/schemas/PaginationToken'
              questions:
                type: array
                description: A list of questions with data available.
                items:
                  $ref: '#/components/schemas/DataSourceQuestion'
          examples:
            questions:
              $ref: '#/components/examples/DataSourceQuestions'
      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'
    GetDataSourcesOutput:
      description: Data Sources
      content:
        application/json:
          schema:
            type: object
            required:
            - data_sources
            properties:
             

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/morning-consult/refs/heads/main/openapi/morning-consult-lookup-api-openapi.yml