---
# @generated by sylphx-gen 0.1.0 from contracts@e145cc7cf1bc9605f2b27439e5e17ed76a1a2fd7e7021906a013f7565e4a0cd5. Do not edit.
title: "Topics"
description: "The `topics` collection of Sylphx Events: A Topic is a named stream producers publish CloudEvents into."
type: reference
product: queues
summary: "A Topic is a named stream producers publish CloudEvents into."
updated: 2026-09-28
order: 900
---

> **This method is not served on the public API.** `api.sylphx.com` does not route this call: its backend is not deployed behind the public API, or does not implement the call. This page documents the contract. It is kept out of the sidebar and of search engines.

A Topic is a named stream producers publish CloudEvents into. An event is immutable and deduplicated by `source` + `id` within the Topic; a different payload under the same pair is a conflict, never a second fact.

**Service** Sylphx Events · **Resource type** `events.sylphx.com/Topic` · **Name pattern** `orgs/{org}/projects/{project}/envs/{env}/topics/{topic}` · **Shape** `spec_status`

## Fields

| Field | Type | What it is |
| --- | --- | --- |
| `name` | `string` | `orgs/{org}/projects/{project}/envs/{env}/topics/{topic}`. |
| `uid` | `string` | `top_<cell><ulid>`; never reused. Output only. |
| `meta` | `ResourceMeta` | Resource metadata. |
| `spec` | `TopicSpec` | Desired state. Required. |
| `status` | `TopicStatus` | Observed state. Output only. |

## Methods

Every method of the collection, in the registry's order, with the scope it
needs. The full request, response and examples are one link away.

| Method | Call | What it does |
| --- | --- | --- |
| `GET` | [`get`](/docs/api/topics#get) | Gets a topic. |
| `GET` | [`list`](/docs/api/topics#list) | Lists topics. |
| `POST` | [`create`](/docs/api/topics#create) | Creates a topic. |
| `PATCH` | [`update`](/docs/api/topics#update) | Updates a topic. |
| `DELETE` | [`delete`](/docs/api/topics#delete) | Deletes a topic. |
| `POST` | [`publish`](/docs/api/topics#publish) | Publishes CloudEvents into a Topic, atomically. Replaying the same `source` + `id` with the same payload returns the stored event; a different payload fails with RESOURCE_ALREADY_EXISTS. |

## get

Gets a topic.

`GET https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/topics/topic` · scope `events:read` · effect `read` · [Request, response and examples](/docs/api/topics/get)

## list

Lists topics.

`GET https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/topics` · scope `events:read` · effect `read` · paginated · [Request, response and examples](/docs/api/topics/list)

## create

Creates a topic.

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/topics` · scope `events:write` · effect `write` · [Request, response and examples](/docs/api/topics/create)

## update

Updates a topic.

`PATCH https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/topics/topic` · scope `events:write` · effect `write` · [Request, response and examples](/docs/api/topics/update)

## delete

Deletes a topic.

`DELETE https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/topics/topic` · scope `events:write` · effect `destructive` · [Request, response and examples](/docs/api/topics/delete)

## publish

Publishes CloudEvents into a Topic, atomically. Replaying the same `source` + `id` with the same payload returns the stored event; a different payload fails with RESOURCE_ALREADY_EXISTS.

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/topics/topic:publish` · scope `events:publish` · effect `write` · [Request, response and examples](/docs/api/topics/publish)
