> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wisepim.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Run actions and track jobs

> Launch product enrichment, translations and bulk actions through the API, monitor progress and request cancellation.

Start background work on an explicit selection of products, then use its `task_id` to track progress. A `202 Accepted` response means the job was accepted; it does not mean processing has finished.

## Choose an action

| Endpoint | Required scopes | Purpose |
| - | - | - |
| [`POST /enrichments`](https://docs.wisepim.com/en/api-reference/actions/enrichments) | `products:write` + `enrichment:execute` | Generate or improve product content |
| [`POST /translations`](https://docs.wisepim.com/en/api-reference/actions/translations) | `products:write` + `translations:execute` | Translate explicit fields into selected locales |
| [`POST /bulk-actions`](https://docs.wisepim.com/en/api-reference/actions/bulk-actions) | `products:write` + `bulk-actions:execute` | Apply catalog changes across a selection |
| [`GET /jobs`](https://docs.wisepim.com/en/api-reference/jobs/list) | `jobs:read` | List customer-visible jobs in the project |
| [`GET /jobs/{task_id}`](https://docs.wisepim.com/en/api-reference/jobs/get) | `jobs:read` | Read progress and results counters |
| [`POST /jobs/{task_id}/cancel`](https://docs.wisepim.com/en/api-reference/jobs/cancel) | `jobs:cancel` | Request cooperative cancellation |

Existing keys do not gain action permissions automatically. Create a replacement with the scopes you need, including `jobs:read` if your integration monitors results.

## Enrich product content

All three launch endpoints accept **1–1,000 distinct `product_ids`**. Replace the example IDs with products in your project. If any selected product is unavailable, the entire launch is rejected.

```bash theme={null}
curl -X POST https://wisepim.com/api/public/v1/enrichments \
  -H "Authorization: Bearer $WISEPIM_API_KEY" \
  -H "Idempotency-Key: enrich-description-run-001" \
  -H "Content-Type: application/json" \
  -d '{"product_ids": [123, 124], "enrich_type": "description", "fill_empty_only": true, "max_credits": 20}'
```

`enrich_type` accepts `description`, `short_description`, `titles`, `seo_meta`, `product_attributes`, `internal_linking`, `search_intent` and `image_alt_text`. Set an optional `prompt_id` to use an accessible prompt in the same project.

Existing content is preserved by default (`fill_empty_only: true`). Set it to `false` only when you intend to regenerate populated content. Eligibility, current field and attribute permissions, prompt access and credit availability are checked before launch. `max_credits` bounds the estimate accepted at launch; it does not guarantee that every selected field will change.

The response includes `task_id`, `status`, `total_items`, `estimated_credits` and `deduplicated`. Save the task ID and poll its job endpoint.

## Translate selected fields

```bash theme={null}
curl -X POST https://wisepim.com/api/public/v1/translations \
  -H "Authorization: Bearer $WISEPIM_API_KEY" \
  -H "Idempotency-Key: translate-nl-run-001" \
  -H "Content-Type: application/json" \
  -d '{"product_ids": [123, 124], "target_locales": ["nl"], "fields": ["name", "description"], "force_retranslate": false, "max_credits": 20}'
```

Select 1–25 distinct target locales and 1–8 distinct fields: `name`, `name_long`, `description`, `short_description`, `meta_title`, `meta_description`, `meta_keywords` or `faqs`. Optional settings include `translation_instructions`, `high_quality`, `force_retranslate` and `max_credits`. Unsupported locales reject the whole request; none are silently discarded.

## Apply bulk changes

```bash theme={null}
curl -X POST https://wisepim.com/api/public/v1/bulk-actions \
  -H "Authorization: Bearer $WISEPIM_API_KEY" \
  -H "Idempotency-Key: quality-run-001" \
  -H "Content-Type: application/json" \
  -d '{"product_ids": [123, 124], "action": "recalculate-quality", "action_config": {}}'
```

Bulk actions cover text cleanup, prices, stock, dimensions, shipping, categories, attributes, unit conversion, visibility, status and quality recalculation. The [endpoint schema](https://docs.wisepim.com/en/api-reference/actions/bulk-actions.md) lists the accepted `action` names. `action_config` depends on the action; the [bulk-editing guides](https://docs.wisepim.com/en/essentials/bulk-editing.md) explain each operation's settings. Invalid configurations are rejected before a job is created. Bulk-edit permissions and the relevant field permissions still apply.

## Monitor and cancel

```bash theme={null}
curl "https://wisepim.com/api/public/v1/jobs/$TASK_ID" \
  -H "Authorization: Bearer $WISEPIM_API_KEY"
```

Read `status`, `stage`, `progress_percentage`, `total_items`, `processed_items`, `successful_items`, `failed_items` and `skipped_items`, together with timestamps and `cancellation_requested`. Check the counters as well as the status, then read the affected products to confirm their resulting content. Job responses expose progress without internal worker payloads or credentials.

```bash theme={null}
curl -X POST "https://wisepim.com/api/public/v1/jobs/$TASK_ID/cancel" \
  -H "Authorization: Bearer $WISEPIM_API_KEY" \
  -H "Idempotency-Key: cancel-run-001" \
  -H "Content-Type: application/json" \
  -d '{"reason": "Stopping this API run"}'
```

Cancellation is cooperative: monitor the job after requesting it. Work already applied is not rolled back. A finished job without a previous cancellation request can return `409`.

## Retry without launching duplicate work

Send one `Idempotency-Key` per logical launch and reuse it for retries with the same method, path, query and body. Replays return the original response, including its task ID. Use a new key for a new run. Poll `GET /jobs/{task_id}` for fresh progress instead of replaying the launch. Follow `Retry-After` on `429` responses and the [shared retry contract](https://docs.wisepim.com/en/api-reference/introduction.md#retries-and-idempotency).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.