Outfront Transit API (2024.2.1)

Download OpenAPI specification:Download

An interface enabling transit authorities to schedule content to Outfront screens.

Authorization

All requests to Transit API v2 use a Bearer token passed in the Authorization header. We can provide you with a Bearer token that is specific to your organization.

Assets

An Asset is any piece of content uploaded for eventual display on a Screen. Assets can be images, videos, or ZIP files containing HTML.

List all Assets

query Parameters
limit
number [ 1 .. 100 ]
page
number >= 1
sort
string (AssetSortParameter)
Enum: "createdAt" "-createdAt" "id" "-id" "name" "-name" "updatedAt" "-updatedAt"
object

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": { }
}

Create a new Asset

An Asset that is not finished processing cannot be associated with a Schedule; attempting to create a Schedule that relates to an unprocessed Asset will result in an error.

You'll know that your Asset is finished process when in has a non-null contentUrl. At this point, the Asset will also include metadata about your file.

Request Body schema: multipart/form-data
source
required
string
Enum: "vle" "broadsign"
name
required
string >= 2 characters
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Fetch an Asset

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update an Asset

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete an Asset

This is only allowed if the Asset is not used by an existing Schedule. If it is, the Schedules must be deleted first.

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Screens

A Screen (also known as a “Player” or “Liveboard”) represents the physical hardware that will display Assets. Screens have names, tags, and other metadata that help describe their purpose, location, and orientation.

List all Screens

query Parameters
limit
number [ 1 .. 100 ]
page
number >= 1
sort
string (ScreenSortParameter)
Enum: "id" "-id" "name" "-name" "createdAt" "-createdAt" "source" "-source"
object

When specified, all key-value pairs must match a Screen's criteria for it to be included. If a value is an array, then any value in the array may match the corresponding criterion.

This parameter accepts identical input as Schedules' screensFilter attribute, which is useful for previewing the targeting of a Schedule before creating it.

The only difference is that screensFilter is JSON, while the filter parameter is a query string. The following two values produce identical targeting results for Screens' filter and Schedules' screensFilter, respectively:

filter[set_length]=2&filter[name]=Foo&filter[name]=Bar
{
  "set_length": "2",
  "name": ["Foo", "Bar"]
}

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": { }
}

Fetch a Screen

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update a Screen's Criteria

path Parameters
id
required
string
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

List all Screens targeted by a Schedule

A collection of all the Screens targeted by the specified Schedule. This collection is not editable directly and instead is the result set of the Schedule's screensFilter attribute.

path Parameters
id
required
string
query Parameters
limit
number [ 1 .. 100 ]
page
number >= 1
sort
string (ScreenSortParameter)
Enum: "id" "-id" "name" "-name" "createdAt" "-createdAt" "source" "-source"

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": { }
}

Schedules

A Schedule describes when an Asset should appear on one or more Screens.

List all Schedules

query Parameters
limit
number [ 1 .. 100 ]
page
number >= 1
sort
string (ScheduleSortParameter)
Enum: "deployedScreensCount" "-deployedScreensCount" "endsAt" "-endsAt" "id" "-id" "startsAt" "-startsAt" "priority" "-priority" "targetedScreensCount" "-targetedScreensCount" "weight" "-weight" "createdAt" "-createdAt" "updatedAt" "-updatedAt"

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": { }
}

Create a Schedule

Creating a Schedule will begin delivery of the specified Assets to the targeted Screens immediately, though it can take some time before the Assets are actually visible on the Screens.

Note that for Broadsign Screens, Assets will only be scheduled once every Screen type in a targeted Consist has been assigned content, and that content will only be visible on Screens during the times that all Screen types would be showing content.

For example, on a Consist with Square and Cove screens, creating a Schedule that targets Squares on that Consist from Oct 1 to Oct 31 will have no immediate effect. Proceeding to create a Schedule that targets Coves on that Consist from Oct 15 to Nov 15 will result in Squares and Coves showing their targeted content from Oct 15 to Oct 31, and nothing at any other time.

To reduce confusion, it is recommended that you create Schedules with a very long duration, fallback priority, and broad location-based targeting for every Broadsign Screen type before doing anything else with these Screens.

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Fetch a Schedule

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update a Schedule

path Parameters
id
required
string
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a Schedule

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

List all Schedules for a Screen

A collection of all the Schedules that target the specified Screen. This collection is not editable directly and instead is the result set of the Schedules’ respective screensFilter attributes.

path Parameters
id
required
string
query Parameters
limit
number [ 1 .. 100 ]
page
number >= 1
sort
string (ScheduleSortParameter)
Enum: "deployedScreensCount" "-deployedScreensCount" "endsAt" "-endsAt" "id" "-id" "startsAt" "-startsAt" "priority" "-priority" "targetedScreensCount" "-targetedScreensCount" "weight" "-weight" "createdAt" "-createdAt" "updatedAt" "-updatedAt"

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": { }
}

Check for emergency content (Broadsign only)

If a Broadsign Schedule with a priority of emergency is currently active for the specified Account, this endpoint returns a 200. If no such Schedule exists, this endpoint returns a 404.

path Parameters
id
required
string

Responses

Fetch emergency content (Broadsign only)

If a Broadsign Schedule with a priority of emergency is currently active for the specified Account, this endpoint returns the content of that Schedule presented in an HTML view and wrapped in a ZIP file with a MIME type of application/x-html-package. If no such Schedule exists, this endpoint returns a 404.

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Debugging

Inspect Broadsign data

Returns a representation of the Transit API's resulting data in Broadsign. This structure is loosely defined and only really meant for human inspection. It is not recommended to depend on the structure of this response remaining consistent.

Responses

Response samples

Content type
application/json
{ }

Inspect VLE data

Returns a representation of the Transit API's resulting data in VLE. This structure is loosely defined and only really meant for human inspection. It is not recommended to depend on the structure of this response remaining consistent.

query Parameters
page
number >= 1
groupId
string

Responses

Response samples

Content type
application/json
{ }

Display information about the authenticated user

Returns a read-only resource with some additional information about the user to whom the current access token belongs.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

List all existing screen criteria

Returns a read-only resource listing all criteria that would match an existing screen. A Schedule may be created using criteria that do not exist on any screen, for preparing future screens, but in most cases this is not the desired effect. The data from this endpoint can help in pre-populating form fields, for example.

If no filter for screen source is specified, the filter defaults to only showing criteria for VLE screens.

query Parameters
object

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

List all existing values for one criterion

Returns a read-only resource listing all values for a given criterion that are present on existing Screens. A Schedule may be created using criteria that do not exist on any screen, for preparing future screens, but in most cases this is not the desired effect. The data from this endpoint can help in pre-populating form fields, for example.

If no filter for screen source is specified, the filter defaults to only showing values for criteria on VLE screens.

path Parameters
id
required
string
query Parameters
object

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Verify that the server is running

Always returns 200. Useful for determining if a deploy has completed.

Responses