> ## Documentation Index
> Fetch the complete documentation index at: https://firespark.cloud/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get channel

> Retrieve a single channel by its external identifier.

Returns one channel by external `id`. Use this endpoint after the customer selects a channel to load its name, status, and CMS content for the storefront.

<Note>
  Requires a Fire spark access token obtained through [token
  exchange](/docs/storefront-api/oauth/exchange/post).
</Note>

## Path parameters

| Parameter | Required | Description                                                                               |
| --------- | -------- | ----------------------------------------------------------------------------------------- |
| `id`      | Yes      | External channel identifier. Alphanumeric characters, `_`, and `-` only. 1–64 characters. |

## Request

```bash theme={null}
curl "https://firespark.cloud/api/storefront/v1/channels/app" \
  -H "Authorization: Bearer ACCESS_TOKEN"
```

## Response

The response wraps a single channel object in `data`. The shape matches [list channels](/docs/storefront-api/channels/get).

<ResponseExample>
  ```json Success theme={null}
  {
    "data": {
      "id": "app",
      "uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "organization_id": "11111111-1111-1111-1111-111111111111",
      "merchant_id": "22222222-2222-2222-2222-222222222222",
      "name": "Mobile app",
      "type": "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"
          }
        ]
      }
    }
  }
  ```
</ResponseExample>

## Channel fields

See [list channels](/docs/storefront-api/channels/get) for the full schema, including `cms_template_id` and `cms`.

<Tip>
  Use the channel `id` when loading [menus](/docs/storefront-api/menus/get) and
  [stores](/docs/storefront-api/stores/get) scoped to a specific ordering surface.
</Tip>

## Error responses

| Status | Description                                 |
| ------ | ------------------------------------------- |
| `401`  | Missing or invalid access token.            |
| `403`  | Token does not have access to this channel. |
| `404`  | No channel found with the given `id`.       |


## OpenAPI

````yaml GET /channels/{id}
openapi: 3.0.1
info:
  title: Fire spark Integrations API
  description: POS and RMS integration endpoints for Fire spark.
  version: 1.0.0
servers:
  - url: https://firespark.cloud/api/integrations/v1
security:
  - bearerAuth: []
paths:
  /channels/{id}:
    get:
      summary: Get channel
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-zA-Z0-9_-]+$
          description: External channel identifier.
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ChannelUpsert'
components:
  schemas:
    ChannelUpsert:
      type: object
      required:
        - id
        - name
        - type
        - status
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9_-]+$
        name:
          type: string
          minLength: 1
          maxLength: 100
        type:
          type: string
          enum:
            - APP
            - WEB
            - KIOSK
            - POS
            - CALL_CENTER
            - AGGREGATOR
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
        cms_template_id:
          type: string
          format: uuid
          nullable: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````