> ## 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.

# Manage a dedicated read nodes index

> Use a hosted embedding model, monitor fullness, change node types, pause, or convert a Pinecone dedicated read nodes index back to on-demand.

## Use a hosted embedding model

To upsert and search with text instead of vectors, an index must use a [hosted embedding model](https://docs.pinecone.io/guides/indexes/index-configuration.md#embedding-models). Set the model when you create the index, because you can't add one to an existing index. [Converting](https://docs.pinecone.io/guides/indexes/convert-an-index.md) a legacy integrated index into a document index keeps its model, but converting a legacy vector index doesn't add one.

To create a dedicated read nodes index with a hosted embedding model, call [Create an index with integrated embedding](https://docs.pinecone.io/reference/api/2026-07/control-plane/create_for_model.md) and include the `read_capacity` object to set the node type, shards, and replicas.

## Monitor index fullness

To check [index fullness](https://docs.pinecone.io/guides/optimize/dedicated-read-nodes/concepts.md#index-fullness), call [Get index stats](https://docs.pinecone.io/reference/api/2026-07/data-plane/describeindexstats.md).

### Example

```bash Request theme={null}
# To get the unique host for an index,
# see https://docs.pinecone.io/guides/indexes/target-an-index
PINECONE_API_KEY="YOUR_API_KEY"
INDEX_HOST="YOUR_INDEX_HOST"

curl -X GET "https://$INDEX_HOST/describe_index_stats" \
     -H "Api-Key: $PINECONE_API_KEY" \
     -H "X-Pinecone-Api-Version: 2026-07"
```

```json Response expandable theme={null}
{
  "namespaces": {
    "__default__": {
      "vectorCount": 705000
    }
  },
  "indexFullness": 0.01,
  "totalVectorCount": 705000,
  "dimension": 1536,
  "metric": "cosine",
  "vectorType": "dense",
  "memoryFullness": 0.01,
  "storageFullness": 0.01
}
```

In the response, `indexFullness` describes how full the index is, on a scale of 0 to 1. It's set to the greater of `memoryFullness` and `storageFullness`.

Pinecone also [emits these values](https://docs.pinecone.io/guides/production/monitoring.md#available-metrics). Use them to track fullness over time in Prometheus or Datadog, and to alert before your index reaches capacity.

## Change node types

You can change node types in either direction (`b1` → `t1` or `t1` → `b1`). This operation doesn't require downtime, but can take up to 30 minutes to complete.

> [!NOTE]
>
> The most predictable way to increase throughput is by increasing [replicas](https://docs.pinecone.io/guides/optimize/dedicated-read-nodes/concepts.md#replicas).

> [!WARNING]
>
> `t1` nodes [cache more data in memory](https://docs.pinecone.io/guides/optimize/dedicated-read-nodes/concepts.md#node-types) than `b1` nodes. Because of this, switching from `b1` to `t1` may require more shards.
>
> If your new configuration doesn't have enough shards, the configuration change will fail with an error telling you how many shards are required. Update the request and retry.
>
> In the meantime, your index will continue to function normally in its original configuration.

To change node types, call [Configure an index](https://docs.pinecone.io/reference/api/2026-07/control-plane/configure_index.md). In the request body, set the following fields:

| Field | Value | Notes |
| :- | :- | :- |
| `read_capacity.mode` | `Dedicated` | |
| `read_capacity.dedicated.node_type` | `b1` or `t1` | See [node types](https://docs.pinecone.io/guides/optimize/dedicated-read-nodes/concepts.md#node-types) |

### Example

This example changes the node type from `b1` to `t1`:

```bash Request expandable theme={null}
PINECONE_API_KEY="YOUR_API_KEY"
INDEX_NAME="YOUR_INDEX_NAME"

curl -X PATCH "https://api.pinecone.io/indexes/$INDEX_NAME" \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -H "Api-Key: $PINECONE_API_KEY" \
     -H "X-Pinecone-Api-Version: 2026-07" \
     -d '{
           "read_capacity": {
             "mode": "Dedicated",
             "dedicated": {
               "node_type": "t1"
             }
           }
         }'
```

```json Response expandable theme={null}
{
  "name": "example-dedicated-index",
  "status": {
    "ready": true,
    "state": "Ready"
  },
  "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": "t1",
      "scaling": "Manual",
      "manual": {
        "shards": 1,
        "replicas": 1
      }
    },
    "status": {
      "state": "Scaling",
      "current_shards": 1,
      "current_replicas": 1
    }
  },
  "schema": {
    "fields": {
      "_values": { "type": "dense_vector", "dimension": 1024, "metric": "cosine" }
    }
  },
  "deletion_protection": "disabled",
  "tags": null
}
```

> [!NOTE]
>
> Configuration change limits:
>
> * You can make one configuration change every ten minutes, but you can batch multiple changes (node type, shards, and replicas) in a single request.
> * A new configuration change can only be initiated after the previous configuration change has completed.
> * Each configuration change can take up to 30 minutes to complete.
> * Read and write operations continue normally during configuration changes.

## Pause an index

To pause an index, [set the number of replicas](https://docs.pinecone.io/guides/optimize/dedicated-read-nodes/scale.md#add-or-remove-replicas) to 0. This operation can take up to 30 minutes to complete.

> [!NOTE]
>
> While an index is paused, you can't write to it or read from it. For a paused index, you're billed for storage, but not for node costs, reads, or writes.

## Check the status of a configuration change

After making a configuration change to a dedicated read nodes index (changing shards, replicas, or node type), check the status of the change by calling [Describe an index](https://docs.pinecone.io/reference/api/2026-07/control-plane/describe_index.md).

### Example

```bash Request theme={null}
PINECONE_API_KEY="YOUR_API_KEY"
INDEX_NAME="YOUR_INDEX_NAME"

curl -X GET "https://api.pinecone.io/indexes/$INDEX_NAME" \
     -H "Api-Key: $PINECONE_API_KEY" \
     -H "X-Pinecone-Api-Version: 2026-07"
```

```jsonc Response expandable theme={null}
{
  "name": "example-dedicated-index",
  "status": {
    "ready": true,
    "state": "Ready"
  },
  "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": 1,
        "replicas": 2 // <---- desired state
      }
    },
    "status": {
      "state": "Scaling",
      "current_shards": 1,
      "current_replicas": 1 // <---- current state
    }
  },
  "schema": {
    "fields": {
      "_values": { "type": "dense_vector", "dimension": 1536, "metric": "cosine" }
    }
  },
  "deletion_protection": "enabled",
  "tags": {
    "tag0": "value0"
  }
}
```

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`) |

When changing node types, shards, or replicas, monitor the read capacity status (`read_capacity.status.state`). Possible values:

| State | Description |
| :- | :- |
| `Ready` | The change is complete and the index is ready to serve queries at full capacity. |
| `Scaling` | A change to the number of shards or replicas is in progress. |
| `Migrating` | A change to the node type or read capacity mode (Dedicated or OnDemand) is in progress. |
| `Error` | The operation failed. For migrations to dedicated, this typically means you didn't allocate enough shards for your index size. Check `error_message` for details, and retry with more shards. |

> [!NOTE]
>
> During changes to shards, replicas, and node type, the index-level status (`status.state`) remains `Ready`. This is because the index can handle reads and writes while its dedicated read capacity scales.

## Convert to on-demand

To convert a dedicated read nodes index back to on-demand, call [Configure an index](https://docs.pinecone.io/reference/api/2026-07/control-plane/configure_index.md) and set `read_capacity.mode` to `OnDemand`. This converts the index in place, keeping the same index name and host.

```bash Request theme={null}
PINECONE_API_KEY="YOUR_API_KEY"
INDEX_NAME="YOUR_INDEX_NAME"

curl -X PATCH "https://api.pinecone.io/indexes/$INDEX_NAME" \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -H "Api-Key: $PINECONE_API_KEY" \
     -H "X-Pinecone-Api-Version: 2026-07" \
     -d '{
           "read_capacity": {
             "mode": "OnDemand"
           }
         }'
```

```jsonc Response expandable theme={null}
{
  "name": "example-index",
  "status": {
    "ready": true,
    "state": "Ready"
  },
  "host": "example-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": "OnDemand",
    "status": {
      "state": "Ready",
      "current_shards": null,
      "current_replicas": null
    }
  },
  "schema": {
    "fields": {
      "_values": { "type": "dense_vector", "dimension": 1024, "metric": "cosine" }
    }
  },
  "deletion_protection": "disabled",
  "tags": null
}
```

If you'd rather return to on-demand on a fresh index, use the backup and restore path instead:

1. [Create a backup](https://docs.pinecone.io/guides/indexes/back-up-an-index.md) of your dedicated read nodes index.
2. [Create a new index from the backup](https://docs.pinecone.io/guides/indexes/restore-an-index.md), without specifying dedicated read node configuration.
3. Verify the new on-demand index and update your application to use it.
4. Delete the old dedicated read nodes index.

If you have concerns or need assistance, [contact support](https://app.pinecone.io/organizations/-/settings/support/ticket).
