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

# HTTP route index

> Method, path and shared operation mappings for every authenticated resource route.

<Warning>The hosted catalog returned HTTP 404 on 2026-09-14T01:46:46.905Z. Generic command calls and the CLI tools/call surface require a release that serves these endpoints. The contract below describes current source; use a released resource route or MCP operation where available. See [capability status](/capability-status).</Warning>

Use [shared commands](/reference/local/call) for uniform JSON calls. Resource route contracts use the method, path and status listed below. Check capability status for the selected hosted release. A generic command returns HTTP 200 on success; a resource route may return 201 or 202 for the same operation.

Path identifiers move into the named command argument. Remaining read arguments use query parameters; write arguments use JSON unless the row says otherwise. Percent-encode each path identifier. Read [HTTP conventions](/reference/http/conventions), [protocol boundaries](/reference/http/protocol) and [human account access](/reference/http/account-access).

| Method and path                                                   | Shared operation                                                                           | Status | Resource-route differences                                                                                                                                                                                               |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `GET /v1/commands`                                                | [HTTP transport/account](/reference/http/account-access)                                   | 200    | Authenticated command catalog. No query parameters.                                                                                                                                                                      |
| `POST /v1/commands/{name}`                                        | [HTTP transport/account](/reference/http/account-access)                                   | 200    | All command arguments in JSON body; query parameters and Idempotency-Key header are refused. Success is HTTP 200, including queued jobs.                                                                                 |
| `GET /v1/workspaces`                                              | [HTTP transport/account](/reference/http/account-access)                                   | 200    | Human session; lists memberships without workspace selection.                                                                                                                                                            |
| `POST /v1/workspaces`                                             | [HTTP transport/account](/reference/http/account-access)                                   | 201    | Human session; JSON name creates a workspace.                                                                                                                                                                            |
| `POST /v1/invitations/accept`                                     | [HTTP transport/account](/reference/http/account-access)                                   | 201    | Human session; JSON token; accepting identity needs a verified matching email. Does not require prior membership.                                                                                                        |
| `GET /v1/access`                                                  | [HTTP transport/account](/reference/http/account-access)                                   | 200    | Human owner/admin; returns keys and grants metadata, at most 100 each.                                                                                                                                                   |
| `POST /v1/access/keys`                                            | [HTTP transport/account](/reference/http/account-access)                                   | 201    | Human session; creates a scoped API credential within the creator permission ceiling and returns secret once.                                                                                                            |
| `DELETE /v1/access/keys/{id}`                                     | [HTTP transport/account](/reference/http/account-access)                                   | 200    | Human owner/admin; returns \{id,revoked:true}.                                                                                                                                                                           |
| `DELETE /v1/access/grants/{id}`                                   | [HTTP transport/account](/reference/http/account-access)                                   | 200    | Human owner/admin; returns \{id,revoked:true}.                                                                                                                                                                           |
| `GET /v1/workspace`                                               | [`get_workspace`](/reference/commands/get_workspace)                                       | 200    | Resource response adds access:\{role,scopes,project\_ids} alongside workspace information.                                                                                                                               |
| `GET /v1/usage`                                                   | [`get_usage`](/reference/commands/get_usage)                                               | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/workspace/events`                                        | [`list_workspace_events`](/reference/commands/list_workspace_events)                       | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/projects`                                                | [`list_projects`](/reference/commands/list_projects)                                       | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/projects`                                               | [`create_project`](/reference/commands/create_project)                                     | 201    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/projects/{projectId}`                                    | [`get_project`](/reference/commands/get_project)                                           | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/watches`                                                 | [`list_link_watches`](/reference/commands/list_link_watches)                               | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/watches`                                                | [`monitor_link`](/reference/commands/monitor_link)                                         | 201    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `POST /v1/watches/import`                                         | [`import_link_watches`](/reference/commands/import_link_watches)                           | 201    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/watches/{watchId}`                                       | [`get_link_watch`](/reference/commands/get_link_watch)                                     | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `PATCH /v1/watches/{watchId}`                                     | [`update_link_watch`](/reference/commands/update_link_watch)                               | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/watches/{watchId}/history`                               | [`get_link_history`](/reference/commands/get_link_history)                                 | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/watches/{watchId}/contacts`                              | [`get_public_contacts`](/reference/commands/get_public_contacts)                           | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/watches/{watchId}/recheck`                              | [`request_link_check`](/reference/commands/request_link_check)                             | 202    | Remaining arguments go in a JSON object body. Supply idempotencyKey as the Idempotency-Key header on this resource route.                                                                                                |
| `GET /v1/jobs`                                                    | [`list_check_jobs`](/reference/commands/list_check_jobs)                                   | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/jobs/{jobId}`                                            | [`get_check_job`](/reference/commands/get_check_job)                                       | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/events`                                                  | [`list_link_events`](/reference/commands/list_link_events)                                 | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/exports/watches`                                         | [`export_link_watches`](/reference/commands/export_link_watches)                           | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/observations/{observationId}/locate`                     | [`locate_link`](/reference/commands/locate_link)                                           | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/observations/{observationId}/evidence`                   | [`get_link_evidence`](/reference/commands/get_link_evidence)                               | 200    | Returns raw evidence JSON as an attachment with Content-Disposition, Cache-Control: no-store and restrictive CSP. HTTP 410 EVIDENCE\_EXPIRED when bytes expire. The generic command uses its documented response object. |
| `GET /v1/reports/links`                                           | [`get_link_reports`](/reference/commands/get_link_reports)                                 | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/reports/profile`                                         | [`get_link_profile`](/reference/commands/get_link_profile)                                 | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/reports/anchors`                                         | [`get_anchor_report`](/reference/commands/get_anchor_report)                               | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/targets`                                                 | [`list_targets`](/reference/commands/list_targets)                                         | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/targets`                                                | [`monitor_target`](/reference/commands/monitor_target)                                     | 201    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/targets/{targetId}`                                      | [`get_target`](/reference/commands/get_target)                                             | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `PATCH /v1/targets/{targetId}`                                    | [`update_target`](/reference/commands/update_target)                                       | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/targets/{targetId}/history`                              | [`get_target_history`](/reference/commands/get_target_history)                             | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/targets/{targetId}/placements`                           | [`get_target_placements`](/reference/commands/get_target_placements)                       | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/targets/{targetId}/recheck`                             | [`request_target_check`](/reference/commands/request_target_check)                         | 202    | Remaining arguments go in a JSON object body. Supply idempotencyKey as the Idempotency-Key header on this resource route.                                                                                                |
| `GET /v1/target-jobs/{jobId}`                                     | [`get_target_job`](/reference/commands/get_target_job)                                     | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/target-events`                                           | [`list_target_events`](/reference/commands/list_target_events)                             | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/target-observations/{observationId}/evidence`            | [`get_target_evidence`](/reference/commands/get_target_evidence)                           | 200    | Returns raw evidence JSON as an attachment with Content-Disposition, Cache-Control: no-store and restrictive CSP. HTTP 410 EVIDENCE\_EXPIRED when bytes expire. The generic command uses its documented response object. |
| `POST /v1/discovery/imports`                                      | [`import_backlinks`](/reference/commands/import_backlinks)                                 | 201    | Remaining arguments go in a JSON object body. Supply idempotencyKey as the Idempotency-Key header on this resource route.                                                                                                |
| `GET /v1/discovery/runs`                                          | [`list_discovery_runs`](/reference/commands/list_discovery_runs)                           | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/discovery/runs`                                         | [`discover_backlinks`](/reference/commands/discover_backlinks)                             | 202    | Remaining arguments go in a JSON object body. Supply idempotencyKey as the Idempotency-Key header on this resource route.                                                                                                |
| `GET /v1/discovery/runs/{runId}`                                  | [`get_discovery_run`](/reference/commands/get_discovery_run)                               | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/discovery/runs/{runId}/candidates`                       | [`list_discovery_candidates`](/reference/commands/list_discovery_candidates)               | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/discovery/overviews`                                    | [`request_domain_overview`](/reference/commands/request_domain_overview)                   | 202    | Remaining arguments go in a JSON object body. Supply idempotencyKey as the Idempotency-Key header on this resource route.                                                                                                |
| `GET /v1/discovery/overviews/{runId}`                             | [`get_domain_overview`](/reference/commands/get_domain_overview)                           | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/discovery/runs/{runId}/candidates/{candidateId}/verify` | [`verify_discovery_candidate`](/reference/commands/verify_discovery_candidate)             | 202    | Remaining arguments go in a JSON object body. Supply idempotencyKey as the Idempotency-Key header on this resource route.                                                                                                |
| `GET /v1/discovery/verifications/{jobId}`                         | [`get_candidate_verification`](/reference/commands/get_candidate_verification)             | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/discovery/runs/{runId}/verification-batches`            | [`verify_discovery_candidates`](/reference/commands/verify_discovery_candidates)           | 202    | Remaining arguments go in a JSON object body. Supply idempotencyKey as the Idempotency-Key header on this resource route. Returns 202 for pending batches and 200 otherwise.                                             |
| `GET /v1/discovery/verification-batches/{batchId}`                | [`get_candidate_verification_batch`](/reference/commands/get_candidate_verification_batch) | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/discovery/verifications/{jobId}/monitor`                | [`monitor_discovery_candidate`](/reference/commands/monitor_discovery_candidate)           | 200    | Remaining arguments go in a JSON object body. Supply idempotencyKey as the Idempotency-Key header on this resource route.                                                                                                |
| `POST /v1/competitor-sets`                                        | [`create_competitor_set`](/reference/commands/create_competitor_set)                       | 201    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/competitor-sets`                                         | [`list_competitor_sets`](/reference/commands/list_competitor_sets)                         | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/competitor-sets/{setId}`                                 | [`get_competitor_set`](/reference/commands/get_competitor_set)                             | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `PATCH /v1/competitor-sets/{setId}`                               | [`update_competitor_set`](/reference/commands/update_competitor_set)                       | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `DELETE /v1/competitor-sets/{setId}`                              | [`retire_competitor_set`](/reference/commands/retire_competitor_set)                       | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `POST /v1/competitor-sets/{setId}/runs`                           | [`request_competitor_inventory`](/reference/commands/request_competitor_inventory)         | 202    | Remaining arguments go in a JSON object body. Supply idempotencyKey as the Idempotency-Key header on this resource route.                                                                                                |
| `POST /v1/competitor-inventories`                                 | [`capture_competitor_inventory`](/reference/commands/capture_competitor_inventory)         | 201    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/competitor-sets/{setId}/inventories`                     | [`list_competitor_inventories`](/reference/commands/list_competitor_inventories)           | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `GET /v1/competitor-inventories/{inventoryId}/rows`               | [`list_competitor_inventory_rows`](/reference/commands/list_competitor_inventory_rows)     | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/competitor-sets/{setId}/gap-report`                     | [`get_competitor_gap_report`](/reference/commands/get_competitor_gap_report)               | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `POST /v1/competitor-sets/{setId}/domain-mix`                     | [`get_domain_mix_report`](/reference/commands/get_domain_mix_report)                       | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/competitor-sets/{setId}/exclusions`                      | [`get_competitor_exclusions`](/reference/commands/get_competitor_exclusions)               | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `PUT /v1/competitor-sets/{setId}/exclusions`                      | [`save_competitor_exclusions`](/reference/commands/save_competitor_exclusions)             | 201    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `POST /v1/competitor-sets/{setId}/exclusions/preview`             | [`preview_competitor_exclusions`](/reference/commands/preview_competitor_exclusions)       | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/competitor-sets/{setId}/refresh`                         | [`get_competitor_refresh`](/reference/commands/get_competitor_refresh)                     | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `PUT /v1/competitor-sets/{setId}/refresh`                         | [`configure_competitor_refresh`](/reference/commands/configure_competitor_refresh)         | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `PATCH /v1/competitor-sets/{setId}/refresh`                       | [`set_competitor_refresh_paused`](/reference/commands/set_competitor_refresh_paused)       | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/members`                                                 | [`list_members`](/reference/commands/list_members)                                         | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `PATCH /v1/members/{userId}`                                      | [`set_member_access`](/reference/commands/set_member_access)                               | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `DELETE /v1/members/{userId}`                                     | [`remove_member`](/reference/commands/remove_member)                                       | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/invitations`                                             | [`list_invitations`](/reference/commands/list_invitations)                                 | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/invitations`                                            | [`invite_member`](/reference/commands/invite_member)                                       | 201    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `DELETE /v1/invitations/{invitationId}`                           | [`revoke_invitation`](/reference/commands/revoke_invitation)                               | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/webhooks`                                                | [`list_webhooks`](/reference/commands/list_webhooks)                                       | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/webhooks`                                               | [`create_webhook`](/reference/commands/create_webhook)                                     | 201    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `GET /v1/webhooks/{endpointId}/deliveries`                        | [`list_webhook_deliveries`](/reference/commands/list_webhook_deliveries)                   | 200    | Remaining read arguments go in query parameters.                                                                                                                                                                         |
| `POST /v1/webhooks/{endpointId}/secrets`                          | [`rotate_webhook_secret`](/reference/commands/rotate_webhook_secret)                       | 201    | Remaining arguments go in a JSON object body. Empty or unreadable body is treated as \{} by this resource handler; use \{retire:true} to retire the older secret.                                                        |
| `PATCH /v1/webhooks/{endpointId}`                                 | [`set_webhook_state`](/reference/commands/set_webhook_state)                               | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |
| `DELETE /v1/webhooks/{endpointId}`                                | [`delete_webhook`](/reference/commands/delete_webhook)                                     | 200    | Remaining arguments go in a JSON object body.                                                                                                                                                                            |

The shared commands `preview_resource_deletion` and `delete_resource` use the generic command endpoint. They have no additional resource-route alias. Anonymous checks use `POST /free/check` and `GET /free/check/{resultId}`; their quotas and result retention are separate from authenticated commands. `GET /healthz` is a public process-health probe. `GET /config` exposes the selected environment's public client configuration and capability flags.

<Note>Reference follows the current development CLI and HTTP contracts. Hosted availability depends on the selected environment. See [capability status](/capability-status).</Note>
