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.
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.'
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.