---
title: "Authorize channel subscription"
url: https://docs.gleap.ai/en/reference/conversations-api/auth
method: POST
path: "/s2s/stream/auth"
api: "Conversations API"
tag: "S2S Stream"
operationId: "Auth"
updatedAt: "2026-11-01T18:40:16.191Z"
language: en
---

# Authorize channel subscription

`POST https://api.gleap.io/v3/s2s/stream/auth`

Channel authorization — point your Pusher client's channel auth here with your server key as the Authorization header. A new consumerId takes over from the previous consumer (its connection is terminated).

## Authorization

- `Authorization` (header, required): `Bearer <token>`

## Headers

- `Gleap-Version` (string): Pin a specific API version; defaults to the current version.
- `Idempotency-Key` (string): Makes the POST retryable: a completed successful response replays for 24 hours (Gleap-Idempotency-Replayed: true). Semantics are at-least-once — a retry that races a crashed or >60s-running original may re-execute. Error responses are never stored; retry them normally.

## Request body (`application/json`, required)

- `socket_id` (string, required)
- `channel_name` (string, required)
- `consumerId` (string, required): Identifies the connecting backend instance; a new consumerId takes over.
- `typingEvents` (boolean): Opt this stream into agent.typing.\* events (high volume; default off).

## Example request

```bash
curl --request POST \
  --url https://api.gleap.io/v3/s2s/stream/auth \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "socket_id": "<socket_id>",
  "channel_name": "<channel_name>",
  "consumerId": "<consumerId>"
}'
```

## Responses

### 200 (`application/json`)

Ok

### 401 (`application/problem+json`)

Missing, invalid or revoked service account token.

- `type` (string, required)
- `title` (string, required)
- `status` (number, required)
- `code` (string, required)
- `detail` (string)
- `request_id` (string)

```json
{
  "type": "https://docs.gleap.io/s2s/problems/conversation_closed",
  "title": "string",
  "status": 0,
  "code": "conversation_closed",
  "detail": "string",
  "request_id": "req_66c0ffee0000000000000001"
}
```

### 404 (`application/problem+json`)

The addressed resource does not exist in this project.

- `type` (string, required)
- `title` (string, required)
- `status` (number, required)
- `code` (string, required)
- `detail` (string)
- `request_id` (string)

```json
{
  "type": "https://docs.gleap.io/s2s/problems/conversation_closed",
  "title": "string",
  "status": 0,
  "code": "conversation_closed",
  "detail": "string",
  "request_id": "req_66c0ffee0000000000000001"
}
```

### 422 (`application/problem+json`)

Idempotency-Key reuse with a different request body.

- `type` (string, required)
- `title` (string, required)
- `status` (number, required)
- `code` (string, required)
- `detail` (string)
- `request_id` (string)

```json
{
  "type": "https://docs.gleap.io/s2s/problems/conversation_closed",
  "title": "string",
  "status": 0,
  "code": "conversation_closed",
  "detail": "string",
  "request_id": "req_66c0ffee0000000000000001"
}
```

### 429 (`application/problem+json`)

Rate limit exceeded — honor the Retry-After header.

- `type` (string, required)
- `title` (string, required)
- `status` (number, required)
- `code` (string, required)
- `detail` (string)
- `request_id` (string)

```json
{
  "type": "https://docs.gleap.io/s2s/problems/conversation_closed",
  "title": "string",
  "status": 0,
  "code": "conversation_closed",
  "detail": "string",
  "request_id": "req_66c0ffee0000000000000001"
}
```

### default (`application/problem+json`)

Any other error, including validation\_failed (400) and internal\_error (500).

- `type` (string, required)
- `title` (string, required)
- `status` (number, required)
- `code` (string, required)
- `detail` (string)
- `request_id` (string)

```json
{
  "type": "https://docs.gleap.io/s2s/problems/conversation_closed",
  "title": "string",
  "status": 0,
  "code": "conversation_closed",
  "detail": "string",
  "request_id": "req_66c0ffee0000000000000001"
}
```
