---
title: "Station Manager Internal API"
canonical: "https://docs.pbs.org/space/SM/5046401/Station%20Manager%20Internal%20API"
format: markdown
---
Overview This document is intended for developers who want to write applications that interact with Station Manager. It explains basic concepts of Station Manager and the API and provides an overview of the different functions supported by the API.  Station Manager Console Help Getting started Before using the API, familiarize yourself with the following: Core concepts of the JSON (JavaScript Object Notation) data format. JSON is a common, language-independent data format that provides a simple text representation of arbitrary data structures. For more information, see  json.org . Basic Authentication HTTP Protocol. To use the API, Basic authentication will have to be used. A short reference can be found in the  Authentication  section. Authentication To obtain authentication credentials please contact your PBS station representative. You can also make calls using our  public API  which does not require authentication. The public API returns  basic station information . 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 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. An API Consumer will have a set of operations that it can execute. For example, one API Consumer will be able to only read data, but another API consumer will be able to also modify the data. 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. For key =  'john'  and secret =  'password' -  Authorization: Basic  = am9objpteXBhc3N3b3Jk To obtain  am9objpteXBhc3N3b3Jk , we took the string   john:mypassword   and used a tool like   http://www.base64encode.org/   to encode it. Authorization The authorization section handles configuration needed for the API consumer to have the right to access/edit certain resources. In order for an API consumer to have access to the exposed resources, it needs to be assigned to a  Group  that 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 (i.e.: change the current station). Resources and resource types A resource is an individual data entity with a unique identifier. The table below describes the different types of resources and the different calls you can make when using this API. Resource type Description Station </resources/station> Station object Supported actions Action Description get Retrieves (GET) a specific resource. The table below identifies the (subset of) operations that are supported for different types of resources. Each resource may support some particular actions which are described on their individual specification page. HTTP request headers The required headers used by the API are listed below. At the moment we’re only accepting JSON and JSONAPI-specific headers. Header Meaning Values Content-Type The content type of the payload application/json Content-Type The content type of the payload application/vnd.api+json Caching For updates made in Station Manager, there is a 10 minute cache time applied for the API. Possible fields returned Parameter name Value Description Example call_sign string Station call sign (this is a unique value in the system) KAKM full_common_name string Full common name Alaska Public Media short_common_name string Short common name AK tvss_url string The URL of the station's TV schedule http://alaskapublic.org/kakm/schedule/ donate_url string The station's donation URL http://alaskapublic.org/support/ kids_live_stream_url string The URL of station's KIDS livestream https://xxxx-cdn.xxxxxx.org/xxx/u/akxx.a1b2 timezone string The timezone of station's location America/New_York secondary_timezone string The secondary timezone for stations that serve two timezones America/Anchorage website_url string The homepage URL of the station's website http://alaskapublic.org/kakm facebook_url string The URL of the station's Facebook page https://www.facebook.com/alaskapublic/ twitter_url string The URL of the station's Twitter page https://twitter.com/alaskapublic youtube_url string The URL of the station’s YouTube channel https://www.youtube.com/c/wetapbs station_kids_url string The URL of the station's KIDS homepage http://www.alaskapublic.org/kids-club/ passport_url string The URL of the station's passport page https://secure.alaskapublic.org/WebModule/Donate.aspx?P=XXXXXX&PAGETYPE=XXXX&CHECK=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx telephone string The station's telephone number (907) 550-8400 fax string The station's fax number (907) 550-8401 pdp boolean Program Differentiation Plan (PDP) of the Stations false city string The city in the station's mailing address Anchorage state string The state abbreviation in the station's mailing address AK address_line_1 string The station's mailing address Alaska Public Telecommunications, Inc. / KAKM / KSKA / APRN address_line_2 string The station's mailing address 3877 University Dr zip_code string The zip code in the station's mailing address 99508 country_code string The station's country code US email string The station's email contact station-services@alaskapublicmedia.org tag_line string The station’s tag line Connecting Alaskans. Life informed. page_tracking string The station site's page tracking analytics code UA-1234567-12 event_tracking string The station site's event tracking analytics code UA-1234567-12 passport_enabled boolean Whether or not the station is Passport enabled True annual_passport_qualifying_amount string The Passport donation amount set by the station 60.0 primary_channel string Determines the station’s default TV listings grid Alaska Public Television HDTV primetime_start string The primetime start designated by the station 7PM images object or empty list Images associated with the station https://image.pbs.org/stations/kakm-black-logo.png updated_at datetime The date and time that the station was last updated 2020-02-26T13:55:24.470036Z ga_live_stream_url string The URL of the 2/47 GA livestream http://pbs.org display_logo_overlay boolean The station logo overlay on the livestream True ga_live_stream_feed_cid string Unique identifier that associates the linear live feed with station 1234567890 livestream_feeds n/a Placeholder for future use. Ignore these fields until further notice.  n/a The following table describes the parameters for all images. Parameter name Value Description profile string The profile of the image url string The link to the ITS image Endpoints Currently, Station is the only endpoint available in Station Manager. A station can be identified by its station ID or by filtering by its flagship callsign.  Base Endpoint https://station.services.pbs.org/api/v1/stations/  Station:list Returns a collection with all stations. HTTP Request GET https://station.services.pbs.org/api/v1/stations/ URI Parameters Parameter name Value Description call_sign string station callsign (case sensitive - Must be ALL CAPS) page integer Show the results on a specific page sort string Show the sorted by specific fields. The available fields are specified in the  [‘meta’][‘sort’]  block. Example Output The response for a request made to this endpoint will be paginated. The following response is for a request made without any query parameters: Station information returned {
    "links": {
        "self": "https://station.services.pbs.org/api/v1/stations/",
        "next": "https://station.services.pbs.org/api/v1/stations/?page=2",
        "first": "https://station.services.pbs.org/api/v1/stations/",
        "prev": null,
        "last": "https://station.services.pbs.org/api/v1/stations/?page=7"
    },
    "data": [
        {
            "links": {
                "self": "https://station.services.pbs.org/api/v1/stations/12345678-abcd-1234-wxyz-ab1234567891/"
            },
            "type": "station",
            "attributes": {
                "call_sign": "KACV",
                "full_common_name": "Panhandle PBS",
                "short_common_name": "PPBS",
                "tvss_url": "http://www.panhandlepbs.org/schedule/#page=schedule&day=20150803&provider=Broadcast",
                "donate_url": "http://www.panhandlepbs.org/donate/",
                "kids_live_stream_url": "https://xxxx-xxx.pbskids.org/xxx/u/est.a1b8",
                "timezone": "America/Chicago",
                "secondary_timezone": "",
                "video_portal_url": "https://video.panhandlepbs.org",
                "website_url": "http://www.panhandlepbs.org/home/",
                "facebook_url": "https://www.facebook.com/PanhandlePBS",
                "twitter_url": "http://twitter.com/PanhandlePBS",
                "station_kids_url": "http://www.panhandlepbs.org/kids",
                "passport_url": "https://kacv.sample-hostingservice.com/kacv/WebModule/Donate.aspx?P=WEBMAINNG&PAGETYPE=PLG&CHECK=xxxxxxxxxxxx",
                "telephone": "(806) 371-5222",
                "fax": "(806) 371-5258",
                "pdp": false,
                "city": "Amarillo",
                "state": "TX",
                "address_line_1": "2408 S. Jackson",
                "address_line_2": "P.O. Box 447",
                "zip_code": "79178",
                "country_code": "US",
                "email": "PanhandlePBS@actx.edu",
                "tag_line": "",
                "page_tracking": "UA-10779830-4",
                "event_tracking": "UA-10779830-4",
                "passport_enabled": true,
                "annual_passport_qualifying_amount": 75.0,
                "primary_channel": "",
                "primetime_start": "7PM",
                "images": [
                    {
                        "profile": "black-logo",
                        "url": "https://image.pbs.org/stations/kacv-black-logo-xqncCDm.png"
                    },
                    {
                        "profile": "white-logo",
                        "url": "https://image.pbs.org/stations/kacv-white-logo-e4BEMp6.png"
                    },
                    {
                        "profile": "color-logo",
                        "url": "https://image.pbs.org/stations/kacv-color-logo-Dajm8cP.png"
                    },
                    {
                        "profile": "station-scenery-11",
                        "url": "https://image.pbs.org/stations/kacv-station-scenery-11-WWd502M.jpg"
                    },
                    {
                        "profile": "white-cobranded-logo",
                        "url": "https://image.pbs.org/stations/kacv-white-cobranded-logo-uC5eWFv.png"
                    },
                    {
                        "profile": "color-cobranded-logo",
                        "url": "https://image.pbs.org/stations/kacv-color-cobranded-logo-9QRdiRS.png"
                    }
                ],
                "updated_at": "2020-02-25T13:59:22.843117Z",
                "ga_live_stream_url": "https://pbs.org",
                "display_logo_overlay": false,
                "ga_live_stream_feed_cid": "1234567890"
            },
            "id": "123456789-abcd-4561-bd33-xxxxxxxxxxx"
        },
        {
            "links": {
                "self": "https://station.services.pbs.org/api/v1/stations/12345678-abcd-1234-9348-123456789ab/"
            },
            "type": "station",
            "attributes": {
                "call_sign": "KAET",
                "full_common_name": "Arizona PBS",
                "short_common_name": "ArizonaPBS",
                "tvss_url": "https://azpbs.org/schedule",
                "donate_url": "https://secure2.convio.net/kaet/site/Donation2?14852.donation=form1&df_id=14852&mfc_pref=T",
                "kids_live_stream_url": "https://xxxx-xxx.pbskids.org/xxx/u/xxx.xxxx",
                "timezone": "America/Phoenix",
                "secondary_timezone": "",
                "video_portal_url": "http://video.azpbs.org",
                "website_url": "https://azpbs.org",
                "facebook_url": "https://www.facebook.com/arizonapbs",
                "twitter_url": "https://twitter.com/arizonapbs",
                "station_kids_url": "https://azpbs.org/kids",
                "passport_url": "http://kaet.sample-hostingservice.net/site/Donation2?df_id=12345678_pref=abcdefg.donation=form1",
                "telephone": "(602) 555-1212",
                "fax": "(602) 555-1212",
                "pdp": false,
                "city": "Phoenix",
                "state": "AZ",
                "address_line_1": "Arizona PBS/KAET-TV",
                "address_line_2": "555 North Central Avenue, Suite 500",
                "zip_code": "85004",
                "country_code": "US",
                "email": "supportAZPBS@asu.edu",
                "tag_line": "",
                "page_tracking": "UA-1234567-2",
                "event_tracking": "UA-1234567-2",
                "passport_enabled": true,
                "annual_passport_qualifying_amount": 60.0,
                "primary_channel": "Arizona PBS",
                "primetime_start": "7PM",
                "images": [
                    {
                        "profile": "black-logo",
                        "url": "https://image.pbs.org/stations/kaet-black-logo-IyglqJE.png"
                    },
                    {
                        "profile": "white-logo",
                        "url": "https://image.pbs.org/stations/kaet-white-logo-Iv7cIbv.png"
                    },
                    {
                        "profile": "color-logo",
                        "url": "https://image.pbs.org/stations/kaet-color-logo-KkYt9tL.png"
                    },
                    {
                        "profile": "station-scenery-11",
                        "url": "https://image.pbs.org/stations/kaet-station-scenery-11-B44CPT2.jpg"
                    },
                    {
                        "profile": "white-cobranded-logo",
                        "url": "https://image.pbs.org/stations/kaet-white-cobranded-logo-qbmMI7t.png"
                    },
                    {
                        "profile": "color-cobranded-logo",
                        "url": "https://image.pbs.org/stations/kaet-color-cobranded-logo-7yONHt4.png"
                    },
                    {
                        "profile": "color-single-brand-logo",
                        "url": "https://image.pbs.org/stations/kaet-color-single-brand-logo-Bz3Oe7u.png"
                    },
                    {
                        "profile": "white-single-brand-logo",
                        "url": "https://image.pbs.org/stations/kaet-white-single-brand-logo-porNahY.png"
                    }
                ],
                "updated_at": "2019-07-31T21:31:55.164778Z",
                "ga_live_stream_url": "https://pbs.org",
                "display_logo_overlay": false,
                "ga_live_stream_feed_cid": "1234567890"
            },
            "id": "12345678-2c19-4eb7-9348-ab123456789"
        }, Requesting the station that will match WETA call sign. This will always return 1 or 0 results, because the filtering is an exact match by call sign. Filtering by flagship callsign  https://station.services.pbs.org/api/v1/stations/?call_sign=KOTH Station information returned {
    "meta": {
        "sort": {
            "short_common_name": {
                "asc": "https://station.services.pbs.org/api/v1/stations/?sort=short_common_name",
                "desc": "https://station.services.pbs.org/api/v1/stations/?sort=-short_common_name"
            },
            "call_sign": {
                "asc": "https://station.services.pbs.org/api/v1/stations/?sort=call_sign",
                "desc": "https://station.services.pbs.org/api/v1/stations/?sort=-call_sign"
            }
        },
        "type": "collection",
        "pagination": {
            "count": 1,
            "per_page": 25
        },
        "filter": {
            "id": "https://station.services.pbs.org/api/v1/stations/?id=",
            "call_sign": "https://station.services.pbs.org/api/v1/stations/?call_sign="
        }
    },
    "jsonapi": {
        "version": "1.0"
    },
    "data": [
        {
            "attributes": {
                "call_sign": "KOTH",
                "full_common_name": "Koth PBS",
                "short_common_name": "Koth",
                "tvss_url": "https://www.pbs.org/xxxx",
                "donate_url": "http://www.pbs.org/videos",
                "kids_live_stream_url": "https://livestream.xxxxxxx.xxx/v1/master/123456789123456789123456789/pbs-kids-test/abcdefghijk1234565789/est.xxxx?ads.station_id=123456789-abcd-1234-abcd-123456789",
                "timezone": "America/New_York",
                "secondary_timezone": "America/Indiana/Indianapolis",
                "video_portal_url": "",
                "website_url": "https://en.wikipedia.org/wiki/Koth",
                "facebook_url": "",
                "twitter_url": "",
                "station_kids_url": "",
                "passport_url": "http://www.pbs.org",
                "telephone": "",
                "fax": "",
                "pdp": true,
                "city": "Arlington",
                "state": "GU",
                "address_line_1": "2100 Crystal Drive",
                "address_line_2": "",
                "zip_code": "22202",
                "country_code": "US",
                "email": "support@kothstation.org",
                "tag_line": "America's most tested station you've never heard of!",
                "page_tracking": "UA-4699355-17",
                "event_tracking": "UA-4699355-17",
                "passport_enabled": true,
                "annual_passport_qualifying_amount": 50.0,
                "primary_channel": "",
                "primetime_start": "8PM",
                "images": [
                    {
                        "profile": "black-logo",
                        "url": "https://image.pbs.org/stations/koth-black-logo-tuVQL3c.png"
                    },
                    {
                        "profile": "white-logo",
                        "url": "https://image.pbs.org/stations/koth-white-logo-MlamY3v.png"
                    },
                    {
                        "profile": "color-logo",
                        "url": "https://image.pbs.org/stations/koth-color-logo-LD4n5y3.png"
                    },
                    {
                        "profile": "station-scenery-11",
                        "url": "https://image.pbs.org/stations/koth-station-scenery-11-gJLaI8T.jpg"
                    },
                    {
                        "profile": "white-cobranded-logo",
                        "url": "https://image.pbs.org/stations/koth-white-cobranded-logo-yUK7Qg6.png"
                    },
                    {
                        "profile": "color-cobranded-logo",
                        "url": "https://image.pbs.org/stations/koth-color-cobranded-logo-59w7VMA.png"
                    },
                    {
                        "profile": "color-single-brand-logo",
                        "url": "https://image.pbs.org/stations/koth-color-single-brand-logo-0ieXCkJ.png"
                    },
                    {
                        "profile": "white-single-brand-logo",
                        "url": "https://image.pbs.org/stations/koth-white-single-brand-logo-Rc9CXYK.png"
                    }
                ],
                "updated_at": "2020-03-05T20:18:59.904267Z",
                "ga_live_stream_url": "https://pbs.org",
                "display_logo_overlay": false,
                "ga_live_stream_feed_cid": "1234567890"
            },
            "id": "12345678-abcd-1234-a79f-12345678",
            "links": {
                "self": "https://station.services.pbs.org/api/v1/stations/12345678-abcd-1234-aacb-841fd5f2b9cb/"
            },
            "type": "station"
        }
    ],
    "links": {
        "first": null,
        "self": "https://station.services.pbs.org/api/v1/stations/?call_sign=KOTH",
        "prev": null,
        "next": null,
        "last": null
    }
} Station:get Returns the station entity matching {id}. HTTP Request GET https://station.services.pbs.org/api/v1/stations/{id}/  URL Parameters Here  id  must be interpreted as described below. Parameter name Value Description id string Id of the membership, as supplied by the station Example output The livestream_feeds section is currently inactive and is included as a placeholder for future use. Please ignore this section until further notice.  Station information returned {
    "jsonapi": {
        "version": "1.0"
    },
    "data": [
        {
            "type": "station",
            "id": "9d8087c6-c29a-4a47-86ee-0db85c3fb2dc",
            "attributes": {
                "call_sign": "KHET",
                "full_common_name": "PBS Hawaiʻi",
                "short_common_name": "PBS Hawai'i",
                "tvss_url": "https://www.pbshawaii.org/schedule/",
                "donate_url": "https://www.pbshawaii.org/support/",
                "kids_live_stream_url": "https://livestream.pbskids.org/out/v1/19d1d62bf61b4aea9ec20f83b6450a4e/hast.m3u8",
                "timezone": "Pacific/Honolulu",
                "secondary_timezone": "",
                "video_portal_url": "http://video.pbshawaii.org",
                "website_url": "https://www.pbshawaii.org",
                "learn_more_passport_url": "",
                "facebook_url": "https://www.facebook.com/pbshawaii/",
                "twitter_url": "https://twitter.com/pbshawaii",
                "station_kids_url": "",
                "passport_url": "https://www.pbshawaii.org/support/",
                "telephone": "(808) 462-5000",
                "fax": "(808) 462-5090",
                "pdp": false,
                "city": "Honolulu",
                "state": "HI",
                "address_line_1": "315 Sand Island Access Road",
                "address_line_2": "",
                "zip_code": "96819",
                "country_code": "US",
                "email": "email@pbshawaii.org",
                "tag_line": "We advance learning and discovery through storytelling that profoundly touches people's lives. We bring the world to Hawaiʻi and Hawaiʻi to the world.",
                "page_tracking": "UA-25489850-2",
                "event_tracking": "UA-25489850-3",
                "passport_enabled": true,
                "annual_passport_qualifying_amount": 60.0,
                "primary_channel": "KHET Oceanic Cable",
                "primetime_start": "8PM",
                "images": [
                    {
                        "url": "https://image.pbs.org/stations/khet-black-logo-asw8qK2.png",
                        "profile": "black-logo"
                    },
                    {
                        "url": "https://image.pbs.org/stations/khet-white-logo-30e1pMe.png",
                        "profile": "white-logo"
                    },
                    {
                        "url": "https://image.pbs.org/stations/khet-color-logo-31MRoVF.png",
                        "profile": "color-logo"
                    },
                    {
                        "url": "https://image.pbs.org/stations/khet-station-scenery-11-cDJvPv9.jpg",
                        "profile": "station-scenery-11"
                    },
                    {
                        "url": "https://image.pbs.org/stations/khet-white-cobranded-logo-05iKnAP.png",
                        "profile": "white-cobranded-logo"
                    },
                    {
                        "url": "https://image.pbs.org/stations/khet-color-cobranded-logo-GZcryfY.png",
                        "profile": "color-cobranded-logo"
                    },
                    {
                        "url": "https://image.pbs.org/stations/khet-color-single-brand-logo-TPvEfAd.png",
                        "profile": "color-single-brand-logo"
                    },
                    {
                        "url": "https://image.pbs.org/stations/khet-white-single-brand-logo-Aq83HSY.png",
                        "profile": "white-single-brand-logo"
                    }
                ],
                "updated_at": "2021-07-13T20:17:19.634979Z",
                "ga_live_stream_url": "",
                "display_logo_overlay": false,
                "ga_live_stream_feed_cid": "",
                "player_code": "",
                "livestream_feeds": [
                    {
                        "profile": "ga-main",
                        "player_code": "",
                        "cid": "b918ef73-16aa-4202-b2a5-3f07fd5f5af4",
                        "created_at": "2021-09-16T17:34:45.540664Z",
                        "updated_at": "2021-09-16T17:34:45.540687Z",
                        "associated_tvss_feed": null,
                        "non_drm_url": "",
                        "drm_hls_url": "",
                        "drm_dash_url": "",
                        "logo_overlay": false
                    },
                    {
                        "profile": "kids-main",
                        "player_code": "",
                        "cid": "cd098b0a-6983-4c7e-9375-0467114b4b20",
                        "created_at": "2021-09-16T17:34:45.546260Z",
                        "updated_at": "2021-09-16T17:34:45.546278Z",
                        "associated_tvss_feed": null,
                        "non_drm_url": "",
                        "drm_hls_url": "",
                        "drm_dash_url": "",
                        "logo_overlay": false
                    }
                ]
            },
            "links": {
                "self": "https://station.services.pbs.org/api/v1/stations/9d8087c6-c29a-4a47-86ee-0db85c3fb2dc/"
            }
        }
    ],
    "meta": {
        "type": "collection",
        "filter": {
            "call_sign": "https://station.services.pbs.org/api/v1/stations/?call_sign=",
            "id": "https://station.services.pbs.org/api/v1/stations/?id="
        },
        "sort": {
            "call_sign": {
                "asc": "https://station.services.pbs.org/api/v1/stations/?sort=call_sign",
                "desc": "https://station.services.pbs.org/api/v1/stations/?sort=-call_sign"
            },
            "short_common_name": {
                "asc": "https://station.services.pbs.org/api/v1/stations/?sort=short_common_name",
                "desc": "https://station.services.pbs.org/api/v1/stations/?sort=-short_common_name"
            }
        },
        "pagination": {
            "per_page": 25,
            "count": 1
        }
    },
    "links": {
        "self": "https://station.services.pbs.org/api/v1/stations/?call_sign=khet",
        "first": null,
        "prev": null,
        "next": null,
        "last": null
    }
} HTTP Response Status Codes The possible Status codes returned by this call are  200, 401, 403, 500 . For information about these statuses, refer to the  HTTP response status codes section . HTTP Request Headers The header ‘Content-type’ should have the value ‘application/json’ as described in  HTTP Request headers . HTTP Response Status Codes The following are possible status codes returned by API calls responses. Status code Meaning Resolution 200 Success 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 can not be found 500 Internal server error Unknown error