Rezolve Ai CLI
Drive the Rezolve Ai v1 API from your terminal, including the Contextual Enrichment Engine and durable jobs.
The Rezolve Ai CLI (rezolve) is the command-line interface for Rezolve Ai. Use it to run the Contextual Enrichment Engine, track durable jobs, score a feed, and check your account usage without writing any code.
Who this is for
Anyone who wants to try Rezolve Ai quickly, script it into a build step, or debug a payload before wiring it into an app. It is a thin wrapper over the Rezolve Ai SDK, so every command maps to one documented endpoint.
Install
npm install -g @rezolve-ai/cliRenamed from @authoritas-ace/ace-cli. The old package still resolves but is no
longer updated. The binary is now rezolve rather than ace.
Configure
Set your base URL and key once, and every command picks them up:
export ACE_BASE_URL=https://ace.authoritas.com
export ACE_API_KEY=ace_live_your_key_hereBoth can also be passed per command with --base-url and --api-key. If ACE_BASE_URL is unset the CLI defaults to http://localhost:3001, which is only useful when running Rezolve Ai locally, so set it explicitly against production.
Create a key under Settings, Developer console, Keys. See API Keys.
Check the connection
rezolve healthThis calls GET /api/v1/health and needs no key. If it fails, your base URL is wrong.
Commands
Every command prints JSON to stdout, so it pipes cleanly into jq.
Account and feeds
| Command | What it does |
|---|---|
rezolve health | Liveness check. No key required. |
rezolve usage | Credit balance, rate limit, job counts, and test quota. |
rezolve feeds | List one project's feeds. Needs a key with the feeds:read scope. Pass --project-id <id> unless your key is pinned to a project. |
Contextual Enrichment Engine
These three read a JSON body from stdin, or from a file with -f.
| Command | Endpoint |
|---|---|
rezolve rules | POST /api/v1/enrichment/rules |
rezolve enrich-content | POST /api/v1/enrichment/content |
rezolve pipeline | POST /api/v1/enrichment/pipeline |
cat > products.json <<'JSON'
{
"source": {
"type": "inline",
"products": [
{ "id": "sku-1", "title": "Merino base layer", "category": "Outdoor" }
]
},
"contentTypes": ["product-description", "meta-tags"]
}
JSON
rezolve pipeline -f products.jsonOr straight from a pipe:
echo '{"source":{"type":"inline","products":[{"id":"1","title":"Trail shoe"}]}}' | rezolve rulesAdd "lookup": true to an enrich-content or pipeline body to look each product up by its barcode before its content is written.
Product lookup
Find what published sources say about a product. See Product lookup.
| Command | What it does |
|---|---|
rezolve lookup <identifier> | Look one product up. The identifier can be a barcode, an ISBN, an ASIN, a page address or a part number. |
rezolve lookup -f batch.json | Send a full request body, for a batch of up to 500. Reads stdin when -f is left out. |
rezolve lookup-sources | Which sources your key can use, and why not for the rest. |
# One barcode, every source available to your key
rezolve lookup 4006381333931 --market GB
# Name what you have, and keep it free
rezolve lookup --mpn WH-1000XM4 --brand Sony --exclude-sources web_search
# Free lookup: never runs a web search
rezolve lookup --gtin 4006381333931 --free
# See what would run and what it would cost, without looking anything up
rezolve lookup 4006381333931 --dry-run
# Also write a description from what was found
rezolve lookup 4006381333931 --enrich product-description| Option | What it does |
|---|---|
--gtin, --isbn, --asin, --mpn, --sku, --url | Say what kind of identifier you have. |
--brand, --market, --locale | The brand, the country it is sold in, and the language to look it up in. |
--sources, --exclude-sources | Comma separated: catalog, amazon, open_data, page, web_search. |
--include | Return only these sections: product, facts, sources, conflicts. |
--enrich | Comma separated content types to write from what was found. |
--free | Use the free lookup of one product. |
--dry-run | Validate and estimate. Nothing is looked up or charged. |
--refresh | Look up again instead of using a cached answer. |
--wait | When a batch becomes a job, wait for it and print its results and totals. |
A batch from a file, waited for:
cat > batch.json <<'JSON'
{
"market": "GB",
"items": [
{ "ref": "row-1", "identifiers": { "gtin": "4006381333931" } },
{ "ref": "row-2", "identifiers": { "mpn": "WH-1000XM4" }, "hints": { "brand": "Sony" } }
]
}
JSON
rezolve lookup -f batch.json --wait | jq '.items[] | {ref, match: .match.status, title: .product.title}'Jobs
pipeline always returns a job. rules and enrich-content return one for anything but a small set, and so does a large lookup.
| Command | What it does |
|---|---|
rezolve jobs list | List jobs. Filter with --kind, --status, --store-id, --page, --page-size. |
rezolve jobs get <id> | Fetch a job with its status and result. |
rezolve jobs results <id> | Paginated per-product results. --page, --page-size. |
rezolve jobs cancel <id> | Cancel a pending or running job. |
rezolve jobs wait <id> | Poll until the job finishes. --poll-ms, --timeout-ms. |
A full run, start to finish:
JOB=$(rezolve pipeline -f products.json | jq -r '.id')
rezolve jobs wait "$JOB"
rezolve jobs results "$JOB" --page-size 100 > enriched.jsonUtilities
Unbilled helpers. Each reads a JSON body from stdin or -f.
| Command | Endpoint |
|---|---|
rezolve utils language | POST /api/v1/utils/language |
rezolve utils agentic-readiness | POST /api/v1/utils/agentic-readiness |
rezolve utils review-quality | POST /api/v1/utils/review-quality |
echo '{"products":[{"id":"1","title":"Wanderschuhe für Herren"}]}' | rezolve utils languageGlobal options
| Option | Description |
|---|---|
-b, --base-url <url> | Rezolve Ai base URL. Defaults to ACE_BASE_URL, then http://localhost:3001. |
-k, --api-key <key> | API key. Defaults to ACE_API_KEY. |
--version | Print the CLI version. |
--help | Print help for any command or subcommand. |
Next steps
- API Reference for request and response schemas
- Rezolve Ai SDK to do the same thing from code
- Troubleshooting if a command returns an error