Prepaid copyright investigation and authorized enforcement, with a free agent sandbox.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <machine access token>; obtain through /api/v1/enroll
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Capture a new immutable metadata observation for an existing case. First create_quote(action='evidence', input={rights_holder_id, work_id, delegation_id, case_id}). Results include evidence_id, SHA-256 hash and timestamped metadata; use get_evidence to export it. Captures no screenshots, images, audio or video. Authenticate with the matching action scope. Reserves the quoted maximum from prepaid credits and returns operation_id; poll get_operation for results. Sandbox execution is simulated.
Unexpired quote ID returned by create_quote for action="evidence" in this organization; all task input is stored in the quote.
Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Capture a new immutable metadata observation for an existing case. First create_quote(action='evidence', input={rights_holder_id, work_id, delegation_id, case_id}). Results include evidence_id, SHA-256 hash and timestamped metadata; use get_evidence to export it. Captures no screenshots, images, audio or video. Authenticate with the matching action scope. Reserves the quoted maximum from prepaid credits and returns operation_id; poll get_operation for results. Sandbox execution is simulated.
| Argument | Type | Description |
|---|---|---|
| quote_id* | string | Unexpired quote ID returned by create_quote for action="evidence" in this organization; all task input is stored in the quote. |
| idempotency_key* | string | Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict. |
{
"type": "object",
"required": [
"quote_id",
"idempotency_key"
],
"properties": {
"quote_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Unexpired quote ID returned by create_quote for action=\"evidence\" in this organization; all task input is stored in the quote."
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{8,128}$",
"description": "Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict."
}
},
"additionalProperties": false
}Fetch a fresh content observation for an existing case. First create_quote(action='status', input={rights_holder_id, work_id, delegation_id, case_id}). Results include observed status, evidence_id, checked_at and HTTP status. Blocked retrieval or a timeout cannot prove removal. This is paid network work; use free get_operation to poll queued work and get_case to read stored observations. Authenticate with the matching action scope. Reserves the quoted maximum from prepaid credits and returns operation_id; poll get_operation for results. Sandbox execution is simulated.
| Argument | Type | Description |
|---|---|---|
| quote_id* | string | Unexpired quote ID returned by create_quote for action="status" in this organization; all task input is stored in the quote. |
| idempotency_key* | string | Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict. |
{
"type": "object",
"required": [
"quote_id",
"idempotency_key"
],
"properties": {
"quote_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Unexpired quote ID returned by create_quote for action=\"status\" in this organization; all task input is stored in the quote."
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{8,128}$",
"description": "Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict."
}
},
"additionalProperties": false
}Create a free quote binding one action, complete input, rate version and maximum USD-cent price for 15 minutes. Does not reserve or spend credits and does not grant rights. Returns a quote ID for the matching task tool: search/find_copies, investigate/investigate_url, evidence/capture_evidence, prepare/prepare_takedown, submit/submit_takedown, status/check_status or monitor/monitor_case. Authenticate and include the exact rights-holder, work and delegation scope.
| Argument | Type | Description |
|---|---|---|
| input* | object | Complete input bound into the quote. Every action needs rights_holder_id, work_id and delegation_id. search: main_handle; investigate: url; evidence/status: case_id; prepare: case_id, evidence_id, good_faith, accurate_and_authorized, infringement_explanation; submit: case_id, packet_id; monitor: target_action, expires_at, per_run_limit_cents, total_limit_cents plus main_handle (search) or case_id (status). |
| action* | string | Billable action whose input and maximum price are bound into this quote. |
{
"type": "object",
"required": [
"action",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"rights_holder_id",
"work_id",
"delegation_id"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "For investigate: suspected-copy public HTTP(S) URL. Private network targets are refused."
},
"case_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Case ID returned by investigate_url, required for evidence, prepare, submit, status and status monitoring."
},
"work_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Work ID returned by create_work for this rights holder."
},
"scenario": {
"enum": [
"removed"
],
"description": "Sandbox status fixture only: simulate a missing page. Repeated timestamped observations are still required to conclude removal."
},
"packet_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "For submit: ready packet ID returned by prepare_takedown for this case and delegation."
},
"expires_at": {
"type": "string",
"format": "date-time",
"description": "For monitor: future ISO 8601 expiry, at most 366 days away."
},
"good_faith": {
"type": "boolean",
"description": "For prepare: true attests a good-faith belief the use is unauthorized."
},
"destination": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Optional prepare destination from the case's supported enforcement routes; arbitrary recipients are not supported."
},
"evidence_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "For prepare: evidence ID for this case with a current observation that the URL is live."
},
"main_handle": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "For search, or monitor targeting search: creator identity/handle used for existing text and identity queries."
},
"cadence_hours": {
"type": "integer",
"default": 24,
"maximum": 168,
"minimum": 1,
"description": "For monitor: hours between runs; daily by default."
},
"delegation_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Unrevoked, unexpired delegation ID covering this work and action; submission requires appointment permission."
},
"target_action": {
"enum": [
"search",
"status"
],
"description": "For monitor: recurring discovery (search) or fresh observations of an existing case (status)."
},
"rights_holder_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Rights-holder ID returned by create_rights_holder in this organization."
},
"total_limit_cents": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "For monitor: lifetime recurring-run budget in USD cents, at least the per-run limit."
},
"per_run_limit_cents": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "For monitor: maximum USD cents reserved for one recurring run."
},
"accurate_and_authorized": {
"type": "boolean",
"description": "For prepare: true attests the claim is accurate and the signer is authorized."
},
"infringement_explanation": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "For prepare: rights holder's factual explanation of the suspected infringement; stored as a customer assertion."
}
},
"description": "Complete input bound into the quote. Every action needs rights_holder_id, work_id and delegation_id. search: main_handle; investigate: url; evidence/status: case_id; prepare: case_id, evidence_id, good_faith, accurate_and_authorized, infringement_explanation; submit: case_id, packet_id; monitor: target_action, expires_at, per_run_limit_cents, total_limit_cents plus main_handle (search) or case_id (status).",
"additionalProperties": false
},
"action": {
"enum": [
"search",
"investigate",
"evidence",
"prepare",
"submit",
"status",
"monitor"
],
"type": "string",
"description": "Billable action whose input and maximum price are bound into this quote."
}
},
"additionalProperties": false
}Register a rights holder managed by this organization, without a creator login or subscription. Requires rights scope. Supply a person/business name and optional country/contact email; returns a rights-holder id for create_work and delegate_authority. Registration records identity and does not itself authorize enforcement.
| Argument | Type | Description |
|---|---|---|
| body* | object | Rights-holder name (required), optional two-letter country_code and contact_email. Use the returned id as rights_holder_id. |
{
"type": "object",
"required": [
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"country_code": {
"type": "string",
"minLength": 1
},
"contact_email": {
"type": "string",
"format": "email"
}
},
"description": "Rights-holder name (required), optional two-letter country_code and contact_email. Use the returned id as rights_holder_id.",
"additionalProperties": false
}
},
"additionalProperties": false
}Register a public HTTPS receiver for this organization's signed lifecycle events. Requires webhooks scope; returns the signing secret once. Verify HMAC-SHA256 signatures, timestamp freshness and stable event IDs. Delivery is at least once with bounded retries; private-network destinations and redirects are refused. At most five active receivers per organization.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public HTTPS event receiver controlled by your integration; must not redirect or resolve to private addresses. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Public HTTPS event receiver controlled by your integration; must not redirect or resolve to private addresses."
}
},
"additionalProperties": false
}Register a protected original work under an existing rights holder in this organization. Requires rights scope. Supply rights_holder_id and description, optionally original_url and your external_id. Returns a work id for delegation and quoted work; registering an original does not determine whether a suspected copy infringes.
| Argument | Type | Description |
|---|---|---|
| body* | object | Owning rights_holder_id and work description; optional public original_url and caller's external_id. |
{
"type": "object",
"required": [
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"rights_holder_id",
"description"
],
"properties": {
"description": {
"type": "string",
"minLength": 1
},
"external_id": {
"type": "string",
"minLength": 1
},
"original_url": {
"type": "string",
"format": "uri"
},
"rights_holder_id": {
"type": "string",
"minLength": 1
}
},
"description": "Owning rights_holder_id and work description; optional public original_url and caller's external_id.",
"additionalProperties": false
}
},
"additionalProperties": false
}Record the rights holder's existing authority for exact works and actions with a reference, attestation version and future expiry. Requires rights scope and rights_authorized=true. Returns a delegation id for create_quote. Set can_appoint_content_sweep=true only when the mandate permits appointment; submission requires it. Delegation can be revoked immediately; payment never substitutes for authority.
| Argument | Type | Description |
|---|---|---|
| body* | object | Tenant rights_holder_id, work_ids, allowed actions, rights_authorized=true, appointment permission, authorization_reference, attestation_version and future expires_at. Current attestation version is published at /api/v1/capabilities. |
{
"type": "object",
"required": [
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"rights_holder_id",
"work_ids",
"actions",
"rights_authorized",
"can_appoint_content_sweep",
"authorization_reference",
"attestation_version",
"expires_at"
],
"properties": {
"actions": {
"type": "array",
"items": {
"enum": [
"search",
"investigate",
"evidence",
"prepare",
"submit",
"status",
"monitor"
],
"type": "string"
},
"minItems": 1
},
"work_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 100,
"minItems": 1
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"rights_holder_id": {
"type": "string",
"minLength": 1
},
"rights_authorized": {
"const": true
},
"attestation_version": {
"type": "string",
"minLength": 1
},
"authorization_reference": {
"type": "string",
"minLength": 1
},
"can_appoint_content_sweep": {
"type": "boolean"
}
},
"description": "Tenant rights_holder_id, work_ids, allowed actions, rights_authorized=true, appointment permission, authorization_reference, attestation_version and future expires_at. Current attestation version is published at /api/v1/capabilities.",
"additionalProperties": false
}
},
"additionalProperties": false
}Create a free, isolated sandbox organization without browser signup or authentication. Returns organization_id and a bootstrap access_token once; send it as Authorization: Bearer for subsequent private calls. All sandbox credits, search results and submission receipts are simulated; no live providers or real funds are used.
| Argument | Type | Description |
|---|---|---|
| name* | string | Human-readable name for this sandbox integration, at most 120 characters. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Human-readable name for this sandbox integration, at most 120 characters."
}
},
"additionalProperties": false
}Create a separate live organization using an authenticated sandbox account. Requires accountable customer identity, accepted current terms and authorized-agent attestation; supported countries and activation gates apply. Returns new live credentials once. Does not purchase credits or establish copyright authority.
| Argument | Type | Description |
|---|---|---|
| body* | object | Customer legal name, supported two-letter country, contact email, authority reference and current terms version from /api/v1/capabilities; terms_accepted and authorized_agent must be true. |
{
"type": "object",
"required": [
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"legal_name",
"country_code",
"contact_email",
"authorization_reference",
"terms_version",
"terms_accepted",
"authorized_agent"
],
"properties": {
"legal_name": {
"type": "string",
"minLength": 1
},
"country_code": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"contact_email": {
"type": "string",
"format": "email"
},
"terms_version": {
"type": "string",
"minLength": 1
},
"terms_accepted": {
"const": true
},
"authorized_agent": {
"const": true
},
"authorization_reference": {
"type": "string",
"minLength": 1
}
},
"description": "Customer legal name, supported two-letter country, contact email, authority reference and current terms version from /api/v1/capabilities; terms_accepted and authorized_agent must be true.",
"additionalProperties": false
}
},
"additionalProperties": false
}Exchange an authenticated bootstrap credential for a 15-minute access_token limited to requested scopes. Requested scopes must be a nonempty subset of the parent's permissions. Returns the token once; child tokens stop working when the parent expires or is revoked.
| Argument | Type | Description |
|---|---|---|
| scopes* | array | Explicit permissions needed by this short-lived client. |
{
"type": "object",
"required": [
"scopes"
],
"properties": {
"scopes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "One existing account, credentials, rights, billing, webhooks or task-action scope."
},
"maxItems": 20,
"minItems": 1,
"description": "Explicit permissions needed by this short-lived client."
}
},
"additionalProperties": false
}Search supported sources for suspected copies using a creator handle and existing text/identity matching. First create_quote(action='search', input={rights_holder_id, work_id, delegation_id, main_handle}). Results include suspected matches, searched sources, timestamps and coverage limitations; they do not determine infringement. No visual similarity search. Authenticate with the matching action scope. Reserves the quoted maximum from prepaid credits and returns operation_id; poll get_operation for results. Sandbox execution is simulated.
| Argument | Type | Description |
|---|---|---|
| quote_id* | string | Unexpired quote ID returned by create_quote for action="search" in this organization; all task input is stored in the quote. |
| idempotency_key* | string | Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict. |
{
"type": "object",
"required": [
"quote_id",
"idempotency_key"
],
"properties": {
"quote_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Unexpired quote ID returned by create_quote for action=\"search\" in this organization; all task input is stored in the quote."
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{8,128}$",
"description": "Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict."
}
},
"additionalProperties": false
}Read this credential's organization_id, principal_id, sandbox/live environment and account status. Use to confirm which account later work affects. Requires account scope; free, without network investigation.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Read organization-bound prepaid balance_cents, reserved_cents and available_cents in USD. Requires billing scope; free. Reserved funds cannot be spent by another operation; credits cannot transfer between organizations.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Read stored observations and permitted details for a case owned by this organization. Free; does not fetch the target again. Use check_status with a fresh status quote for a new content observation. Returns tenant-scoped case state without internal reasoning or other customer data.
| Argument | Type | Description |
|---|---|---|
| id* | string | case_id returned by investigate_url's completed operation. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "case_id returned by investigate_url's completed operation."
}
},
"additionalProperties": false
}Read this organization's last 100 immutable lifecycle events with stable id, type, data and createdAt. Requires webhooks scope; free. Deduplicate by event ID and fetch current state when delivery is out of order. Use replay_event for a known event and active receiver.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Export an owned immutable metadata observation with its SHA-256 hash, capturedAt and retention expiry. Requires evidence scope; free. Returns no screenshots, media or storage paths. Use capture_evidence with a quote to create a new observation.
| Argument | Type | Description |
|---|---|---|
| id* | string | evidence_id returned by investigation, evidence capture or status observation. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "evidence_id returned by investigation, evidence capture or status observation."
}
},
"additionalProperties": false
}Read an owned monitor's action, cadence, expiry, per-run/total budget, nextRunAt, status and pauseReason. Requires monitor scope; free. Does not run monitoring or increase its budget.
| Argument | Type | Description |
|---|---|---|
| id* | string | monitor_id returned by monitor_case's completed operation. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "monitor_id returned by monitor_case's completed operation."
}
},
"additionalProperties": false
}Poll an asynchronous operation by operation_id without spending credits. Requires the operation's action scope. Returns queued, running, succeeded, blocked or failed with result, errorCode and reserved/settled cents. Use after any task tool; blocked submission_reconciliation_required must be reconciled before retry. A succeeded submit operation does not prove content removal.
| Argument | Type | Description |
|---|---|---|
| id* | string | operation_id returned when a task was queued; use this instead of a case, packet or quote ID. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "operation_id returned when a task was queued; use this instead of a case, packet or quote ID."
}
},
"additionalProperties": false
}Read an owned prepared notice packet, fingerprint and any stored submission receipt. Requires prepare scope; free. Does not prepare or send a notice. Use prepare_takedown to create a packet and submit_takedown for authorized delivery; a stored receipt is separate from removal evidence.
| Argument | Type | Description |
|---|---|---|
| id* | string | packet_id returned by a ready prepare_takedown result. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "packet_id returned by a ready prepare_takedown result."
}
},
"additionalProperties": false
}Read the authenticated environment's versioned rate card and action prices in USD cents. Requires billing scope; free. Use create_quote to bind the current maximum price to a particular action and input.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Read the last 100 ledger entries for this organization, including purchases, reservations, charges and releases with operation/purchase IDs and timestamps. Requires billing scope; free. Use to reconcile spending with operation results.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Inspect the last 100 owned webhook delivery attempts, status, attempts, last HTTP status/error, deliveredAt and replayCount. Requires webhooks scope; free. Receiver failure does not lose operation or case state.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Investigate a supplied public URL and create a tenant-owned case. First create_quote(action='investigate', input={rights_holder_id, work_id, delegation_id, url}). Results include case_id, evidence_id, page metadata, registrar/network attribution, supported contacts and retrieval limitations. CDN visibility does not prove the origin host. Investigation does not send a notice. Authenticate with the matching action scope. Reserves the quoted maximum from prepaid credits and returns operation_id; poll get_operation for results. Sandbox execution is simulated.
| Argument | Type | Description |
|---|---|---|
| quote_id* | string | Unexpired quote ID returned by create_quote for action="investigate" in this organization; all task input is stored in the quote. |
| idempotency_key* | string | Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict. |
{
"type": "object",
"required": [
"quote_id",
"idempotency_key"
],
"properties": {
"quote_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Unexpired quote ID returned by create_quote for action=\"investigate\" in this organization; all task input is stored in the quote."
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{8,128}$",
"description": "Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict."
}
},
"additionalProperties": false
}Enroll recurring search or case-status observations within an explicit budget and expiry. First create_quote(action='monitor', input={rights_holder_id, work_id, delegation_id, target_action, expires_at, per_run_limit_cents, total_limit_cents, main_handle or case_id}). target_action='search' needs main_handle; 'status' needs case_id. cadence_hours defaults to 24. Returns monitor_id; each run reserves credits and pauses when funding, authority, expiry or limits disallow work. Never schedules takedown submissions. Authenticate with the matching action scope. Reserves the quoted maximum from prepaid credits and returns operation_id; poll get_operation for results. Sandbox execution is simulated.
| Argument | Type | Description |
|---|---|---|
| quote_id* | string | Unexpired quote ID returned by create_quote for action="monitor" in this organization; all task input is stored in the quote. |
| idempotency_key* | string | Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict. |
{
"type": "object",
"required": [
"quote_id",
"idempotency_key"
],
"properties": {
"quote_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Unexpired quote ID returned by create_quote for action=\"monitor\" in this organization; all task input is stored in the quote."
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{8,128}$",
"description": "Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict."
}
},
"additionalProperties": false
}Pause future scheduled runs for an owned monitor. Requires monitor scope. Preserves its original expiry and budget; an already queued operation is not cancelled. Use resume_monitor to restart within the same bounds.
| Argument | Type | Description |
|---|---|---|
| id* | string | Owned monitor_id to pause. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Owned monitor_id to pause."
}
},
"additionalProperties": false
}Prepare a copyright notice packet for an existing case and evidence without sending it. First create_quote(action='prepare', input={rights_holder_id, work_id, delegation_id, case_id, evidence_id, good_faith:true, accurate_and_authorized:true, infringement_explanation}). Optional destination must match a supported route. Returns readiness, missing fields or blockers; ready packets include packet_id and destination. Attest only claims supported by the rights holder's authority. Authenticate with the matching action scope. Reserves the quoted maximum from prepaid credits and returns operation_id; poll get_operation for results. Sandbox execution is simulated.
| Argument | Type | Description |
|---|---|---|
| quote_id* | string | Unexpired quote ID returned by create_quote for action="prepare" in this organization; all task input is stored in the quote. |
| idempotency_key* | string | Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict. |
{
"type": "object",
"required": [
"quote_id",
"idempotency_key"
],
"properties": {
"quote_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Unexpired quote ID returned by create_quote for action=\"prepare\" in this organization; all task input is stored in the quote."
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{8,128}$",
"description": "Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict."
}
},
"additionalProperties": false
}Purchase organization-bound prepaid service credits in USD cents. Requires billing scope and an idempotency key. A live 402 response returns an MPP card-payment challenge; retry the same purchase/key with payment_authorization separately from the account Bearer token. Authenticated provider confirmation credits the balance exactly once. Sandbox purchases are simulated. Cards are supported; stablecoins are not enabled.
| Argument | Type | Description |
|---|---|---|
| automatic | boolean | Use a previously recorded bounded funding mandate; false for an ordinary one-time purchase. |
| amount_cents* | integer | Purchase amount in USD cents, from 50 ($0.50) to 100000 ($1000); live account spending and launch limits also apply. |
| idempotency_key* | string | Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict. |
| payment_authorization | string | MPP card authorization responding to this purchase's payment_challenge. Omit on the first call; never place the account Bearer token here. |
{
"type": "object",
"required": [
"amount_cents",
"idempotency_key"
],
"properties": {
"automatic": {
"type": "boolean",
"default": false,
"description": "Use a previously recorded bounded funding mandate; false for an ordinary one-time purchase."
},
"amount_cents": {
"type": "integer",
"maximum": 100000,
"minimum": 50,
"description": "Purchase amount in USD cents, from 50 ($0.50) to 100000 ($1000); live account spending and launch limits also apply."
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{8,128}$",
"description": "Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict."
},
"payment_authorization": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "MPP card authorization responding to this purchase's payment_challenge. Omit on the first call; never place the account Bearer token here."
}
},
"additionalProperties": false
}Requeue a known event to an owned active webhook while preserving its original event ID. Requires webhooks scope; at most ten explicit replays per delivery. The receiver must deduplicate repeated IDs. Does not rerun the underlying operation or charge it again.
| Argument | Type | Description |
|---|---|---|
| event_id* | string | Stable event ID from get_events or an earlier delivery. |
| webhook_id* | string | Owned active webhook ID from create_webhook. |
{
"type": "object",
"required": [
"event_id",
"webhook_id"
],
"properties": {
"event_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Stable event ID from get_events or an earlier delivery."
},
"webhook_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Owned active webhook ID from create_webhook."
}
},
"additionalProperties": false
}Resume an owned monitor within its existing expiry and total budget, optionally replacing its delegation. Requires monitor scope and current authority; expired monitors cannot resume. Does not expand spending ceilings or grant rights.
| Argument | Type | Description |
|---|---|---|
| id* | string | Owned monitor_id to resume. |
| delegation_id | string | Optional replacement delegation covering this monitor's rights holder, work and actions. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Owned monitor_id to resume."
},
"delegation_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Optional replacement delegation covering this monitor's rights holder, work and actions."
}
},
"additionalProperties": false
}Irreversibly revoke an owned delegation by ID. Requires rights scope. Queued work and future monitor runs recheck revocation; this stops later authorized actions but does not retract a notice already sent. Returns revoked=true on success.
| Argument | Type | Description |
|---|---|---|
| id* | string | Delegation ID returned by delegate_authority in this organization. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Delegation ID returned by delegate_authority in this organization."
}
},
"additionalProperties": false
}Immediately revoke an owned service-principal credential by ID. Requires credentials scope. Its dependent access tokens also stop authenticating; revoking the credential used for this call prevents later calls with it. Returns revoked=true.
| Argument | Type | Description |
|---|---|---|
| id* | string | credential_id returned by enrollment, rotation or token exchange for this principal. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "credential_id returned by enrollment, rotation or token exchange for this principal."
}
},
"additionalProperties": false
}Deactivate an owned webhook and cancel its pending deliveries. Requires webhooks scope; an in-flight delivery may finish. Returns revoked=true. Does not delete case state or events.
| Argument | Type | Description |
|---|---|---|
| id* | string | Owned webhook ID returned by create_webhook. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Owned webhook ID returned by create_webhook."
}
},
"additionalProperties": false
}Replace the current bootstrap credential and invalidate it and its child tokens. Requires credentials scope and a bootstrap credential, not a short-lived token. Returns the new credential once; securely store it before making subsequent calls.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Set organization and current-credential daily spending ceilings in USD cents. Requires billing scope. Set funding_policy=null to keep automatic replenishment off; enabling it requires an explicit amount, threshold, daily maximum, future expiry and mandate reference. Returns applied limits and automatic_funding state; does not itself purchase credits.
| Argument | Type | Description |
|---|---|---|
| body* | object | Daily organization and credential ceilings plus funding_policy (null by default, or an explicit bounded replenishment mandate). |
{
"type": "object",
"required": [
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"daily_limit_cents",
"credential_limit_cents",
"funding_policy"
],
"properties": {
"funding_policy": {
"oneOf": [
{
"type": "null"
},
{
"type": "object",
"required": [
"amountCents",
"thresholdCents",
"dailyMaximumCents",
"expiresAt",
"mandateReference"
],
"properties": {
"expiresAt": {
"type": "string",
"format": "date-time"
},
"amountCents": {
"type": "integer",
"maximum": 100000,
"minimum": 50
},
"thresholdCents": {
"type": "integer",
"maximum": 100000,
"minimum": 0
},
"mandateReference": {
"type": "string",
"minLength": 1
},
"dailyMaximumCents": {
"type": "integer",
"maximum": 100000,
"minimum": 0
}
},
"additionalProperties": false
}
]
},
"daily_limit_cents": {
"type": "integer",
"maximum": 100000,
"minimum": 0
},
"credential_limit_cents": {
"type": "integer",
"maximum": 100000,
"minimum": 0
}
},
"description": "Daily organization and credential ceilings plus funding_policy (null by default, or an explicit bounded replenishment mandate).",
"additionalProperties": false
}
},
"additionalProperties": false
}Submit a prepared packet through a supported, activated enforcement route. First create_quote(action='submit', input={rights_holder_id, work_id, delegation_id, case_id, packet_id}). Rechecks current delegation, appointment permission, evidence, route, policy and funding before delivery. Results distinguish submission status, provider receipt and removal status. If submission_reconciliation_required is returned, reconcile the original operation before any retry; provider acceptance does not prove removal. Authenticate with the matching action scope. Reserves the quoted maximum from prepaid credits and returns operation_id; poll get_operation for results. Sandbox execution is simulated.
| Argument | Type | Description |
|---|---|---|
| quote_id* | string | Unexpired quote ID returned by create_quote for action="submit" in this organization; all task input is stored in the quote. |
| idempotency_key* | string | Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict. |
{
"type": "object",
"required": [
"quote_id",
"idempotency_key"
],
"properties": {
"quote_id": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Unexpired quote ID returned by create_quote for action=\"submit\" in this organization; all task input is stored in the quote."
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{8,128}$",
"description": "Caller-generated key, 8–128 letters, digits, underscores, dots, colons or hyphens. Reuse for retries of the same purchase or operation. Different input with the same organization-bound key returns a conflict."
}
},
"additionalProperties": false
}