> ## Documentation Index > Fetch the complete documentation index at: https://kb.vastdata.com/llms.txt > Use this file to discover all available pages before exploring further. # List all Topics ## OpenAPI ````json GET /topics { "openapi": "3.0.3", "info": { "title": "VAST DataEngine API", "description": "Combined OpenAPI specification for Document360: Provisioning, Telemetries Query, Telemetries Collector, and shared common components.", "version": "1.4.0" }, "servers": [ { "url": "http://localhost:3000", "description": "Provisioning Service (Local development server)" }, { "url": "http://localhost:8080/query_telemetries", "description": "Telemetries Query Service (Local development server)" }, { "url": "http://localhost:8080/telemetries", "description": "Telemetries Collector Service (Local development server)" } ], "tags": [ { "name": "Provisioning Service v1.4.0", "description": "Provisioning Service API" }, { "name": "Provisioning Service v1.4.0 > dataEngine", "description": "Data Engine lifecycle" }, { "name": "Provisioning Service v1.4.0 > setup_provisioning", "description": "Deprecated provisioning setup" }, { "name": "Provisioning Service v1.4.0 > pipelines", "description": "Pipelines" }, { "name": "Provisioning Service v1.4.0 > pipelineRevisions", "description": "Pipeline revisions" }, { "name": "Provisioning Service v1.4.0 > functions", "description": "Functions" }, { "name": "Provisioning Service v1.4.0 > functionRevisions", "description": "Function revisions" }, { "name": "Provisioning Service v1.4.0 > functionRevisionsDeprecated", "description": "Deprecated function revision endpoints" }, { "name": "Provisioning Service v1.4.0 > triggers", "description": "Triggers" }, { "name": "Provisioning Service v1.4.0 > topics", "description": "Topics" }, { "name": "Provisioning Service v1.4.0 > containerRegistries", "description": "Container registries" }, { "name": "Provisioning Service v1.4.0 > kubernetesClusters", "description": "Kubernetes clusters" }, { "name": "Provisioning Service v1.4.0 > kubernetesSecrets", "description": "Kubernetes secrets" }, { "name": "Provisioning Service v1.4.0 > mtlsAuthenticationCredentials", "description": "mTLS authentication credentials" }, { "name": "Provisioning Service v1.4.0 > dashboard", "description": "Dashboard" }, { "name": "Provisioning Service v1.4.0 > reports", "description": "Saved reports" }, { "name": "Telemetries Collector Service v1.4.0", "description": "API for collecting OTEL signals (traces, logs and metrics)" }, { "name": "Telemetries Collector Service v1.4.0 > collect_telemetries", "description": "Collect OTEL signals" }, { "name": "Telemetries Query Service v1.4.0", "description": "API for querying traces, logs and metrics" }, { "name": "Telemetries Query Service v1.4.0 > query_telemetries", "description": "Query traces and logs" }, { "name": "Telemetries Query Service v1.4.0 > metrics", "description": "Query metrics" }, { "name": "Telemetries Query Service v1.4.0 > reports", "description": "Saved reports" } ], "paths": { "/topics": { "get": { "summary": "List all Topics", "operationId": "listTopics", "tags": [ "Provisioning Service v1.4.0 > topics" ], "parameters": [ { "$ref": "#/components/parameters/Cursor" }, { "$ref": "#/components/parameters/Limit" }, { "$ref": "#/components/parameters/OrderBy" }, { "name": "guid", "in": "query", "required": "false", "schema": { "type": "string" }, "description": "Filter by topic GUID" }, { "name": "vrn", "in": "query", "required": "false", "schema": { "type": "string" }, "description": "Filter by topic VRN" }, { "name": "name", "in": "query", "required": "false", "schema": { "type": "string" }, "description": "Filter by topic name" }, { "name": "owner_name", "in": "query", "required": "false", "schema": { "type": "string" }, "description": "Filter by owner name" }, { "name": "broker_type", "in": "query", "required": "false", "schema": { "type": "string", "enum": [ "External", "Internal" ] }, "description": "Filter by broker type" }, { "name": "broker_name", "in": "query", "required": "false", "schema": { "type": "string" }, "description": "Filter by broker name" }, { "name": "broker_url", "in": "query", "required": "false", "schema": { "type": "string" }, "description": "Filter by broker URL" }, { "name": "name_in_broker", "in": "query", "required": "false", "schema": { "type": "string" }, "description": "Filter by topic name in broker" }, { "name": "default", "in": "query", "required": "false", "schema": { "type": "boolean" }, "description": "Filter by default topic flag" }, { "name": "deadletter", "in": "query", "required": "false", "schema": { "type": "boolean", "default": "false" }, "description": "Filter by deadletter topic flag" }, { "name": "created_after", "in": "query", "required": "false", "schema": { "type": "integer", "format": "int64" }, "description": "Filter topics created after this timestamp (microseconds since epoch)" }, { "name": "created_before", "in": "query", "required": "false", "schema": { "type": "integer", "format": "int64" }, "description": "Filter topics created before this timestamp (microseconds since epoch)" }, { "name": "updated_after", "in": "query", "required": "false", "schema": { "type": "integer", "format": "int64" }, "description": "Filter topics updated after this timestamp (microseconds since epoch)" }, { "name": "updated_before", "in": "query", "required": "false", "schema": { "type": "integer", "format": "int64" }, "description": "Filter topics updated before this timestamp (microseconds since epoch)" } ], "responses": { "200": { "description": "A list of Topics", "content": { "application/json": { "schema": { "type": "object", "properties": { "pagination": { "$ref": "#/components/schemas/Pagination" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/Topic" } } } } } } } } } } }, "components": { "parameters": { "Cursor": { "name": "cursor", "in": "query", "required": "false", "schema": { "type": "string" } }, "Limit": { "name": "limit", "in": "query", "required": "false", "schema": { "default": "100", "type": "integer" } }, "OrderBy": { "name": "order_by", "in": "query", "required": "false", "schema": { "type": "string", "enum": [ "asc", "desc" ], "default": "asc" }, "description": "Sort order - ascending (asc) or descending (desc)" } }, "schemas": { "Pagination": { "allOf": [ { "type": "object", "properties": { "next_cursor": { "type": "string", "description": "The cursor for the next page" }, "previous_cursor": { "type": "string", "description": "The cursor for the last page" } } } ] }, "Topic": { "allOf": [ { "$ref": "#/components/schemas/Resource" }, { "$ref": "#/components/schemas/TopicCreate" } ] }, "Resource": { "allOf": [ { "$ref": "#/components/schemas/ResourceCreate" }, { "type": "object", "properties": { "id": { "$ref": "#/components/schemas/ReadOnlyID" }, "guid": { "$ref": "#/components/schemas/ReadOnlyGUID" }, "tenant_guid": { "$ref": "#/components/schemas/TenantID" }, "owner": { "$ref": "#/components/schemas/UserID" }, "created_at": { "type": "string", "readOnly": "true", "format": "date-time", "description": "Timestamp when the resource was created.", "example": "2024-12-25 15:30:00+00:00" }, "updated_at": { "type": "string", "readOnly": "true", "format": "date-time", "description": "Timestamp when the resource was last updated.", "example": "2024-12-28 18:00:00+00:00" }, "vrn": { "$ref": "#/components/schemas/VastRN" } } } ], "description": "Extends ResourceCreate with read-only fields." }, "TopicCreate": { "allOf": [ { "$ref": "#/components/schemas/ResourceCreate" }, { "type": "object", "properties": { "broker": { "$ref": "#/components/schemas/Broker" }, "name_in_broker": { "type": "string", "description": "The name of the topic in the broker. (can different from the name of the Serverless Topic object)", "example": "my-topic" }, "default": { "type": "boolean", "description": "Flag indicating if the topic is the default topic for the tenant.\nSetting a topic as default will make it so that the previous default topic is no longer the default.\n", "default": "false" }, "deadletter": { "type": "boolean", "description": "Flag indicating if the topic is the dead letter topic for the tenant.\nSetting a topic as dead letter will make it so that the previous dead letter topic is no longer the dlt.\n", "default": "false" } }, "required": [ "broker", "name_in_broker" ] } ] }, "ResourceCreate": { "allOf": [ { "$ref": "#/components/schemas/ResourceUpdate" } ], "required": [ "name" ] }, "ReadOnlyID": { "type": "integer", "format": "int64", "readOnly": "true", "description": "A globally unique identifier (ID) for the resource." }, "ReadOnlyGUID": { "type": "string", "readOnly": "true", "format": "uuid", "description": "A globally unique identifier (GUID) for the resource.", "example": "a7f4aa24-a00d-4dc5-a113-2031eb8c2c79" }, "TenantID": { "$ref": "#/components/schemas/ReadOnlyGUID" }, "UserID": { "type": "object", "readOnly": "true", "properties": { "id": { "type": "string", "description": "The unique identifier for the owner." }, "id_type": { "type": "string", "description": "The type of identifier for the owner.", "enum": [ "uid", "vid", "sid", "access_key", "sid_str", "login_name", "username" ] }, "name": { "type": "string", "description": "The presentable name of the owner" } }, "required": [ "id", "id_type" ], "description": "Represents the owner of the resource." }, "VastRN": { "type": "string", "description": "A logical path for resource grouping and policy assignment. The structure of the logical path is: vast:dataengine::\nwhere resource type is one of: triggers / functions / pipelines / topics / kubernetes-clusters / container-registries / mtls-authentication-credentials.\n", "example": "vast:dataengine:functions:foo" }, "Broker": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/BrokerType" }, "url": { "type": "string", "deprecated": "true", "description": "Deprecated. The broker URL is now resolved from VMS by broker name. This field is ignored for VMS-registered brokers and only used as a legacy fallback for brokers not yet registered in VMS. It will be removed in a future release.", "example": "https://kafka.example.com:6969" }, "name": { "type": "string", "description": "Broker name for external or Bucket (View) name for internal.", "example": "my-kafka-broker", "maxLength": "40" }, "is_accessible_to_data_engine": { "type": "boolean", "default": "true", "description": "When true (default), the Data Engine will periodically validate that the broker is accessible. Set to false if the broker is not reachable from the Data Engine (e.g., external brokers behind firewalls)." } }, "required": [ "type", "name" ] }, "ResourceUpdate": { "additionalProperties": "false", "type": "object", "properties": { "name": { "type": "string", "description": "A name for the resource.", "example": "naomis-resource" }, "description": { "type": "string", "description": "A description of the resource.", "example": "A good and detailed description that makes everyone understand." }, "tags": { "type": "array", "maxItems": "32", "description": "Custom tags for organizing and categorizing resources in the GUI.", "items": { "type": "string" }, "example": [ "tagA", "tagB", "tagC" ] } }, "description": "Defines a shared group of attributes to be found in all API resources." }, "BrokerType": { "type": "string", "enum": [ "External", "Internal" ] } } } } ````