---
title: "Cancel Bulk Lookalike Job"
method: POST
path: "/api/v1/account/search-lookalikes-bulk/{job_id}/cancel"
tags: ["Cancel Bulk Lookalike Job"]
---

# Cancel Bulk Lookalike Job

`POST /api/v1/account/search-lookalikes-bulk/{job_id}/cancel`

Cancel a running or pending bulk lookalike job. Submit a job first via **`POST /api/v1/account/search-lookalikes-bulk`** ("Search Lookalikes Bulk", under Company Search), which returns a `job_id`.

<Info>**No API key yet?** [Sign up via Agent Auth](/agent-primitives/authentication) to get your `X-API-Key` - the only required header for this endpoint.</Info>

The job moves to a transient `cancelling` state and stops at its next checkpoint. Whatever pages were already produced are kept and remain readable via the poll endpoint, and you are charged **only for the companies actually delivered** before the cancel - nothing for the abandoned remainder. The job then settles to a terminal `cancelled` status.

Returns **409** if the job has already finished (`completed` / `failed` / `cancelled`), and **404** if no job with that id exists for your API key. Poll **`GET /api/v1/account/search-lookalikes-bulk/{job_id}`** for the final `cancelled` state and the partial results.

## When to cancel
Cancel when finishing the job is no longer worth it - e.g. you requested a large `limit` but already have enough companies from the pages delivered so far, the query turned out too broad, or you simply want to stop spend. Because credits are billed **only for companies actually delivered** before the cancel (never the abandoned remainder), cancelling early is how you cap credit usage on an over-scoped job.

## Path parameters

- `job_id` string, required

## Headers

- `X-API-Key` string, required

## Response `200`

Cancellation accepted; the job is now `cancelling`.

- BulkLookalikeCancelResponse — Acknowledgement returned by the bulk-lookalike cancel endpoint. Cancellation is asynchronous - poll the GET endpoint for the final `cancelled` state and the companies processed before the cancel.
  - `job_id` string, required
  - `status` string — Always `cancelling` - the cancel request was accepted.
  - `message` string, required — Next step: where to fetch the companies processed before the cancel.

## Other responses

- `404` — Job not found for this API key.
- `409` — Job already finished (completed / failed / cancelled); cannot cancel.
- `422` — Validation Error

---

[API](https://skmtc.net/openfunnel/apis/openfunnel-agent-primitives.md) · [All operations](https://skmtc.net/openfunnel/apis/openfunnel-agent-primitives/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openfunnel/openfunnel-agent-primitives/revisions/68cc95acb1f2/schema)
