Skip to content
Start here

Upload Item.

client.aiSearch.namespaces.instances.items.upload(stringname, stringid, ItemUploadParams { account_id, file } params, RequestOptionsoptions?): ItemUploadResponse { id, checksum, chunks_count, 9 more }
POST/accounts/{account_id}/ai-search/namespaces/{name}/instances/{id}/items

Uploads a file to a managed AI Search instance via multipart/form-data (max 4MB).

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
ParametersExpand Collapse
name: string
id: string

AI Search instance ID. Lowercase alphanumeric, hyphens, and underscores.

maxLength64
minLength1
params: ItemUploadParams { account_id, file }
account_id: string

Path param

file: File

Body param

file: Uploadable

The file to upload (max 4MB). Filename must not exceed 128 characters.

metadata?: string

JSON string of custom metadata key-value pairs.

wait_for_completion?: boolean

Wait for indexing to fully complete before responding. On RAGs with vector indexing enabled, this additionally waits for Vectorize ingestion confirmation (up to 40s) so the returned item reflects a queryable state. On timeout the item is returned in running state and the background alarm continues polling. Defaults to false.

ReturnsExpand Collapse
ItemUploadResponse { id, checksum, chunks_count, 9 more }
id: string
checksum: string
chunks_count: number | null
created_at: string
formatdate-time
file_size: number | null
key: string
last_seen_at: string
formatdate-time
namespace: string
next_action: "INDEX" | "DELETE" | null
One of the following:
"INDEX"
"DELETE"
source_id: string | null

Identifies which data source this item belongs to. “builtin” for uploaded files, “{type}:{source}” for external sources, null for legacy items.

status: "queued" | "running" | "completed" | 3 more
One of the following:
"queued"
"running"
"completed"
"error"
"skipped"
"outdated"
error?: string

Upload Item.

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const response = await client.aiSearch.namespaces.instances.items.upload(
  'my-namespace',
  'my-ai-search',
  {
    account_id: 'c3dc5f0b34a14ff8e1b3ec04895e1b22',
    file: { file: fs.createReadStream('path/to/file') },
  },
);

console.log(response.id);
{
  "result": {
    "id": "id",
    "checksum": "checksum",
    "chunks_count": 0,
    "created_at": "2019-12-27T18:11:19.117Z",
    "file_size": 0,
    "key": "key",
    "last_seen_at": "2019-12-27T18:11:19.117Z",
    "namespace": "namespace",
    "next_action": "INDEX",
    "source_id": "source_id",
    "status": "queued",
    "error": "error"
  },
  "success": true
}
Returns Examples
{
  "result": {
    "id": "id",
    "checksum": "checksum",
    "chunks_count": 0,
    "created_at": "2019-12-27T18:11:19.117Z",
    "file_size": 0,
    "key": "key",
    "last_seen_at": "2019-12-27T18:11:19.117Z",
    "namespace": "namespace",
    "next_action": "INDEX",
    "source_id": "source_id",
    "status": "queued",
    "error": "error"
  },
  "success": true
}