API Reference
Topics API
Create, read, update, and delete domain topics in the Topic Registry.
The Topics API manages domain topics — the named channels that clients subscribe to for receiving real-time events.
Info
Topics are the central routing unit of the platform. To understand how topics relate to schemas, mappings, and webhooks, see Core Concepts.
List Topics
GET /api/topicsReturns all topics scoped to the current application and environment.
Response:
[
{
"name": "session.status",
"description": "Session status changes",
"owner": "platform-team",
"activeSchemaVersion": 2,
"applicationId": "app_abc123",
"environment": "development",
"createdAt": 1710000000000
}
]Get Topic
GET /api/topics/:nameExample:
curl http://localhost:3000/api/topics/session.statusCreate Topic
POST /api/topicsRequest Body:
{
"name": "session.status",
"description": "Session status changes",
"owner": "platform-team"
}Validation Rules:
name— required, dot-separated, lowercase (e.g.session.status,order.updated)description— required, non-empty stringowner— required, identifies the owning team or service
Response: 201 Created with the new topic object.
Update Topic
PATCH /api/topics/:nameRequest Body (all fields optional):
{
"description": "Updated description",
"owner": "new-team",
"activeSchemaVersion": 3
}Delete Topic
DELETE /api/topics/:nameResponse: 200 OK
Warning
Deleting a topic does not automatically remove associated schemas, mappings, or active subscriptions. Clean these up separately.
Topic Naming Convention
Topics use dot-separated, lowercase names that follow a domain-driven convention:
session.status
order.updated
chat.room.message
proctor.session.started
user.profile.changedThe TopicValidator enforces this format — names must match the pattern: lowercase letters, numbers, and dots, with at least one segment.