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
metaonce 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. |