---
title: "Start competitive analysis"
method: POST
path: "/competitive-analysis"
tags: ["Competitive Analysis"]
---

# Start competitive analysis

`POST /competitive-analysis`

## Request

- Base URL: `https://next.frase.io/api/v1`
- URL: `https://next.frase.io/api/v1/competitive-analysis`
- Auth: one of:
  - API key in header `X-API-KEY`
  - HTTP bearer

Start a new competitive page analysis. Crawls the target page, fetches ranking queries, discovers competitors, and generates a gap analysis.

## Request body

- object
  - `url` string, uri, required: Target page URL to analyze
  - `competitor_urls` string[]: Optional manual competitor URLs. If omitted, competitors are discovered via SERP analysis.
  - `site_id` string, uuid: Optional site ID to associate the analysis with
  - `location_name` string: Location for SERP queries (e.g., 'United States')
  - `industry` string: Industry context for the analysis

## Response `201`

Competitive analysis started

- object
  - `data` object
    - `id` string, uuid
    - `url` string
    - `status` 'pending'
    - `message` string
    - `created_at` string, date-time
  - `request_id` string

## Other responses

- `422`: Validation failed
- `429`: Audit page limit exceeded

---

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