Telnyx kv namespaces API

Manage KV storage namespaces

Operations 4

GET /storage/kvs List KV namespaces #
POST /storage/kvs Create a KV namespace #
DELETE /storage/kvs/{id} Delete a KV namespace #
GET /storage/kvs/{id} Get a KV namespace #

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/telnyx:telnyx-kv-namespaces-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

telnyx-kv-namespaces-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  x-latency-category: responsive
  x-endpoint-cost: light
  title: Telnyx kv namespaces API
  description: SIP trunking, SMS, MMS, Call Control and Telephony Data Services.
  contact:
    email: support@telnyx.com
servers:
- url: https://api.telnyx.com/v2
  description: Version 2.0.0 of the Telnyx API
security:
- bearerAuth: []
tags:
- name: kv namespaces
  description: Manage KV storage namespaces
paths:
  /storage/kvs:
    get:
      description: Lists the KV namespaces for the authenticated user's organization. Results use page-based pagination (`page[number]`/`page[size]`).
      tags:
      - kv namespaces
      summary: List KV namespaces
      operationId: ListKvNamespaces
      parameters:
      - description: The page number to load.
        name: page[number]
        in: query
        schema:
          type: integer
          minimum: 1
          default: 1
      - description: The size of the page. Values above 250 are treated as 250.
        name: page[size]
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 250
          default: 20
      responses:
        '200':
          description: KV namespaces retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KvNamespaceListResponseWrapper'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericErrorResponse'
    post:
      description: 'Creates a new KV namespace. Provisioning is asynchronous: the namespace is returned with status `pending` and becomes usable once it reaches `provision_ok`.'
      tags:
      - kv namespaces
      summary: Create a KV namespace
      operationId: CreateKvNamespace
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateKvNamespaceRequest'
        description: KV namespace creation request
        required: true
      responses:
        '201':
          description: KV namespace created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KvNamespaceResponseWrapper'
        '400':
          description: Bad request — missing or invalid `name`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '409':
          description: Conflict — a namespace with this name already exists for your organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericErrorResponse'
  /storage/kvs/{id}:
    delete:
      description: 'Deletes a KV namespace and all of the keys it contains. Deletion is asynchronous: the namespace is returned with status `deleting`. Deleting a namespace whose deletion is already in progress returns a `409`.'
      tags:
      - kv namespaces
      summary: Delete a KV namespace
      operationId: DeleteKvNamespace
      parameters:
      - description: KV namespace ID
        name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: KV namespace deletion initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KvNamespaceResponseWrapper'
        '400':
          description: Bad request — `id` is not a valid UUID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: KV namespace not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '409':
          description: Conflict — the namespace is already being deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericErrorResponse'
    get:
      description: Retrieves a KV namespace by its ID, including its provisioning status.
      tags:
      - kv namespaces
      summary: Get a KV namespace
      operationId: GetKvNamespace
      parameters:
      - description: KV namespace ID
        name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: KV namespace retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KvNamespaceResponseWrapper'
        '400':
          description: Bad request — `id` is not a valid UUID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: KV namespace not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericErrorResponse'
components:
  schemas:
    KvNamespace:
      type: object
      properties:
        record_type:
          type: string
          example: storage_kv
        id:
          type: string
          format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
        name:
          type: string
          example: my-cache
        status:
          type: string
          description: Provisioning status. A namespace is usable once `status` is `provision_ok`. Once deletion completes, the namespace no longer appears in the API.
          enum:
          - pending
          - provision_ok
          - provision_failed
          - deleting
          - delete_failed
          example: provision_ok
        created_at:
          type: string
          format: date-time
          example: '2026-06-18T14:48:17Z'
        updated_at:
          type: string
          format: date-time
          example: '2026-06-18T14:48:17Z'
    CreateKvNamespaceRequest:
      type: object
      properties:
        name:
          type: string
          description: Namespace name. May contain lowercase letters, numbers, and hyphens only.
          pattern: ^[a-z0-9-]+$
          minLength: 1
          maxLength: 255
          example: my-cache
      required:
      - name
    GenericErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/edge-compute_Error'
    ErrorSource:
      type: object
      properties:
        parameter:
          type: string
          example: id
        pointer:
          type: string
          example: /id
    edge-compute_PaginationMeta:
      type: object
      properties:
        page_number:
          type: integer
          example: 1
        page_size:
          type: integer
          example: 20
        total_pages:
          type: integer
          example: 3
        total_results:
          type: integer
          example: 52
    KvNamespaceResponseWrapper:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/KvNamespace'
    Errors:
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/billing-group_Error'
      type: object
    edge-compute_Error:
      type: object
      properties:
        code:
          type: string
          example: '10005'
        detail:
          type: string
          example: The requested function does not exist or you don't have access to it
        meta:
          $ref: '#/components/schemas/ErrorMeta'
        source:
          $ref: '#/components/schemas/ErrorSource'
        title:
          type: string
          example: Function not found
    KvNamespaceListResponseWrapper:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/KvNamespace'
        meta:
          $ref: '#/components/schemas/edge-compute_PaginationMeta'
    ErrorMeta:
      type: object
      properties:
        url:
          type: string
          example: https://docs.telnyx.com/api/errors/10005
    billing-group_Error:
      type: object
      required:
      - code
      - title
      properties:
        code:
          type: integer
          format: int32
        title:
          type: string
        detail:
          type: string
        source:
          type: object
          properties:
            pointer:
              description: JSON pointer (RFC6901) to the offending entity.
              type: string
            parameter:
              description: Indicates which query parameter caused the error.
              type: string
        meta:
          type: object
          properties: {}
          additionalProperties: true
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: 'Telnyx API key supplied as `Authorization: Bearer <token>`. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.'
    Payment:
      type: apiKey
      in: header
      name: Authorization
      description: 'Machine Payment Protocol credential used on paid retries, sent as `Authorization: Payment ...`. Obtained by paying a challenge returned in the `WWW-Authenticate` header of a 402 response. This is not a Telnyx API key; initial challenge requests use standard bearer authentication instead.'
    agent-memory_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key
    bearerAuth:
      type: http
      scheme: bearer
    branded-calling_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
    collections_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Collections and results are automatically scoped to the authenticated user's organization.
    number-reputation_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
    oauthClientAuth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.telnyx.com/v2/oauth/token
          scopes:
            admin: Administrative access to Telnyx resources
        authorizationCode:
          authorizationUrl: https://api.telnyx.com/v2/oauth/authorize
          tokenUrl: https://api.telnyx.com/v2/oauth/token
          refreshUrl: https://api.telnyx.com/v2/oauth/token
          scopes:
            admin: Administrative access to Telnyx resources
      description: OAuth 2.0 authentication for Telnyx API and MCP integrations
    outbound-voice-profiles_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    pronunciation-dicts_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API v2 key. Obtain from https://portal.telnyx.com
    rcs-registration_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
    stored-payment-transactions_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    transcriptions-search_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Results are automatically scoped to the authenticated user's organization.
    web-search_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key
x-service-info:
  categories:
  - communication
  - developer-tools
  docs:
    apiReference: https://developers.telnyx.com
    homepage: https://telnyx.com
    llms: https://telnyx.com/llms.txt