Skip to main content
Rezolve Ai
Guides

Enriching your first feed

Send your first product set through the enrichment pipeline, read the result, and scale up.

This guide walks through your first enrichment run: what to prepare, how to call the API, how to read the result, and how to scale up.

What enrichment does

You send existing product data (titles, descriptions, images, categories) and Rezolve Ai:

  • Derives contextual rules for the category, so output is grounded rather than generic. See Contextual Enrichment Engine.
  • Generates the content types you ask for: descriptions, meta tags, JSON-LD schema, IRL scenario cards, internal links.
  • Produces channel-ready field sets for Google Shopping, Agentic Commerce, Microsoft Shopping, Shopify, and WooCommerce.

Cost: on a test key, one unit of the free monthly quota per product per content type. On a live key, credits metered on the content written. Check first with GET /api/v1/usage. See Credits and usage.

What you need

  • An API key with enrichment:write (or admin). Create one under Settings, Developer console, Keys. Start with an ace_test_ key: it is free.
  • A small set of products, two to five to begin with. Each needs at least id and title. The more real fields you send (images, category, brand, price), the better the output.
export ACE_API_KEY=ace_test_your_key_here

Step 1: Prepare a payload

{
  "source": {
    "type": "inline",
    "products": [
      {
        "id": "prod-1",
        "title": "Wireless Bluetooth Headphones",
        "description": "Noise cancelling, 20h battery.",
        "category": "Audio",
        "brand": "Acme",
        "price": 129.99
      },
      {
        "id": "prod-2",
        "title": "USB-C Charging Cable",
        "description": "Fast charge, 2m length.",
        "category": "Accessories",
        "brand": "Acme",
        "price": 14.99
      }
    ]
  },
  "contentTypes": ["product-description", "meta-tags"]
}

Save it as products.json.

Step 2: Run the pipeline

curl -s -X POST https://ace.authoritas.com/api/v1/enrichment/pipeline \
  -H "Authorization: Bearer $ACE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: first-run-1" \
  -d @products.json

pipeline derives the rules and then generates content against them, so it is the right entry point for a first run. The Idempotency-Key means a retry returns this run's job instead of paying for a second one.

With the CLI the same call is rezolve pipeline -f products.json.

Step 3: Read the response

The pipeline always runs as a durable job, so a successful call answers 202 with a job envelope:

{
  "data": {
    "id": "<job-id>",
    "kind": "pipeline",
    "status": "pending",
    "progress": null,
    "estimateMs": null,
    "productCount": 2,
    "succeededCount": 0,
    "failedCount": 0,
    "createdAt": "2026-10-09T10:15:00.000Z",
    "links": {
      "self": "/api/v1/jobs/<job-id>",
      "results": "/api/v1/jobs/<job-id>/results"
    }
  }
}

Poll it until status is completed, partial, or failed, or wait for it in one command:

curl https://ace.authoritas.com/api/v1/jobs/<job-id> \
  -H "Authorization: Bearer $ACE_API_KEY"

# or, with the CLI
rezolve jobs wait <job-id>

Then page through the per-product output:

rezolve jobs results <job-id> --page-size 100 > enriched.json

Other statuses:

StatusMeaning
401Missing or invalid key. Check the header and that the key is active.
403The key lacks enrichment:write, or it is pinned to a different project than the one you named.
402Out of credits, or a test key has exhausted its monthly quota.
409RUN_ALREADY_ACTIVE: another enrichment run is in progress for the project. Wait for it to finish. Nothing is charged.
429Rate limited. Wait for Retry-After.

Step 4: Scale up

  • Bigger batches. Send more products in source.products. The run is a job either way, so no request sits open for minutes.
  • Reuse rules. Enriching many batches in one category? Call /enrichment/rules once, keep the rules object from its response, and pass it as rules on each /enrichment/content call, so every batch is grounded identically. See Generating content at scale.
  • Connected stores. With Shopify or WooCommerce connected, swap the inline source for { "type": "store", "storeId": "...", "writeBack": true } and Rezolve Ai reads the products and writes results back.
  • Stop polling. Subscribe to enrichment.job.succeeded and let Rezolve Ai call you. See Webhooks.

Quick reference

StepAction
1Create an API key with enrichment:write under Settings, Developer console, Keys.
2Check spend: GET /api/v1/usage.
3Build a body with source.products and contentTypes.
4POST /api/v1/enrichment/pipeline.
5Poll GET /api/v1/jobs/{id}, then fetch /results.

For full schemas see the API Reference and Contextual Enrichment Engine.

On this page