Cast AI Playground Chat Completions API

Provides an API for playground chat completions.

Operations 1

POST /ai-optimizer/v1beta/organizations/{organizationId}/playground-chat-completions:stream Create playground chat completion #

Work with this as data

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/kimchi:kimchi-playgroundchatcompletionsapi-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 Specification

kimchi-playgroundchatcompletionsapi-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AI Enabler Playground Chat Completions API
  version: 0.0.1
  description: Provides an API for playground chat completions.
servers:
- url: https://api.cast.ai/
  description: US endpoint
- url: https://api.eu.cast.ai/
  description: EU endpoint
security:
- BearerAuth: []
- ApiKeyAuth: []
tags:
- name: PlaygroundChatCompletionsAPI
  description: Provides an API for playground chat completions.
paths:
  /ai-optimizer/v1beta/organizations/{organizationId}/playground-chat-completions:stream:
    post:
      tags:
      - PlaygroundChatCompletionsAPI
      summary: Create playground chat completion
      description: Stream chat completion using the selected playground providers and registered customer's providers.
      operationId: PlaygroundChatCompletionsAPI_StreamPlaygroundChatCompletion
      parameters:
      - name: organizationId
        in: path
        description: The organization ID.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StreamPlaygroundChatCompletionRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StreamPlaygroundChatCompletionResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
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).'
    ChatCompletionRequest:
      required:
      - model
      - messages
      type: object
      properties:
        model:
          type: string
          description: The model to use for completion.
        messages:
          type: array
          items:
            $ref: '#/components/schemas/ChatCompletionRequest_Message'
          description: A list of messages comprising the conversation so far.
        maxTokens:
          type: integer
          description: The maximum number of tokens to generate.
          format: int32
        temperature:
          type: number
          description: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
          format: float
        presencePenalty:
          type: number
          description: Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
          format: float
        frequencyPenalty:
          type: number
          description: Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
          format: float
        topP:
          type: number
          description: An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
          format: float
        stop:
          type: array
          items:
            type: string
          description: Up to 4 sequences where the API will stop generating further tokens.
      description: Defines a chat completion request. It supports a subset of OpenAI API (https://platform.openai.com/docs/api-reference/chat/create) spec.
    SelectedPlaygroundProvider:
      required:
      - name
      - models
      type: object
      properties:
        name:
          type: string
          description: The name of the selected playground provider.
        models:
          type: array
          items:
            type: string
          description: Which models should be available for the selected playground provider.
        freeCredits:
          type: string
          description: The free credits available for the selected playground provider.
        isRateLimited:
          type: boolean
          description: Whether the selected playground provider is rate limited.
        rateLimitedModels:
          type: array
          items:
            type: string
          description: Which models are rate limited for the selected playground provider.
      description: Request message for selected playground provider.
    PromptSummary:
      required:
      - promptId
      - cost
      - provider
      - freeCreditsApplied
      type: object
      properties:
        promptId:
          type: string
          description: ID of the prompt.
        cost:
          type: string
          description: How much the prompt cost.
        provider:
          type: string
          description: Used provider
        freeCreditsApplied:
          type: boolean
          description: Whether free credits were applied.
      description: Response message for prompt summary.
    ChatCompletionRequest_Message:
      required:
      - role
      - content
      type: object
      properties:
        role:
          type: string
          description: The role of the entity that is creating the message.
        content:
          type: string
          description: The content of the message.
      description: A message in the conversation.
    ChatCompletionDelta:
      required:
      - id
      - object
      - created
      - model
      type: object
      properties:
        id:
          type: string
          description: ID of the chat completion chunk.
        object:
          type: string
          description: The completion object type.
        created:
          type: string
          description: Time when the chat completion chunk was created.
        model:
          type: string
          description: The model used for completion.
        choices:
          type: array
          items:
            $ref: '#/components/schemas/ChatCompletionDelta_Choice'
          description: Chunks of the conversation.
        usage:
          allOf:
          - $ref: '#/components/schemas/ChatCompletionDelta_Usage'
          description: Usage of the chat completion.
      description: Response message for chat completion chunk. It supports a subset of OpenAI API (https://platform.openai.com/docs/api-reference/chat/create) spec.
    Choice_Delta:
      type: object
      properties:
        role:
          type: string
          description: The role of the entity that is creating the message.
        content:
          type: string
          description: Next token of the message.
      description: Chunk of the message.
    SelectedRegisteredProvider:
      required:
      - id
      - models
      type: object
      properties:
        id:
          type: string
          description: The ID of the selected registered provider.
        models:
          type: array
          items:
            type: string
          description: Which models should be available for the selected registered provider.
        freeCredits:
          type: string
          description: The free credits available for the selected registered provider.
        isRateLimited:
          type: boolean
          description: Whether the selected registered provider is rate limited.
        rateLimitedModels:
          type: array
          items:
            type: string
          description: Which models are rate limited for the selected registered provider.
      description: Request message for selected registered provider.
    StreamPlaygroundChatCompletionRequest:
      required:
      - organizationId
      - requestType
      - chatCompletion
      type: object
      properties:
        organizationId:
          type: string
          description: The organization ID.
        requestType:
          enum:
          - REQUEST_TYPE_UNSPECIFIED
          - ROUTE
          - PROXY
          type: string
          description: Type of chat completion request
          format: enum
        chatCompletion:
          allOf:
          - $ref: '#/components/schemas/ChatCompletionRequest'
          description: OpenAI compatible chat completion request.
        selectedPlaygroundProviders:
          type: array
          items:
            $ref: '#/components/schemas/SelectedPlaygroundProvider'
          description: Playground providers that can be used during routing / proxying.
        selectedRegisteredProviders:
          type: array
          items:
            $ref: '#/components/schemas/SelectedRegisteredProvider'
          description: Registered providers that can be used during routing / proxying.
        routerQualityWeight:
          type: number
          description: "This weight determines the importance of the quality over cost when comparing models. Default is 0.5.\n E.g.:\n 0.5 means that the quality of the model is as important as the cost.\n 1 means that only the quality will be considered.\n 0 means that only the cost will be considered."
          format: double
      description: Request message for creating a chat completions in playground.
    ChatCompletionDelta_Choice:
      required:
      - index
      - delta
      type: object
      properties:
        index:
          type: integer
          description: Index of the message.
          format: int32
        delta:
          allOf:
          - $ref: '#/components/schemas/Choice_Delta'
          description: Next chunk of the message.
        finishReason:
          type: string
          description: The reason the conversation ended.
      description: Chunk of the conversation.
    ChatCompletionDelta_Usage:
      required:
      - promptTokens
      - completionTokens
      - totalTokens
      type: object
      properties:
        promptTokens:
          type: integer
          description: Number of tokens used for the prompt.
          format: int32
        completionTokens:
          type: integer
          description: Number of tokens used for the completion.
          format: int32
        totalTokens:
          type: integer
          description: Total number of tokens used.
          format: int32
      description: Usage of the chat completion.
    StreamPlaygroundChatCompletionResponse:
      type: object
      properties:
        chatCompletionDelta:
          allOf:
          - $ref: '#/components/schemas/ChatCompletionDelta'
          description: Chat completion delta.
        promptSummary:
          allOf:
          - $ref: '#/components/schemas/PromptSummary'
          description: Prompt summary.
      description: Response message for creating chat completion stream in playground.
    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