At this time, the Media Manager API is intended for use by PBS producers and stations only. If you are a PBS station or producer, you can request an API key to get started.
Want to test the API without affecting your live data? Use the following staging/testing base endpoint:
The staging environment requires a separate API key. Request an API key
In order to access exposed resources, an API consumer needs to be assigned to a Group that is assigned to a specific Station. The protocol for authentication is Basic Auth as defined by the Internet Engineering Task Force, in the Request for Comments number 2617 (http://www.rfc-editor.org/rfc/rfc2617.txt). In order to use this API, Basic Auth protocol must be used. An API Consumer can execute various operations including reading data and modifying data.
What is an API Consumer?
An API Consumer is defined by a key (example: john) and a secret (example: mypassword). The key and secret are similar to a username and password and both must be provided to users of the API.
For all supported HTTP request methods see the individual page for each resource . All requests must contain the header Authorization, which contains the name of the authentication method (Basic), followed by a base64 encoded string of type key:secret.
Who is permitted to access Media Manager API?
Only PBS stations and producers are permitted to have access to the Media Manager API. It is not available to the general public at this time.
How do I obtain authentication credentials?
If you are a PBS station or producer, you can obtain authentication credentials by filing a support ticket.
The authorization section handles configuration needed for the API consumer to have the right to access/ edit certain resources exposed by the private API.
In order for an API consumer to have access to the exposed resources, it needs to be assigned to a Group, who has a specific Station assigned.
For the resources that are currently exposed, namely the Station the Group that the consumer was assigned to, also needs to have assigned to it the Permission to change the specific resource (change the station currently).
This section may be revised to include changes as the API evolves.
HTTP Request Headers
At the moment we’re only accepting JSON and JSONAPI specific headers.
|Content-Type||The content type of the payload||application/json|
|Content-Type||The content type of the payload||application/vnd.api+json|
HTTP Response Status Codes
The following are possible status codes returned by responses to the API calls.
|200||Success||Operation was successful.|
|204||No content.||Operation was successful.|
|400||Bad request||Description of the error will be given in the payload.|
|401||Unauthenticated consumer||The consumer with this key:secret pair doesn’t exist in the system.|
|403||Unauthorized consumer||The consumer with the key:secret doesn’t have access to this resource.|
|404||No resources found||The demanded resources cannot be found.|
|409||Conflict||According to existing business logic, the request would cause a conflict and could not be carried out.|
|500||Internal server error||Unknown error|
- AWS CloudFront
- General: Django (latest), Python 3, PostgreSQL
- Console: Themed Bootstrap framework shared by our other, newer consoles
- Transcoding Service: AWS/Elemental
- API: JSON, SSL + Basic Auth, Read / Write
A resource is an individual data entity with a unique identifier. View all resources