Skip to main content
Rezolve Ai

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/cli

Renamed 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_here

Both 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 health

This 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

CommandWhat it does
rezolve healthLiveness check. No key required.
rezolve usageCredit balance, rate limit, job counts, and test quota.
rezolve feedsList 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.

CommandEndpoint
rezolve rulesPOST /api/v1/enrichment/rules
rezolve enrich-contentPOST /api/v1/enrichment/content
rezolve pipelinePOST /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.json

Or straight from a pipe:

echo '{"source":{"type":"inline","products":[{"id":"1","title":"Trail shoe"}]}}' | rezolve rules

Add "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.

CommandWhat 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.jsonSend a full request body, for a batch of up to 500. Reads stdin when -f is left out.
rezolve lookup-sourcesWhich 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
OptionWhat it does
--gtin, --isbn, --asin, --mpn, --sku, --urlSay what kind of identifier you have.
--brand, --market, --localeThe brand, the country it is sold in, and the language to look it up in.
--sources, --exclude-sourcesComma separated: catalog, amazon, open_data, page, web_search.
--includeReturn only these sections: product, facts, sources, conflicts.
--enrichComma separated content types to write from what was found.
--freeUse the free lookup of one product.
--dry-runValidate and estimate. Nothing is looked up or charged.
--refreshLook up again instead of using a cached answer.
--waitWhen 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.

CommandWhat it does
rezolve jobs listList 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.json

Utilities

Unbilled helpers. Each reads a JSON body from stdin or -f.

CommandEndpoint
rezolve utils languagePOST /api/v1/utils/language
rezolve utils agentic-readinessPOST /api/v1/utils/agentic-readiness
rezolve utils review-qualityPOST /api/v1/utils/review-quality
echo '{"products":[{"id":"1","title":"Wanderschuhe für Herren"}]}' | rezolve utils language

Global options

OptionDescription
-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.
--versionPrint the CLI version.
--helpPrint help for any command or subcommand.

Next steps

On this page