naftiko: 1.0.0-alpha2 info: label: TEGNA Media Advertising description: Unified media advertising capability for TEGNA, combining AudienceOne first-party digital targeting and Premion OTT/CTV streaming advertising. Enables advertisers, media buyers, and agency partners to plan, execute, and measure multi-screen campaigns across TEGNA's 64 local TV brands and Premion's premium streaming inventory in 51 U.S. markets. tags: - TEGNA - Media Advertising - Digital Advertising - OTT - CTV - Audience Targeting - Broadcasting created: '2026-05-03' modified: '2026-05-06' binds: - namespace: env keys: TEGNA_API_TOKEN: TEGNA_API_TOKEN PREMION_API_KEY: PREMION_API_KEY capability: consumes: - type: http namespace: tegna-audience-one baseUri: https://api.tegna.com/v1 description: TEGNA AudienceOne digital advertising API. authentication: type: bearer token: '{{TEGNA_API_TOKEN}}' resources: - name: audiences path: /audiences description: TEGNA first-party audience segments. operations: - name: list-audiences method: GET description: List available audience segments for targeting. inputParameters: - name: market in: query type: string required: false description: Filter by TEGNA market. - name: type in: query type: string required: false description: Audience type filter. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-audience method: GET description: Get details for a specific audience segment. inputParameters: - name: audienceId in: path type: string required: true description: Audience segment ID. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: campaigns path: /campaigns description: TEGNA advertising campaigns. operations: - name: list-campaigns method: GET description: List advertising campaigns. inputParameters: - name: status in: query type: string required: false description: Filter by campaign status. outputRawFormat: json outputParameters: - name: result type: array value: $. - name: create-campaign method: POST description: Create a new digital advertising campaign. body: type: json data: name: '{{tools.name}}' startDate: '{{tools.startDate}}' budget: '{{tools.budget}}' targetAudiences: '{{tools.targetAudiences}}' targetMarkets: '{{tools.targetMarkets}}' adFormats: '{{tools.adFormats}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-campaign method: GET description: Get details for a specific campaign. inputParameters: - name: campaignId in: path type: string required: true description: Campaign ID. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-campaign-performance method: GET description: Get performance metrics for a campaign. inputParameters: - name: campaignId in: path type: string required: true description: Campaign ID. - name: startDate in: query type: string required: false description: Start date for performance data. - name: endDate in: query type: string required: false description: End date for performance data. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: markets path: /markets description: TEGNA broadcast markets. operations: - name: list-markets method: GET description: List available TEGNA broadcast markets. outputRawFormat: json outputParameters: - name: result type: array value: $. - type: http namespace: tegna-premion baseUri: https://api.premion.com/v1 description: Premion OTT/CTV advertising platform API. authentication: type: apikey key: X-API-Key value: '{{PREMION_API_KEY}}' placement: header resources: - name: ott-campaigns path: /campaigns description: OTT/CTV advertising campaigns. operations: - name: list-ott-campaigns method: GET description: List OTT/CTV campaigns. inputParameters: - name: status in: query type: string required: false description: Filter by status. outputRawFormat: json outputParameters: - name: result type: array value: $. - name: create-ott-campaign method: POST description: Create a new OTT/CTV campaign. body: type: json data: name: '{{tools.name}}' startDate: '{{tools.startDate}}' budget: '{{tools.budget}}' targetPlatforms: '{{tools.targetPlatforms}}' impressionGoal: '{{tools.impressionGoal}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-ott-campaign method: GET description: Get OTT campaign details. inputParameters: - name: campaignId in: path type: string required: true description: Campaign ID. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-ott-campaign-performance method: GET description: Get OTT campaign streaming performance. inputParameters: - name: campaignId in: path type: string required: true description: Campaign ID. - name: startDate in: query type: string required: false description: Start date for performance data. - name: endDate in: query type: string required: false description: End date for performance data. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: inventory path: /inventory description: Available OTT/CTV advertising inventory. operations: - name: list-ott-inventory method: GET description: List available OTT inventory across streaming platforms. inputParameters: - name: platform in: query type: string required: false description: Filter by streaming platform. - name: genre in: query type: string required: false description: Filter by content genre. outputRawFormat: json outputParameters: - name: result type: array value: $. - name: creatives path: /creatives description: Video creative assets for OTT advertising. operations: - name: list-creatives method: GET description: List video creative assets. outputRawFormat: json outputParameters: - name: result type: array value: $. exposes: - type: rest port: 8080 namespace: tegna-media-api description: Unified REST API for TEGNA multi-screen media advertising. resources: - path: /v1/audiences name: audiences description: TEGNA first-party audience segments for targeting. operations: - method: GET name: list-audiences description: List available audience segments for campaign targeting. call: tegna-audience-one.list-audiences with: market: rest.market type: rest.type outputParameters: - type: object mapping: $. - path: /v1/campaigns name: campaigns description: TEGNA digital advertising campaigns. operations: - method: GET name: list-campaigns description: List digital advertising campaigns. call: tegna-audience-one.list-campaigns with: status: rest.status outputParameters: - type: array mapping: $. - method: POST name: create-campaign description: Create a digital advertising campaign. call: tegna-audience-one.create-campaign with: name: rest.name startDate: rest.startDate budget: rest.budget outputParameters: - type: object mapping: $. - path: /v1/campaigns/{campaignId}/performance name: campaign-performance description: Campaign performance metrics. operations: - method: GET name: get-campaign-performance description: Get digital campaign performance metrics. call: tegna-audience-one.get-campaign-performance with: campaignId: rest.campaignId startDate: rest.startDate endDate: rest.endDate outputParameters: - type: object mapping: $. - path: /v1/ott-campaigns name: ott-campaigns description: Premion OTT/CTV advertising campaigns. operations: - method: GET name: list-ott-campaigns description: List OTT/CTV advertising campaigns. call: tegna-premion.list-ott-campaigns with: status: rest.status outputParameters: - type: array mapping: $. - method: POST name: create-ott-campaign description: Create an OTT/CTV advertising campaign. call: tegna-premion.create-ott-campaign with: name: rest.name startDate: rest.startDate budget: rest.budget outputParameters: - type: object mapping: $. - path: /v1/ott-campaigns/{campaignId}/performance name: ott-performance description: OTT campaign streaming performance. operations: - method: GET name: get-ott-campaign-performance description: Get OTT/CTV campaign streaming performance. call: tegna-premion.get-ott-campaign-performance with: campaignId: rest.campaignId startDate: rest.startDate endDate: rest.endDate outputParameters: - type: object mapping: $. - path: /v1/inventory name: inventory description: Available OTT/CTV advertising inventory. operations: - method: GET name: list-ott-inventory description: Browse available OTT inventory. call: tegna-premion.list-ott-inventory with: platform: rest.platform genre: rest.genre outputParameters: - type: array mapping: $. - path: /v1/markets name: markets description: TEGNA local broadcast markets. operations: - method: GET name: list-markets description: List TEGNA broadcast markets. call: tegna-audience-one.list-markets outputParameters: - type: array mapping: $. - type: mcp port: 9090 namespace: tegna-media-mcp transport: http description: MCP server for AI-assisted TEGNA multi-screen media advertising. tools: - name: list-audience-segments description: List TEGNA AudienceOne first-party audience segments for campaign targeting. hints: readOnly: true call: tegna-audience-one.list-audiences with: market: tools.market type: tools.type outputParameters: - type: object mapping: $. - name: list-digital-campaigns description: List TEGNA AudienceOne digital advertising campaigns. hints: readOnly: true call: tegna-audience-one.list-campaigns with: status: tools.status outputParameters: - type: array mapping: $. - name: get-digital-campaign-performance description: Get performance metrics for a TEGNA digital advertising campaign. hints: readOnly: true call: tegna-audience-one.get-campaign-performance with: campaignId: tools.campaignId startDate: tools.startDate endDate: tools.endDate outputParameters: - type: object mapping: $. - name: list-broadcast-markets description: List TEGNA local TV broadcast markets available for campaign targeting. hints: readOnly: true call: tegna-audience-one.list-markets outputParameters: - type: array mapping: $. - name: list-ott-campaigns description: List Premion OTT/CTV streaming advertising campaigns. hints: readOnly: true call: tegna-premion.list-ott-campaigns with: status: tools.status outputParameters: - type: array mapping: $. - name: get-ott-campaign-performance description: Get streaming video performance metrics (impressions, completion rate, CPCV) for a Premion OTT campaign. hints: readOnly: true call: tegna-premion.get-ott-campaign-performance with: campaignId: tools.campaignId startDate: tools.startDate endDate: tools.endDate outputParameters: - type: object mapping: $. - name: list-ott-inventory description: Browse available OTT/CTV ad inventory across Roku, Hulu, Fire TV, and other streaming platforms. hints: readOnly: true call: tegna-premion.list-ott-inventory with: platform: tools.platform genre: tools.genre outputParameters: - type: array mapping: $. - name: create-ott-campaign description: Create a new OTT/CTV streaming video advertising campaign on Premion. hints: readOnly: false destructive: false call: tegna-premion.create-ott-campaign with: name: tools.name startDate: tools.startDate budget: tools.budget targetPlatforms: tools.targetPlatforms impressionGoal: tools.impressionGoal outputParameters: - type: object mapping: $.