> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinecone.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a dedicated read nodes index

> Create a Pinecone dedicated read nodes index from scratch or from a backup of an existing index.

## From scratch

<Steps>
  <Step title="Create the index">
    Call [Create an index](/reference/api/2026-07/control-plane/create_index). In the request body, in the `read_capacity` object, set the following fields:

    | Field | Value | Notes |
    | :- | :- | :- |
    | `mode` | `Dedicated` | |
    | `dedicated.node_type` | `b1` or `t1` | See [node types](/guides/index-data/dedicated-read-nodes/concepts#node-types) |
    | `dedicated.scaling` | `Manual` | The only supported value |
    | `dedicated.manual.shards` | Number of [shards](/guides/index-data/dedicated-read-nodes/size-and-test#number-of-shards) needed | Minimum 1 shard; each shard provides 250 GB of storage |
    | `dedicated.manual.replicas` | Number of [replicas](/guides/index-data/dedicated-read-nodes/size-and-test#number-of-replicas) needed | Minimum 0 (this [pauses](/guides/index-data/dedicated-read-nodes/manage#pause-an-index) the index) |

    <Note>
      To learn how to determine the number of shards and replicas your index requires, see [Calculate the size of your index](/guides/index-data/dedicated-read-nodes/size-and-test#calculate-the-size-of-your-index).
    </Note>

    This example creates an index with two shards and one replica:

    <CodeGroup>
      ```bash Request expandable theme={null}
      PINECONE_API_KEY="YOUR_API_KEY"

      curl "https://api.pinecone.io/indexes" \
           -H "Accept: application/json" \
           -H "Content-Type: application/json" \
           -H "Api-Key: $PINECONE_API_KEY" \
           -H "X-Pinecone-Api-Version: 2026-07" \
           -d '{
                 "name": "example-dedicated-index",
                 "deletion_protection": "enabled",
                 "tags": {
                   "environment": "production"
                 },
                 "deployment": {
                   "deployment_type": "managed",
                   "cloud": "aws",
                   "region": "us-east-1"
                 },
                 "schema": {
                   "fields": {
                     "_values": { "type": "dense_vector", "dimension": 1024, "metric": "cosine" }
                   }
                 },
                 "read_capacity": {
                   "mode": "Dedicated",
                   "dedicated": {
                     "node_type": "b1",
                     "scaling": "Manual",
                     "manual": {
                       "shards": 2,
                       "replicas": 1
                     }
                   }
                 }
               }'
      ```
    </CodeGroup>

    <CodeGroup>
      ```jsonc Response expandable theme={null}
      {
        "name": "example-dedicated-index",
        "status": {
          "ready": false,
          "state": "Initializing"
        },
        "host": "example-dedicated-index-1c6ab6aa.svc.aped-4627-b74a.pinecone.io",
        "deployment": {
          "deployment_type": "managed",
          "region": "us-east-1",
          "cloud": "aws",
          "environment": "aped-4627-b74a"
        },
        "read_capacity": {
          "mode": "Dedicated",
          "dedicated": {
            "node_type": "b1",
            "scaling": "Manual",
            "manual": {
              "shards": 2, // <---- desired state
              "replicas": 1
            }
          },
          "status": {
            "state": "Migrating",
            "current_shards": null, // <---- current state
            "current_replicas": null
          }
        },
        "schema": {
          "fields": {
            "_values": { "type": "dense_vector", "dimension": 1024, "metric": "cosine" }
          }
        },
        "deletion_protection": "enabled",
        "tags": {
          "environment": "production"
        }
      }
      ```
    </CodeGroup>

    The response includes two status fields:

    | Field | Description |
    | :- | :- |
    | **`status.state`** | Overall index status (for example, `Initializing`, `Ready`, `Terminating`) |
    | **`read_capacity.status.state`** | Read capacity status (`Migrating`, `Scaling`, `Ready`, `Error`) |

    <Note>
      When creating a dedicated read nodes index, `status.state` transitions to `Ready` as soon as the index is ready for reads and writes.

      However, `read_capacity.status.state` remains `Migrating` until the index scales to its full read capacity, at which point it transitions to `Ready`.
    </Note>
  </Step>

  <Step title="Add your data">
    After the index is created, [upsert](/guides/index-data/upsert-data) or [import](/guides/index-data/import-data) your data.

    <Tip>
      To upsert and search with text instead of vectors, create the index with a [hosted embedding model](/guides/index-data/create-an-index#embedding-models) instead. Call [Create an index with integrated embedding](/reference/api/2026-07/control-plane/create_for_model) and include the `read_capacity` object to configure dedicated read nodes.
    </Tip>
  </Step>
</Steps>

## From a backup

<Steps>
  <Step title="Restore the backup">
    [Restore the backup](/guides/manage-data/restore-an-index) to a new on-demand index with the same data as the original.
  </Step>

  <Step title="Delete extra namespaces">
    If the restored index has multiple namespaces, [delete](/reference/api/latest/data-plane/deletenamespace) all of them except the one you want to keep. Dedicated read nodes support only [one namespace](/guides/index-data/dedicated-read-nodes/overview#namespace-limits).
  </Step>

  <Step title="Migrate to dedicated read nodes">
    Convert the restored on-demand index by following [Migrate to dedicated read nodes](/guides/index-data/dedicated-read-nodes/migrate).
  </Step>
</Steps>
