Morning Consult · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Morning Consult API

13 actions 13 updates update extends openapi/morning-consult-openapi-original.yml
Generated by API Evangelist Written by API Evangelist tooling for Morning Consult's API. It is a proposal applied on top of the contract, not a document Morning Consult publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-rate-limit-bucketx-apievangelist-rate-limitx-apievangelist-sunsetx-apievangelist-replacementx-apievangelist-asyncx-apievangelist-poll-operationx-apievangelist-result-formatx-apievangelist-provider

Targets 12

$.info
$.servers
$.components.securitySchemes.JWT
$.paths['/responses'].post
$.paths['/scores'].post
$.paths['/responses/bulk'].post
$.paths['/scores/bulk'].post
$.paths['/ai/resolve'].post
$.paths['/auth/token'].post
$.paths['/surveys/syndicated/timeseries'].post
$.paths['/surveys/syndicated/scores'].post
$.paths['/surveys/syndicated/timeseries/batch'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Morning Consult API
  version: 1.0.0
extends: openapi/morning-consult-openapi-original.yml
x-generated: '2026-08-01'
x-method: generated
x-source: >-
  Derived from the verbatim spec at https://api.morningconsult.com/openapi.yaml plus the
  published documentation at https://api.morningconsult.com/docs/. Captures API
  Evangelist annotations without mutating the harvested original.
actions:
- target: $.info
  update:
    x-apievangelist-provider: morning-consult
    x-apievangelist-artifacts:
      authentication: authentication/morning-consult-authentication.yml
      conventions: conventions/morning-consult-conventions.yml
      errors: errors/morning-consult-problem-types.yml
      lifecycle: lifecycle/morning-consult-lifecycle.yml
      rate_limits: rate-limits/morning-consult-rate-limits.yml
      data_model: data-model/morning-consult-data-model.yml
      conformance: conformance/morning-consult-conformance.yml
      examples: examples/morning-consult-examples.yml
      skills: skills/_index.yml
    x-apievangelist-notes: >-
      HTTP 429 is documented in the published error table and enforced with
      X-Rate-Limit-* headers, but is not declared as a response on any operation in the
      original spec. No Sunset/Deprecation response headers are declared even though a
      dated deprecation policy exists (sunset 2026-10-01).
- target: $.info
  update:
    x-apievangelist-docs: https://api.morningconsult.com/docs/
    x-apievangelist-support: api-support@morningconsult.com
- target: $.servers
  update:
  - url: https://api.morningconsult.com/v1
    description: Version 1 API
    x-apievangelist-spec-url: https://api.morningconsult.com/openapi.yaml
- target: $.components.securitySchemes.JWT
  update:
    x-apievangelist-token-lifetime-seconds: 3600
    x-apievangelist-obtained-from: POST /auth/token
- target: $.paths['/responses'].post
  update:
    x-apievangelist-rate-limit-bucket: Data
    x-apievangelist-rate-limit: 200/minute
- target: $.paths['/scores'].post
  update:
    x-apievangelist-rate-limit-bucket: Data
    x-apievangelist-rate-limit: 200/minute
- target: $.paths['/responses/bulk'].post
  update:
    x-apievangelist-rate-limit-bucket: Data Bridge
    x-apievangelist-rate-limit: 100/day
    x-apievangelist-async: submit-then-poll
    x-apievangelist-poll-operation: getResponsesBulkStatus
    x-apievangelist-result-format: parquet
- target: $.paths['/scores/bulk'].post
  update:
    x-apievangelist-rate-limit-bucket: Data Bridge
    x-apievangelist-async: submit-then-poll
    x-apievangelist-poll-operation: getScoresBulkStatus
    x-apievangelist-result-format: parquet
- target: $.paths['/ai/resolve'].post
  update:
    x-apievangelist-rate-limit-bucket: AI
    x-apievangelist-rate-limit: 20 per 5-minute window
    x-apievangelist-latency: typically ~10s, up to ~20s for complex queries
- target: $.paths['/auth/token'].post
  update:
    x-apievangelist-rate-limit-bucket: Auth
    x-apievangelist-rate-limit: 20/minute per username (1/second); refresh 30/minute
- target: $.paths['/surveys/syndicated/timeseries'].post
  update:
    x-apievangelist-sunset: '2026-10-01'
    x-apievangelist-replacement: postResponses
- target: $.paths['/surveys/syndicated/scores'].post
  update:
    x-apievangelist-sunset: '2026-10-01'
    x-apievangelist-replacement: postScores
- target: $.paths['/surveys/syndicated/timeseries/batch'].post
  update:
    x-apievangelist-sunset: '2026-10-01'
    x-apievangelist-replacement: postResponsesBulk