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

# Get a channel

> Retrieve a Channel by ID.

`GET /api/v1/forward/channels/{channel_id}`

Returns Channel binding and status details.

## Headers

| Header          | Required | Description    |
| --------------- | -------- | -------------- |
| `Authorization` | Yes      | `Bearer <PAT>` |

## Path parameters

| Parameter    | Type   | Required | Description                                          |
| ------------ | ------ | -------- | ---------------------------------------------------- |
| `channel_id` | string | Yes      | Channel ID. Same value as the Channel object's `id`. |

## Example request

```bash theme={null}
curl -s -X GET 'https://api.qoder.com/api/v1/forward/channels/channel_019eabc123' \
  -H "Authorization: Bearer $QODER_PAT"
```

## Example response

**HTTP 200 OK**

```json theme={null}
{
  "id": "channel_019eabc123",
  "type": "channel",
  "identity_id": "idn_019eabc123",
  "template_id": "tmpl_support",
  "channel_type": "feishu",
  "name": "Support Feishu channel",
  "enabled": true,
  "binding_status": "bound",
  "channel_config": {
    "response_options": {
      "include_tool_calls": false,
      "include_thinking": false
    }
  },
  "created_at": "2026-06-18T10:00:00Z",
  "updated_at": "2026-06-18T10:00:00Z"
}
```

## Response fields

Returns the Channel object.

## Errors

| HTTP | Type                   | Code                      | Trigger                                                 |
| ---- | ---------------------- | ------------------------- | ------------------------------------------------------- |
| 401  | `authentication_error` | `authentication_required` | PAT invalid or expired.                                 |
| 404  | `not_found_error`      | `channel_not_found`       | Channel does not exist or is not visible to the caller. |

## Notes

* `binding_status` is system-maintained and cannot be directly changed by Update Channel.
* A channel can handle inbound messages only when `enabled=true` and `binding_status="bound"`.

## Related

<CardGroup cols={2}>
  <Card title="Update a channel" icon="pencil" href="/cloud-agents/api/forward/channels/update" />

  <Card title="Create channel QR session" icon="qrcode" href="/cloud-agents/api/forward/channels/create-qr-session" />
</CardGroup>
