---
title: "Get autopilot state"
method: POST
path: "/api/v1/tools/get_autopilot"
tags: ["default"]
---

# Get autopilot state

`POST /api/v1/tools/get_autopilot`

## Request

- Base URL: `https://www.affiliatespy.io`
- URL: `https://www.affiliatespy.io/api/v1/tools/get_autopilot`
- Auth: HTTP bearer

The Discovery Autopilot's state for one project (default: the project it runs for): status on/off for this project, as the Autopilot page shows it (autopilot_status and running_for say whether it runs for another project), the commission offer it may promise, today's send count vs cap, what it is waiting on before it can recruit, the approval queue (campaign launches, website batches, reply drafts and check-ins waiting for a human), and recent approved/rejected activity. held_by_breaker means autopilot is bound here but the bounce breaker is holding every send and proposal until set_autopilot on (or choosing a mailbox, per paused_reason) clears it. Read-only.

## Request body

- object
  - `app_id` string, uuid: Project id. Omit for the project autopilot runs for.

## Response `200`

The tool's JSON result (same payload the MCP tool returns).

- unknown

## Other responses

- `400`: Arguments failed validation; body lists the issues.
- `401`: Missing or invalid API key.
- `403`: Guarded tool with Unrestricted MCP off.
- `429`: Rate limited (60 requests per minute per key).

---

[API](https://skmtc.dev/affiliatespy/apis/affiliatespy-api.md) · [All operations](https://skmtc.dev/affiliatespy/apis/affiliatespy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/affiliatespy/apis/affiliatespy-api/revisions/0300d370b356?raw)
