---
title: "Get topic by external ID"
method: GET
path: "/v2/topics/external/{externalId}"
tags: ["Topics (group chats/channels/conversations)"]
---

# Get topic by external ID

`GET /v2/topics/external/{externalId}`

## Request

- Base URL: `https://api.zenzap.co`
- URL: `https://api.zenzap.co/v2/topics/external/{externalId}`
- Auth: one of:
  - HTTP bearer and API key in header `X-Signature`
  - OAuth 2
    - Client credentials
    - Token URL: `https://api.zenzap.co/oauth/token` scopes: `channel:read`
- TypeScript: <https://skmtc.dev/zenzap/apis/zenzap-external-integration-api/docs/v2/topics/external/:externalId/get.ts> (a function with typed inputs; its response is checked against the schema)

Get details of a specific topic by its external ID (set when creating the topic).

**Authorization:** Your API key bot must be a member of the topic to access its details.

**Note:** For security reasons, a 404 response is returned both when the topic does not exist
and when your bot is not a member of the topic.

## Deep linking to topics

You can open Zenzap directly to a topic using its external ID by adding a query parameter to the Zenzap app URL.

| Component | Value |
|-----------|-------|
| Base URL | **https://app.zenzap.co** |
| Query parameter | **external_topic** |
| Parameter value | Your external ID |

For example, use **https://app.zenzap.co?external_topic=project-123** to link directly to a topic with external ID "project-123".

This is useful for creating links from your application that navigate users directly to the relevant conversation in Zenzap.

### Short vs fully qualified external ID

You can use either the **short external ID** (the value you passed when creating the topic) or the **fully qualified external ID**.

For security purposes, if multiple bots create topics with the same external ID, each topic is internally prefixed with the bot ID in the format **bot_id:external_id**. The bot ID follows the format `b@<uuid>` (e.g., `b@660e8400-e29b-41d4-a716-446655440003`). To avoid ambiguity, use the fully qualified format like **https://app.zenzap.co?external_topic=b@660e8400-e29b-41d4-a716-446655440003:project-123**.

| Format | Example URL |
|--------|-------------|
| Short | **https://app.zenzap.co?external_topic=project-123** |
| Fully qualified | **https://app.zenzap.co?external_topic=b@660e8400-e29b-41d4-a716-446655440003:project-123** |

### Multiple matches

If you use the short external ID and multiple bots have created topics with the same external ID, the user will see a selection screen to choose the correct topic:

![Topic selection screen](/images/topic_selection.jpg)

### Platform availability

Deep linking is currently supported on **Web** and **Windows** versions of Zenzap.

## Path parameters

- `externalId` string, required

## Headers

- `X-Signature` string
- `X-Timestamp` integer

## Response `200`

Topic details retrieved successfully

- TopicGetResponse
  - `id` string, uuid: The topic ID
  - `name` string: The topic name
  - `description` string: The topic description
  - `memberIds` string[]: Array of member IDs in the topic
  - `labels` string[]: Array of label IDs on the topic

## Other responses

- `400`: Bad request - invalid input
- `401`: Unauthorized - invalid or missing API token
- `404`: Resource not found
- `500`: Internal server error

---

[API](https://skmtc.dev/zenzap/apis/zenzap-external-integration-api.md) - [All operations](https://skmtc.dev/zenzap/apis/zenzap-external-integration-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zenzap/apis/zenzap-external-integration-api/revisions/37faae2c2036?raw)
