---
title: "Get a KV namespace"
method: GET
path: "/storage/kvs/{id}"
tags: ["kv namespaces"]
---

# Get a KV namespace

`GET /storage/kvs/{id}`

## Request

- Base URL: `https://api.telnyx.com/v2`
- URL: `https://api.telnyx.com/v2/storage/kvs/{id}`
- Auth: HTTP bearer

Retrieves a KV namespace by its ID, including its provisioning status.

## Path parameters

- `id` string, uuid, required

## Response `200`

KV namespace retrieved successfully

- KvNamespaceResponseWrapper
  - `data` KvNamespace
    - `record_type` string
    - `id` string, uuid
    - `name` string
    - `status` 'pending' | 'provision_ok' | 'provision_failed' | 'deleting' | 'delete_failed': Provisioning status. A namespace is usable once `status` is `provision_ok`. Once deletion completes, the namespace no longer appears in the API.
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `400`: Bad request — `id` is not a valid UUID
- `401`: Unauthorized
- `404`: KV namespace not found
- `500`: Internal server error

## Changes

- **2026-10-21** `67df31283a8a`: 3 breaking, 3 info
  - the `errors/items/code` response's property type changed from `integer` to `string`, and format from `int32` to no format for status `400`
  - the `errors/items/code` response's property type changed from `integer` to `string`, and format from `int32` to no format for status `401`
  - the `errors/items/code` response's property type changed from `integer` to `string`, and format from `int32` to no format for status `404`
  - added the optional property `errors/items/description` to the response with the `400` status
  - …2 more
- **2026-10-15** `a72569d69430`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/team-telnyx/apis/telnyx-api/changes/storage/kvs/:id/get.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api.md) - [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api/llms.txt) - [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api/revisions/0f17b8167873?raw)
