openapi: 3.0.0
info:
  title: Vistar Media Marketplace SSP API
  description: >
    The Vistar Media Marketplace SSP API enables developers to programmatically
    interact with Vistar's SSP outside of the web application. It enables Media
    Owners to build system integrations and automations.


    For authentication, rate limiting, and other general usage information,
    please see our [getting started
    documentation](https://developers.vistarmedia.com/getting-started).
servers:
  - url: https://staging-platform-api.vistarmedia.com
    description: Staging
  - url: https://platform-api.vistarmedia.com
    description: Production
security:
  - cookieAuthStaging: []
  - cookieAuthProd: []
tags:
  - name: Creatives
    description: >
      The Creative resource represents a specific creative provided by a buyer
      that targets one of your Networks.


      Your approval status of the Creative is in the `audit` object within the
      Creative.


      The API allows you to list and retrieve Creatives and update their `audit`
      values.


      Creatives can be categorized using IAB categories and your own custom
      Tags. The Creative Category and Tag endpoints allow you to discover ids to
      use when updating Creatives. You can also create new Tags.


      You can also access a Creative's assets and associated Campaign
      information.
  - name: Advertisers
    description: >
      An Advertiser is a company that runs a campaign.


      You can use the Advertiser APIs to resolve the `advertiser_id` on a
      Creative to a human-readable name.
  - name: Bidders
    description: >
      A Bidder is a DSP where a campaign originated.


      You can use the Bidder APIs to resolve the `bidder_id` on a Creative to a
      human-readable name.
  - name: Networks
    description: >
      A Network is a Media Owner's venue collection. You can use the Network
      APIs to list your Networks.
  - name: Seats
    description: >
      A Seat is buyer of a Campaign.


      You can use the Seat APIs to resolve the `seat_id` on a Creative to a
      human-readable name.
paths:
  /advertisers:
    get:
      summary: List Advertisers
      description: List all Advertisers
      operationId: SSP_ListAdvertisers
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.ListAdvertisersResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: page_size
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: order
          in: query
          required: false
          schema:
            type: string
          description: 'Supported order fields: `name`'
        - name: asc
          in: query
          required: false
          schema:
            type: boolean
        - name: filter
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported filter fields: `id`'
        - name: search
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported search fields: `name`'
      tags:
        - Advertisers
  /advertisers/{id}:
    get:
      summary: Get Advertiser by ID
      description: Get an Advertiser by ID
      operationId: SSP_GetAdvertiser
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.Advertiser'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      tags:
        - Advertisers
  /bidders:
    get:
      summary: List Bidders
      description: List all Bidders
      operationId: SSP_ListBidders
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.ListBiddersResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: page_size
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: order
          in: query
          required: false
          schema:
            type: string
          description: 'Supported order fields: `name`'
        - name: asc
          in: query
          required: false
          schema:
            type: boolean
        - name: filter
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported filter fields: `id`'
        - name: search
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported search fields: `name`'
      tags:
        - Bidders
  /bidders/{id}:
    get:
      summary: Get Bidder by ID
      description: Get a Bidder by ID
      operationId: SSP_GetBidder
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.Bidder'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      tags:
        - Bidders
  /creative_categories:
    get:
      summary: List Creative Categories
      description: List all Creative Categories
      operationId: SSP_ListCreativeCategories
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.ListCreativeCategoriesResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: page_size
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: order
          in: query
          required: false
          schema:
            type: string
          description: 'Supported order fields: `name`'
        - name: asc
          in: query
          required: false
          schema:
            type: boolean
        - name: filter
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported filter fields: `id`'
        - name: search
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported search fields: `name`'
      tags:
        - Creatives
  /creative_categories/{id}:
    get:
      summary: Get Creative Category by ID
      description: Get a Creative Category by ID
      operationId: SSP_GetCreativeCategory
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.CreativeCategory'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      tags:
        - Creatives
  /creatives:
    get:
      summary: List Creatives
      description: List Creatives with their Audits
      operationId: SSP_ListCreatives
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.ListCreativesResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: page_size
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: order
          in: query
          required: false
          schema:
            type: string
          description: 'Supported order fields: `name`, `audit.create_time`'
        - name: asc
          in: query
          required: false
          schema:
            type: boolean
        - name: filter
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: >-
            Supported filter fields: `advertiser_id`, `bidder_id`, `network_id`,
            `seat_id`, `type`, `archived`, `status`, `audit.status`
        - name: search
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported search fields: `name`'
      tags:
        - Creatives
    patch:
      summary: Update Creatives
      description: Update many Creatives
      operationId: SSP_UpdateCreativesPatch
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.UpdateCreativesResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      requestBody:
        $ref: '#/components/requestBodies/api.ssp.v1.UpdateCreativesRequest'
      tags:
        - Creatives
  /creatives/{id}:
    get:
      summary: Get Creative by ID
      description: Get a Creative and Audit by ID
      operationId: SSP_GetCreative
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.Creative'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      tags:
        - Creatives
    patch:
      summary: Update Creative by ID
      description: Update an individual Creative by ID
      operationId: SSP_UpdateCreativePatch
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.Creative'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/api.ssp.v1.SSP.UpdateCreativePatchBody'
        required: true
      tags:
        - Creatives
  /creatives/{id}/assets:
    get:
      summary: List Creative Assets
      description: Get the Assets for a given Creative ID
      operationId: SSP_ListCreativeAssets
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.ListCreativeAssetsResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: page_size
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: order
          in: query
          required: false
          schema:
            type: string
        - name: asc
          in: query
          required: false
          schema:
            type: boolean
        - name: filter
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: search
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
      tags:
        - Creatives
  /creatives/{id}/campaigns:
    get:
      summary: List Creative Campaigns
      description: List Campaign market data for a given Creative ID
      operationId: SSP_ListCreativeCampaigns
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.ListCreativeCampaignsResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: page_size
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: order
          in: query
          required: false
          schema:
            type: string
          description: 'Supported order fields: `start_date`, `end_date`'
        - name: asc
          in: query
          required: false
          schema:
            type: boolean
        - name: filter
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: search
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
      tags:
        - Creatives
  /networks:
    get:
      summary: List Networks
      description: List all Networks
      operationId: SSP_ListNetworks
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.ListNetworksResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: page_size
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: order
          in: query
          required: false
          schema:
            type: string
          description: 'Supported order fields: `name`'
        - name: asc
          in: query
          required: false
          schema:
            type: boolean
        - name: filter
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported filter fields: `id`'
        - name: search
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported search fields: `name`'
      tags:
        - Networks
  /networks/{id}:
    get:
      summary: Get Network by ID
      description: Get a Network by ID
      operationId: SSP_GetNetwork
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.Network'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      tags:
        - Networks
  /seats:
    get:
      summary: List Seats
      description: List all Seats
      operationId: SSP_ListSeats
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.ListSeatsResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: page_size
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: order
          in: query
          required: false
          schema:
            type: string
          description: 'Supported order fields: `name`'
        - name: asc
          in: query
          required: false
          schema:
            type: boolean
        - name: filter
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported filter fields: `id`'
        - name: search
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported search fields: `name`'
      tags:
        - Seats
  /seats/{id}:
    get:
      summary: Get Seat by ID
      description: Get a Seat by ID
      operationId: SSP_GetSeat
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.Seat'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      tags:
        - Seats
  /tags:
    get:
      summary: List Tags
      description: List all Tags
      operationId: SSP_ListTags
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.ListTagsResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: page_size
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: order
          in: query
          required: false
          schema:
            type: string
          description: 'Supported order fields: `name`'
        - name: asc
          in: query
          required: false
          schema:
            type: boolean
        - name: filter
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported filter fields: `id`'
        - name: search
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
          description: 'Supported search fields: `name`'
      tags:
        - Creatives
    post:
      summary: Create Tag
      description: Create a new Tag
      operationId: SSP_CreateTag
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.Tag'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid request
                    data:
                      field: name
                      messages:
                        - tag My Custom Tag already exists
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/api.ssp.v1.CreateTagRequest'
        required: true
      tags:
        - Creatives
  /tags/{id}:
    get:
      summary: Get Tag by ID
      description: Get a Tag by ID
      operationId: SSP_GetTag
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ssp.v1.Tag'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Invalid Request
                    data:
                      - field: page
                        messages:
                          - Is not lesser than or equal to 100
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authorized
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Authenticated
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.external.lib.v1.Error'
              examples:
                response:
                  value:
                    message: Not Found
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      tags:
        - Creatives
components:
  requestBodies:
    api.ssp.v1.UpdateCreativesRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/api.ssp.v1.UpdateCreativesRequest'
      required: true
  securitySchemes:
    cookieAuthStaging:
      type: apiKey
      in: cookie
      name: tr-staging
      description: Authorization cookies for Staging
    cookieAuthProd:
      type: apiKey
      in: cookie
      name: tr-production
      description: Authorization cookies for Production
  schemas:
    api.external.lib.v1.Error:
      type: object
      properties:
        message:
          type: string
        data:
          type: array
          items:
            $ref: '#/components/schemas/api.external.lib.v1.Error.FieldError'
    api.external.lib.v1.Error.FieldError:
      type: object
      properties:
        field:
          type: string
        messages:
          type: array
          items:
            type: string
    api.ssp.v1.Advertiser:
      type: object
      properties:
        id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        name:
          type: string
          example: T-Mobile
    api.ssp.v1.Asset:
      type: object
      properties:
        url:
          type: string
          example: >-
            https://transcodes.vistarmedia.com.s3.amazonaws.com/abc123/abc123-1920x1080.png
        height:
          type: integer
          format: int64
          example: 1080
        width:
          type: integer
          format: int64
          example: 1920
        format:
          type: string
          example: image/png
        letterbox:
          type: boolean
        is_original:
          type: boolean
        file_size_bytes:
          type: string
          format: uint64
          example: 1024
    api.ssp.v1.Audit:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/api.ssp.v1.Audit.AuditStatus'
        message:
          type: string
        category_ids:
          type: array
          example:
            - juIGaOygS0CBBqtmXHamqA
          items:
            type: string
        tag_ids:
          type: array
          example:
            - juIGaOygS0CBBqtmXHamqA
          items:
            type: string
        create_time:
          type: string
          example: '2025-07-05T20:12:34+00:00'
        last_reviewed:
          type: string
          example: '2025-07-03T21:10:02+00:00'
        last_reviewer:
          type: string
          example: example@vistarmedia.com
    api.ssp.v1.Audit.AuditStatus:
      type: string
      enum:
        - PENDING
        - APPROVED
        - DENIED
      default: PENDING
    api.ssp.v1.Bidder:
      type: object
      properties:
        id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        name:
          type: string
          example: Vistar
    api.ssp.v1.Campaign:
      type: object
      properties:
        start_date:
          type: string
          example: '2025-07-03T22:00:00+00:00'
        end_date:
          type: string
          example: '2025-09-30T11:59:59+00:00'
        markets:
          type: array
          example:
            - Buffalo, NY
          items:
            type: string
    api.ssp.v1.CreateTagRequest:
      type: object
      properties:
        name:
          type: string
          example: My Test Tag
    api.ssp.v1.Creative:
      type: object
      properties:
        id:
          type: string
          example: abc123
        audit:
          $ref: '#/components/schemas/api.ssp.v1.Audit'
        external_id:
          type: string
          example: 67580557345947516864522a0863640c665f48614674
        network_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        name:
          type: string
          example: Some-Advertising-Campaign-2025.jpg
        processing_status:
          $ref: '#/components/schemas/api.ssp.v1.Creative.CreativeStatus'
        advertiser_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        thumbnail_url:
          type: string
          example: https://transcodes.vistarmedia.com.s3.amazonaws.com/abc123/thumb.png
        duration_ms:
          type: integer
          format: int32
          example: 1500
        seat_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        bidder_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        max_assets_per_day:
          type: integer
          format: int32
        type:
          $ref: '#/components/schemas/api.ssp.v1.CreativeType'
        update_time:
          type: string
          example: '2025-07-03T21:30:40+00:00'
        archived:
          type: boolean
    api.ssp.v1.Creative.CreativeStatus:
      type: string
      enum:
        - PROCESSING
        - PROCESSED
        - FAILED
      default: PROCESSING
    api.ssp.v1.CreativeCategory:
      type: object
      properties:
        id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        name:
          type: string
          example: Food & Groceries
    api.ssp.v1.CreativeType:
      type: string
      description: |-
        The media type of the asset of this Creative:
        * `IMAGE`: A static image
        * `VIDEO`: A video
        * `AUDIO`: Audio-only
        * `DYNAMIC`: Dynamic Creative bundle
        * `SAGE_AND_ARCHER_DYNAMIC`: Legacy Dynamic Creative bundle
        * `NONE`: No asset is associated with this Creative
        * `UNKNOWN`: The asset is of an unknown type
    api.ssp.v1.ListAdvertisersResponse:
      type: object
      properties:
        advertisers:
          type: array
          items:
            $ref: '#/components/schemas/api.ssp.v1.Advertiser'
        total_size:
          type: integer
          format: int64
          example: 1
    api.ssp.v1.ListBiddersResponse:
      type: object
      properties:
        bidders:
          type: array
          items:
            $ref: '#/components/schemas/api.ssp.v1.Bidder'
        total_size:
          type: integer
          format: int64
          example: 1
    api.ssp.v1.ListCreativeAssetsResponse:
      type: object
      properties:
        assets:
          type: array
          items:
            $ref: '#/components/schemas/api.ssp.v1.Asset'
        total_size:
          type: integer
          format: int64
          example: 1
    api.ssp.v1.ListCreativeCampaignsResponse:
      type: object
      properties:
        campaigns:
          type: array
          items:
            $ref: '#/components/schemas/api.ssp.v1.Campaign'
        total_size:
          type: integer
          format: int64
          example: 1
    api.ssp.v1.ListCreativeCategoriesResponse:
      type: object
      properties:
        creative_categories:
          type: array
          items:
            $ref: '#/components/schemas/api.ssp.v1.CreativeCategory'
        total_size:
          type: integer
          format: int64
          example: 1
    api.ssp.v1.ListCreativesResponse:
      type: object
      properties:
        creatives:
          type: array
          items:
            $ref: '#/components/schemas/api.ssp.v1.Creative'
        total_size:
          type: integer
          format: int64
          example: 1
    api.ssp.v1.ListNetworksResponse:
      type: object
      properties:
        networks:
          type: array
          items:
            $ref: '#/components/schemas/api.ssp.v1.Network'
        total_size:
          type: integer
          format: int64
          example: 1
    api.ssp.v1.ListSeatsResponse:
      type: object
      properties:
        seats:
          type: array
          items:
            $ref: '#/components/schemas/api.ssp.v1.Seat'
        total_size:
          type: integer
          format: int64
          example: 1
    api.ssp.v1.ListTagsResponse:
      type: object
      properties:
        tags:
          type: array
          items:
            $ref: '#/components/schemas/api.ssp.v1.Tag'
        total_size:
          type: integer
          format: int64
          example: 1
    api.ssp.v1.Network:
      type: object
      properties:
        id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        name:
          type: string
          example: Test Network
    api.ssp.v1.SSP.UpdateCreativeBody:
      type: object
      properties:
        audit:
          $ref: '#/components/schemas/api.ssp.v1.Audit'
        external_id:
          type: string
          example: 67580557345947516864522a0863640c665f48614674
        network_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        name:
          type: string
          example: Some-Advertising-Campaign-2025.jpg
        processing_status:
          $ref: '#/components/schemas/api.ssp.v1.Creative.CreativeStatus'
        advertiser_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        thumbnail_url:
          type: string
          example: https://transcodes.vistarmedia.com.s3.amazonaws.com/abc123/thumb.png
        duration_ms:
          type: integer
          format: int32
          example: 1500
        seat_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        bidder_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        max_assets_per_day:
          type: integer
          format: int32
        type:
          $ref: '#/components/schemas/api.ssp.v1.CreativeType'
        update_time:
          type: string
          example: '2025-07-03T21:30:40+00:00'
        archived:
          type: boolean
    api.ssp.v1.SSP.UpdateCreativePatchBody:
      type: object
      properties:
        audit:
          $ref: '#/components/schemas/api.ssp.v1.Audit'
        external_id:
          type: string
          example: 67580557345947516864522a0863640c665f48614674
        network_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        name:
          type: string
          example: Some-Advertising-Campaign-2025.jpg
        processing_status:
          $ref: '#/components/schemas/api.ssp.v1.Creative.CreativeStatus'
        advertiser_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        thumbnail_url:
          type: string
          example: https://transcodes.vistarmedia.com.s3.amazonaws.com/abc123/thumb.png
        duration_ms:
          type: integer
          format: int32
          example: 1500
        seat_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        bidder_id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        max_assets_per_day:
          type: integer
          format: int32
        type:
          $ref: '#/components/schemas/api.ssp.v1.CreativeType'
        update_time:
          type: string
          example: '2025-07-03T21:30:40+00:00'
        archived:
          type: boolean
    api.ssp.v1.Seat:
      type: object
      properties:
        id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        name:
          type: string
          example: Test User
    api.ssp.v1.Tag:
      type: object
      properties:
        id:
          type: string
          example: juIGaOygS0CBBqtmXHamqA
        name:
          type: string
          example: my test tag
    api.ssp.v1.UpdateCreativesRequest:
      type: object
      properties:
        creatives:
          type: array
          items:
            $ref: '#/components/schemas/api.ssp.v1.Creative'
    api.ssp.v1.UpdateCreativesResponse:
      type: object
      properties:
        creatives:
          type: array
          items:
            $ref: '#/components/schemas/api.ssp.v1.Creative'
