Cast AI Workspace Tokens API
WorkspaceTokensAPI is the API for the Kimchi Workspace Token Exchange.
WorkspaceTokensAPI is the API for the Kimchi Workspace Token Exchange.
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/kimchi:kimchi-workspacetokensapi-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:
title: AI Enabler Workspace Tokens API
version: 0.0.1
description: WorkspaceTokensAPI is the API for the Kimchi Workspace Token Exchange.
servers:
- url: https://api.cast.ai/
description: US endpoint
- url: https://api.eu.cast.ai/
description: EU endpoint
security:
- BearerAuth: []
- ApiKeyAuth: []
tags:
- name: WorkspaceTokensAPI
description: WorkspaceTokensAPI is the API for the Kimchi Workspace Token Exchange.
paths:
/ai-optimizer/v1beta/workspace-tokens:exchange:
post:
tags:
- WorkspaceTokensAPI
description: 'ExchangeWorkspaceToken exchanges a CAST AI identity token for a short-lived,
Ed25519-signed JWT that workspace services can verify independently via
the public JWKS endpoint.'
operationId: WorkspaceTokensAPI_ExchangeWorkspaceToken
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExchangeWorkspaceTokenRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ExchangeWorkspaceTokenResponse'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
summary: Workspace tokens API exchange workspace token
x-summary-source: derived
/ai-optimizer/v1beta/workspace-tokens:verifyKey:
post:
tags:
- WorkspaceTokensAPI
description: 'KeyVerify returns the canonical identity (organization, user) associated
with the CAST AI API key used to authenticate the call. It is a read-only
introspection endpoint and does not mutate any token state.'
operationId: WorkspaceTokensAPI_KeyVerify
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KeyVerifyRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/KeyVerifyResponse'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
summary: Workspace tokens API key verify
x-summary-source: derived
components:
schemas:
Status:
type: object
properties:
code:
type: integer
description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
format: int32
message:
type: string
description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
details:
type: array
items:
$ref: '#/components/schemas/GoogleProtobufAny'
description: A list of messages that carry the error details. There is a common set of message types for APIs to use.
description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'
KeyVerifyResponse:
type: object
properties:
organizationId:
readOnly: true
type: string
description: organization_id is the CAST AI organization the caller belongs to.
userId:
readOnly: true
type: string
description: user_id is the UUID of the caller's identity.
description: "KeyVerifyResponse echoes the canonical identity associated with the CAST AI\n API key used to authenticate the call."
KeyVerifyRequest:
type: object
properties: {}
description: "KeyVerifyRequest is the request message for KeyVerify. It carries no\n payload; the caller is identified by the gRPC auth context (CAST AI API\n key)."
ExchangeWorkspaceTokenResponse:
type: object
properties:
token:
readOnly: true
type: string
description: "token is the issued JWT, signed with the server's Ed25519 private key.\n Recipients should verify it using the public key published at the\n /.well-known/jwks.json endpoint."
expireTime:
readOnly: true
type: string
description: "expire_time is the UTC timestamp at which token becomes invalid.\n Callers should treat the token as expired slightly before this time to\n account for clock skew."
format: date-time
description: "ExchangeWorkspaceTokenResponse is the response message for ExchangeWorkspaceToken,\n containing the issued JWT and its expiry time."
ExchangeWorkspaceTokenRequest:
type: object
properties:
workspaceId:
type: string
description: workspace_id is the id of the workspace for which we are exchanging a token
description: ExchangeWorkspaceTokenRequest is the request message for ExchangeWorkspaceToken.
GoogleProtobufAny:
type: object
properties:
'@type':
type: string
description: The type of the serialized message.
additionalProperties: true
description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
x-provenance:
method: searched
source: https://docs.cast.ai/reference
harvested: '2026-10-20'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://docs.cast.ai/reference/analyticsapi_generateanalytics.md
- https://docs.cast.ai/reference/analyticsapi_generatebillingmodelusagereport.md
- https://docs.cast.ai/reference/analyticsapi_generatebreakdown.md
- https://docs.cast.ai/reference/analyticsapi_generatelatestchatcompletionsummary.md
- https://docs.cast.ai/reference/analyticsapi_generatelatestevaluationsummary.md
- https://docs.cast.ai/reference/analyticsapi_generatelatestinferencesummaries.md
- https://docs.cast.ai/reference/analyticsapi_generaterouterreport.md
- https://docs.cast.ai/reference/analyticsapi_queryanalytics.md
- https://docs.cast.ai/reference/apikeysapi_createapikey.md
- https://docs.cast.ai/reference/apikeysapi_deleteapikeybudget.md
- https://docs.cast.ai/reference/apikeysapi_deleteorganizationbudget.md
- https://docs.cast.ai/reference/apikeysapi_deleteteambudget.md
- https://docs.cast.ai/reference/apikeysapi_deleteuserbudget.md
- https://docs.cast.ai/reference/apikeysapi_getapikeybudget.md
- https://docs.cast.ai/reference/apikeysapi_getbudgetoverview.md
- https://docs.cast.ai/reference/apikeysapi_getorganizationbudget.md
- https://docs.cast.ai/reference/apikeysapi_getteambudget.md
- https://docs.cast.ai/reference/apikeysapi_getuserbudget.md
- https://docs.cast.ai/reference/apikeysapi_getuserbudgetstatus.md
- https://docs.cast.ai/reference/apikeysapi_listapikeybudgets.md
- https://docs.cast.ai/reference/apikeysapi_listorganizationbudgets.md
- https://docs.cast.ai/reference/apikeysapi_listteambudgets.md
- https://docs.cast.ai/reference/apikeysapi_listuserbudgets.md
- https://docs.cast.ai/reference/apikeysapi_updateapikeybudget.md
- https://docs.cast.ai/reference/apikeysapi_updateorganizationbudget.md
- https://docs.cast.ai/reference/apikeysapi_updateteambudget.md
- https://docs.cast.ai/reference/apikeysapi_updateuserbudget.md
- https://docs.cast.ai/reference/apikeysapi_verifyapikey.md
- https://docs.cast.ai/reference/apikeysapi_verifyinference.md
- https://docs.cast.ai/reference/authorizeapi_authorizeaction.md
- https://docs.cast.ai/reference/batchapi_cancelbatch.md
- https://docs.cast.ai/reference/batchapi_createbatch.md
- https://docs.cast.ai/reference/batchapi_getbatch.md
- https://docs.cast.ai/reference/batchapi_listbatches.md
- https://docs.cast.ai/reference/batchapi_reportbatcherror.md
- https://docs.cast.ai/reference/batchapi_updatebatch.md
- https://docs.cast.ai/reference/componentsapi_listcomponents.md
- https://docs.cast.ai/reference/couponsapi_listredeemedcoupons.md
- https://docs.cast.ai/reference/couponsapi_redeemcoupon.md
- https://docs.cast.ai/reference/couponsapi_validatecoupon.md
- https://docs.cast.ai/reference/embeddingsapi_createclusterembedding.md
- https://docs.cast.ai/reference/embeddingsapi_createembedding.md
- https://docs.cast.ai/reference/evaluationsapi_createclusterevaluation.md
- https://docs.cast.ai/reference/evaluationsapi_createevaluation.md
- https://docs.cast.ai/reference/hostedmodeleventsapi_listhostedmodelevents.md
- https://docs.cast.ai/reference/hostedmodelsapi_createhostedmodel.md
- https://docs.cast.ai/reference/hostedmodelsapi_deletehostedmodel.md
- https://docs.cast.ai/reference/hostedmodelsapi_gethostedmodelpods.md
- https://docs.cast.ai/reference/hostedmodelsapi_listhostedmodels.md
- https://docs.cast.ai/reference/hostedmodelsapi_scalehostedmodel.md
- https://docs.cast.ai/reference/hostedmodelsapi_updatehostedmodel.md
- https://docs.cast.ai/reference/llmrequestsapi_listllmrequests.md
- https://docs.cast.ai/reference/marketingapi_handlehubspotwebhook.md
- https://docs.cast.ai/reference/mcpgatewayadminapi_createmcpconnection.md
- https://docs.cast.ai/reference/mcpgatewayadminapi_deletemcpconnection.md
- https://docs.cast.ai/reference/mcpgatewayadminapi_getmcpconnection.md
- https://docs.cast.ai/reference/mcpgatewayadminapi_listmcpconnections.md
- https://docs.cast.ai/reference/mcpgatewayadminapi_updatemcpconnection.md
- https://docs.cast.ai/reference/modelaccessapi_getmodelaccesscatalog.md
- https://docs.cast.ai/reference/modelaccessapi_getorganizationmodelaccess.md
- https://docs.cast.ai/reference/modelaccessapi_getteammodelaccess.md
- https://docs.cast.ai/reference/modelaccessapi_listteammodelaccess.md
- https://docs.cast.ai/reference/modelaccessapi_updateorganizationmodelaccess.md
- https://docs.cast.ai/reference/modelaccessapi_updateteammodelaccess.md
- https://docs.cast.ai/reference/modelregistriesapi_createmodelregistry.md
- https://docs.cast.ai/reference/modelregistriesapi_deletemodelregistry.md
- https://docs.cast.ai/reference/modelregistriesapi_getmodelregistry.md
- https://docs.cast.ai/reference/modelregistriesapi_getonboardingcommand.md
- https://docs.cast.ai/reference/modelregistriesapi_getonboardingscript.md
- https://docs.cast.ai/reference/modelregistriesapi_listmodelregistries.md
- https://docs.cast.ai/reference/modelregistriesapi_listmodelregistrydirectories.md
- https://docs.cast.ai/reference/modelspecsapi_createmodelspecs.md
- https://docs.cast.ai/reference/modelspecsapi_deletemodelspecs.md
- https://docs.cast.ai/reference/modelspecsapi_getmodelspecs.md
- https://docs.cast.ai/reference/modelspecsapi_listmodelspecs.md
- https://docs.cast.ai/reference/oauthappsapi_completeoauthlogin.md
- https://docs.cast.ai/reference/oauthappsapi_createoauthapp.md
- https://docs.cast.ai/reference/oauthappsapi_deleteoauthapp.md
- https://docs.cast.ai/reference/oauthappsapi_disconnectoauthapp.md
- https://docs.cast.ai/reference/oauthappsapi_getoauthapp.md
- https://docs.cast.ai/reference/oauthappsapi_listoauthapps.md
- https://docs.cast.ai/reference/oauthappsapi_registerdiscoveredoauthapp.md
- https://docs.cast.ai/reference/oauthappsapi_startoauthlogin.md
- https://docs.cast.ai/reference/oauthappsapi_updateoauthapp.md
- https://docs.cast.ai/reference/onboardingapi_checkmodelscache.md
- https://docs.cast.ai/reference/onboardingapi_getmodelscachescript.md
- https://docs.cast.ai/reference/onboardingapi_getonboardingcommand.md
- https://docs.cast.ai/reference/onboardingapi_getonboardingscript.md
- https://docs.cast.ai/reference/onboardingapi_getonboardingstatus.md
- https://docs.cast.ai/reference/onboardingapi_getsetupscript.md
- https://docs.cast.ai/reference/onboardingapi_registermodelscache.md
- https://docs.cast.ai/reference/otelapi_generateproductivitymetricstimeseries.md
- https://docs.cast.ai/reference/otelapi_getproductivitymetrics.md
- https://docs.cast.ai/reference/otelapi_ingestlogs.md
- https://docs.cast.ai/reference/otelapi_ingestmetrics.md
- https://docs.cast.ai/reference/playgroundchatcompletionsapi_streamplaygroundchatcompletion.md
- https://docs.cast.ai/reference/policiesapi_createpolicy.md
- https://docs.cast.ai/reference/policiesapi_deletepolicy.md
- https://docs.cast.ai/reference/policiesapi_getpolicy.md
- https://docs.cast.ai/reference/policiesapi_listpolicies.md
- https://docs.cast.ai/reference/policiesapi_listpolicyversions.md
- https://docs.cast.ai/reference/policiesapi_rollbackpolicy.md
- https://docs.cast.ai/reference/policiesapi_syncpolicies.md
- https://docs.cast.ai/reference/policiesapi_updatepolicy.md
- https://docs.cast.ai/reference/prcostsapi_queryprcosts.md
- https://docs.cast.ai/reference/prcostsapi_reportprcosts.md
- https://docs.cast.ai/reference/quotaapi_deleteuserquotapolicy.md
- https://docs.cast.ai/reference/quotaapi_getorgquotapolicy.md
- https://docs.cast.ai/reference/quotaapi_getquotadefaults.md
- https://docs.cast.ai/reference/quotaapi_getquotalimits.md
- https://docs.cast.ai/reference/quotaapi_getquotausage.md
- https://docs.cast.ai/reference/quotaapi_getuserquotapolicy.md
- https://docs.cast.ai/reference/quotaapi_updateorgquotapolicy.md
- https://docs.cast.ai/reference/quotaapi_updateuserquotapolicy.md
- https://docs.cast.ai/reference/rerankingsapi_createclusterreranking.md
- https://docs.cast.ai/reference/rerankingsapi_createreranking.md
- https://docs.cast.ai/reference/secretsapi_createsecret.md
- https://docs.cast.ai/reference/secretsapi_deletesecret.md
- https://docs.cast.ai/reference/secretsapi_getsecret.md
- https://docs.cast.ai/reference/secretsapi_listsecrets.md
- https://docs.cast.ai/reference/secretsapi_setsecretmappings.md
- https://docs.cast.ai/reference/secretsapi_updatesecret.md
- https://docs.cast.ai/reference/sessionsapi_deletesession.md
- https://docs.cast.ai/reference/sessionsapi_getsession.md
- https://docs.cast.ai/reference/sessionsapi_listsessions.md
- https://docs.cast.ai/reference/sessionsapi_resumesession.md
- https://docs.cast.ai/reference/sessionsapi_suspendsession.md
- https://docs.cast.ai/reference/sessionsapi_upsertsession.md
- https://docs.cast.ai/reference/settingsapi_deleteapikeysettings.md
- https://docs.cast.ai/reference/settingsapi_deleteteamsettings.md
- https://docs.cast.ai/reference/settingsapi_getapikeysettings.md
- https://docs.cast.ai/reference/settingsapi_getsettings.md
- https://docs.cast.ai/reference/settingsapi_getteamsettings.md
- https://docs.cast.ai/reference/settingsapi_listapikeysettings.md
- https://docs.cast.ai/reference/settingsapi_listteamsettings.md
- https://docs.cast.ai/reference/settingsapi_resolvesettings.md
- https://docs.cast.ai/reference/settingsapi_updatesettings.md
- https://docs.cast.ai/reference/settingsapi_updateteamsettings.md
- https://docs.cast.ai/reference/settingsapi_upsertapikeysettings.md
- https://docs.cast.ai/reference/subscriptionsapi_checkoutsubscription.md
- https://docs.cast.ai/reference/subscriptionsapi_getplanpricepreview.md
- https://docs.cast.ai/reference/subscriptionsapi_getsubscription.md
- https://docs.cast.ai/reference/subscriptionsapi_handlewebhook.md
- https://docs.cast.ai/reference/subscriptionsapi_managesubscription.md
- https://docs.cast.ai/reference/surveysapi_getsurveystatus.md
- https://docs.cast.ai/reference/surveysapi_updatesurveystatus.md
- https://docs.cast.ai/reference/tagsapi_searchkeys.md
- https://docs.cast.ai/reference/tagsapi_searchtags.md
- https://docs.cast.ai/reference/tagsapi_searchvalues.md
- https://docs.cast.ai/reference/teamsapi_addteammembers.md
- https://docs.cast.ai/reference/teamsapi_createteam.md
- https://docs.cast.ai/reference/teamsapi_deleteteam.md
- https://docs.cast.ai/reference/teamsapi_getteam.md
- https://docs.cast.ai/reference/teamsapi_listteammembers.md
- https://docs.cast.ai/reference/teamsapi_listteams.md
- https://docs.cast.ai/reference/teamsapi_removeteammember.md
- https://docs.cast.ai/reference/teamsapi_updateteam.md
- https://docs.cast.ai/reference/topupapi_listtopuppurchases.md
- https://docs.cast.ai/reference/topupapi_purchasetopup.md
- https://docs.cast.ai/reference/workspacesapi_createworkspace.md
- https://docs.cast.ai/reference/workspacesapi_deleteworkspace.md
- https://docs.cast.ai/reference/workspacesapi_getsecretmappings.md
- https://docs.cast.ai/reference/workspacesapi_getworkspace.md
- https://docs.cast.ai/reference/workspacesapi_getworkspacecost.md
- https://docs.cast.ai/reference/workspacesapi_getworkspacecostprices.md
- https://docs.cast.ai/reference/workspacesapi_getworkspacecostreport.md
- https://docs.cast.ai/reference/workspacesapi_listworkspaces.md
- https://docs.cast.ai/reference/workspacesapi_resumeworkspace.md
- https://docs.cast.ai/reference/workspacesapi_suspendworkspace.md
- https://docs.cast.ai/reference/workspacesapi_upsertworkspace.md
- https://docs.cast.ai/reference/workspacesessionsapi_listworkspacesessions.md
- https://docs.cast.ai/reference/workspacetemplatesapi_createworkspacetemplate.md
- https://docs.cast.ai/reference/workspacetemplatesapi_deleteworkspacetemplate.md
- https://docs.cast.ai/reference/workspacetemplatesapi_getworkspacetemplate.md
- https://docs.cast.ai/reference/workspacetemplatesapi_listworkspacetemplates.md
- https://docs.cast.ai/reference/workspacetemplatesapi_updateworkspacetemplate.md
- https://docs.cast.ai/reference/workspacetokensapi_exchangeworkspacetoken.md
- https://docs.cast.ai/reference/workspacetokensapi_keyverify.md
merge:
pages: 178
deduped: 1003
conflicts_kept_first: 0