Skip to main content
GET
/
channels
List channels
curl --request GET \
  --url https://api.example.com/channels
{
  "data": [
    {
      "id": "app",
      "uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Mobile app",
      "status": "ACTIVE",
      "cms_template_id": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
      "cms": {
        "id": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
        "name": "App landing page",
        "entity": "CHANNELS",
        "status": "ACTIVE",
        "fields": [
          {
            "name": "hero_title",
            "type": "TEXT",
            "label": { "en_us": "Hero title" },
            "required": true,
            "value": "Order from our app"
          }
        ]
      }
    },
    {
      "id": "web",
      "uid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "name": "Web ordering",
      "status": "ACTIVE",
      "cms_template_id": null,
      "cms": null
    }
  ]
}
Returns every active channel configured for the merchant. Use this endpoint to build channel pickers or to load channel metadata before configuring menus and checkout flows.
Requires a Fire spark access token obtained through token exchange. The token scopes requests to the authenticated customer and merchant.

Request

curl "https://firespark.vercel.app/api/storefront/v1/channels" \
  -H "Authorization: Bearer ACCESS_TOKEN"

Response

The response wraps an array of channel objects in data. Only ACTIVE channels are included.
{
  "data": [
    {
      "id": "app",
      "uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Mobile app",
      "status": "ACTIVE",
      "cms_template_id": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
      "cms": {
        "id": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
        "name": "App landing page",
        "entity": "CHANNELS",
        "status": "ACTIVE",
        "fields": [
          {
            "name": "hero_title",
            "type": "TEXT",
            "label": { "en_us": "Hero title" },
            "required": true,
            "value": "Order from our app"
          }
        ]
      }
    },
    {
      "id": "web",
      "uid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "name": "Web ordering",
      "status": "ACTIVE",
      "cms_template_id": null,
      "cms": null
    }
  ]
}

Channel object

FieldTypeDescription
idstringExternal channel identifier. Alphanumeric characters, _, and - only. 1–64 characters.
uidstring (UUID)Fire spark internal identifier.
namestringDisplay name. 1–100 characters.
statusstringACTIVE or INACTIVE.
cms_template_idstring (UUID)CMS template linked to this channel. null when no template is assigned.
cmsobjectRead-only. null when cms_template_id is null. When set, the resolved CMS template for this channel.
Present only when cms_template_id is not null. Contains the resolved CMS template assigned to the channel.
FieldTypeDescription
idstring (UUID)Template identifier. Matches cms_template_id.
namestringTemplate name. 1–100 characters.
entitystringAlways CHANNELS for channel responses.
statusstringACTIVE or INACTIVE.
fieldsarrayTemplate fields with their current stored values.
Each field in fields:
FieldTypeDescription
namestringField key.
typestringTEXT, SELECT, IMAGE, or LIST.
labelobjectOptional localized label keyed by locale.
requiredbooleanWhether the field is required.
placeholderstringOptional placeholder text.
optionsarrayFor SELECT fields — objects with label and value.
altTextstringFor IMAGE fields — alternative text.
srcstringFor IMAGE fields — image URL.
hrefstringFor IMAGE fields — optional link URL.
valuevariesCurrent stored value for this channel. Omitted when empty.

Error responses

StatusDescription
401Missing or invalid access token.
403Token does not have access to this merchant’s channels.