Skip to content

Legal tools

MCP tools for Legal: legal_accept, legal_acceptance_get.

  • legal_accept: Accept the terms or the DPA
  • legal_acceptance_get: Get the legal acceptance

Accept the terms or the DPA. Operation legal.accept · Organization level · permission org:write · risk tier write · since M12

Records that the organization accepts a version of Ownrecord's Terms of Service (terms) or Data Processing Agreement (dpa). Read the document first at /legal/{document}/{version}.

version must be the version in effect or an announced newer one (see acceptableVersions in legal.acceptance_get). Sign-up records the terms; the DPA must be accepted before a brand goes live; a material change to either is announced 30 days ahead and accepted again by an owner or admin.

Only a person signed in to the console can accept, with org:write (owners and admins). API keys, agents, apps and OAuth clients can't, and neither can platform staff under a support-access grant. Accepting the version already accepted changes nothing.

Annotations: readOnlyHint: false · destructiveHint: false · idempotentHint: true · openWorldHint: false

Arguments

ArgumentTypeRequiredDescription
documentone of terms, dpayes–
versionstringyes(1–20 characters)
idempotency_keystringnoA unique string for this change. Retrying with the same key and arguments never acts twice. When left out, the server generates one and returns it in the result's idempotency_key. (1–255 characters)
dry_runbooleannotrue: check permissions and rules and compute the result, then roll everything back. Nothing is saved. (default false)
  • Idempotency: the result returns the idempotency_key used, yours or one the server generated. Retry with it: a call with the same key and arguments never acts twice (keys are kept for 24 hours).
  • Dry run: supported. dry_run: true checks permissions and rules and computes the result, then rolls everything back.

Errors

Example

Accept the DPA before going live

Arguments:

JSON
{
  "document": "dpa",
  "version": "1.0",
  "idempotency_key": "8d0c5f8e-4b7a-4e43-9b0f-2f6a0c1d9e21"
}

Result output:

JSON
{
  "object": "legal_acceptance",
  "organizationId": "org_01m4tx5nj7ekd958x53w4bntcg",
  "actionRequired": false,
  "updateAnnounced": false,
  "documents": [
    {
      "document": "terms",
      "title": "Terms of Service",
      "status": "accepted",
      "acceptedVersion": "1.0",
      "acceptedAt": "2026-10-26T09:30:00.000Z",
      "current": {
        "version": "1.0",
        "effectiveDate": "2026-10-26",
        "status": "draft",
        "url": "/legal/terms",
        "versionUrl": "/legal/terms/1.0"
      },
      "upcoming": null,
      "acceptableVersions": ["1.0"]
    },
    {
      "document": "dpa",
      "title": "Data Processing Agreement",
      "status": "accepted",
      "acceptedVersion": "1.0",
      "acceptedAt": "2026-10-27T10:00:00.000Z",
      "current": {
        "version": "1.0",
        "effectiveDate": "2026-10-26",
        "status": "draft",
        "url": "/legal/dpa",
        "versionUrl": "/legal/dpa/1.0"
      },
      "upcoming": null,
      "acceptableVersions": ["1.0"]
    }
  ]
}

Get the legal acceptance. Operation legal.acceptance_get · Organization level · permission org:read · risk tier read · since M12

Returns which versions of Ownrecord's Terms of Service and Data Processing Agreement the organization accepted, the versions in effect now, and any announced change.

Each document's status is accepted; update_announced when a material change is announced and not accepted yet (it takes effect on upcoming.effectiveDate, at least 30 days after the announcement); acceptance_required when a material change is in effect and an owner or admin must accept it; or, for the DPA, not_accepted until it is accepted, which the go-live checklist requires. actionRequired is true when any document needs acceptance now.

Readable by every member of the organization.

Annotations: readOnlyHint: true · destructiveHint: false · idempotentHint: true · openWorldHint: false

Arguments

This tool takes no arguments.

  • Read-only: changes nothing; idempotency_key is ignored.

Errors

Example

Terms accepted, DPA not yet

Arguments:

JSON
{}

Result output:

JSON
{
  "object": "legal_acceptance",
  "organizationId": "org_01m4tx5nj7ekd958x53w4bntcg",
  "actionRequired": false,
  "updateAnnounced": false,
  "documents": [
    {
      "document": "terms",
      "title": "Terms of Service",
      "status": "accepted",
      "acceptedVersion": "1.0",
      "acceptedAt": "2026-10-26T09:30:00.000Z",
      "current": {
        "version": "1.0",
        "effectiveDate": "2026-10-26",
        "status": "draft",
        "url": "/legal/terms",
        "versionUrl": "/legal/terms/1.0"
      },
      "upcoming": null,
      "acceptableVersions": ["1.0"]
    },
    {
      "document": "dpa",
      "title": "Data Processing Agreement",
      "status": "not_accepted",
      "acceptedVersion": null,
      "acceptedAt": null,
      "current": {
        "version": "1.0",
        "effectiveDate": "2026-10-26",
        "status": "draft",
        "url": "/legal/dpa",
        "versionUrl": "/legal/dpa/1.0"
      },
      "upcoming": null,
      "acceptableVersions": ["1.0"]
    }
  ]
}