Deepgram · Arazzo Workflow

Deepgram Provision a Project API Key

Version 1.0.0

Create a new project, mint a scoped API key for it, and verify the key appears in the project key list.

1 workflow 1 source API 1 provider
View Spec View on GitHub Artificial IntelligenceSpeech-To-TextText-To-SpeechTranscriptionVoice AIArazzoWorkflows

Provider

deepgram

Workflows

provision-project-key
Create a project, create a scoped API key in it, and verify the key list.
Lists existing projects to anchor the account, creates a scoped API key in the supplied project, and confirms the new key appears in the project key list.
3 steps inputs: apiKey, comment, projectId, scopes, timeToLiveInSeconds outputs: apiKeys, newKeyId, newKeySecret
1
confirmProject
getProject
Fetch the target project to confirm it exists and is reachable before minting a new key inside it.
2
createKey
createProjectKey
Create a new scoped API key in the project and capture the full secret value, which is only returned at creation time.
3
verifyKey
listProjectKeys
List the project's API keys to confirm the newly created key is present in the registry.

Source API Descriptions

Arazzo Workflow Specification

deepgram-provision-project-key-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Deepgram Provision a Project API Key
  summary: Create a new project, mint a scoped API key for it, and verify the key appears in the project key list.
  description: >-
    A bootstrapping flow for standing up a fresh Deepgram workspace. The
    workflow creates a new project, mints a scoped API key inside that project,
    captures the one-time secret returned at creation, and then lists the
    project's keys to confirm the new key is registered. Every step spells out
    its request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: managementApi
  url: ../openapi/deepgram-management-openapi.yml
  type: openapi
workflows:
- workflowId: provision-project-key
  summary: Create a project, create a scoped API key in it, and verify the key list.
  description: >-
    Lists existing projects to anchor the account, creates a scoped API key in
    the supplied project, and confirms the new key appears in the project key
    list.
  inputs:
    type: object
    required:
    - apiKey
    - projectId
    - comment
    - scopes
    properties:
      apiKey:
        type: string
        description: Deepgram API key with keys:write scope used to authenticate.
      projectId:
        type: string
        description: The project to mint the new API key in.
      comment:
        type: string
        description: Description or name for the new API key.
      scopes:
        type: array
        description: Scopes to assign to the new API key (e.g. ["member"]).
        items:
          type: string
      timeToLiveInSeconds:
        type: integer
        description: Optional time-to-live in seconds for the new key.
  steps:
  - stepId: confirmProject
    description: >-
      Fetch the target project to confirm it exists and is reachable before
      minting a new key inside it.
    operationId: getProject
    parameters:
    - name: Authorization
      in: header
      value: Token $inputs.apiKey
    - name: project_id
      in: path
      value: $inputs.projectId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      projectId: $response.body#/project_id
      projectName: $response.body#/name
  - stepId: createKey
    description: >-
      Create a new scoped API key in the project and capture the full secret
      value, which is only returned at creation time.
    operationId: createProjectKey
    parameters:
    - name: Authorization
      in: header
      value: Token $inputs.apiKey
    - name: project_id
      in: path
      value: $inputs.projectId
    requestBody:
      contentType: application/json
      payload:
        comment: $inputs.comment
        scopes: $inputs.scopes
        time_to_live_in_seconds: $inputs.timeToLiveInSeconds
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      newKeyId: $response.body#/api_key_id
      newKeySecret: $response.body#/key
      newKeyScopes: $response.body#/scopes
  - stepId: verifyKey
    description: >-
      List the project's API keys to confirm the newly created key is present
      in the registry.
    operationId: listProjectKeys
    parameters:
    - name: Authorization
      in: header
      value: Token $inputs.apiKey
    - name: project_id
      in: path
      value: $inputs.projectId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      apiKeys: $response.body#/api_keys
  outputs:
    newKeyId: $steps.createKey.outputs.newKeyId
    newKeySecret: $steps.createKey.outputs.newKeySecret
    apiKeys: $steps.verifyKey.outputs.apiKeys