# Create a backup of an index

The backup records the schema of the index it is taken from and reports it as `schema`. An index created from the backup with [Create index from backup](/guides/database-2026-07-control-plane-create-index-from-backup) inherits that schema.

```bash curl theme={null}
PINECONE_API_KEY="YOUR_API_KEY"
INDEX_NAME="docs-example"

curl "https://api.pinecone.io/indexes/$INDEX_NAME/backups" \
    -H "Api-Key: $PINECONE_API_KEY" \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H "X-Pinecone-Api-Version: 2026-07" \
    -d '{
      "name": "example-backup", 
      "description": "Monthly backup of production index"
      }'
```

`POST /indexes/{index_name}/backups`

:::code-group
```bash title="cURL"
curl --request POST \
  --url https://api.pinecone.io/indexes/{index_name}/backups \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "backup-2025-03-15",
  "description": "<string>"
}'
```

```json title="200"
{
  "backup_id": "670e8400-e29b-41d4-a716-446655440001",
  "source_index_name": "my-index",
  "source_index_id": "670e8400-e29b-41d4-a716-446655440000",
  "source_index_deleted_at": "2024-03-05T12:00:00.000Z",
  "name": "backup-2025-02-04",
  "description": "Backup before bulk update.",
  "status": "Ready",
  "cloud": "aws",
  "region": "us-east-1",
  "schema": {
    "fields": {
      "embedding": {
        "dimension": 1536,
        "metric": "cosine",
        "type": "dense_vector"
      },
      "title": {
        "full_text_search": {
          "language": "en",
          "stemming": false,
          "stop_words": false
        },
        "type": "string"
      }
    }
  },
  "record_count": 120000,
  "namespace_count": 3,
  "size_bytes": 10000000,
  "tags": {
    "tag0": "val0",
    "tag1": "val1"
  },
  "created_at": "2025-02-04T10:30:00.000Z"
}
```
:::

## Authorizations

- `Authorization` (header, string, required) — Bearer authentication header of the form `Bearer <token>`.

## Path Parameters

- `index_name` (path, string, required) — Name of the index to backup

## Headers

- `X-Pinecone-Api-Version` (header, string, required) — Required date-based version header

## Body

- `name` (body, string) — The name of the backup. Must be 1-45 characters long, start and end with an alphanumeric character, and consist only of lower case alphanumeric characters or `-`; any other value is rejected with `400`.
- `description` (body, string) — A description of the backup.

## Response

- `200` — The backup was created. The returned backup starts in status `Initializing`; poll it until the status is `Ready`.
- `400` — Bad request. The request body included invalid request parameters.
- `401` — Unauthorized. Possible causes: missing or invalid API key.
- `403` — Forbidden. Possible causes: the organization's plan does not include backups, or the project's backup quota is exhausted.
- `422` — Unprocessable entity. The request body could not be deserialized.
- `500` — Internal server error.

## Related pages

- [List backups for all indexes in a project](./database-2026-07-control-plane-list-project-backups.md)
- [List backups for an index](./database-2026-07-control-plane-list-index-backups.md)
- [Describe a backup](./database-2026-07-control-plane-describe-backup.md)
- [Delete a backup](./database-2026-07-control-plane-delete-backup.md)
- [Create an index from a backup](./database-2026-07-control-plane-create-index-from-backup.md)
- [List restore jobs](./database-2026-07-control-plane-list-restore-jobs.md)
- [Describe a restore job](./database-2026-07-control-plane-describe-restore-job.md)
- [List collections](./database-2026-07-control-plane-list-collections.md)
- [Create a collection](./database-2026-07-control-plane-create-collection.md)
- [Describe a collection](./database-2026-07-control-plane-describe-collection.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
