API

Show Series

Manage the Show / Series catalogue producers see in the HotMic studio.

The Show Series catalogue powers the Show / Series dropdown that producers use when creating an event in the studio. Use these endpoints to read the current catalogue and to replace it.

Concept

The Show Series catalogue is one theme setting scoped to your studio (resolved automatically from your API key). It has two top-level fields:

  • enabled (boolean) — whether the Show / Series picker is shown to producers in the studio.
  • options (array of objects) — the list of selectable shows. Each item must have a name (non-empty string). Any other fields you include (e.g. IDs, namespaces, seasons) are stored and returned as-is.

The catalogue is replaced wholesale on every write — there is no per-item endpoint. Send the entire list every time.

Retrieve the Show Series Catalogue

GEThttps://public-api.hotmic.io/studio/show-series

Retrieve Show Series Endpoint

Returns the current Show Series catalogue for your studio.

Header Parameters

NameTypeRequiredDescription
x-api-keyStringRequiredThe API key provided to you by HotMic.

Examples

curl --location --request GET 'https://public-api.hotmic.io/studio/show-series' \
--header 'Accept: application/json' \
--header 'x-api-key: String'

Responses

{
  "show_series": {
    "enabled": true,
    "options": [
      {
        "name": "Anderson Cooper 360",
        "show_series_id": "97abb6d9-ae8c-4309-8f7c-087012437379",
        "show_series_namespace": "urn:wbd:identifier:program-inventory:id",
        "seasons": [
          {
            "name": "2026",
            "show_season_id": "4f4e22ae-d880-4ec9-9635-abb0498abec7",
            "show_season_namespace": "urn:wbd:identifier:program-inventory:id"
          }
        ]
      }
    ]
  }
}

If your studio has a theme but no Show Series configured yet, the response is { "show_series": null }.

Replace the Show Series Catalogue

PUThttps://public-api.hotmic.io/studio/show-series

Replace Show Series Endpoint

Replaces the Show Series catalogue with the body you provide. POST is accepted as an alias and behaves identically.

Header Parameters

NameTypeRequiredDescription
x-api-keyStringRequiredThe API key provided to you by HotMic.
Content-TypeStringRequiredMust be application/json.

Body Parameters

NameTypeRequiredDescription
enabledBooleanRequiredTurns the Show / Series picker on/off in the studio.
optionsArrayRequiredThe full catalogue (array of objects). Each item must have a non-empty name; other fields are stored and returned as-is. Send [] to clear.

Examples

curl --location --request PUT 'https://public-api.hotmic.io/studio/show-series' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'x-api-key: String' \
--data-raw '{
  "enabled": true,
  "options": [
    {
      "name": "Anderson Cooper 360",
      "show_series_id": "97abb6d9-ae8c-4309-8f7c-087012437379"
    }
  ]
}'

Responses

{
  "show_series": {
    "enabled": true,
    "options": [
      {
        "name": "Anderson Cooper 360",
        "show_series_id": "97abb6d9-ae8c-4309-8f7c-087012437379",
        "show_series_namespace": "urn:wbd:identifier:program-inventory:id",
        "seasons": [
          {
            "name": "2026",
            "show_season_id": "4f4e22ae-d880-4ec9-9635-abb0498abec7",
            "show_season_namespace": "urn:wbd:identifier:program-inventory:id"
          }
        ]
      }
    ]
  }
}

POST /studio/show-series is accepted as an alias for PUT. Both methods behave identically and are idempotent — submitting the same body twice produces the same result, so it is safe to retry on network failures. Items not in the new options list are removed.

Each item in options must include a non-empty name; any additional fields (for example show_series_id, show_series_namespace, seasons) are stored and returned as-is. Unknown top-level keys other than enabled and options are rejected with 400.

Items in a GET response may also include server-managed fields such as _id, created_at, and updated_at. These are informational — you do not need to send them on write, and they will not be added to items you PUT for the first time.

To clear the catalogue, send { "enabled": false, "options": [] }. Changes are visible to the studio immediately — there is no cache lag.

Errors

StatusBodyWhen
400{"error":"Invalid JSON body"}Body is not valid JSON (PUT/POST).
400{"error":"Body must be a JSON object"}Body is null, an array, or a primitive (PUT/POST).
400{"error":"Unknown fields: foo"}Body has a top-level field other than enabled / options (PUT/POST).
400{"error":"'enabled' must be a boolean"}enabled is missing or the wrong type (PUT/POST).
400{"error":"'options' must be an array"}options is missing or not an array (PUT/POST).
400{"error":"'options[N]' must be an object"}An entry in options is not a plain object (PUT/POST).
400{"error":"'options[N].name' is required and must be a non-empty string"}A name is missing, empty, or not a string (PUT/POST).
401Error, missing or invalid x-api-key authentication header.API key is missing.
403{"message":"Forbidden"}API key not recognized.
404{"error":"No active theme found for this app"}Your studio has no active theme document. Contact HotMic support.
500{"error":"Internal server error","details":"..."}Unexpected server error.

Notes for Integrators

  • Always send the full list. There is no incremental / diff endpoint. To add one show, fetch the current list with GET, append your new item, and PUT the whole thing back.
  • Idempotent. Submitting the same body twice produces the same result. Safe to retry on network failures.
  • Rate limits. Subject to the public API's default quota (50,000 requests/day per key, 500 req/s burst); there is no endpoint-specific limit.