Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/cockroach-labs:cockroach-labs-jwt-issuers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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:
contact:
email: support@cockroachlabs.com
name: Cockroach Labs Support
url: https://support.cockroachlabs.com
description: An API for managing CockroachDB Cloud resources
title: CockroachDB Cloud JWT Issuers API
version: '2026-09-15'
servers:
- url: https://cockroachlabs.cloud
security:
- Bearer: []
tags:
- name: JWT Issuers
paths:
/api/v1/jwt-issuers:
get:
operationId: CockroachCloud_ListJWTIssuers
summary: List all JWT Issuers
description: 'Lists all the JWT Issuer configurations registered for the CockroachDB Cloud organization
Can be used by the following roles assigned at the organization scope:
- ORG_ADMIN
- AUDITOR'
parameters:
- name: pagination.page
in: query
schema:
type: string
- name: pagination.limit
in: query
schema:
type: integer
format: int32
- name: pagination.as_of_time
in: query
schema:
type: string
format: date-time
- name: pagination.sort_order
in: query
description: " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order."
schema:
type: string
enum:
- ASC
- DESC
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/ListJWTIssuersResponse'
'400':
description: Returned when a request field is invalid.
content:
application/json:
schema: {}
'401':
description: Returned when the token bearer cannot be authenticated.
content:
application/json:
schema: {}
'403':
description: Returned when the user does not have permission to access the resource.
content:
application/json:
schema: {}
'404':
description: Returned when the resource does not exist.
content:
application/json:
schema: {}
'500':
description: Server error
content:
application/json:
schema: {}
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
tags:
- JWT Issuers
x-badges:
- color: red
label: LIMITED ACCESS
x-codeSamples:
- lang: Shell + Curl
source: "curl --request GET \\\n --url 'https://cockroachlabs.cloud/api/v1/jwt-issuers?pagination.page=SOME_STRING_VALUE&pagination.limit=SOME_INTEGER_VALUE&pagination.as_of_time=SOME_STRING_VALUE&pagination.sort_order=SOME_STRING_VALUE' \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
post:
operationId: CockroachCloud_AddJWTIssuer
summary: Add a JWT Issuer
description: 'Registers a JWT Issuer with the CockroachDB Cloud to allow verifying JWTs during API authentication
Can be used by the following roles assigned at the organization scope:
- ORG_ADMIN'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddJWTIssuerRequest'
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/JWTIssuer'
'400':
description: Returned when a request field is invalid.
content:
application/json:
schema: {}
'401':
description: Returned when the token bearer cannot be authenticated.
content:
application/json:
schema: {}
'403':
description: Returned when the user does not have permission to access the resource.
content:
application/json:
schema: {}
'404':
description: Returned when the resource does not exist.
content:
application/json:
schema: {}
'500':
description: Server error
content:
application/json:
schema: {}
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
tags:
- JWT Issuers
x-badges:
- color: red
label: LIMITED ACCESS
x-codeSamples:
- lang: Shell + Curl
source: "curl --request POST \\\n --url https://cockroachlabs.cloud/api/v1/jwt-issuers \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --json '{\"audience\":\"1234567890abcd\",\"claim\":\"email\",\"identity_map\":[{\"cc_identity\":\"\\\\1\",\"token_identity\":\"/^sso_(.*)$\"}],\"issuer_url\":\"https://jwt-issuer.example.com\",\"jwks\":\"{\\\"keys\\\":[{\\\"e\\\":\\\"AQAB\\\",\\\"use\\\":\\\"sig\\\",\\\"kty\\\":\\\"RSA\\\",\\\"alg\\\":\\\"RS256\\\",\\\"n\\\":\\\"tid8bJCI5FxtvMiVHq8pRZBGIPaG9mEa1akpIC9munzxA3mWoc-KoR1TGkocu76WFthaZnPS31WJbRVChU6g4EMIg7E8Ltpxifk1PQu0qqbLcpnoI62ojsB7l_Z_lkls0NUzTuKGMMtNoJsDrL1BT0UzcnWerh2PwzDAMpfPgafWdT2IYGTx1gNLcNOWpPhDgMSQqUmIPwCmxdan4i4OMd7lJYQ1WQlN8VnQgbRgHrm1zImY6MPqho9jW3Ub5FwGbunwCDrP9a2dD_5Iwm7_lR82iB4BGlu28WxFn0fm5DgZAeAFSGKE1xblC97WrjnPh2XYTx6pxsea_Hn71VcNSQ\\\",\\\"kid\\\":\\\"9341dedeee2d1869b657fa930300082fe26b3d92\\\"}]}\"}'"
/api/v1/jwt-issuers/{id}:
delete:
operationId: CockroachCloud_DeleteJWTIssuer
summary: Delete a JWT Issuer
description: 'Deletes the JWT Issuer configuration
Can be used by the following roles assigned at the organization scope:
- ORG_ADMIN'
parameters:
- name: id
in: path
description: The unique identifier of the JWT Issuer resource
required: true
schema:
type: string
format: uuid
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/JWTIssuer'
'400':
description: Returned when a request field is invalid.
content:
application/json:
schema: {}
'401':
description: Returned when the token bearer cannot be authenticated.
content:
application/json:
schema: {}
'403':
description: Returned when the user does not have permission to access the resource.
content:
application/json:
schema: {}
'404':
description: Returned when the resource does not exist.
content:
application/json:
schema: {}
'500':
description: Server error
content:
application/json:
schema: {}
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
tags:
- JWT Issuers
x-badges:
- color: red
label: LIMITED ACCESS
x-codeSamples:
- lang: Shell + Curl
source: "curl --request DELETE \\\n --url https://cockroachlabs.cloud/api/v1/jwt-issuers/{id} \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
get:
operationId: CockroachCloud_GetJWTIssuer
summary: Get a JWT Issuer
description: 'Retrieves the JWT Issuer configuration
Can be used by the following roles assigned at the organization scope:
- ORG_ADMIN
- AUDITOR'
parameters:
- name: id
in: path
description: The unique identifier of the JWT Issuer resource
required: true
schema:
type: string
format: uuid
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/JWTIssuer'
'400':
description: Returned when a request field is invalid.
content:
application/json:
schema: {}
'401':
description: Returned when the token bearer cannot be authenticated.
content:
application/json:
schema: {}
'403':
description: Returned when the user does not have permission to access the resource.
content:
application/json:
schema: {}
'404':
description: Returned when the resource does not exist.
content:
application/json:
schema: {}
'500':
description: Server error
content:
application/json:
schema: {}
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
tags:
- JWT Issuers
x-badges:
- color: red
label: LIMITED ACCESS
x-codeSamples:
- lang: Shell + Curl
source: "curl --request GET \\\n --url https://cockroachlabs.cloud/api/v1/jwt-issuers/{id} \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
patch:
operationId: CockroachCloud_UpdateJWTIssuer
summary: Update a JWT Issuer
description: 'Updates the JWT Issuer configuration
Can be used by the following roles assigned at the organization scope:
- ORG_ADMIN'
parameters:
- name: id
in: path
description: The unique identifier of the JWT Issuer resource
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateJWTIssuerBody'
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/JWTIssuer'
'400':
description: Returned when a request field is invalid.
content:
application/json:
schema: {}
'401':
description: Returned when the token bearer cannot be authenticated.
content:
application/json:
schema: {}
'403':
description: Returned when the user does not have permission to access the resource.
content:
application/json:
schema: {}
'404':
description: Returned when the resource does not exist.
content:
application/json:
schema: {}
'500':
description: Server error
content:
application/json:
schema: {}
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
tags:
- JWT Issuers
x-badges:
- color: red
label: LIMITED ACCESS
x-codeSamples:
- lang: Shell + Curl
source: "curl --request PATCH \\\n --url https://cockroachlabs.cloud/api/v1/jwt-issuers/{id} \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --json '{\"audience\":\"1234567890abcd\",\"claim\":\"email\",\"identity_map\":[{\"cc_identity\":\"\\\\1\",\"token_identity\":\"/^sso_(.*)$\"}],\"issuer_url\":\"https://jwt-issuer.example.com\",\"jwks\":\"{\\\"keys\\\":[{\\\"e\\\":\\\"AQAB\\\",\\\"use\\\":\\\"sig\\\",\\\"kty\\\":\\\"RSA\\\",\\\"alg\\\":\\\"RS256\\\",\\\"n\\\":\\\"tid8bJCI5FxtvMiVHq8pRZBGIPaG9mEa1akpIC9munzxA3mWoc-KoR1TGkocu76WFthaZnPS31WJbRVChU6g4EMIg7E8Ltpxifk1PQu0qqbLcpnoI62ojsB7l_Z_lkls0NUzTuKGMMtNoJsDrL1BT0UzcnWerh2PwzDAMpfPgafWdT2IYGTx1gNLcNOWpPhDgMSQqUmIPwCmxdan4i4OMd7lJYQ1WQlN8VnQgbRgHrm1zImY6MPqho9jW3Ub5FwGbunwCDrP9a2dD_5Iwm7_lR82iB4BGlu28WxFn0fm5DgZAeAFSGKE1xblC97WrjnPh2XYTx6pxsea_Hn71VcNSQ\\\",\\\"kid\\\":\\\"9341dedeee2d1869b657fa930300082fe26b3d92\\\"}]}\"}'"
components:
schemas:
Any:
description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nIn its binary encoding, an `Any` is an ordinary message; but in other wire\nforms like JSON, it has a special encoding. The format of the type URL is\ndescribed on the `type_url` field.\n\nProtobuf APIs provide utilities to interact with `Any` values:\n\n- A 'pack' operation accepts a message and constructs a generic `Any` wrapper\n around it.\n- An 'unpack' operation reads the content of an `Any` message, either into an\n existing message or a new one. Unpack operations must check the type of the\n value they unpack against the declared `type_url`.\n- An 'is' operation decides whether an `Any` contains a message of the given\n type, i.e. whether it can 'unpack' that type.\n\nThe JSON format representation of an `Any` follows one of these cases:\n\n- For types without special-cased JSON encodings, the JSON format\n representation of the `Any` is the same as that of the message, with an\n additional `@type` field which contains the type URL.\n- For types with special-cased JSON encodings (typically called 'well-known'\n types, listed in https://protobuf.dev/programming-guides/json/#any), the\n JSON format representation has a key `@type` which contains the type URL\n and a key `value` which contains the JSON-serialized value.\n\nThe text format representation of an `Any` is like a message with one field\nwhose name is the type URL in brackets. For example, an `Any` containing a\n`foo.Bar` message may be written `[type.googleapis.com/foo.Bar] { a: 2 }`."
type: object
properties:
'@type':
description: 'Identifies the type of the serialized Protobuf message with a URI reference
consisting of a prefix ending in a slash and the fully-qualified type name.
Example: type.googleapis.com/google.protobuf.StringValue
This string must contain at least one `/` character, and the content after
the last `/` must be the fully-qualified name of the type in canonical
form, without a leading dot. Do not write a scheme on these URI references
so that clients do not attempt to contact them.
The prefix is arbitrary and Protobuf implementations are expected to
simply strip off everything up to and including the last `/` to identify
the type. `type.googleapis.com/` is a common default prefix that some
legacy implementations require. This prefix does not indicate the origin of
the type, and URIs containing it are not expected to respond to any
requests.
All type URL strings must be legal URI references with the additional
restriction (for the text format) that the content of the reference
must consist only of alphanumeric characters, percent-encoded escapes, and
characters in the following set (not including the outer backticks):
`/-.~_!$&()*+,;=`. Despite our allowing percent encodings, implementations
should not unescape them to prevent confusion with existing parsers. For
example, `type.googleapis.com%2FFoo` should be rejected.
In the original design of `Any`, the possibility of launching a type
resolution service at these type URLs was considered but Protobuf never
implemented one and considers contacting these URLs to be problematic and
a potential security issue. Do not attempt to contact type URLs.'
type: string
additionalProperties: {}
UpdateJWTIssuerBody:
type: object
properties:
audience:
type: string
example: 1234567890abcd
title: The intended audience for consuming the JWT
claim:
type: string
example: email
title: Used to identify the user from the external Identity Provider. Defaults to "sub"
identity_map:
type: array
items:
$ref: '#/components/schemas/JWTIssuerIdentityMapEntry'
title: A list of mappings to map the external token identity into CockroachDB Cloud
issuer_url:
type: string
example: https://jwt-issuer.example.com
title: The URL of the server issuing JWTs
jwks:
type: string
example: '{"keys":[{"e":"AQAB","use":"sig","kty":"RSA","alg":"RS256","n":"tid8bJCI5FxtvMiVHq8pRZBGIPaG9mEa1akpIC9munzxA3mWoc-KoR1TGkocu76WFthaZnPS31WJbRVChU6g4EMIg7E8Ltpxifk1PQu0qqbLcpnoI62ojsB7l_Z_lkls0NUzTuKGMMtNoJsDrL1BT0UzcnWerh2PwzDAMpfPgafWdT2IYGTx1gNLcNOWpPhDgMSQqUmIPwCmxdan4i4OMd7lJYQ1WQlN8VnQgbRgHrm1zImY6MPqho9jW3Ub5FwGbunwCDrP9a2dD_5Iwm7_lR82iB4BGlu28WxFn0fm5DgZAeAFSGKE1xblC97WrjnPh2XYTx6pxsea_Hn71VcNSQ","kid":"9341dedeee2d1869b657fa930300082fe26b3d92"}]}'
title: A set of public keys (JWKS) used to verify a JWT
title: UpdateJWTIssuerRequest
Status:
type: object
properties:
code:
type: integer
format: int32
details:
type: array
items:
$ref: '#/components/schemas/Any'
message:
type: string
AddJWTIssuerRequest:
type: object
properties:
audience:
type: string
example: 1234567890abcd
title: The intended audience for consuming the JWT
claim:
type: string
example: email
title: Used to identify the user from the external Identity Provider. Defaults to "sub"
identity_map:
description: A list of mappings to map the external token identity into CockroachDB Cloud.
type: array
items:
$ref: '#/components/schemas/JWTIssuerIdentityMapEntry'
issuer_url:
type: string
example: https://jwt-issuer.example.com
title: The URL of the server issuing JWTs
jwks:
type: string
example: '{"keys":[{"e":"AQAB","use":"sig","kty":"RSA","alg":"RS256","n":"tid8bJCI5FxtvMiVHq8pRZBGIPaG9mEa1akpIC9munzxA3mWoc-KoR1TGkocu76WFthaZnPS31WJbRVChU6g4EMIg7E8Ltpxifk1PQu0qqbLcpnoI62ojsB7l_Z_lkls0NUzTuKGMMtNoJsDrL1BT0UzcnWerh2PwzDAMpfPgafWdT2IYGTx1gNLcNOWpPhDgMSQqUmIPwCmxdan4i4OMd7lJYQ1WQlN8VnQgbRgHrm1zImY6MPqho9jW3Ub5FwGbunwCDrP9a2dD_5Iwm7_lR82iB4BGlu28WxFn0fm5DgZAeAFSGKE1xblC97WrjnPh2XYTx6pxsea_Hn71VcNSQ","kid":"9341dedeee2d1869b657fa930300082fe26b3d92"}]}'
title: A set of public keys (JWKS) used to verify a JWT
required:
- issuer_url
- audience
title: AddJWTIssuerRequest
JWTIssuerIdentityMapEntry:
type: object
properties:
cc_identity:
description: 'Specifies how to map the fetched token identity to an identity in CockroachDB Cloud. In case of a regular
expression for token_identity, this must contain a \1 placeholder for the matched content. Note that you will need
to escape the backslash in the string as in the example usage (\\\\1).
The mapped identity must match with either a user email address or a service account ID.'
type: string
example: \1
token_identity:
description: 'Specifies how to fetch external identity from the token claim. A regular expression must start
with a forward slash. The regular expression must be in RE2 compatible syntax. For further details, please see
https://github.com/google/re2/wiki/Syntax.'
type: string
example: /^sso_(.*)$
required:
- token_identity
- cc_identity
title: JWTIssuerIdentityMapEntry
KeysetPaginationResponse:
type: object
properties:
next_page:
type: string
previous_page:
type: string
JWTIssuer:
type: object
properties:
audience:
type: string
example: 1234567890abcd
title: The intended audience for consuming the JWT
claim:
type: string
example: email
title: Used to identify the user from the external Identity Provider. Defaults to "sub"
id:
type: string
format: uuid
example: 1234abcd-1234-1234-abcd-12345678abcd
title: The unique identifier of the JWT Issuer resource
identity_map:
type: array
items:
$ref: '#/components/schemas/JWTIssuerIdentityMapEntry'
title: A list of mappings to map the external token identity into CockroachDB Cloud
issuer_url:
type: string
example: https://jwt-issuer.example.com
title: The URL of the server issuing JWTs
jwks:
type: string
example: '{"keys":[{"e":"AQAB","use":"sig","kty":"RSA","alg":"RS256","n":"tid8bJCI5FxtvMiVHq8pRZBGIPaG9mEa1akpIC9munzxA3mWoc-KoR1TGkocu76WFthaZnPS31WJbRVChU6g4EMIg7E8Ltpxifk1PQu0qqbLcpnoI62ojsB7l_Z_lkls0NUzTuKGMMtNoJsDrL1BT0UzcnWerh2PwzDAMpfPgafWdT2IYGTx1gNLcNOWpPhDgMSQqUmIPwCmxdan4i4OMd7lJYQ1WQlN8VnQgbRgHrm1zImY6MPqho9jW3Ub5FwGbunwCDrP9a2dD_5Iwm7_lR82iB4BGlu28WxFn0fm5DgZAeAFSGKE1xblC97WrjnPh2XYTx6pxsea_Hn71VcNSQ","kid":"9341dedeee2d1869b657fa930300082fe26b3d92"}]}'
title: A set of public keys (JWKS) used to verify a JWT
required:
- id
- issuer_url
- audience
title: JWTIssuer
ListJWTIssuersResponse:
type: object
properties:
jwt_issuers:
type: array
items:
$ref: '#/components/schemas/JWTIssuer'
title: The list of JWT Issuer resources
pagination:
$ref: '#/components/schemas/KeysetPaginationResponse'
title: ListJWTIssuersResponse
securitySchemes:
Bearer:
type: http
scheme: bearer
externalDocs:
description: Use the CockroachDB Cloud API
url: https://www.cockroachlabs.com/docs/cockroachcloud/cloud-api.html