---
title: "Add competitor"
method: POST
path: "/api/v1/tools/add_competitor"
tags: ["default"]
---

# Add competitor

`POST /api/v1/tools/add_competitor`

## Request

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

Add a competitor to a project by domain or URL; the next scan mines its affiliates deep. Same rules as the Competitors page: the plan's competitor cap (too_many) and a brand already on the list (already_tracked). Undo with remove_competitor.

## Request body

- object
  - `app_id` string, uuid: Project id from list_apps. Omit to use your most recently added project.
  - `domain` string, required: The competitor's domain or URL, e.g. rival.com.
  - `name` string: How the brand is written, e.g. "AI Allure"; used when its homepage gives no fitting name.
  - `confirm` boolean: Set true after the user confirmed an action the guard flagged as hard to undo.

## 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)
