MNTN · OpenAPI Overlay 1.0.0

API Evangelist enrichment overlay for the MNTN Performance TV API

6 actions 6 updates update extends https://api.mountain.com/openapi.json
Generated by API Evangelist Written by API Evangelist tooling for MNTN's API. It is a proposal applied on top of the contract, not a document MNTN publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-consequencex-agent-guidancex-apis-io-slugx-artifactsx-gaps

Targets 5

$.info
$.servers
$.paths['/api/v1/campaigns/{id}/launch'].post
$.paths['/api/v1/campaigns'].post
$.paths['/api/v1/campaigns/{id}'].delete

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enrichment overlay for the MNTN Performance TV API
  version: 1.0.0
extends: https://api.mountain.com/openapi.json
x-generated: '2026-08-12'
x-method: generated
x-source: >-
  openapi/_original/mntn-ptv-openapi.json plus the API Evangelist artifacts in this repo. Records
  API Evangelist's enhancements without mutating the provider's published specification.
actions:
- target: $.info
  description: Attach provenance and the API Evangelist artifact map.
  update:
    x-apis-io-slug: mntn
    x-artifacts:
      authentication: authentication/mntn-authentication.yml
      conventions: conventions/mntn-conventions.yml
      errors: errors/mntn-problem-types.yml
      lifecycle: lifecycle/mntn-lifecycle.yml
      rate_limits: rate-limits/mntn-rate-limits.yml
      data_model: data-model/mntn-data-model.yml
      conformance: conformance/mntn-conformance.yml
      skills: skills/_index.yml
- target: $.servers
  description: >-
    Record the observed host facts. The published server https://api.mountain.com/ptv is left intact.
  update:
  - url: https://api.mountain.com/ptv
    description: API gateway
    x-observed:
      gateway: istio-envoy
      anonymous_paths: [/openapi.json, /openapi.yaml, /docs]
      unauthenticated_response: '401 {"error":"Authentication required"}'
- target: $.info
  description: >-
    Record the gaps API Evangelist found, so a consumer sees them next to the contract.
  update:
    x-gaps:
      idempotency: >-
        No Idempotency-Key on any of the 11 state-changing POST operations, including campaigns.launch
        and campaigns.create, which commit advertising budget.
      error_semantics: >-
        78 of 85 operations declare only a bare `default` response with no error schema. The sibling
        reporting API on api3.mountain.com returns RFC 9457 problem+json; this surface does not.
      rate_limit_headers: >-
        No response headers are declared on any operation, so no rate-limit or retry signal is
        machine-readable.
      deprecation_signalling: >-
        A real deprecation exists (reporting API 1.0, sunset 2026-04-01) but is announced only in the
        help center; no Sunset or Deprecation header and no deprecated:true anywhere in the spec.
      examples: No request or response examples are declared in the specification.
- target: $.paths['/api/v1/campaigns/{id}/launch'].post
  description: Flag the highest-consequence operation for agent use.
  update:
    x-consequence: spends-budget
    x-agent-guidance: >-
      Launching a campaign commits advertising spend. There is no idempotency key, so a retry after a
      timeout can launch twice. Confirm state with campaigns.get before retrying.
- target: $.paths['/api/v1/campaigns'].post
  description: Flag campaign creation for agent use.
  update:
    x-consequence: creates-billable-object
    x-agent-guidance: >-
      Validate budget type, goal and objective against the reference endpoints
      (reference.listBudgetTypes, reference.listGoalTypes, reference.listCampaignObjectives) before
      creating. No idempotency key is available.
- target: $.paths['/api/v1/campaigns/{id}'].delete
  description: Flag the destructive operation.
  update:
    x-consequence: destructive
    x-agent-guidance: 'Archives the campaign. No published undo path.'