Vapi Provider Resources API

Generic CRUD over provider-side resources (e.g. ElevenLabs voices, Cartesia voices, Deepgram custom models) so they can be created and managed through Vapi without leaving the platform.

Vapi Provider Resources API is one of 15 APIs that Vapi publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Provider Resources, Voice AI, and Integrations. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

vapi-provider-resources-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Vapi Provider Resources API
  description: Vapi API — Provider Resources resource. Voice AI for developers.
  version: '1.0'
  contact:
    name: Vapi
    url: https://vapi.ai
servers:
- url: https://api.vapi.ai
security:
- bearer: []
tags:
- name: Provider Resources
  description: Provider Resources endpoints.
paths:
  /provider/{provider}/{resourceName}:
    post:
      operationId: ProviderResourceController_createProviderResource
      summary: Create Provider Resource
      parameters:
      - name: content-type
        required: true
        in: header
        schema:
          type: string
      - name: provider
        required: true
        in: path
        description: The provider (e.g., 11labs)
        schema:
          enum:
          - cartesia
          - 11labs
          type: string
      - name: resourceName
        required: true
        in: path
        description: The resource name (e.g., pronunciation-dictionary)
        schema:
          enum:
          - pronunciation-dictionary
          type: string
      responses:
        '201':
          description: Successfully created provider resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderResource'
      tags:
      - Provider Resources
      security:
      - bearer: []
    get:
      operationId: ProviderResourceController_getProviderResourcesPaginated
      summary: List Provider Resources
      parameters:
      - name: provider
        required: true
        in: path
        description: The provider (e.g., 11labs)
        schema:
          enum:
          - cartesia
          - 11labs
          type: string
      - name: resourceName
        required: true
        in: path
        description: The resource name (e.g., pronunciation-dictionary)
        schema:
          enum:
          - pronunciation-dictionary
          type: string
      - name: id
        required: false
        in: query
        schema:
          type: string
      - name: resourceId
        required: false
        in: query
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: This is the page number to return. Defaults to 1.
        schema:
          minimum: 1
          type: number
      - name: sortOrder
        required: false
        in: query
        description: This is the sort order for pagination. Defaults to 'DESC'.
        schema:
          enum:
          - ASC
          - DESC
          type: string
      - name: sortBy
        required: false
        in: query
        description: This is the column to sort by. Defaults to 'createdAt'.
        schema:
          enum:
          - createdAt
          - duration
          - cost
          type: string
      - name: limit
        required: false
        in: query
        description: This is the maximum number of items to return. Defaults to 100.
        schema:
          minimum: 0
          maximum: 1000
          type: number
      - name: createdAtGt
        required: false
        in: query
        description: This will return items where the createdAt is greater than the specified value.
        schema:
          format: date-time
          type: string
      - name: createdAtLt
        required: false
        in: query
        description: This will return items where the createdAt is less than the specified value.
        schema:
          format: date-time
          type: string
      - name: createdAtGe
        required: false
        in: query
        description: This will return items where the createdAt is greater than or equal to the specified value.
        schema:
          format: date-time
          type: string
      - name: createdAtLe
        required: false
        in: query
        description: This will return items where the createdAt is less than or equal to the specified value.
        schema:
          format: date-time
          type: string
      - name: updatedAtGt
        required: false
        in: query
        description: This will return items where the updatedAt is greater than the specified value.
        schema:
          format: date-time
          type: string
      - name: updatedAtLt
        required: false
        in: query
        description: This will return items where the updatedAt is less than the specified value.
        schema:
          format: date-time
          type: string
      - name: updatedAtGe
        required: false
        in: query
        description: This will return items where the updatedAt is greater than or equal to the specified value.
        schema:
          format: date-time
          type: string
      - name: updatedAtLe
        required: false
        in: query
        description: This will return items where the updatedAt is less than or equal to the specified value.
        schema:
          format: date-time
          type: string
      responses:
        '200':
          description: List of provider resources
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderResourcePaginatedResponse'
      tags:
      - Provider Resources
      security:
      - bearer: []
  /provider/{provider}/{resourceName}/{id}:
    get:
      operationId: ProviderResourceController_getProviderResource
      summary: Get Provider Resource
      parameters:
      - name: provider
        required: true
        in: path
        description: The provider (e.g., 11labs)
        schema:
          enum:
          - cartesia
          - 11labs
          type: string
      - name: resourceName
        required: true
        in: path
        description: The resource name (e.g., pronunciation-dictionary)
        schema:
          enum:
          - pronunciation-dictionary
          type: string
      - name: id
        required: true
        in: path
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: Successfully retrieved provider resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderResource'
        '404':
          description: Provider resource not found
      tags:
      - Provider Resources
      security:
      - bearer: []
    delete:
      operationId: ProviderResourceController_deleteProviderResource
      summary: Delete Provider Resource
      parameters:
      - name: provider
        required: true
        in: path
        description: The provider (e.g., 11labs)
        schema:
          enum:
          - cartesia
          - 11labs
          type: string
      - name: resourceName
        required: true
        in: path
        description: The resource name (e.g., pronunciation-dictionary)
        schema:
          enum:
          - pronunciation-dictionary
          type: string
      - name: id
        required: true
        in: path
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderResource'
        '404':
          description: Provider resource not found
      tags:
      - Provider Resources
      security:
      - bearer: []
    patch:
      operationId: ProviderResourceController_updateProviderResource
      summary: Update Provider Resource
      parameters:
      - name: provider
        required: true
        in: path
        description: The provider (e.g., 11labs)
        schema:
          enum:
          - cartesia
          - 11labs
          type: string
      - name: resourceName
        required: true
        in: path
        description: The resource name (e.g., pronunciation-dictionary)
        schema:
          enum:
          - pronunciation-dictionary
          type: string
      - name: id
        required: true
        in: path
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderResource'
        '404':
          description: Provider resource not found
      tags:
      - Provider Resources
      security:
      - bearer: []
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: Bearer
      type: http
      description: Retrieve your API Key from [Dashboard](dashboard.vapi.ai).
  schemas:
    PaginationMeta:
      type: object
      properties:
        itemsPerPage:
          type: number
        totalItems:
          type: number
        currentPage:
          type: number
        totalPages:
          type: number
        hasNextPage:
          type: boolean
        sortOrder:
          type: string
          enum:
          - ASC
          - DESC
        itemsBeyondRetention:
          type: boolean
        createdAtLe:
          format: date-time
          type: string
        createdAtGe:
          format: date-time
          type: string
      required:
      - itemsPerPage
      - totalItems
      - currentPage
    ProviderResource:
      type: object
      properties:
        id:
          type: string
          description: This is the unique identifier for the provider resource.
        orgId:
          type: string
          description: This is the unique identifier for the org that this provider resource belongs to.
        createdAt:
          format: date-time
          type: string
          description: This is the ISO 8601 date-time string of when the provider resource was created.
        updatedAt:
          format: date-time
          type: string
          description: This is the ISO 8601 date-time string of when the provider resource was last updated.
        provider:
          type: string
          description: This is the provider that manages this resource.
          enum:
          - cartesia
          - 11labs
        resourceName:
          type: string
          description: This is the name/type of the resource.
          enum:
          - pronunciation-dictionary
        resourceId:
          type: string
          description: This is the provider-specific identifier for the resource.
        resource:
          type: object
          description: This is the full resource data from the provider's API.
      required:
      - id
      - orgId
      - createdAt
      - updatedAt
      - provider
      - resourceName
      - resourceId
      - resource
    ProviderResourcePaginatedResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ProviderResource'
        metadata:
          $ref: '#/components/schemas/PaginationMeta'
      required:
      - results
      - metadata