# What changed in @pinecone-database/pinecone

> 46 changes in @pinecone-database/pinecone 8 to 9 from its official release notes, upgrade guides and advisories: 19 breaking, 4 deprecations, 1 security, 15 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/@pinecone-database/pinecone/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @pinecone-database/pinecone 9

### Breaking changes

- Use BackupListPagination instead of the removed BackupPaginationResponse type. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- createdAt now decodes to an optional Date; use toISOString instead of string methods. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Backup dimension and metric fields move into the optional schema. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Document update and delete now return response objects instead of void, which may require updating explicitly typed wrappers. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Top-level configuration embed is rejected; update semantic fields through a schema.fields patch or create an integrated-embedding index with createForModel. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Pod creation, legacy metadata-indexing schemas, and sourceCollection/sourceBackupId creation options are rejected; use the backup restoration resource method for restoration. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Do not mix legacy dimension, metric, vectorType, or spec fields with native schema or deployment fields in one creation request. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- recordCount and sizeBytes are now optional decimal strings instead of optional numbers; convert explicitly for arithmetic and handle missing values. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Node.js 22 or later is required to use v9. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- next is required when a pagination object exists; omit an empty pagination envelope or provide a real cursor. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Use this resource method to restore an index from a backup. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Preview document methods are removed; migrate document operations to the index namespace documents accessor and stable request and response types. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Preview exports are removed; migrate preview request and response types to their stable equivalents. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Use ReadCapacityDedicated instead of ReadCapacityDedicatedSpec. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Response declarations now require nodeType, scaling, and manual replicas and shards; capacity status counts can be null. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Use ReadCapacityOnDemand instead of ReadCapacityOnDemandSpec. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Requests reject resource identifiers whose dot segments would resolve to a different URL path. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Timestamps and several response fields can now be null or absent, so check values before accessing them. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- SearchMatchTerms now requires both strategy and terms; omit optional matchTerms when no filter is intended. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)

### Security

- Request-header logging redacts Api-Key and Authorization across header casing and supported header container formats. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)

### Deprecations

- Flat control methods remain available as deprecated delegates; use pc.indexes.configure for new code. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Use pc.backups.create instead of the deprecated flat control method. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Use pc.backups.createIndex instead of the deprecated flat control method. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Use pc.backups.listByIndex or pc.backups.list instead of the deprecated flat control method. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)

### New APIs and options

- Assistant uploads accept Uint8Array, Blob, and async iterables of byte or string chunks, including Node Buffer and Readable inputs; iterable uploads require Node.js and are sent once. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- The main client now provides document upsert, search, fetch, update, delete, and list operations through the index namespace documents accessor. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- HTTP 412 errors now have a dedicated error class. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- HTTP 402 errors now have a dedicated error class. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Legacy properties derive values from schema and deployment, are non-enumerable, and can be undefined or throw when values are unavailable or ambiguous. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Create and manage daily, weekly, or monthly backup schedules with retention periods and inspect their run history. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Define searchable fields when creating an index for schema-based document operations. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)

### Behavior and default changes

- Client additionalHeaders now propagate to index and assistant clients, including upload and streaming calls; target-specific exact-key matches take precedence. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Client construction now uses globalThis.fetch, and importing the package no longer eagerly loads Node built-ins. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- An exact X-Pinecone-Api-Version header key now overrides the default API version. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)

### Tooling

- Published declarations support TypeScript 5.2 through 7.x, including CommonJS and ESM consumer configurations. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)

### Fixes and other changes

- Chat streams now preserve multibyte UTF-8 characters split across byte chunks. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Operation Content-Type remains protected regardless of header casing. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)
- Nested API error envelopes now expose the server's message correctly. (9.0.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v9.0.0)

## @pinecone-database/pinecone 8

### New APIs and options

- Adds a top-level client for managing organizations, projects, API keys, service accounts, role bindings, invites, and users through the Pinecone Admin API. (8.2.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v8.2.0)
- Uses service-account OAuth2 instead of a project `Api-Key`; fetches and caches the bearer token on the first admin request, with no proactive refresh. (8.2.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v8.2.0)
- Adds an `initAdmin()` helper to `npm run repl` for spinning up an `AdminClient`. (8.2.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v8.2.0)
- Can be set in the environment to provide the service-account client ID used by `AdminClient`. (8.2.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v8.2.0)
- Can be set in the environment to provide the service-account client secret used by `AdminClient`. (8.2.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v8.2.0)
- Adds an n-gram tokenizer option for full-text search string fields, enabling substring matching; it cannot be combined with `stemming` or `stopWords`. (8.1.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v8.1.0)
- Adds an alpha preview method to list document IDs for a namespace, with prefix filtering, a result limit, and cursor-based pagination. (8.1.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v8.1.0)
- Adds an alpha preview method for partial updates to existing documents by `_id`, including setting values or removing fields; updates to nonexistent documents are accepted as a no-op. (8.1.0) — [release notes](https://github.com/pinecone-io/pinecone-ts-client/releases/tag/v8.1.0)
