This endpoint tells you which custom fields your production has, so an integration can find out what it can read and write instead of relying on names someone copied by hand.

Two kinds of metadata

Confirmed keeps metadata in two places, and this endpoint describes both.

Show meta belongs to a single show: the night's ticket link, its poster, its promo blurb. It's in meta on every show the Shows API returns, and you can write it there too. Every production starts with the same eight built-in fields, and you can add your own under Settings > Data & API, in the Show Meta section.

Show type metadata belongs to a show type, so it holds whatever stays the same from one night to the next: a series' banner, its trailer, its ticket tiers. It's in meta on each show type from the Show types endpoint, and in the published static file. There are no built-ins here, so every field is one you've added under Settings > Data & API, in the Static API section. You fill in its values in Confirmed, and the API only reads them.

Show meta Show type metadata
Describes One show Every show of a type
Where you read it meta on a show meta on a show type
Can the API write it Yes, through the Shows API No
Built-in fields Eight None
Repeating groups No Yes
Name style snake_case camelCase

Request

GET /api/v1/<production>/meta-fields

curl https://confirmed.show/api/v1/spectrum/meta-fields \
  -H "Authorization: Bearer <token>"

Response

An object with one list per kind: show_fields for show meta and show_type_fields for show type metadata.

{
  "show_fields": [
    {
      "name": "tickets_url",
      "label": "Tickets link",
      "type": "url",
      "description": null,
      "built_in": true,
      "hidden": false
    },
    {
      "name": "promo_video",
      "label": "Promo video",
      "type": "video",
      "description": null,
      "built_in": true,
      "hidden": true
    },
    {
      "name": "age_rating",
      "label": "Age rating",
      "type": "short-text",
      "description": "As it appears on the ticket listing",
      "built_in": false,
      "hidden": false
    }
  ],
  "show_type_fields": [
    {
      "name": "bannerImage",
      "label": "Banner image",
      "type": "image",
      "description": null
    },
    {
      "name": "ticketTiers",
      "label": "Ticket tiers",
      "type": "group",
      "description": "One row per price band",
      "fields": [
        { "name": "label", "label": "Label", "type": "short-text", "description": null },
        { "name": "price", "label": "Price", "type": "number", "description": null }
      ]
    }
  ]
}

Field properties

Property Type Description
name string The key the value has in meta. This is the name to read and write.
label string What your team sees in Confirmed
type string What kind of value it holds. See Field types.
description string The note your team added to the field, when there is one
built_in boolean Show meta only. true for the eight fields every production has.
hidden boolean Show meta only. true when your production has taken a built-in off the show card.
fields Field[] Groups only. The fields in each row of the group.

Field types

Type Value in meta
short-text A single line of text
long-text Text that can run over several lines
url A link starting http:// or https://
number A number
boolean true or false
image The image's URL
video The video's URL
file The file's URL
show-types Show type metadata only. Show type ids, which you can match against the Show types endpoint.
group Show type metadata only. An array of objects, one per row, each keyed by the group's own fields.

When you write show meta, we check each value against its field's type and turn it away with a 422 if it doesn't fit. Show meta on the Shows page has the details, and Uploading a file covers getting a URL for an image, video or file field.

Things to know

  • Values are optional. A show or show type only has a value in meta once someone fills one in, so a field listed here may be missing from a given record.
  • Hidden fields still work. Hiding a built-in only takes it off the show card. You can still read and write it, and a value set before it was hidden stays on the show.
  • Only built-ins go public. The public Shows endpoint includes the built-in show meta fields and leaves out your own, so a field you add stays behind an API key.
  • Names can change. Your team can rename a field in Data & API, and that changes its key in meta. If an integration stops finding a value, this endpoint shows what the field is called now.

Errors

Status What happened
400 The request carried no API token.
401 We don't recognise that token.