Synadia Communications Stream API
The stream API from Synadia Communications — 5 operation(s) for stream.
The stream API from Synadia Communications — 5 operation(s) for stream.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/synadia-communications-stream-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: API for Synadia Control Plane / Synadia Cloud
title: Synadia Control Plane / Synadia Cloud Stream API
version: beta
servers:
- description: Path to Synadia Control Plane Server Api
url: '{baseUrl}/api'
variables:
baseUrl:
default: ''
security:
- bearerAuth: []
sessionAuth: []
tags:
- name: Stream
paths:
/core/beta/jetstream/stream/{streamId}:
delete:
description: Deletes Stream
operationId: deleteStream
parameters:
- explode: false
in: path
name: streamId
required: true
schema:
type: string
style: simple
responses:
'204':
description: No Content
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
summary: Delete Stream
tags:
- Stream
x-doc-tags:
- 'JetStream: Streams'
get:
operationId: getStreamInfo
parameters:
- explode: false
in: path
name: streamId
required: true
schema:
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/JSStreamInfoResponse'
description: Success
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
summary: Get Stream
tags:
- Stream
x-doc-tags:
- 'JetStream: Streams'
patch:
description: Updates Stream
operationId: updateStream
parameters:
- explode: false
in: path
name: streamId
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JSStreamConfigRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/JSStreamInfoResponse'
description: Success
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
summary: Update Stream
tags:
- Stream
x-doc-tags:
- 'JetStream: Streams'
/core/beta/jetstream/stream/{streamId}/consumers:
get:
operationId: listConsumers
parameters:
- explode: false
in: path
name: streamId
required: true
schema:
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/JSConsumerInfoListResponse'
description: Success
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
summary: List Consumers
tags:
- Stream
x-doc-tags:
- 'JetStream: Consumers'
/core/beta/jetstream/stream/{streamId}/consumers/pull:
post:
description: Creates Pull Consumer
operationId: createPullConsumer
parameters:
- explode: false
in: path
name: streamId
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JSPullConsumerConfigRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/JSPullConsumerInfoResponse'
description: Success
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
summary: Create Pull Consumer
tags:
- Stream
x-doc-tags:
- 'JetStream: Streams'
/core/beta/jetstream/stream/{streamId}/consumers/push:
post:
operationId: createPushConsumer
parameters:
- explode: false
in: path
name: streamId
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JSPushConsumerConfigRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/JSPushConsumerInfoResponse'
description: Success
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
summary: Create Push Consumer
tags:
- Stream
x-doc-tags:
- 'JetStream: Streams'
/core/beta/jetstream/stream/{streamId}/purge:
delete:
description: Purges Stream
operationId: purgeStream
parameters:
- explode: false
in: path
name: streamId
required: true
schema:
type: string
style: simple
responses:
'204':
description: No Content
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
summary: Purge Stream
tags:
- Stream
x-doc-tags:
- 'JetStream: Streams'
components:
schemas:
JSCommonStreamInfo:
properties:
alternates:
items:
$ref: '#/components/schemas/StreamAlternate'
type: array
cluster:
$ref: '#/components/schemas/ClusterInfo'
created:
format: date-time
type: string
domain:
type: string
name:
type: string
sources:
items:
$ref: '#/components/schemas/StreamSourceInfo'
type: array
state:
$ref: '#/components/schemas/StreamState'
ts:
format: date-time
type: string
required:
- created
- name
- state
- ts
type: object
StreamSource:
description: StreamSource dictates how streams can source from other streams.
example:
opt_start_time: opt_start_time
external: null
opt_start_seq: 2147483647
name: name
consumer: null
filter_subject: filter_subject
subject_transforms:
- src: src
dest: dest
- src: src
dest: dest
properties:
consumer:
$ref: '#/components/schemas/StreamSource_consumer'
external:
$ref: '#/components/schemas/StreamSource_external'
filter_subject:
type: string
name:
type: string
opt_start_seq:
maximum: 18446744073709551615
minimum: 0
type: integer
opt_start_time:
type:
- string
- 'null'
subject_transforms:
items:
$ref: '#/components/schemas/SubjectTransformConfig'
type: array
required:
- name
type: object
SubjectTransformConfig:
description: 'SubjectTransformConfig is for applying a subject transform (to matching messages) before doing anything else
when a new message is received'
example:
src: src
dest: dest
properties:
dest:
type: string
src:
type: string
required:
- dest
- src
type: object
StreamAlternate:
properties:
cluster:
type: string
domain:
type: string
name:
type: string
required:
- cluster
- name
type: object
PriorityGroupState:
description: PriorityGroupState is the state of a consumer priority group.
example:
pinned_client_id: pinned_client_id
pinned_ts: 2000-01-23 04:56:07+00:00
group: group
properties:
group:
type: string
pinned_client_id:
type: string
pinned_ts:
format: date-time
type: string
required:
- group
type: object
StreamState_lost:
allOf:
- $ref: '#/components/schemas/LostStreamData'
type:
- object
- 'null'
JSCommonStreamConfig:
properties:
allow_atomic:
type: boolean
allow_batched:
type: boolean
allow_direct:
type: boolean
allow_msg_counter:
type: boolean
allow_msg_schedules:
type: boolean
allow_msg_ttl:
type: boolean
allow_rollup_hdrs:
type: boolean
compression:
$ref: '#/components/schemas/Compression'
consumer_limits:
$ref: '#/components/schemas/JSStreamConsumerLimits'
deny_delete:
type: boolean
deny_purge:
type: boolean
description:
type: string
discard:
$ref: '#/components/schemas/DiscardPolicy'
discard_new_per_subject:
type: boolean
duplicate_window:
format: int64
type: integer
first_seq:
maximum: 18446744073709551615
minimum: 0
type: integer
max_age:
format: int64
type: integer
max_bytes:
format: int64
type: integer
max_consumers:
type: integer
max_msg_size:
format: int32
type: integer
max_msgs:
format: int64
type: integer
max_msgs_per_subject:
format: int64
type: integer
metadata:
additionalProperties:
type: string
type: object
name:
type: string
no_ack:
type: boolean
num_replicas:
type: integer
persist_mode:
$ref: '#/components/schemas/JSPersistMode'
placement:
$ref: '#/components/schemas/Placement'
republish:
$ref: '#/components/schemas/RePublish'
retention:
$ref: '#/components/schemas/RetentionPolicy'
sealed:
type: boolean
sources:
items:
$ref: '#/components/schemas/StreamSource'
type: array
storage:
$ref: '#/components/schemas/StorageType'
subject_delete_marker_ttl:
format: int64
type: integer
subject_transform:
$ref: '#/components/schemas/SubjectTransformConfig'
template_owner:
type: string
required:
- allow_direct
- allow_rollup_hdrs
- deny_delete
- deny_purge
- discard
- max_age
- max_bytes
- max_consumers
- max_msgs
- max_msgs_per_subject
- name
- num_replicas
- retention
- sealed
- storage
type: object
ConsumerInfo:
description: ConsumerInfo reports the current state of a consumer
properties:
ack_floor:
$ref: '#/components/schemas/SequenceInfo'
cluster:
$ref: '#/components/schemas/ConsumerInfo_cluster'
config:
$ref: '#/components/schemas/ConsumerConfig'
created:
format: date-time
type: string
delivered:
$ref: '#/components/schemas/SequenceInfo'
name:
type: string
num_ack_pending:
type: integer
num_pending:
maximum: 18446744073709551615
minimum: 0
type: integer
num_redelivered:
type: integer
num_waiting:
type: integer
pause_remaining:
format: int64
type: integer
paused:
type: boolean
priority_groups:
items:
$ref: '#/components/schemas/PriorityGroupState'
type: array
push_bound:
type: boolean
stream_name:
type: string
ts:
format: date-time
type: string
required:
- ack_floor
- config
- created
- delivered
- name
- num_ack_pending
- num_pending
- num_redelivered
- num_waiting
- stream_name
- ts
type: object
DeliverPolicy:
enum:
- all
- last
- new
- by_start_sequence
- by_start_time
- last_per_subject
type: string
JSConsumerType:
enum:
- push
- pull
type: string
StreamSource_external:
allOf:
- $ref: '#/components/schemas/ExternalStream'
type:
- object
- 'null'
RetentionPolicy:
enum:
- limits
- interest
- workqueue
type: string
ConsumerInfo_cluster:
allOf:
- $ref: '#/components/schemas/ClusterInfo'
type:
- object
- 'null'
JSConsumerInfoResponse:
allOf:
- $ref: '#/components/schemas/ConsumerInfo'
- required:
- consumer_type
- id
example:
consumer_type: null
id: id
properties:
consumer_type:
$ref: '#/components/schemas/JSConsumerType'
id:
type: string
type: object
Compression:
enum:
- none
- s2
type: string
SequenceInfo:
description: SequenceInfo is the consumer and stream sequence that uniquely identify a message
example:
consumer_seq: 2147483647
last_active: last_active
stream_seq: 2147483647
properties:
consumer_seq:
maximum: 18446744073709551615
minimum: 0
type: integer
last_active:
type:
- string
- 'null'
stream_seq:
maximum: 18446744073709551615
minimum: 0
type: integer
required:
- consumer_seq
- stream_seq
type: object
Placement:
description: Placement describes stream placement requirements for a stream or leader.
example:
cluster: cluster
tags:
- tags
- tags
properties:
cluster:
type: string
tags:
items:
type: string
type: array
type: object
JSStreamConfigRequest:
allOf:
- $ref: '#/components/schemas/JSCommonStreamConfig'
example:
subjects:
- subjects
- subjects
properties:
subjects:
items:
type: string
type: array
type: object
StreamConsumerSource:
description: StreamConsumerSource configures the consumer used by a sourced stream.
properties:
deliver_subject:
type: string
name:
type: string
required:
- deliver_subject
type: object
ReplayPolicy:
enum:
- instant
- original
type: string
JSCommonConsumerConfigRequest:
properties:
ack_policy:
$ref: '#/components/schemas/AckPolicy'
ack_wait:
format: int64
type: integer
backoff:
items:
format: int64
type: integer
type: array
deliver_policy:
$ref: '#/components/schemas/DeliverPolicy'
description:
type: string
direct:
type: boolean
durable_name:
type: string
filter_subjects:
items:
type: string
type: array
inactive_threshold:
format: int64
type: integer
max_ack_pending:
type: integer
max_deliver:
type: integer
mem_storage:
type: boolean
metadata:
additionalProperties:
type: string
type: object
name:
type: string
num_replicas:
type: integer
opt_start_seq:
maximum: 18446744073709551615
minimum: 0
type: integer
opt_start_time:
format: date-time
type: string
pause_until:
format: date-time
type: string
replay_policy:
$ref: '#/components/schemas/ReplayPolicy'
sample_freq:
type: string
required:
- ack_policy
- deliver_policy
- num_replicas
- replay_policy
type: object
StorageType:
enum:
- file
- memory
type: string
ConsumerConfig:
description: 'ConsumerConfig is the configuration for a JetStream consumes
NATS Schema Type io.nats.jetstream.api.v1.consumer_configuration'
properties:
ack_policy:
$ref: '#/components/schemas/AckPolicy'
ack_wait:
format: int64
type: integer
backoff:
items:
format: int64
type: integer
type: array
deliver_group:
type: string
deliver_policy:
$ref: '#/components/schemas/DeliverPolicy'
deliver_subject:
type: string
description:
type: string
direct:
description: Don't add to general clients.
type: boolean
durable_name:
type: string
filter_subject:
type: string
filter_subjects:
items:
type: string
type: array
flow_control:
type: boolean
headers_only:
type: boolean
idle_heartbeat:
format: int64
type: integer
inactive_threshold:
format: int64
type: integer
max_ack_pending:
type: integer
max_batch:
type: integer
max_bytes:
type: integer
max_deliver:
type: integer
max_expires:
format: int64
type: integer
max_waiting:
type: integer
mem_storage:
type: boolean
metadata:
additionalProperties:
type: string
description: Metadata is additional metadata for the Consumer.
type: object
name:
type: string
num_replicas:
type: integer
opt_start_seq:
maximum: 18446744073709551615
minimum: 0
type: integer
opt_start_time:
type:
- string
- 'null'
pause_until:
description: PauseUntil suspends the consumer until the deadline.
format: date-time
type: string
priority_groups:
items:
type: string
type: array
priority_policy:
$ref: '#/components/schemas/PriorityPolicy'
priority_timeout:
format: int64
type: integer
rate_limit_bps:
maximum: 18446744073709551615
minimum: 0
type: integer
replay_policy:
$ref: '#/components/schemas/ReplayPolicy'
sample_freq:
type: string
required:
- ack_policy
- deliver_policy
- num_replicas
- replay_policy
type: object
StreamSource_consumer:
allOf:
- $ref: '#/components/schemas/StreamConsumerSource'
type:
- object
- 'null'
JSType:
enum:
- stream
- mirror
- kv-bucket
- object-bucket
type: string
StreamSourceInfo_error:
allOf:
- $ref: '#/components/schemas/JSApiError'
type:
- object
- 'null'
JSPushConsumerConfigRequest:
allOf:
- $ref: '#/components/schemas/JSCommonConsumerConfigRequest'
example:
deliver_group: deliver_group
deliver_subject: deliver_subject
rate_limit_bps: 2147483647
headers_only: true
flow_control: true
idle_heartbeat: 0
properties:
deliver_group:
type: string
deliver_subject:
description: Push based options.
type: string
flow_control:
type: boolean
headers_only:
type: boolean
idle_heartbeat:
format: int64
type: integer
rate_limit_bps:
maximum: 18446744073709551615
minimum: 0
type: integer
type: object
JSPersistMode:
enum:
- default
- async
type: string
JSPullConsumerConfigRequest:
allOf:
- $ref: '#/components/schemas/JSCommonConsumerConfigRequest'
example:
max_waiting: 2
priority_timeout: 7
priority_groups:
- priority_groups
- priority_groups
priority_policy: null
max_expires: 5
max_bytes: 5
max_batch: 1
properties:
max_batch:
type: integer
max_bytes:
type: integer
max_expires:
format: int64
type: integer
max_waiting:
description: Pull based options.
type: integer
priority_groups:
items:
type: string
type: array
priority_policy:
$ref: '#/components/schemas/PriorityPolicy'
priority_timeout:
format: int64
type: integer
type: object
JSPushConsumerInfoResponse:
example:
cluster:
leader: leader
system_account: true
replicas:
- null
- null
raft_group: raft_group
name: name
traffic_account: traffic_account
leader_since: leader_since
num_redelivered: 5
paused: true
created: 2000-01-23 04:56:07+00:00
num_pending: 2147483647
pause_remaining: 2
delivered:
consumer_seq: 2147483647
last_active: last_active
stream_seq: 2147483647
num_ack_pending: 1
push_bound: true
stream_name: stream_name
name: name
id: id
config:
deliver_group: deliver_group
deliver_subject: deliver_subject
rate_limit_bps: 2147483647
headers_only: true
flow_control: true
idle_heartbeat: 0
ack_floor:
consumer_seq: 2147483647
last_active: last_active
stream_seq: 2147483647
ts: 2000-01-23 04:56:07+00:00
properties:
ack_floor:
$ref: '#/components/schemas/SequenceInfo'
cluster:
$ref: '#/components/schemas/ClusterInfo'
config:
$ref: '#/components/schemas/JSPushConsumerConfigRequest'
created:
format: date-time
type: string
delivered:
$ref: '#/components/schemas/SequenceInfo'
id:
type: string
name:
type: string
num_ack_pending:
type: integer
num_pending:
maximum: 18446744073709551615
minimum: 0
type: integer
num_redelivered:
type: integer
pause_remaining:
format: int64
type: integer
paused:
type: boolean
push_bound:
type: boolean
stream_name:
type: string
ts:
format: date-time
type: string
required:
- ack_floor
- created
- delivered
- id
- name
- num_ack_pending
- num_pending
- num_redelivered
- stream_name
- ts
type: object
StreamSourceInfo:
description: StreamSourceInfo shows information about an upstream stream source.
example:
external: null
lag: 2147483647
name: name
active: 0
error: null
filter_subject: filter_subject
subject_transforms:
- src: src
dest: dest
- src: src
dest: dest
properties:
active:
format: int64
type: integer
error:
$ref: '#/components/schemas/StreamSourceInfo_error'
external:
$ref: '#/components/schemas/StreamSource_external'
filter_subject:
type: string
lag:
maximum: 18446744073709551615
minimum: 0
type: integer
name:
type: string
subject_transforms:
items:
$ref: '#/components/schemas/SubjectTransformConfig'
type: array
required:
- active
- lag
- name
type: object
JSConsumerInfoListResponse:
example:
items:
- consumer_type: null
id: id
- consumer_type: null
id: id
properties:
items:
items:
$ref: '#/components/schemas/JSConsumerInfoResponse'
type: array
required:
- items
type: object
JSApiError:
description: JSApiError retains the existing schema name; the upstream Go type is now ApiError.
properties:
code:
type: integer
description:
type: string
err_code:
maximum: 65535
minimum: 0
type: integer
required:
- code
type: object
PriorityPolicy:
description: PriorityPolicy determines how messages are selected from priority groups.
enum:
- none
- overflow
- pinned_client
- prioritized
type: string
RePublish:
description: RePublish allows a source subject to be mapped to a destination subject for republishing.
example:
src: src
headers_only: true
dest: dest
properties:
dest:
type: string
headers_only:
type: boolean
src:
type: string
required:
- dest
type: object
DiscardPolicy:
description: enums have been changed to match UnmarshalJSON in https://github.com/nats-io/jsm.go/blob/main/api/streams.go
enum:
- old
- new
type: string
ClusterInfo_replicas_inner:
allOf:
- $ref: '#/components/schemas/PeerInfo'
type:
- object
- 'null'
JSStreamInfoResponse:
allOf:
- $ref: '#/components/schemas/JSCommonStreamInfo'
- required:
- config
- id
- jetstream_type
example:
jetstream_type: null
id: id
config:
subjects:
- subjects
- subjects
properties:
config:
$ref: '#/components/schemas/JSStreamConfigRequest'
id:
type: string
jetstream_type:
$ref: '#/components/schemas/JSType'
type: object
AckPolicy:
description: enums have been changed to match UnmarshalJSON in https://github.com/nats-io/jsm.go/blob/main/api/consumers.go
enum:
- none
- all
- explicit
- flow_control
type: string
StreamState:
properties:
bytes:
maximum: 18446744073709551615
minimum: 0
type: integer
consumer_count:
type: integer
deleted:
items:
maximum: 18446744073709551615
minimum: 0
type: integer
type: array
first_seq:
maximum: 18446744073709551615
minimum: 0
type: integer
first_ts:
format: date-time
type: string
last_seq:
maximum: 18446744073709551615
minimum: 0
type: integer
last_ts:
format: date-time
type: string
lost:
$ref: '#/components/schemas/StreamState_lost'
messages:
maximum: 18446744073709551615
minimum: 0
type: integer
num_deleted:
type: integer
num_subjects:
type: integer
subjects:
additionalProperties:
maximum: 18446744073709551615
minimum: 0
type: integer
type: object
required:
- bytes
- consumer_count
- first_seq
- first_ts
- last_seq
- last_ts
- messages
type: object
JSStreamConsumerLimits:
properties:
inactive_threshold:
format: int64
type: integer
max_ack_pending:
type: integer
type: object
ClusterInfo:
description: 'ClusterInfo shows information about the underlying set of servers
that make up the stream or consumer.'
example:
leader: leader
system_account: true
replicas:
- null
- null
raft_group: raft_group
name: name
traffic_account: traffic_account
leader_since: leader_since
properties:
leader:
type: string
leader_since:
type:
- string
- 'null'
name:
type: string
raft_group:
type: string
replicas:
items:
$ref: '#/components/schemas/ClusterInfo_replicas_inner'
type: array
system_account:
type: boolean
traffic_account:
type: string
type: object
PeerInfo:
description: 'PeerInfo shows information about all the peers in the cluster that
are supporting the stream or consumer.'
properties:
active:
format: int64
type: integer
current:
type: boolean
lag:
maximum: 18446744073709551615
minimum: 0
type: integer
name:
type: string
offline:
type: boolean
peer:
type: string
required:
- active
- current
- name
- peer
type: object
ExternalStream:
description: ExternalStream allows you to qualify access to a stream source in another account.
properties:
api:
type: string
deliver:
type: string
required:
- api
- deliver
type: object
JSPullConsumerInfoResponse:
example:
cluster:
leader: leader
system_account: true
replicas:
- null
- null
raft_group: raft_group
name: name
traffic_account: traffic_account
leader_since: leader_since
num_redelivered: 2
paused: true
created: 2000-01-23 04:56:07+00:00
num_pending: 2147483647
num_waiting: 4
pause_remaining: 7
delivered:
consumer_seq: 2147483647
last_active: last_active
stream_seq: 2147483647
num_ack_pending: 9
priority_groups:
- pinned_client_id: pinned_client_id
pinned_ts: 2000-01-23 04:56:07+00:00
group: group
- pinned_client_id: pinned_client_id
pinned_ts: 2000-01-23 04:56:07+00:00
group: group
stream_name: stream_name
name: name
id: id
config:
max_waiting: 2
priority_timeout: 7
priority_groups:
- priority_groups
- priority_groups
priority_policy: null
max_expires: 5
max_bytes: 5
max_batch: 1
ack_floor:
consumer_seq: 2147483647
last_active: last_active
stream_seq: 2147483647
ts: 2000-01-23 04:56:07+00:00
properties:
ack_floor:
$ref: '#/components/schemas/SequenceInfo'
cluster:
$ref: '#/components/schemas/ClusterInfo'
config:
$ref: '#/components/schemas/JSPullConsumerConfigRequest'
created:
format: date-time
type: string
delivered:
$ref: '#/components/schemas/SequenceInfo'
id:
type: string
name:
type: string
num_ack_pending:
type: integer
num_pending:
maximum: 18446744073709551615
minimum: 0
type: integer
num_redelivered:
type: integer
num_waiting:
type: integer
pause_remaining:
format: int64
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/synadia-communications/refs/heads/main/openapi/synadia-communications-stream-api-openapi.yml