---
title: "Review disavow rules"
method: POST
path: "/v1/commands/review_disavow_rules"
tags: ["Link monitoring and evidence"]
---

# Review disavow rules

`POST /v1/commands/review_disavow_rules`

## Request

- Base URL: `https://app.agentlinkops.com`
- URL: `https://app.agentlinkops.com/v1/commands/review_disavow_rules`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Shared command transport. All logical arguments in JSON; no query or Idempotency-Key header. See canonical operation reference.

## Headers

- `X-Workspace-ID` string

## Request body

- ReviewDisavowRulesInput
  - `projectId` string, required: project ID from create/list.
  - `rules` object[], required: Customer-owned exclusion rules for the selected competitor revision.
    - `ruleId` string, required
    - `revision` integer, required
  - `decision` 'approve' | 'reject', required: decision; see schema.

## Response `200`

Command result, including queued admission.

- ReviewDisavowRulesOutput
  - `rules` object[], required
    - `id` string, required: Resource identifier returned by the operation.
    - `workspace_id` string, required: Workspace that owns this record.
    - `project_id` string, required: Project that owns this record.
    - `kind` 'domain' | 'url', required
    - `value` string, required
    - `identity` string, required
    - `source` 'manual' | 'import' | 'agent_proposal', required
    - `status` 'proposed' | 'active' | 'rejected', required: Resource lifecycle status.
    - `comments` string[], required
    - `revision` integer, required: Optimistic concurrency revision; supply it as expectedRevision on the next write.
    - `created_by` string, required
    - `approved_by` string, nullable, required
    - `created_at` string, required: UTC timestamp when the record was created.
    - `updated_at` string, required: UTC timestamp of the last record update.
    - `covered_links` integer
    - `created_by_label` 'you' | 'imported' | 'agent' | 'owner' | 'admin' | 'member' | 'viewer' | 'former member'
  - `created` integer, required: True when this request created the record; false when an existing record was reused.
  - `unchanged` integer, required
  - `revision` integer, required: Optimistic concurrency revision; supply it as expectedRevision on the next write.
  - `approved` boolean
  - `counts` object
    - `sites` integer, required
    - `pages` integer, required
    - `already_listed` integer, required
  - `warnings` string[]
  - `failed` object[]
    - `ruleId` string, required
    - `code` string, required

## Other responses

- `429`: Request-rate or usage refusal. Inspect error.code and recovery details before retrying.
- `default`: Error envelope. Non-configuration 5xx messages are masked and details omitted; allowlisted configuration errors retain static operator recovery.

---

[API](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api.md) · [All operations](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api/revisions/2a712a1dcfa7?raw)
