Skip to content

Vistar Media Marketplace SSP API

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.

Download OpenAPI description
Languages
Servers
Staging
https://staging-platform-api.vistarmedia.com
Production
https://platform-api.vistarmedia.com

Creatives

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.

Operations

List Creative Categories

Request

List all Creative Categories

Security
cookieAuthStaging or cookieAuthProd
Query
page_sizeinteger(int64)
pageinteger(int64)
orderstring

Supported order fields: name

ascboolean
filterArray of strings

Supported filter fields: id

searchArray of strings

Supported search fields: name

curl -i -X GET \
  'https://staging-platform-api.vistarmedia.com/creative_categories?page_size=0&page=0&order=string&asc=true&filter=string&search=string' \
  -b tr-staging=YOUR_API_KEY_HERE

Responses

A successful response.

Bodyapplication/json
creative_categoriesArray of objects(api.ssp.v1.CreativeCategory)
total_sizeinteger(int64)
Example: 1
Response
application/json
{ "creative_categories": [ {} ], "total_size": 1 }

Get Creative Category by ID

Request

Get a Creative Category by ID

Security
cookieAuthStaging or cookieAuthProd
Path
idstringrequired
curl -i -X GET \
  'https://staging-platform-api.vistarmedia.com/creative_categories/{id}' \
  -b tr-staging=YOUR_API_KEY_HERE

Responses

A successful response.

Bodyapplication/json
idstring
Example: "juIGaOygS0CBBqtmXHamqA"
namestring
Example: "Food & Groceries"
Response
application/json
{ "id": "juIGaOygS0CBBqtmXHamqA", "name": "Food & Groceries" }

List Creatives

Request

List Creatives with their Audits

Security
cookieAuthStaging or cookieAuthProd
Query
page_sizeinteger(int64)
pageinteger(int64)
orderstring

Supported order fields: name, audit.create_time

ascboolean
filterArray of strings

Supported filter fields: advertiser_id, bidder_id, network_id, seat_id, type, archived, status, audit.status

searchArray of strings

Supported search fields: name

curl -i -X GET \
  'https://staging-platform-api.vistarmedia.com/creatives?page_size=0&page=0&order=string&asc=true&filter=string&search=string' \
  -b tr-staging=YOUR_API_KEY_HERE

Responses

A successful response.

Bodyapplication/json
creativesArray of objects(api.ssp.v1.Creative)
total_sizeinteger(int64)
Example: 1
Response
application/json
{ "creatives": [ {} ], "total_size": 1 }

Update Creatives

Request

Update many Creatives

Security
cookieAuthStaging or cookieAuthProd
Bodyapplication/jsonrequired
creativesArray of objects(api.ssp.v1.Creative)
curl -i -X PATCH \
  https://staging-platform-api.vistarmedia.com/creatives \
  -H 'Content-Type: application/json' \
  -b tr-staging=YOUR_API_KEY_HERE \
  -d '{
    "creatives": [
      {
        "id": "abc123",
        "audit": {
          "status": "PENDING",
          "message": "string",
          "category_ids": [
            "juIGaOygS0CBBqtmXHamqA"
          ],
          "tag_ids": [
            "juIGaOygS0CBBqtmXHamqA"
          ],
          "create_time": "2025-07-05T20:12:34+00:00",
          "last_reviewed": "2025-07-03T21:10:02+00:00",
          "last_reviewer": "example@vistarmedia.com"
        },
        "external_id": "67580557345947516864522a0863640c665f48614674",
        "network_id": "juIGaOygS0CBBqtmXHamqA",
        "name": "Some-Advertising-Campaign-2025.jpg",
        "processing_status": "PROCESSING",
        "advertiser_id": "juIGaOygS0CBBqtmXHamqA",
        "thumbnail_url": "https://transcodes.vistarmedia.com.s3.amazonaws.com/abc123/thumb.png",
        "duration_ms": 1500,
        "seat_id": "juIGaOygS0CBBqtmXHamqA",
        "bidder_id": "juIGaOygS0CBBqtmXHamqA",
        "max_assets_per_day": 0,
        "type": "string",
        "update_time": "2025-07-03T21:30:40+00:00",
        "archived": true
      }
    ]
  }'

Responses

A successful response.

Bodyapplication/json
creativesArray of objects(api.ssp.v1.Creative)
Response
application/json
{ "creatives": [ {} ] }

Get Creative by ID

Request

Get a Creative and Audit by ID

Security
cookieAuthStaging or cookieAuthProd
Path
idstringrequired
curl -i -X GET \
  'https://staging-platform-api.vistarmedia.com/creatives/{id}' \
  -b tr-staging=YOUR_API_KEY_HERE

Responses

A successful response.

Bodyapplication/json
idstring
Example: "abc123"
auditobject(api.ssp.v1.Audit)
external_idstring
Example: "67580557345947516864522a0863640c665f48614674"
network_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
namestring
Example: "Some-Advertising-Campaign-2025.jpg"
processing_statusstring(api.ssp.v1.Creative.CreativeStatus)
Default "PROCESSING"
Enum"PROCESSING""PROCESSED""FAILED"
advertiser_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
thumbnail_urlstring
Example: "https://transcodes.vistarmedia.com.s3.amazonaws.com/abc123/thumb.png"
duration_msinteger(int32)
Example: 1500
seat_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
bidder_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
max_assets_per_dayinteger(int32)
typestring(api.ssp.v1.CreativeType)

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
update_timestring
Example: "2025-07-03T21:30:40+00:00"
archivedboolean
Response
application/json
{ "id": "abc123", "audit": { "status": "PENDING", "message": "string", "category_ids": [], "tag_ids": [], "create_time": "2025-07-05T20:12:34+00:00", "last_reviewed": "2025-07-03T21:10:02+00:00", "last_reviewer": "example@vistarmedia.com" }, "external_id": "67580557345947516864522a0863640c665f48614674", "network_id": "juIGaOygS0CBBqtmXHamqA", "name": "Some-Advertising-Campaign-2025.jpg", "processing_status": "PROCESSING", "advertiser_id": "juIGaOygS0CBBqtmXHamqA", "thumbnail_url": "https://transcodes.vistarmedia.com.s3.amazonaws.com/abc123/thumb.png", "duration_ms": 1500, "seat_id": "juIGaOygS0CBBqtmXHamqA", "bidder_id": "juIGaOygS0CBBqtmXHamqA", "max_assets_per_day": 0, "type": "string", "update_time": "2025-07-03T21:30:40+00:00", "archived": true }

Update Creative by ID

Request

Update an individual Creative by ID

Security
cookieAuthStaging or cookieAuthProd
Path
idstringrequired
Bodyapplication/jsonrequired
auditobject(api.ssp.v1.Audit)
external_idstring
Example: "67580557345947516864522a0863640c665f48614674"
network_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
namestring
Example: "Some-Advertising-Campaign-2025.jpg"
processing_statusstring(api.ssp.v1.Creative.CreativeStatus)
Default "PROCESSING"
Enum"PROCESSING""PROCESSED""FAILED"
advertiser_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
thumbnail_urlstring
Example: "https://transcodes.vistarmedia.com.s3.amazonaws.com/abc123/thumb.png"
duration_msinteger(int32)
Example: 1500
seat_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
bidder_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
max_assets_per_dayinteger(int32)
typestring(api.ssp.v1.CreativeType)

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
update_timestring
Example: "2025-07-03T21:30:40+00:00"
archivedboolean
curl -i -X PATCH \
  'https://staging-platform-api.vistarmedia.com/creatives/{id}' \
  -H 'Content-Type: application/json' \
  -b tr-staging=YOUR_API_KEY_HERE \
  -d '{
    "audit": {
      "status": "PENDING",
      "message": "string",
      "category_ids": [
        "juIGaOygS0CBBqtmXHamqA"
      ],
      "tag_ids": [
        "juIGaOygS0CBBqtmXHamqA"
      ],
      "create_time": "2025-07-05T20:12:34+00:00",
      "last_reviewed": "2025-07-03T21:10:02+00:00",
      "last_reviewer": "example@vistarmedia.com"
    },
    "external_id": "67580557345947516864522a0863640c665f48614674",
    "network_id": "juIGaOygS0CBBqtmXHamqA",
    "name": "Some-Advertising-Campaign-2025.jpg",
    "processing_status": "PROCESSING",
    "advertiser_id": "juIGaOygS0CBBqtmXHamqA",
    "thumbnail_url": "https://transcodes.vistarmedia.com.s3.amazonaws.com/abc123/thumb.png",
    "duration_ms": 1500,
    "seat_id": "juIGaOygS0CBBqtmXHamqA",
    "bidder_id": "juIGaOygS0CBBqtmXHamqA",
    "max_assets_per_day": 0,
    "type": "string",
    "update_time": "2025-07-03T21:30:40+00:00",
    "archived": true
  }'

Responses

A successful response.

Bodyapplication/json
idstring
Example: "abc123"
auditobject(api.ssp.v1.Audit)
external_idstring
Example: "67580557345947516864522a0863640c665f48614674"
network_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
namestring
Example: "Some-Advertising-Campaign-2025.jpg"
processing_statusstring(api.ssp.v1.Creative.CreativeStatus)
Default "PROCESSING"
Enum"PROCESSING""PROCESSED""FAILED"
advertiser_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
thumbnail_urlstring
Example: "https://transcodes.vistarmedia.com.s3.amazonaws.com/abc123/thumb.png"
duration_msinteger(int32)
Example: 1500
seat_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
bidder_idstring
Example: "juIGaOygS0CBBqtmXHamqA"
max_assets_per_dayinteger(int32)
typestring(api.ssp.v1.CreativeType)

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
update_timestring
Example: "2025-07-03T21:30:40+00:00"
archivedboolean
Response
application/json
{ "id": "abc123", "audit": { "status": "PENDING", "message": "string", "category_ids": [], "tag_ids": [], "create_time": "2025-07-05T20:12:34+00:00", "last_reviewed": "2025-07-03T21:10:02+00:00", "last_reviewer": "example@vistarmedia.com" }, "external_id": "67580557345947516864522a0863640c665f48614674", "network_id": "juIGaOygS0CBBqtmXHamqA", "name": "Some-Advertising-Campaign-2025.jpg", "processing_status": "PROCESSING", "advertiser_id": "juIGaOygS0CBBqtmXHamqA", "thumbnail_url": "https://transcodes.vistarmedia.com.s3.amazonaws.com/abc123/thumb.png", "duration_ms": 1500, "seat_id": "juIGaOygS0CBBqtmXHamqA", "bidder_id": "juIGaOygS0CBBqtmXHamqA", "max_assets_per_day": 0, "type": "string", "update_time": "2025-07-03T21:30:40+00:00", "archived": true }

List Creative Assets

Request

Get the Assets for a given Creative ID

Security
cookieAuthStaging or cookieAuthProd
Path
idstringrequired
Query
page_sizeinteger(int64)
pageinteger(int64)
orderstring
ascboolean
filterArray of strings
searchArray of strings
curl -i -X GET \
  'https://staging-platform-api.vistarmedia.com/creatives/{id}/assets?page_size=0&page=0&order=string&asc=true&filter=string&search=string' \
  -b tr-staging=YOUR_API_KEY_HERE

Responses

A successful response.

Bodyapplication/json
assetsArray of objects(api.ssp.v1.Asset)
total_sizeinteger(int64)
Example: 1
Response
application/json
{ "assets": [ {} ], "total_size": 1 }

List Creative Campaigns

Request

List Campaign market data for a given Creative ID

Security
cookieAuthStaging or cookieAuthProd
Path
idstringrequired
Query
page_sizeinteger(int64)
pageinteger(int64)
orderstring

Supported order fields: start_date, end_date

ascboolean
filterArray of strings
searchArray of strings
curl -i -X GET \
  'https://staging-platform-api.vistarmedia.com/creatives/{id}/campaigns?page_size=0&page=0&order=string&asc=true&filter=string&search=string' \
  -b tr-staging=YOUR_API_KEY_HERE

Responses

A successful response.

Bodyapplication/json
campaignsArray of objects(api.ssp.v1.Campaign)
total_sizeinteger(int64)
Example: 1
Response
application/json
{ "campaigns": [ {} ], "total_size": 1 }

List Tags

Request

List all Tags

Security
cookieAuthStaging or cookieAuthProd
Query
page_sizeinteger(int64)
pageinteger(int64)
orderstring

Supported order fields: name

ascboolean
filterArray of strings

Supported filter fields: id

searchArray of strings

Supported search fields: name

curl -i -X GET \
  'https://staging-platform-api.vistarmedia.com/tags?page_size=0&page=0&order=string&asc=true&filter=string&search=string' \
  -b tr-staging=YOUR_API_KEY_HERE

Responses

A successful response.

Bodyapplication/json
tagsArray of objects(api.ssp.v1.Tag)
total_sizeinteger(int64)
Example: 1
Response
application/json
{ "tags": [ {} ], "total_size": 1 }

Create Tag

Request

Create a new Tag

Security
cookieAuthStaging or cookieAuthProd
Bodyapplication/jsonrequired
namestring
Example: "My Test Tag"
curl -i -X POST \
  https://staging-platform-api.vistarmedia.com/tags \
  -H 'Content-Type: application/json' \
  -b tr-staging=YOUR_API_KEY_HERE \
  -d '{
    "name": "My Test Tag"
  }'

Responses

A successful response.

Bodyapplication/json
idstring
Example: "juIGaOygS0CBBqtmXHamqA"
namestring
Example: "my test tag"
Response
application/json
{ "id": "juIGaOygS0CBBqtmXHamqA", "name": "my test tag" }

Get Tag by ID

Request

Get a Tag by ID

Security
cookieAuthStaging or cookieAuthProd
Path
idstringrequired
curl -i -X GET \
  'https://staging-platform-api.vistarmedia.com/tags/{id}' \
  -b tr-staging=YOUR_API_KEY_HERE

Responses

A successful response.

Bodyapplication/json
idstring
Example: "juIGaOygS0CBBqtmXHamqA"
namestring
Example: "my test tag"
Response
application/json
{ "id": "juIGaOygS0CBBqtmXHamqA", "name": "my test tag" }

Advertisers

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.

Operations

Bidders

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.

Operations

Networks

A Network is a Media Owner's venue collection. You can use the Network APIs to list your Networks.

Operations

Seats

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.

Operations