> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clustr-ai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Run Competitor Monitoring

> Collect competitor activity now, outside the schedule

Run a competitor collection now, for one competitor or for all of them.

Collection normally runs on its own: every two weeks for each competitor, at your workspace's
weekly slot ([the schedule](https://docs.clustr-ai.com/api-reference/get-monitoring-schedule.md)), and once when a competitor
is [added](https://docs.clustr-ai.com/api-reference/register-competitor.md). Use this to collect again in between.

* A competitor that is already being collected keeps its current run.
* A run collects the activity since the competitor's previous run, or the last 90 days the
  first time.
* When a competitor's next scheduled collection is less than ten days away, this run takes its
  place.
* Runs are limited per workspace: a run started too soon after the previous one answers `429`
  with code `RATE_LIMITED`, and you can try again a little later.

Poll [List Competitor Runs](https://docs.clustr-ai.com/api-reference/list-competitor-runs.md) to follow the runs it started.

## MCP

The same action is the `run_competitor_monitoring` tool, with the same `competitor_id`
argument and the same throttle.

```bash cURL theme={null}
curl -X POST https://api.clustr-ai.com/api/public/competitor-monitoring/run \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"competitor_id": "cmp_r0jpyyqyeh0txpgdhb604j2g9s"}'
```

```python Python theme={null}
import requests

requests.post(
    "https://api.clustr-ai.com/api/public/competitor-monitoring/run",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"competitor_id": "cmp_r0jpyyqyeh0txpgdhb604j2g9s"},
)
```

```javascript JavaScript theme={null}
await fetch("https://api.clustr-ai.com/api/public/competitor-monitoring/run", {
  method: "POST",
  headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({ competitor_id: "cmp_r0jpyyqyeh0txpgdhb604j2g9s" }),
});
```

```json 200 theme={null}
{
  "success": true,
  "data": {
    "accepted": true,
    "status": "accepted"
  }
}
```

```json 429 theme={null}
{
  "success": false,
  "error": {
    "code": "RATE_LIMITED",
    "message": "Competitor monitoring runs are limited per workspace. Please wait a moment before starting another."
  }
}
```


## OpenAPI

````yaml POST /competitor-monitoring/run
openapi: 3.1.0
info:
  title: Clustr Public API
  description: >
    Programmatic access to your Clustr network: import connectors, search warm
    intros (opportunities), and manage target accounts.


    ## Authentication

    All endpoints require a Bearer token (API key) in the `Authorization`
    header.


    ```

    Authorization: Bearer <your_api_key>

    ```


    API keys can be created and managed from the [API settings
    page](https://app.clustr-ai.com/api).
  version: '1.0'
  contact:
    name: Clustr Support
    url: https://clustr-ai.com
servers:
  - url: https://api.clustr-ai.com/api/public
    description: Production
security:
  - BearerAuth: []
paths:
  /competitor-monitoring/run:
    post:
      tags:
        - Competitor Monitoring
      summary: Run Competitor Monitoring
      description: >
        Collects competitor activity now, for one competitor or for all of them.


        Collection also runs on its own: at your weekly scan slot, where each
        competitor is

        collected every two weeks (see Get Monitoring Schedule), and once when a
        competitor is

        added. Use this call to collect again in between.


        - A competitor whose collection is already running keeps that run, so
        each competitor
          has one run at a time.
        - A competitor collected through this call next runs at the first
        scheduled slot more
          than ten days later.
        - Runs are limited per workspace: a run started too soon after the
        previous one
          answers `429` with code `RATE_LIMITED`, and you can try again a little later.

        Follow the runs it started with List Competitor Runs.
      operationId: runCompetitorMonitoring
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                competitor_id:
                  type: string
                  description: >-
                    One competitor, by its Clustr ID (`cmp_…`) from List
                    Competitors. Omit it, or send no body, to

                    run every competitor. The id from earlier responses also
                    works.
                  example: cmp_r0jpyyqyeh0txpgdhb604j2g9s
            examples:
              one:
                summary: Run one competitor
                value:
                  competitor_id: cmp_r0jpyyqyeh0txpgdhb604j2g9s
              all:
                summary: Run every competitor
                value: {}
      responses:
        '200':
          description: The run request is accepted
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - data
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      accepted:
                        type: boolean
                        description: '`true` once the runs are requested.'
                        example: true
                      status:
                        type: string
                        example: accepted
        '401':
          description: Invalid or missing API key
        '403':
          description: Competitor monitoring is not enabled for this workspace
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  message: Competitor Monitoring is not in this workspace's plan.
                  code: FEATURE_NOT_ENABLED
        '429':
          description: >-
            Runs are coming faster than your workspace's pace (code
            `RATE_LIMITED`)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  message: >-
                    Competitor monitoring runs are limited per workspace. Please
                    wait a moment before starting another.
                  code: RATE_LIMITED
        '500':
          description: >-
            The run could not be started (code `COMPETITOR_RUN_FAILED`). Try
            again in a few minutes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ErrorResponse:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            message:
              type: string
              example: Invalid request body
            code:
              type: string
              example: BAD_REQUEST
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: The API key you created on the API settings page of the Clustr app.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.