Synadia Communications Issuance API
The issuance API from Synadia Communications — 1 operation(s) for issuance.
The issuance API from Synadia Communications — 1 operation(s) for issuance.
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-issuance-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 Issuance API
version: beta
servers:
- description: Path to Synadia Control Plane Server Api
url: '{baseUrl}/api'
variables:
baseUrl:
default: ''
security:
- bearerAuth: []
sessionAuth: []
tags:
- name: Issuance
paths:
/core/beta/nats-user-issuances/{issuanceId}:
get:
description: Get a history of all downloads and imports of the given issuance
operationId: getNatsUserIssuance
parameters:
- explode: false
in: path
name: issuanceId
required: true
schema:
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/NatsUserIssuanceViewResponse'
description: Success
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
summary: Get nats user issuance
tags:
- Issuance
x-doc-tags:
- NATS User Issuances
components:
schemas:
Permission:
description: Permission defines allow/deny subjects
example:
allow:
- allow
- allow
deny:
- deny
- deny
properties:
allow:
items:
type: string
type: array
deny:
items:
type: string
type: array
type: object
GenericFields:
properties:
tags:
items:
type: string
type: array
type:
description: ClaimType is used to indicate the type of JWT being stored in a Claim
type: string
version:
type: integer
type: object
User:
allOf:
- $ref: '#/components/schemas/GenericFields'
- $ref: '#/components/schemas/UserPermissionLimits'
description: User defines the user specific data in a user JWT
example:
issuer_account: issuer_account
properties:
issuer_account:
description: 'IssuerAccount stores the public key for the account the issuer represents.
When set, the claim was issued by a signing key.'
type: string
type: object
NatsUserIssuanceViewResponse:
example:
exp_max: 1
nats:
issuer_account: issuer_account
sub: sub
iat_max: 5
created: 2000-01-23 04:56:07+00:00
checksum: checksum
iss: iss
name: name
id: id
iat_min: 5
events:
- app_user:
identifier: identifier
name: name
id: id
type: null
exp: 0
type: null
iat: 6
jti: jti
status: null
- app_user:
identifier: identifier
name: name
id: id
type: null
exp: 0
type: null
iat: 6
jti: jti
status: null
status: null
properties:
checksum:
description: 'sha256 sum of (NatsUserId,Iss,Sub,Name,json_encode(Nats))
If a credential is downloaded and results in a unique checksum then a new issuance record is created.
If a credential''s checksum matches an existing record, a new event is appended to the existing record.'
type: string
created:
format: date-time
type: string
events:
description: trail of download events
items:
$ref: '#/components/schemas/NatsUserIssuanceEvent'
type: array
exp_max:
description: highest expiry time, undefined means Unlimited (exp not set)
format: int64
type: integer
iat_max:
description: most recent time this was issued
format: int64
type: integer
iat_min:
description: first time this was issued
format: int64
type: integer
id:
type: string
iss:
description: issuer account public nkey
type: string
name:
type: string
nats:
$ref: '#/components/schemas/User'
status:
$ref: '#/components/schemas/NatsUserIssuanceStatus'
sub:
description: nats user public nkey
type: string
required:
- checksum
- created
- events
- iat_max
- iat_min
- id
- iss
- name
- nats
- status
- sub
type: object
ResponsePermission:
description: 'ResponsePermission can be used to allow responses to any reply subject
that is received on a valid subscription.'
example:
max: 0
ttl: 6
properties:
max:
type: integer
ttl:
format: int64
type: integer
required:
- max
- ttl
type: object
UserLimits:
description: Src is a comma separated list of CIDR specifications
properties:
src:
items:
type: string
type: array
times:
items:
$ref: '#/components/schemas/TimeRange'
type: array
times_location:
type: string
type: object
NatsUserIssuanceEventType:
enum:
- Import
- Download
- BearerJwt
- HttpGwToken
type: string
AppUserInfo:
example:
identifier: identifier
name: name
id: id
type: null
properties:
id:
type: string
identifier:
type: string
name:
type: string
type:
$ref: '#/components/schemas/AppUserType'
required:
- id
- name
- type
type: object
NatsUserIssuanceEvent:
example:
app_user:
identifier: identifier
name: name
id: id
type: null
exp: 0
type: null
iat: 6
jti: jti
status: null
properties:
app_user:
$ref: '#/components/schemas/AppUserInfo'
exp:
format: int64
type: integer
iat:
format: int64
type: integer
jti:
type: string
status:
$ref: '#/components/schemas/NatsUserIssuanceStatus'
type:
$ref: '#/components/schemas/NatsUserIssuanceEventType'
required:
- app_user
- iat
- jti
- status
- type
type: object
TimeRange:
description: TimeRange is used to represent a start and end time
properties:
end:
type: string
start:
type: string
type: object
AppUserType:
enum:
- Person
- AppServiceAccount
- TeamServiceAccount
type: string
NatsLimits:
properties:
data:
format: int64
type: integer
payload:
format: int64
type: integer
subs:
format: int64
type: integer
type: object
Permissions:
description: Permissions are used to restrict subject access, either on a user or for everyone on a server by default
example:
sub:
allow:
- allow
- allow
deny:
- deny
- deny
resp:
max: 0
ttl: 6
pub:
allow:
- allow
- allow
deny:
- deny
- deny
properties:
pub:
$ref: '#/components/schemas/Permission'
resp:
$ref: '#/components/schemas/ResponsePermission'
sub:
$ref: '#/components/schemas/Permission'
type: object
UserPermissionLimits:
allOf:
- $ref: '#/components/schemas/Permissions'
- $ref: '#/components/schemas/UserLimits'
- $ref: '#/components/schemas/NatsLimits'
example:
bearer_token: true
allowed_connection_types:
- allowed_connection_types
- allowed_connection_types
properties:
allowed_connection_types:
items:
type: string
type: array
bearer_token:
type: boolean
type: object
NatsUserIssuanceStatus:
description: "NatsUserIssuanceStatus indicates status of an issuance relative to its signing key\nIn context of issuance, status indicates following:\n Active - Signing key exists, and no revocations\n Revoked - Signing key exists, and has revocation entry with RevokedBefore > IatMax\n Partially Revoked - Signing key exists, and has revocation entry with IssMax > RevokedBefore > IatMin\n SK Disabled - Signing key is disabled\n SK Group Disabled - Signing key group is disabled\n SK Removed - Signing key no longer exists\n Expired - All issuances are expired\nIn context of an issuance event, status indicates following:\n Active - Signing key exists, and no revocations\n Revoked - Signing key exists, and has revocation entry with RevokedBefore > Iat\n SK Disabled - Signing key is disabled\n SK Group Disabled - Signing key group is disabled\n SK Removed - Signing key no longer exists\n Expired - Expired time set on credential has passed"
enum:
- Active
- Revoked
- Partially Revoked
- SK Disabled
- SK Group Disabled
- SK Removed
- Expired
type: string
securitySchemes:
bearerAuth:
bearerFormat: Personal Access Token
scheme: bearer
type: http
sessionAuth:
in: cookie
name: control_plane_session
type: apiKey