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

# Set Competitor Customer Verdict

> Confirm or reject one of a competitor's customers

Confirm or reject a customer Clustr found for a competitor, or clear your verdict, and record
its renewal date when you know it. Send only the field you change.

A rejected customer is hidden everywhere, and the search never adds it back. A confirmed one is
labelled `confirmed` whatever its signals. Send `null` (or `"clear"`) to clear the verdict.

`renewal_date` is always the one you or a teammate recorded,
for example after the account owner found it out through a
[renewal task](https://docs.clustr-ai.com/api-reference/get-competitor-customer-settings.md).

```bash cURL theme={null}
curl -X PATCH https://api.clustr-ai.com/api/public/competitors/cmp_r0jpyyqyeh0txpgdhb604j2g9s/customers/ccus_3jm919aa345jdss56074sb5vy2 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"verdict": "rejected"}'
```

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

requests.patch(
    "https://api.clustr-ai.com/api/public/competitors/cmp_r0jpyyqyeh0txpgdhb604j2g9s/customers/ccus_3jm919aa345jdss56074sb5vy2",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"verdict": "rejected"},
)
```

```javascript JavaScript theme={null}
await fetch("https://api.clustr-ai.com/api/public/competitors/cmp_r0jpyyqyeh0txpgdhb604j2g9s/customers/ccus_3jm919aa345jdss56074sb5vy2", {
  method: "PATCH",
  headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({ verdict: "rejected" }),
});
```

```json 200 theme={null}
{
  "success": true,
  "data": {
    "clustr_competitor_customer_id": "ccus_3jm919aa345jdss56074sb5vy2",
    "id": "8b4e2f6a-1c3d-4e5f-9a7b-0c2d4e6f8a1b",
    "user_verdict": "rejected",
    "renewal_date": null
  }
}
```

```json 404 theme={null}
{
  "success": false,
  "error": { "message": "Competitor customer not found", "code": "NOT_FOUND" }
}
```


## OpenAPI

````yaml PATCH /competitors/{id}/customers/{customerId}
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}/customers/{customerId}:
    patch:
      tags:
        - Competitor Monitoring
      summary: Set Competitor Customer Verdict
      description: >-
        Confirms or rejects one of a competitor's customers, or clears your
        verdict with `null`. The same call can set the renewal date you know.
        Send only the fields you change. A rejected customer stays hidden
        everywhere whatever later signals show, and a confirmed one stays
        Confirmed whatever its signals. A renewal date replaces the estimated
        renewal window.
      operationId: setCompetitorCustomerVerdict
      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_6nymp4sgpm9xj1tc9xb2q7s7yj
        - name: customerId
          in: path
          required: true
          description: >-
            The customer's Clustr ID (`ccus_…`), from [List Competitor

            Customers](/api-reference/list-competitor-customers). The id from
            earlier responses also works.
          schema:
            type: string
          example: ccus_jg3p3mkfwgcxer5pmtxart50cc
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                verdict:
                  type: string
                  nullable: true
                  enum:
                    - confirmed
                    - rejected
                    - clear
                    - null
                  description: >-
                    The verdict: `confirmed` or `rejected`. Send `null` or
                    `clear` to clear it.
                renewal_date:
                  type: string
                  nullable: true
                  description: >-
                    The date the customer's contract renews, as `YYYY-MM-DD`.
                    Send `null` or `clear` to remove it.
                  example: '2027-03-31'
      responses:
        '200':
          description: The verdict, as saved
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - data
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      clustr_competitor_customer_id:
                        type: string
                        description: >-
                          The customer's Clustr ID, for example
                          `ccus_zxv0c9v5mnb25zthavkh5jm5yn`. Use it to refer to
                          this

                          customer.
                        example: ccus_zxv0c9v5mnb25zthavkh5jm5yn
                      id:
                        type: string
                        description: >-
                          Kept for integrations built before Clustr IDs. New
                          integrations should use
                          `clustr_competitor_customer_id`.
                      user_verdict:
                        type: string
                        nullable: true
                        example: rejected
                      renewal_date:
                        type: string
                        format: date
                        nullable: true
        '400':
          description: >-
            Neither field was sent, the verdict is not `confirmed`, `rejected`
            or `null`, or the date is not `YYYY-MM-DD`
        '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'
        '404':
          description: Competitor or customer not found
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.