For guidance and examples, see [Import data](/guides/index-data-import-data).

:::callout{intent="note"}
This feature is in [public preview](/guides/changelog-feature-availability) and available only on [Standard and Enterprise plans](https://www.pinecone.io/pricing/).
:::

```python Python theme={null}
from pinecone import Pinecone, ImportErrorMode

pc = Pinecone(api_key="YOUR_API_KEY")

# To get the unique host for an index, 
# see https://docs.pinecone.io/guides/manage-data/target-an-index
index = pc.Index(host="INDEX_HOST")
root = "s3://BUCKET_NAME/PATH/TO/DIR"

index.start_import(
    uri=root,
    error_mode=ImportErrorMode.CONTINUE, # or ImportErrorMode.ABORT
    integration_id="a12b3d4c-47d2-492c-a97a-dd98c8dbefde" # Optional for public buckets
)
```

```javascript JavaScript theme={null}
import { Pinecone } from '@pinecone-database/pinecone';

const pc = new Pinecone({ apiKey: 'YOUR_API_KEY' });

// To get the unique host for an index, 
// see https://docs.pinecone.io/guides/manage-data/target-an-index
const index = pc.index("INDEX_NAME", "INDEX_HOST")

const storageURI = 's3://BUCKET_NAME/PATH/TO/DIR';
const errorMode = 'continue'; // or 'abort'
const integrationID = 'a12b3d4c-47d2-492c-a97a-dd98c8dbefde'; // Optional for public buckets

await index.startImport(storageURI, errorMode, integrationID); 
```

```java Java theme={null}
import io.pinecone.clients.Pinecone;
import io.pinecone.clients.AsyncIndex;
import org.openapitools.db_data.client.ApiException;
import org.openapitools.db_data.client.model.ImportErrorMode;
import org.openapitools.db_data.client.model.StartImportResponse;

public class StartImport {
    public static void main(String[] args) throws ApiException {
        // Initialize a Pinecone client with your API key
        Pinecone pinecone = new Pinecone.Builder("YOUR_API_KEY").build();

        // Get async imports connection object
        AsyncIndex asyncIndex = pinecone.getAsyncIndexConnection("docs-example");

        // s3 uri
        String uri = "s3://BUCKET_NAME/PATH/TO/DIR";

        // Integration ID (optional for public buckets)
        String integrationId = "a12b3d4c-47d2-492c-a97a-dd98c8dbefde";

        // Start an import
        StartImportResponse response = asyncIndex.startImport(uri, integrationId, ImportErrorMode.OnErrorEnum.CONTINUE);
    }
}
```

```go Go theme={null}
package main

import (
    "context"
    "fmt"
    "log"

    "github.com/pinecone-io/go-pinecone/v4/pinecone"
)

func main() {
    ctx := context.Background()

    pc, err := pinecone.NewClient(pinecone.NewClientParams{
        ApiKey: "YOUR_API_KEY",
    })
    if err != nil {
        log.Fatalf("Failed to create Client: %v", err)
    }

    // To get the unique host for an index, 
    // see https://docs.pinecone.io/guides/manage-data/target-an-index
    idxConnection, err := pc.Index(pinecone.NewIndexConnParams{Host: "INDEX_HOST"})
    if err != nil {
        log.Fatalf("Failed to create IndexConnection for Host: %v", err)
	}

    uri := "s3://BUCKET_NAME/PATH/TO/DIR"
    errorMode := "continue" // or "abort"
    importRes, err := idxConnection.StartImport(ctx, uri, nil, (*pinecone.ImportErrorMode)(&errorMode))
    if err != nil {
        log.Fatalf("Failed to start import: %v", err)
    }
    fmt.Printf("Import started with ID: %s", importRes.Id)
}
```

```csharp C# theme={null}
using Pinecone;

var pinecone = new PineconeClient("YOUR_API_KEY");

// To get the unique host for an index, 
// see https://docs.pinecone.io/guides/manage-data/target-an-index
var index = pinecone.Index(host: "INDEX_HOST");

var uri = "s3://BUCKET_NAME/PATH/TO/DIR";

var response = await index.StartBulkImportAsync(new StartImportRequest
{
    Uri = uri,
    IntegrationId = "a12b3d4c-47d2-492c-a97a-dd98c8dbefde",
    ErrorMode = new ImportErrorMode { OnError = ImportErrorModeOnError.Continue }
});
```

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

curl "https://$INDEX_HOST/bulk/imports" \
  -H 'Api-Key: $PINECONE_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'X-Pinecone-Api-Version: 2025-04' \
  -d '{
        "integrationId": "a12b3d4c-47d2-492c-a97a-dd98c8dbefde",
        "uri": "s3://BUCKET_NAME/PATH/TO/DIR",
        "errorMode": {
            "onError": "continue"
            }
        }'
```

```json curl theme={null}
{
   "id": "101"
}
```

`POST /bulk/imports`

:::code-group
```bash title="cURL"
curl --request POST \
  --url https://{index_host}/bulk/imports \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "integrationId": "<string>",
  "uri": "<string>",
  "errorMode": {
    "onError": "abort"
  }
}'
```

```json title="200"
{
  "id": "101"
}
```
:::

## Authorizations

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

## Body

- `integrationId` (body, string) — The id of the [storage integration](/guides/operations-integrations-manage-storage-integrations) that should be used to access the data.
- `uri` (body, string, required) — The URI of the bucket (or container) and import directory containing the namespaces and Parquet files you want to import. For example, `s3://BUCKET_NAME/IMPORT_DIR` for Amazon S3, `gs://BUCKET_NAME/IMPORT_DIR` for Google Cloud Storage, or `https://STORAGE_ACCOUNT.blob.core.windows.net/CONTAINER_NAME/IMPORT_DIR` for Azure Blob Storage. For more information, see \[Import records]\(https://docs.pinecon
- `errorMode` (body, object) — Indicates how to respond to errors during the import process.

## Response

- `200` — Successful import operation
- `400` — Bad request. The request body included invalid request parameters.
- `4XX` — An unexpected error response.
- `5XX` — An unexpected error response.

## Related pages

- [Start import](./database-2026-07-data-plane-start-import.md)
- [List imports](./database-2026-07-data-plane-list-imports.md)
- [Describe an import](./database-2026-07-data-plane-describe-import.md)
- [Cancel an import](./database-2026-07-data-plane-cancel-import.md)
- [Start import](./database-2026-04-data-plane-start-import.md)
- [List imports](./database-2026-04-data-plane-list-imports.md)
- [Describe an import](./database-2026-04-data-plane-describe-import.md)
- [Cancel an import](./database-2026-04-data-plane-cancel-import.md)
- [Start import](./database-2025-10-data-plane-start-import.md)
- [List imports](./database-2025-10-data-plane-list-imports.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.
