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

# List All Competitor Customers

> Every competitor's customers in one list

The customers of every competitor you track, in one list. Each row is the same as in
[List Competitor Customers](https://docs.clustr-ai.com/api-reference/list-competitor-customers.md), plus a `competitor`
object naming whose customer it is. Pass `competitor_id` to narrow the list to one competitor,
`owner` to keep one CRM owner's, and `order=standing` to list your own customers first.
Confirmed and likely customers by default; see
[List Competitor Customers](https://docs.clustr-ai.com/api-reference/list-competitor-customers.md) for the signals and labels.

```bash cURL theme={null}
curl "https://api.clustr-ai.com/api/public/competitor-customers?limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

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

requests.get(
    "https://api.clustr-ai.com/api/public/competitor-customers",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    params={"limit": 50},
)
```

```javascript JavaScript theme={null}
await fetch("https://api.clustr-ai.com/api/public/competitor-customers?limit=50", {
  headers: { Authorization: "Bearer YOUR_API_KEY" },
});
```

```json 200 theme={null}
{
  "success": true,
  "data": {
    "customers": [
      {
        "clustr_competitor_customer_id": "ccus_3jm919aa345jdss56074sb5vy2",
        "clustr_account_id": "acc_g756rvkxxsbt7wedcdh3rsqvyb",
        "id": "8b4e2f6a-1c3d-4e5f-9a7b-0c2d4e6f8a1b",
        "competitor": {
          "clustr_competitor_id": "cmp_r0jpyyqyeh0txpgdhb604j2g9s",
          "id": "c1a2b3c4-d5e6-7890-abcd-ef1234567890",
          "name": "Globex"
        },
        "company_name": "Initech",
        "domain": "initech.com",
        "linkedin_numeric_id": "1035",
        "company_id": "3f9a1b2c-4d5e-6f70-8a9b-0c1d2e3f4a5b",
        "label": "likely",
        "score": 50,
        "signals": [
          { "signal": "logo_wall", "weight": 50, "url": "https://globex.com/", "count": 1 }
        ],
        "contacts": [],
        "possible_churn": false,
        "renewal_date": "2027-03-31",
        "renewal_task_created_at": null,
        "confidence": "named",
        "sources": ["logo_wall"],
        "first_seen_at": "2026-09-07T06:00:00Z",
        "last_seen_at": "2026-10-05T06:00:00Z",
        "removed_at": null,
        "renewal_window_start": null,
        "renewal_window_end": null,
        "user_verdict": "confirmed",
        "in_crm": true,
        "is_customer_of_ours": false,
        "evidence": [
          {
            "kind": "logo_wall",
            "signal": "logo_wall",
            "weight": 50,
            "url": "https://globex.com/",
            "quote": null,
            "person_name": null,
            "person_title": null,
            "observed_at": "2026-09-07T06:00:00Z"
          }
        ]
      }
    ],
    "total": 1,
    "limit": 50,
    "offset": 0
  }
}
```


## OpenAPI

````yaml GET /competitor-customers
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-customers:
    get:
      tags:
        - Competitor Monitoring
      summary: List All Competitor Customers
      description: >-
        Lists the customers of every competitor you track in one list. Each
        customer names its competitor, and `competitor_id` narrows the list to
        one competitor.
      operationId: listAllCompetitorCustomers
      parameters:
        - name: company
          in: query
          description: >-
            Keeps the customers at this company, by its name. Repeat it for
            several companies (a name may hold a comma, so it is never split).
          schema:
            type: string
        - name: competitor_id
          in: query
          description: >-
            Only this competitor's customers, by its Clustr ID (`cmp_…`). The id
            from earlier responses also

            works.
          schema:
            type: string
          example: cmp_6e1mtpwkh3156tr84j2txbaqn4
        - name: label
          in: query
          description: >-
            Keeps the customers with these labels, as a comma-separated list of
            `confirmed`, `likely` and `possible`. Defaults to
            `confirmed,likely`. `possible` also needs `include_possible`.
          schema:
            type: string
        - name: include_possible
          in: query
          description: >-
            `true` also lists possible customers, the ones with only a weak
            signal.
          schema:
            type: string
            enum:
              - '0'
              - '1'
              - 'true'
              - 'false'
        - name: signal
          in: query
          description: >-
            Keeps the customers with at least one of these signals, as a
            comma-separated list: `case_study`, `testimonial`,
            `post_announcement`, `post_webinar`, `post_highlight`, `logo_wall`,
            `cs_interaction` or `product_user_comment`.
          schema:
            type: string
        - name: include_rejected
          in: query
          description: Set to `1` to also list the customers you rejected.
          schema:
            type: string
            enum:
              - '0'
              - '1'
        - name: order
          in: query
          description: >-
            `standing` lists your own customers first, then the companies in
            your CRM, then the rest in the default order.
          schema:
            type: string
            enum:
              - standing
        - name: owner
          in: query
          description: >-
            Keeps the customers whose CRM account owner or CS owner has this
            email address. Customers are matched to your CRM on their domain.
          schema:
            type: string
        - name: cs_owner
          in: query
          description: >-
            Keeps the customers whose CS owner has this email address: the CS
            owner set in Clustr, or else the one in your CRM.
          schema:
            type: string
        - name: limit
          in: query
          description: The number of customers per page, at most 500.
          schema:
            type: integer
            default: 100
            maximum: 500
        - name: offset
          in: query
          description: The number of customers to skip, for paging.
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: One page of customers
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - data
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    $ref: '#/components/schemas/CompetitorCustomersPage'
        '400':
          description: '`competitor_id` is not a valid id'
        '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'
components:
  schemas:
    CompetitorCustomersPage:
      type: object
      properties:
        customers:
          type: array
          items:
            $ref: '#/components/schemas/CompetitorCustomer'
        total:
          type: integer
        limit:
          type: integer
        offset:
          type: integer
    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
    CompetitorCustomer:
      type: object
      description: One company a competitor sells to.
      properties:
        clustr_competitor_customer_id:
          type: string
          description: >-
            The customer's Clustr ID, for example
            `ccus_3x9b7685wn79zrq49xd1wre4j2`. Use it to refer to this

            customer.
          example: ccus_3x9b7685wn79zrq49xd1wre4j2
        clustr_account_id:
          type: string
          description: >-
            The Clustr ID of your account, when the customer matches one, for
            example

            `acc_pnz80bn0wwab426btp6s8jtceg`.
          example: acc_pnz80bn0wwab426btp6s8jtceg
        id:
          type: string
          description: >-
            Kept for integrations built before Clustr IDs. New integrations
            should use `clustr_competitor_customer_id`.
        competitor:
          type: object
          description: The competitor. Set on List All Competitor Customers only.
          properties:
            clustr_competitor_id:
              type: string
              description: >-
                The competitor's Clustr ID, for example
                `cmp_rax2h4x50hedcsspwnjyq9d4qv`. Use it to refer to

                this competitor.
              example: cmp_rax2h4x50hedcsspwnjyq9d4qv
            id:
              type: string
              description: >-
                Kept for integrations built before Clustr IDs. New integrations
                should use `clustr_competitor_id`.
            name:
              type: string
        company_name:
          type: string
          example: Initech
        domain:
          type: string
          nullable: true
        linkedin_numeric_id:
          type: string
          nullable: true
        company_id:
          type: string
          nullable: true
          description: >-
            Kept for integrations built before Clustr IDs. New integrations
            should use `clustr_account_id`.
        label:
          type: string
          enum:
            - confirmed
            - likely
            - possible
          description: >-
            `confirmed`: score 80 or more, or confirmed by you. `likely`: 50 to
            79. `possible`: under 50.
        score:
          type: integer
          minimum: 0
          maximum: 100
          description: The weights of its distinct signals added up, capped at 100.
        signals:
          type: array
          description: >-
            The signals behind the score, each with the page or post that shows
            it.
          items:
            type: object
            properties:
              signal:
                type: string
                enum:
                  - case_study
                  - testimonial
                  - post_announcement
                  - post_webinar
                  - post_highlight
                  - logo_wall
                  - cs_interaction
                  - product_user_comment
              weight:
                type: integer
              url:
                type: string
              count:
                type: integer
        contacts:
          type: array
          description: People found at the customer, and how.
          items:
            type: object
            properties:
              name:
                type: string
              title:
                type: string
                nullable: true
              linkedin_url:
                type: string
                nullable: true
              found_via:
                type: string
                enum:
                  - testimonial
                  - tagged
                  - buying_committee
                  - cs_counterpart
                  - product_user
              evidence_url:
                type: string
                nullable: true
        possible_churn:
          type: boolean
          description: >-
            True when the evidence was removed from the competitor's site, a
            possible sign that the customer left.
        renewal_date:
          type: string
          format: date
          nullable: true
          description: The renewal date you set. It replaces the estimated window.
        renewal_task_created_at:
          type: string
          format: date-time
          nullable: true
          description: When Clustr created the renewal task in your CRM.
        confidence:
          type: string
          enum:
            - quoted
            - named
            - company_only
            - inferred
          description: >-
            The strongest kind of evidence behind the customer: `quoted` (a
            testimonial quotes a named person), `named` (a case study,
            testimonial or post names the customer), `company_only` (a logo) or
            `inferred` (customer success activity alone). `label` and `score`
            give the overall verdict.
        sources:
          type: array
          items:
            type: string
          description: The kinds of evidence seen.
        first_seen_at:
          type: string
          format: date-time
        last_seen_at:
          type: string
          format: date-time
        removed_at:
          type: string
          format: date-time
          nullable: true
          description: Set when the evidence disappeared.
        renewal_window_start:
          type: string
          format: date
          nullable: true
        renewal_window_end:
          type: string
          format: date
          nullable: true
        user_verdict:
          type: string
          nullable: true
          enum:
            - confirmed
            - rejected
            - null
        in_crm:
          type: boolean
          description: The company is in your CRM.
        is_customer_of_ours:
          type: boolean
          description: The company is also your customer.
        owner_name:
          type: string
          description: >-
            The account owner in your CRM, matched on the domain. Absent when
            unknown.
        owner_email:
          type: string
        cs_owner_name:
          type: string
          description: >-
            The CS owner in your CRM, matched on the domain. Absent when
            unknown.
        cs_owner_email:
          type: string
        evidence:
          type: array
          items:
            $ref: '#/components/schemas/CompetitorCustomerEvidence'
    CompetitorCustomerEvidence:
      type: object
      description: One piece of evidence that a company is a competitor's customer.
      properties:
        kind:
          type: string
          enum:
            - website
            - logo
            - post
            - press
            - review
            - search
            - cs_interaction
            - case_study
            - testimonial
            - logo_wall
            - post_announcement
            - post_webinar
            - post_highlight
            - not_customer
            - product_user_comment
          example: case_study
        signal:
          type: string
          nullable: true
          description: What this evidence counts as in the score.
        weight:
          type: integer
          nullable: true
        url:
          type: string
        quote:
          type: string
          nullable: true
          description: The words that name the customer.
        person_name:
          type: string
          nullable: true
        person_title:
          type: string
          nullable: true
        observed_at:
          type: string
          format: date-time
          nullable: true
  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.