Deepgram Management API

The Deepgram Management API allows developers to programmatically manage their Deepgram account resources. It provides endpoints for creating and managing API keys, configuring projects, managing team members, and monitoring usage. This API enables automation of administrative tasks and integration of Deepgram account management into existing workflows and infrastructure tooling.

OpenAPI Specification

deepgram-management-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Deepgram Management API
  description: >-
    The Deepgram Management API allows developers to programmatically manage
    their Deepgram account resources. It provides endpoints for managing
    projects, API keys, team members, invitations, scopes, billing balances,
    usage tracking, and model metadata. This API enables automation of
    administrative tasks and integration of Deepgram account management into
    existing workflows and infrastructure tooling.
  version: '1.0'
  contact:
    name: Deepgram Support
    url: https://developers.deepgram.com
  termsOfService: https://deepgram.com/tos
externalDocs:
  description: Deepgram Management API Documentation
  url: https://developers.deepgram.com/docs/create-additional-api-keys
servers:
  - url: https://api.deepgram.com
    description: Deepgram Production Server
tags:
  - name: Balances
    description: >-
      Retrieve billing balance information for projects.
  - name: Invitations
    description: >-
      Manage project invitations.
  - name: Keys
    description: >-
      Create, list, and manage API keys for projects.
  - name: Members
    description: >-
      Manage project team members.
  - name: Models
    description: >-
      Retrieve available model metadata.
  - name: Projects
    description: >-
      Manage Deepgram projects and project settings.
  - name: Scopes
    description: >-
      Manage member scopes and permissions within projects.
  - name: Usage
    description: >-
      Retrieve usage data and request logs for projects.
security:
  - bearerAuth: []
paths:
  /v1/projects:
    get:
      operationId: listProjects
      summary: Deepgram List all projects
      description: >-
        Retrieves basic information about all projects associated with the
        authenticated API key.
      tags:
        - Projects
      responses:
        '200':
          description: List of projects retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectList'
        '401':
          description: Unauthorized due to missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}:
    get:
      operationId: getProject
      summary: Deepgram Get a project
      description: >-
        Retrieves detailed information about a specific project.
      tags:
        - Projects
      parameters:
        - $ref: '#/components/parameters/project_id'
      responses:
        '200':
          description: Project details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Project not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      operationId: updateProject
      summary: Deepgram Update a project
      description: >-
        Updates settings for a specific project.
      tags:
        - Projects
      parameters:
        - $ref: '#/components/parameters/project_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectUpdate'
      responses:
        '200':
          description: Project updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Project not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      operationId: deleteProject
      summary: Deepgram Delete a project
      description: >-
        Permanently deletes a specific project and all associated resources.
      tags:
        - Projects
      parameters:
        - $ref: '#/components/parameters/project_id'
      responses:
        '204':
          description: Project deleted successfully
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Project not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}/keys:
    get:
      operationId: listProjectKeys
      summary: Deepgram List project API keys
      description: >-
        Retrieves all API keys associated with the specified project.
      tags:
        - Keys
      parameters:
        - $ref: '#/components/parameters/project_id'
      responses:
        '200':
          description: List of API keys retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeyList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: createProjectKey
      summary: Deepgram Create a project API key
      description: >-
        Creates a new API key for the specified project with the given scopes.
        Requires the keys:write scope on the authenticating key.
      tags:
        - Keys
      parameters:
        - $ref: '#/components/parameters/project_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KeyCreate'
      responses:
        '200':
          description: API key created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeyWithSecret'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}/keys/{key_id}:
    get:
      operationId: getProjectKey
      summary: Deepgram Get a project API key
      description: >-
        Retrieves details about a specific API key in the project.
      tags:
        - Keys
      parameters:
        - $ref: '#/components/parameters/project_id'
        - $ref: '#/components/parameters/key_id'
      responses:
        '200':
          description: API key details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Key'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Key not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      operationId: deleteProjectKey
      summary: Deepgram Delete a project API key
      description: >-
        Permanently deletes a specific API key from the project.
      tags:
        - Keys
      parameters:
        - $ref: '#/components/parameters/project_id'
        - $ref: '#/components/parameters/key_id'
      responses:
        '204':
          description: API key deleted successfully
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Key not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}/members:
    get:
      operationId: listProjectMembers
      summary: Deepgram List project members
      description: >-
        Retrieves a list of account objects for members of the specified project.
      tags:
        - Members
      parameters:
        - $ref: '#/components/parameters/project_id'
      responses:
        '200':
          description: List of members retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}/members/{member_id}:
    delete:
      operationId: removeProjectMember
      summary: Deepgram Remove a project member
      description: >-
        Removes a member from the specified project.
      tags:
        - Members
      parameters:
        - $ref: '#/components/parameters/project_id'
        - $ref: '#/components/parameters/member_id'
      responses:
        '204':
          description: Member removed successfully
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Member not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}/invites:
    get:
      operationId: listProjectInvitations
      summary: Deepgram List project invitations
      description: >-
        Retrieves a list of pending invitations for the specified project.
      tags:
        - Invitations
      parameters:
        - $ref: '#/components/parameters/project_id'
      responses:
        '200':
          description: List of invitations retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: sendProjectInvitation
      summary: Deepgram Send a project invitation
      description: >-
        Sends an invitation to the specified email address to join the project.
      tags:
        - Invitations
      parameters:
        - $ref: '#/components/parameters/project_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvitationCreate'
      responses:
        '200':
          description: Invitation sent successfully
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}/invites/{email}:
    delete:
      operationId: deleteProjectInvitation
      summary: Deepgram Delete a project invitation
      description: >-
        Removes a pending invitation for the specified email address from
        the project.
      tags:
        - Invitations
      parameters:
        - $ref: '#/components/parameters/project_id'
        - name: email
          in: path
          required: true
          description: >-
            Email address of the invitation to remove.
          schema:
            type: string
            format: email
      responses:
        '204':
          description: Invitation deleted successfully
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Invitation not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}/members/{member_id}/scopes:
    get:
      operationId: getMemberScopes
      summary: Deepgram Get member scopes
      description: >-
        Retrieves the scopes assigned to a specific member within a project.
      tags:
        - Scopes
      parameters:
        - $ref: '#/components/parameters/project_id'
        - $ref: '#/components/parameters/member_id'
      responses:
        '200':
          description: Member scopes retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScopeList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      operationId: updateMemberScopes
      summary: Deepgram Update member scopes
      description: >-
        Updates the scopes assigned to a specific member within a project.
      tags:
        - Scopes
      parameters:
        - $ref: '#/components/parameters/project_id'
        - $ref: '#/components/parameters/member_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScopeUpdate'
      responses:
        '200':
          description: Member scopes updated successfully
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}/usage:
    get:
      operationId: getProjectUsage
      summary: Deepgram Get project usage
      description: >-
        Retrieves usage data for the specified project over a given time range.
      tags:
        - Usage
      parameters:
        - $ref: '#/components/parameters/project_id'
        - name: start
          in: query
          description: >-
            Start date for the usage period in ISO 8601 format.
          schema:
            type: string
            format: date-time
        - name: end
          in: query
          description: >-
            End date for the usage period in ISO 8601 format.
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: Usage data retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageSummary'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}/requests:
    get:
      operationId: listProjectRequests
      summary: Deepgram List project requests
      description: >-
        Retrieves a paginated list of API requests made to the specified
        project over a given time range.
      tags:
        - Usage
      parameters:
        - $ref: '#/components/parameters/project_id'
        - name: start
          in: query
          description: >-
            Start date for the request period in ISO 8601 format.
          schema:
            type: string
            format: date-time
        - name: end
          in: query
          description: >-
            End date for the request period in ISO 8601 format.
          schema:
            type: string
            format: date-time
        - name: limit
          in: query
          description: >-
            Maximum number of results to return per page.
          schema:
            type: integer
            minimum: 1
        - name: cursor
          in: query
          description: >-
            Pagination cursor for retrieving the next page of results.
          schema:
            type: string
      responses:
        '200':
          description: Request list retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}/balances:
    get:
      operationId: listProjectBalances
      summary: Deepgram List project balances
      description: >-
        Retrieves billing balance information for the specified project.
      tags:
        - Balances
      parameters:
        - $ref: '#/components/parameters/project_id'
      responses:
        '200':
          description: Balance information retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/projects/{project_id}/balances/{balance_id}:
    get:
      operationId: getProjectBalance
      summary: Deepgram Get a project balance
      description: >-
        Retrieves details about a specific billing balance for the project.
      tags:
        - Balances
      parameters:
        - $ref: '#/components/parameters/project_id'
        - name: balance_id
          in: path
          required: true
          description: >-
            Unique identifier of the balance.
          schema:
            type: string
      responses:
        '200':
          description: Balance details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Balance'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Balance not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/models:
    get:
      operationId: listModels
      summary: Deepgram List all available models
      description: >-
        Retrieves metadata on all the latest public models available on
        the Deepgram platform, including both speech-to-text and
        text-to-speech models.
      tags:
        - Models
      parameters:
        - name: include_outdated
          in: query
          description: >-
            Include non-latest versions of models in the response.
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Model list retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/models/{model_id}:
    get:
      operationId: getModel
      summary: Deepgram Get a model
      description: >-
        Retrieves metadata for a specific model by its identifier.
      tags:
        - Models
      parameters:
        - name: model_id
          in: path
          required: true
          description: >-
            Unique identifier of the model.
          schema:
            type: string
      responses:
        '200':
          description: Model details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Model'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Model not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Deepgram API key passed as a bearer token in the Authorization header.
  parameters:
    project_id:
      name: project_id
      in: path
      required: true
      description: >-
        Unique identifier of the project.
      schema:
        type: string
    key_id:
      name: key_id
      in: path
      required: true
      description: >-
        Unique identifier of the API key.
      schema:
        type: string
    member_id:
      name: member_id
      in: path
      required: true
      description: >-
        Unique identifier of the member.
      schema:
        type: string
  schemas:
    ProjectList:
      type: object
      properties:
        projects:
          type: array
          items:
            $ref: '#/components/schemas/Project'
          description: >-
            List of projects.
    Project:
      type: object
      properties:
        project_id:
          type: string
          description: >-
            Unique identifier for the project.
        name:
          type: string
          description: >-
            Name of the project.
        company:
          type: string
          description: >-
            Company name associated with the project.
    ProjectUpdate:
      type: object
      properties:
        name:
          type: string
          description: >-
            New name for the project.
        company:
          type: string
          description: >-
            New company name for the project.
    KeyList:
      type: object
      properties:
        api_keys:
          type: array
          items:
            $ref: '#/components/schemas/Key'
          description: >-
            List of API keys.
    Key:
      type: object
      properties:
        api_key_id:
          type: string
          description: >-
            Unique identifier for the API key.
        key:
          type: string
          description: >-
            Masked API key value.
        comment:
          type: string
          description: >-
            Description or comment for the API key.
        scopes:
          type: array
          items:
            type: string
          description: >-
            Scopes assigned to this API key.
        created:
          type: string
          format: date-time
          description: >-
            Timestamp when the key was created.
        expiration_date:
          type: string
          format: date-time
          description: >-
            Expiration date of the key, if set.
    KeyWithSecret:
      type: object
      properties:
        api_key_id:
          type: string
          description: >-
            Unique identifier for the API key.
        key:
          type: string
          description: >-
            Full API key value. Only returned at creation time.
        comment:
          type: string
          description: >-
            Description or comment for the API key.
        scopes:
          type: array
          items:
            type: string
          description: >-
            Scopes assigned to this API key.
        created:
          type: string
          format: date-time
          description: >-
            Timestamp when the key was created.
    KeyCreate:
      type: object
      required:
        - comment
        - scopes
      properties:
        comment:
          type: string
          description: >-
            Description or name for the API key.
        scopes:
          type: array
          items:
            type: string
          description: >-
            Scopes to assign to this API key.
        expiration_date:
          type: string
          format: date-time
          description: >-
            Optional expiration date for the key.
        time_to_live_in_seconds:
          type: integer
          description: >-
            Optional time-to-live in seconds for the key.
    MemberList:
      type: object
      properties:
        members:
          type: array
          items:
            $ref: '#/components/schemas/Member'
          description: >-
            List of project members.
    Member:
      type: object
      properties:
        member_id:
          type: string
          description: >-
            Unique identifier for the member.
        email:
          type: string
          format: email
          description: >-
            Email address of the member.
        first_name:
          type: string
          description: >-
            First name of the member.
        last_name:
          type: string
          description: >-
            Last name of the member.
        scopes:
          type: array
          items:
            type: string
          description: >-
            Scopes assigned to this member.
    InvitationList:
      type: object
      properties:
        invites:
          type: array
          items:
            $ref: '#/components/schemas/Invitation'
          description: >-
            List of pending invitations.
    Invitation:
      type: object
      properties:
        email:
          type: string
          format: email
          description: >-
            Email address of the invitee.
        scope:
          type: string
          description: >-
            Scope assigned to the invitation.
    InvitationCreate:
      type: object
      required:
        - email
        - scope
      properties:
        email:
          type: string
          format: email
          description: >-
            Email address to send the invitation to.
        scope:
          type: string
          description: >-
            Scope to assign to the invited member.
    ScopeList:
      type: object
      properties:
        scopes:
          type: array
          items:
            type: string
          description: >-
            List of scopes assigned to the member.
    ScopeUpdate:
      type: object
      required:
        - scope
      properties:
        scope:
          type: string
          description: >-
            New scope to assign to the member.
    UsageSummary:
      type: object
      properties:
        start:
          type: string
          format: date-time
          description: >-
            Start of the usage period.
        end:
          type: string
          format: date-time
          description: >-
            End of the usage period.
        resolution:
          type: object
          properties:
            units:
              type: string
              description: >-
                Time unit for the resolution.
            amount:
              type: integer
              description: >-
                Number of time units per resolution period.
          description: >-
            Resolution of the usage data.
        results:
          type: array
          items:
            type: object
            properties:
              start:
                type: string
                format: date-time
                description: >-
                  Start of the period.
              end:
                type: string
                format: date-time
                description: >-
                  End of the period.
              hours:
                type: number
                format: float
                description: >-
                  Total audio hours processed.
              requests:
                type: integer
                description: >-
                  Total number of API requests.
          description: >-
            Usage data broken down by resolution period.
    RequestList:
      type: object
      properties:
        page:
          type: integer
          description: >-
            Current page number.
        limit:
          type: integer
          description: >-
            Number of results per page.
        requests:
          type: array
          items:
            type: object
            properties:
              request_id:
                type: string
                description: >-
                  Unique identifier for the request.
              created:
                type: string
                format: date-time
                description: >-
                  Timestamp when the request was made.
              path:
                type: string
                description: >-
                  API path of the request.
              api_key_id:
                type: string
                description: >-
                  API key used for the request.
          description: >-
            List of API requests.
    BalanceList:
      type: object
      properties:
        balances:
          type: array
          items:
            $ref: '#/components/schemas/Balance'
          description: >-
            List of billing balances.
    Balance:
      type: object
      properties:
        balance_id:
          type: string
          description: >-
            Unique identifier for the balance.
        amount:
          type: number
          format: float
          description: >-
            Current balance amount.
        units:
          type: string
          description: >-
            Units of the balance amount.
        purchase:
          type: string
          description: >-
            Purchase method or plan name.
    ModelList:
      type: object
      properties:
        stt:
          type: array
          items:
            $ref: '#/components/schemas/Model'
          description: >-
            Available speech-to-text models.
        tts:
          type: array
          items:
            $ref: '#/components/schemas/Model'
          description: >-
            Available text-to-speech models.
    Model:
      type: object
      properties:
        name:
          type: string
          description: >-
            Name of the model.
        canonical_name:
          type: string
          description: >-
            Canonical identifier for the model.
        architecture:
          type: string
          description: >-
            Architecture of the model.
        languages:
          type: array
          items:
            type: string
          description: >-
            Languages supported by the model.
        version:
          type: string
          description: >-
            Version of the model.
        uuid:
          type: string
          description: >-
            Unique identifier for the model.
        metadata:
          type: object
          additionalProperties: true
          description: >-
            Additional metadata about the model.
    Error:
      type: object
      properties:
        err_code:
          type: string
          description: >-
            Error code identifying the type of error.
        err_msg:
          type: string
          description: >-
            Human-readable error message.
        request_id:
          type: string
          description: >-
            Unique identifier for the request that produced the error.