> ## 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 Competitor Employees

> A competitor's other current employees, to pick people to monitor

The competitor's current employees beyond the Sales and CS people the team search found, so you
can pick someone it missed. Clustr reads them from LinkedIn without a title filter, one page per
call, and keeps each page for 30 days.

Each row has `person_linkedin_id`: pass it as `employee_id` to
[Add Competitor Team Member](https://docs.clustr-ai.com/api-reference/add-competitor-team-member.md) to monitor that person.
Someone already tracked carries `tracked_status` and `tracked_person_id`.

`q` searches the names of the pages loaded so far, ignoring case and accents.

```bash cURL theme={null}
curl "https://api.clustr-ai.com/api/public/competitors/cmp_r0jpyyqyeh0txpgdhb604j2g9s/employees?page=1" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

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

requests.get(
    "https://api.clustr-ai.com/api/public/competitors/cmp_r0jpyyqyeh0txpgdhb604j2g9s/employees",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    params={"page": 1},
)
```

```javascript JavaScript theme={null}
await fetch("https://api.clustr-ai.com/api/public/competitors/cmp_r0jpyyqyeh0txpgdhb604j2g9s/employees?page=1", {
  headers: { Authorization: "Bearer YOUR_API_KEY" },
});
```

```json 200 theme={null}
{
  "success": true,
  "data": {
    "employees": [
      {
        "clustr_person_id": "per_nqwttn6cdn76zkr53g90z624sh",
        "clustr_tracked_person_id": null,
        "person_linkedin_id": "ACwAAB1234567890abcdefghijklmnopqrstuv",
        "name": "Sam Lee",
        "title": "Partnerships Lead",
        "photo_url": "https://media.licdn.com/dms/image/sam.jpg",
        "linkedin_url": "https://www.linkedin.com/in/ACwAAB1234567890abcdefghijklmnopqrstuv",
        "function": "other",
        "tracked_status": null,
        "tracked_person_id": null
      }
    ],
    "page": 1,
    "has_more": true,
    "total": 412,
    "fetched_at": "2026-10-08T09:00:00Z"
  }
}
```


## OpenAPI

````yaml GET /competitors/{id}/employees
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:
  /competitors/{id}/employees:
    get:
      tags:
        - Competitor Monitoring
      summary: List Competitor Employees
      description: >-
        Lists the competitor's current employees across every job title, one
        page per call, so you can pick people to monitor. Each page you load is
        kept for 30 days, and `q` searches the names on the pages loaded so far.
      operationId: listCompetitorEmployees
      parameters:
        - name: id
          in: path
          required: true
          description: >-
            The competitor's Clustr ID (`cmp_…`), from [List
            Competitors](/api-reference/list-competitors).

            The id from earlier responses also works.
          schema:
            type: string
          example: cmp_jtxng6e18hqxfmm5gwrfww5nth
        - name: page
          in: query
          description: >-
            The page to read, from 1. `has_more` says whether there is a next
            one.
          schema:
            type: integer
            default: 1
        - name: q
          in: query
          description: Searches the names on the pages loaded so far.
          schema:
            type: string
      responses:
        '200':
          description: One page of employees
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - data
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      employees:
                        type: array
                        items:
                          $ref: '#/components/schemas/CompetitorEmployee'
                      page:
                        type: integer
                        example: 1
                      has_more:
                        type: boolean
                      total:
                        type: integer
                        example: 412
                      fetched_at:
                        type: string
                        format: date-time
        '401':
          description: Invalid or missing API key
        '404':
          description: Competitor not found
components:
  schemas:
    CompetitorEmployee:
      type: object
      description: One of a competitor's current employees.
      properties:
        clustr_person_id:
          type: string
          description: >-
            The person's Clustr ID, for example
            `per_tsw7tc0tp7wc6aft7pnv3t1sm4`.
          example: per_tsw7tc0tp7wc6aft7pnv3t1sm4
        clustr_tracked_person_id:
          type: string
          description: >-
            The Clustr ID of this person's Team member entry, for example
            `ctp_j7j3e4zzb0r21hhb5cmw04d7d1`.
          example: ctp_j7j3e4zzb0r21hhb5cmw04d7d1
        person_linkedin_id:
          type: string
          description: Pass as `employee_id` to Add Competitor Team Member.
        name:
          type: string
          example: Sam Lee
        title:
          type: string
          example: Partnerships Lead
        photo_url:
          type: string
        linkedin_url:
          type: string
        function:
          type: string
          enum:
            - sales
            - cs
            - other
        tracked_status:
          type: string
          nullable: true
          enum:
            - monitored
            - paused
            - pending
            - left
            - removed
        tracked_person_id:
          type: string
          nullable: true
          description: >-
            Kept for integrations built before Clustr IDs. New integrations
            should use `clustr_tracked_person_id`.
  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.