TEGNA AudienceOne API

TEGNA AudienceOne is a first-party data targeting platform enabling advertisers to reach audiences across TEGNA's 64 local television brands in 51 markets using privacy-first targeting. The platform provides programmatic access to audience segments, campaign management, and performance analytics for digital, display, native, and pre-roll video advertising. Supports geofencing, retargeting, and precision targeting without third-party cookies.

OpenAPI Specification

tegna-audience-one-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: TEGNA AudienceOne API
  description: >-
    The TEGNA AudienceOne API enables advertisers to access TEGNA's first-party
    data targeting platform for digital advertising campaigns across TEGNA's 64
    local television brands in 51 U.S. markets. The platform provides audience
    segment management, campaign creation, creative management, and performance
    reporting for display, native, pre-roll video, and programmatic advertising.
  version: 1.0.0
  contact:
    url: https://www.tegna.com/advertise/solutions/digital/
  license:
    name: Proprietary
    url: https://www.tegna.com/
servers:
  - url: https://api.tegna.com/v1
    description: TEGNA AudienceOne API - Production
paths:
  /audiences:
    get:
      operationId: listAudiences
      summary: List Audiences
      description: Retrieve available audience segments for targeting in TEGNA campaigns.
      tags:
        - Audiences
      parameters:
        - name: market
          in: query
          description: Filter audiences by TEGNA market (DMA code or city name).
          required: false
          schema:
            type: string
        - name: type
          in: query
          description: Filter by audience segment type.
          required: false
          schema:
            type: string
            enum:
              - demographic
              - behavioral
              - contextual
              - geographic
              - first-party
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
        - name: pageSize
          in: query
          required: false
          schema:
            type: integer
            default: 25
      security:
        - bearerAuth: []
      responses:
        '200':
          description: A list of available audience segments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                  audiences:
                    type: array
                    items:
                      $ref: '#/components/schemas/AudienceSegment'
        '401':
          description: Unauthorized.
  /audiences/{audienceId}:
    get:
      operationId: getAudience
      summary: Get Audience
      description: Retrieve details about a specific audience segment.
      tags:
        - Audiences
      parameters:
        - name: audienceId
          in: path
          required: true
          schema:
            type: string
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Audience segment details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AudienceSegment'
        '404':
          description: Audience segment not found.
  /campaigns:
    get:
      operationId: listCampaigns
      summary: List Campaigns
      description: Retrieve advertising campaigns for the authenticated advertiser.
      tags:
        - Campaigns
      parameters:
        - name: status
          in: query
          description: Filter campaigns by status.
          required: false
          schema:
            type: string
            enum:
              - active
              - paused
              - completed
              - draft
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
        - name: pageSize
          in: query
          required: false
          schema:
            type: integer
            default: 25
      security:
        - bearerAuth: []
      responses:
        '200':
          description: A list of advertising campaigns.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Campaign'
    post:
      operationId: createCampaign
      summary: Create Campaign
      description: Create a new digital advertising campaign.
      tags:
        - Campaigns
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignCreate'
      responses:
        '201':
          description: Campaign created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '400':
          description: Invalid campaign data.
  /campaigns/{campaignId}:
    get:
      operationId: getCampaign
      summary: Get Campaign
      description: Retrieve details for a specific advertising campaign.
      tags:
        - Campaigns
      parameters:
        - name: campaignId
          in: path
          required: true
          schema:
            type: string
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Campaign details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '404':
          description: Campaign not found.
    put:
      operationId: updateCampaign
      summary: Update Campaign
      description: Update an existing advertising campaign.
      tags:
        - Campaigns
      parameters:
        - name: campaignId
          in: path
          required: true
          schema:
            type: string
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignCreate'
      responses:
        '200':
          description: Campaign updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
  /campaigns/{campaignId}/performance:
    get:
      operationId: getCampaignPerformance
      summary: Get Campaign Performance
      description: Retrieve performance metrics for a specific campaign.
      tags:
        - Reporting
      parameters:
        - name: campaignId
          in: path
          required: true
          schema:
            type: string
        - name: startDate
          in: query
          required: false
          schema:
            type: string
            format: date
        - name: endDate
          in: query
          required: false
          schema:
            type: string
            format: date
        - name: granularity
          in: query
          required: false
          schema:
            type: string
            enum:
              - daily
              - weekly
              - monthly
            default: daily
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Campaign performance metrics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PerformanceReport'
  /markets:
    get:
      operationId: listMarkets
      summary: List Markets
      description: Retrieve available TEGNA broadcast markets for campaign targeting.
      tags:
        - Markets
      security:
        - bearerAuth: []
      responses:
        '200':
          description: A list of TEGNA broadcast markets.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Market'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    AudienceSegment:
      type: object
      description: A targetable audience segment in TEGNA AudienceOne.
      properties:
        audienceId:
          type: string
          description: Unique identifier for the audience segment.
        name:
          type: string
          description: Display name of the audience segment.
        description:
          type: string
          description: Description of the audience segment.
        type:
          type: string
          enum:
            - demographic
            - behavioral
            - contextual
            - geographic
            - first-party
        size:
          type: integer
          description: Estimated reach of the audience segment.
        markets:
          type: array
          description: TEGNA markets where this segment is available.
          items:
            type: string
    Campaign:
      type: object
      description: A TEGNA AudienceOne digital advertising campaign.
      properties:
        campaignId:
          type: string
          description: Unique campaign identifier.
        name:
          type: string
          description: Campaign name.
        status:
          type: string
          enum:
            - active
            - paused
            - completed
            - draft
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        budget:
          type: number
          format: double
          description: Total campaign budget in USD.
        dailyBudget:
          type: number
          format: double
          description: Daily spend cap in USD.
        targetAudiences:
          type: array
          description: Audience segment IDs targeted by the campaign.
          items:
            type: string
        targetMarkets:
          type: array
          description: TEGNA market codes targeted by the campaign.
          items:
            type: string
        adFormats:
          type: array
          description: Ad formats used in the campaign.
          items:
            type: string
            enum:
              - display
              - native
              - pre-roll
              - mid-roll
              - connected-tv
    CampaignCreate:
      type: object
      required:
        - name
        - startDate
        - budget
      properties:
        name:
          type: string
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        budget:
          type: number
          format: double
        dailyBudget:
          type: number
          format: double
        targetAudiences:
          type: array
          items:
            type: string
        targetMarkets:
          type: array
          items:
            type: string
        adFormats:
          type: array
          items:
            type: string
    PerformanceReport:
      type: object
      description: Performance metrics for a TEGNA advertising campaign.
      properties:
        campaignId:
          type: string
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        impressions:
          type: integer
          description: Total impressions delivered.
        clicks:
          type: integer
          description: Total clicks.
        ctr:
          type: number
          format: double
          description: Click-through rate as a percentage.
        spend:
          type: number
          format: double
          description: Total spend in USD.
        completionRate:
          type: number
          format: double
          description: Video completion rate as a percentage (for video formats).
        reach:
          type: integer
          description: Unique users reached.
        dailyBreakdown:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
                format: date
              impressions:
                type: integer
              clicks:
                type: integer
              spend:
                type: number
    Market:
      type: object
      description: A TEGNA local broadcast market.
      properties:
        marketCode:
          type: string
          description: DMA market code.
        name:
          type: string
          description: Market name (e.g., Tampa Bay, Dallas).
        state:
          type: string
          description: Primary state.
        stations:
          type: array
          description: TEGNA television stations in this market.
          items:
            type: string
        monthlyReach:
          type: integer
          description: Estimated monthly audience reach.