The Kodexa CLI provides powerful commands for working with documents in document stores. This page explains how to query, upload, and manage documents.

Querying Documents

The query command allows you to search for and manipulate documents in a document store:

kodexa query <store-ref> [<query>]

For example, to search for all documents in a store:

kodexa query org-name/store-name "*"

Filtering Results

You can filter results using specific queries:

kodexa query org-name/store-name "content:invoice"

Or use filters for more complex queries:

kodexa query org-name/store-name "created>2023-01-01" --filter

Pagination and Streaming

For large result sets, use pagination:

kodexa query org-name/store-name "*" --page 2 --pageSize 20

For continuous processing, use streaming:

kodexa query org-name/store-name "*" --stream

Downloading Documents

To download documents matching a query:

kodexa query org-name/store-name "*" --download

To download the original native files:

kodexa query org-name/store-name "*" --download-native

Labeling Documents

Add labels to documents:

kodexa query org-name/store-name "*" --stream --add-label invoice

Remove labels:

kodexa query org-name/store-name "*" --stream --remove-label draft

Deleting Documents

Delete documents matching a query:

kodexa query org-name/store-name "*" --stream --delete

You’ll be prompted to confirm the deletion.

Uploading Documents

The upload command allows you to upload files to a document store:

kodexa upload <store-ref> <file-paths>

For example, to upload a single file:

kodexa upload org-name/store-name /path/to/document.pdf

To upload multiple files:

kodexa upload org-name/store-name /path/to/document1.pdf /path/to/document2.pdf

Upload With External Data

You can attach external data to uploaded documents:

kodexa upload org-name/store-name /path/to/document.pdf --external-data

This looks for a matching JSON file (e.g., document.json) and attaches its content as external data.

Multithreaded Uploads

For faster uploads of multiple files:

kodexa upload org-name/store-name /path/to/documents/*.pdf --threads 10

Examples

Search for PDFs in a document store

kodexa query org-name/store-name "path:*.pdf"

Download all documents with a specific label

kodexa query org-name/store-name "labels:invoice" --download

Upload all documents in a directory

kodexa upload org-name/store-name /path/to/documents/*

Add labels to documents matching a criteria

kodexa query org-name/store-name "content:invoice*" --stream --add-label invoice

Delete documents older than a specific date

kodexa query org-name/store-name "modified<2022-01-01" --stream --delete

Upload with external metadata

kodexa upload org-name/store-name document.pdf --external-data