indexing

Index Backblaze Directory

Index all files from a specific directory (prefix) in a Backblaze B2 bucket.

Headers:

  • Authorization: Bearer {api_key} - Captain API key for authentication
  • X-Organization-ID: Organization UUID
  • Idempotency-Key: UUID for request deduplication (optional)

Args: collection_name: Name of the collection (path parameter) body: Backblaze directory configuration with directory_path

Returns: { job_id, status: "pending" }

post/v2/collections/{collection_name}/index/backblaze/directory

Path parameters

collection_namestring required

Headers

authorizationstring nullable

Request body

access_key_idstring required

Backblaze B2 Application Key ID (used as the S3 access key ID). Create one on the App Keys page — the master application key cannot be used with the S3-compatible API.

bucket_namestring required
custom_metadataobject nullable

Custom metadata to attach to all indexed chunks. Keys must be strings. Values: str, int, float, bool, or List[str].

directory_pathstring required

Path to the directory within the bucket (e.g., 'reports/2024/january'). All files within this directory and its subdirectories will be indexed.

endpoint_urlstring required

S3-compatible endpoint URL for your Backblaze B2 bucket, in the form https://s3.{region}.backblazeb2.com (e.g. https://s3.us-west-004.backblazeb2.com). Required.

max_filesinteger nullable
overwrite_existingboolean

When true, files that already exist in the collection are re-indexed and replaced with zero downtime: the new version is built alongside the live one and atomically swapped in when complete, so the previous version keeps serving search results throughout the rebuild. The document keeps the same document_id across overwrites, and its status reads 'updating' in the document listing while the rebuild runs. Requires skip_existing=false. Setting both to true returns a 400 error.

parsing_scriptstring nullable

Relative path to a JS parsing script for JSON files (e.g. 'research/paper-parser'). When provided, .json files are processed through a sandboxed V8 isolate. Without this, .json files are indexed as raw text.

processing_type'advanced' | 'basic' required

Document processing type. 'advanced' uses agentic OCR with AI-enhanced extraction for complex layouts, tables, figures, charts, and documents containing images. 'basic' provides reliable OCR optimized for general document indexing and high-volume processing.

regionstring

Region of your Backblaze B2 bucket (e.g. 'us-west-004'), matching the endpoint URL. Required by the S3 protocol; defaults to 'us-east-1'.

secret_access_keystring required

Backblaze B2 Application Key (used as the S3 secret access key; shown once when the key is created).

skip_existingboolean

When true, files already indexed in the collection are skipped and will not be re-indexed with incoming changes. When false, all incoming files are indexed regardless of whether they already exist.

mask_piiboolean

When true, detected PII (emails, phone numbers, SSNs, credit cards, names, and locations) is masked in the parsed content before it is embedded and stored — replaced with entity tags like <PERSON> and <EMAIL_ADDRESS>. For images (including images embedded in PDFs), PII text visible in the image is also pixel-redacted. Opt-in; defaults to false, which leaves content unchanged.

transcription_languagestring nullable

AWS Transcribe language code for the spoken audio (e.g. 'es-US', 'pt-BR'). Omit to auto-detect per file. Video and audio files only. Supported codes: https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html

Response

Successful Response

job_idstring required
statusstring
custom_metadataobject nullable

The custom_metadata Captain accepted for this job, echoed back as validated. Null when none was supplied.

Changes

No recorded changes to this endpoint across all 1 revision of this API.