---
title: "Pause an agent (one-way, there is no resume)"
method: POST
path: "/business/agents/{agentId}/stop"
tags: ["Agents"]
---

# Pause an agent (one-way, there is no resume)

`POST /business/agents/{agentId}/stop`

## Request

- Base URL: `https://api.tryfuse.ai/api/v1`
- URL: `https://api.tryfuse.ai/api/v1/business/agents/{agentId}/stop`
- Auth: HTTP basic

Pauses a running agent: its provider subscriptions (for a scrape, its recurring schedule) stop, `status` becomes `paused`, and no further results are delivered or billed. Already-delivered rows stay in the results list. This is one-way through the API: `activate` only accepts drafts, so a paused agent cannot be resumed here; duplicate it and activate the copy instead. A draft has nothing to pause and is refused with 409 AGENT_NOT_RUNNING (pausing one would strand it: activate takes drafts only). An agent that has already expired can still be paused and answers 200. Answers 200 with the agent as GET returns it.

Errors:
- `404` `AGENT_NOT_FOUND` — No agent with this id belongs to the token owner. A deleted agent and another user's agent answer identically.
- `409` `AGENT_NOT_RUNNING` — The agent has nothing to pause: it is still a draft (`initializing`), or its provider subscription is already gone. Drafts are refused deliberately, because a paused draft could never be started again (activate accepts drafts only).
- `422` `VALIDATION_FAILED` — The request failed this endpoint's own validation — `param` names the offending field and `message` says why.
- `429` `RATE_LIMITED` — The agents bucket is exhausted: 30 requests per minute or 2,000 per day per token owner, shared by every /business/agents operation (a 429 raised by the agents service is relayed with this code too). Retry after the `Retry-After` header.
- `500` `UNEXPECTED_ERROR` — The agents service failed (5xx, refused service credential, or a timeout after 60s) or the rate limiter was unavailable. Retry later; quote `request_id` to support.

Requires one of the following token scopes: agents.

## Path parameters

- `agentId` string, required: The agent's id: a 24-character hex string — the `id` of an item from GET /business/agents, or the `agent.id` a create or duplicate returned.

## Response `200`

Success

- object
  - `agent` object, required
    - `id` string, required: The agent's id — pass it as `{agentId}` to every other agent operation.
    - `type` 'web-monitor' | 'person-starting-new-job' | 'linkedin-posts' | 'person-discovery-via-filters' | 'job-postings' | 'job-posting-in-location' | 'first-person-hired-in-company-department' | 'first-person-hired-internationally' | 'company-headcount-growth' | 'company-headcount-growth-over-baseline' | 'company-department-headcount' | 'company-employee-job-location-in-two-countries' | 'funding-announcements' | 'people-watcher' | 'companies-watcher' | 'job-changes-watcher' | 'linkedin-profile' | 'linkedin-post' | 'null', nullable, required: The public agent kind — the same slug you POST to at /business/agents/{type}. null for a legacy kind this API no longer offers.
    - `name` string, required: The agent's name, which is also the name of the results list it delivers into.
    - `status` 'initializing' | 'processing' | 'active' | 'paused' | 'expired' | 'failed' | 'completed' | 'deleted', required: initializing = saved draft, nothing billed; processing = a run is under way; active = running; paused = stopped by you; expired = past its expirationDate; failed = the provider setup failed. Older agents can also read `completed` (a one-off scrape that has finished) and `deleted` (an agent deleted before deletions were timestamped: still readable, but it can no longer be edited or activated).
    - `config` object, required: The agent's config in CREATE shape: exactly the body you would POST to /business/agents/{type} (without `start`) to build this agent again. Its fields are the ones documented on that type's create operation.
    - `isReconstructed` boolean, required: false = the config is the stored snapshot, returned verbatim (always the case for a draft). true = the agent was started before its snapshot existed and the config was rebuilt from the live record, so check `lossyFields`.
    - `lossyFields` string[], required: Config fields that could not be recovered when `isReconstructed` is true; `["*"]` means only `name` is known. Empty otherwise.
    - `sourceLists` object[], required: Watcher kinds only: the source lists the config names, resolved to their names. Empty for every other kind.
      - `id` string, required: The source list's id.
      - `name` string, nullable, required: The source list's name, or null when the list has been deleted.

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `403`: Error
- `404`: Error
- `409`: Error
- `422`: Error
- `429`: Error
- `500`: Error

---

[API](https://skmtc.dev/fuseai/apis/fuse-business-api.md) · [All operations](https://skmtc.dev/fuseai/apis/fuse-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fuseai/apis/fuse-business-api/revisions/50d95e0536f4?raw)
