---
title: "The Gate: allow or deny an agent or an upload against your own policy (RS-KYA level, a Rights Receipt, a clearance, an intent). A cleared receipt is an issued attestation about one asset and one use, not a license-check verdict"
method: POST
path: "/v1/gate/check"
tags: ["Platform"]
---

# The Gate: allow or deny an agent or an upload against your own policy (RS-KYA level, a Rights Receipt, a clearance, an intent). A cleared receipt is an issued attestation about one asset and one use, not a license-check verdict

`POST /v1/gate/check`

## Request

- Base URL: `https://www.rightshold.com`
- URL: `https://www.rightshold.com/v1/gate/check`
- Auth: none required

## Headers

- `X-Request-Id` string

## Request body

- object
  - `policy` object
  - `kya_token` string
  - `agent` string
  - `receipt` object
  - `asset_sha256` string
  - `clearance` string
  - `intent_token` string
  - `request` object: The signed request {method, url, headers} as received: its Web Bot Auth signature, and the intent token's key binding.

## Response `200`

OK

- object: Inferred from 30 recorded responses; required fields appeared in every one; additional properties may appear.
  - `decision` string, required
  - `allow` boolean, required
  - `reasons` string[], required
  - `kya` object, nullable, required
    - `agent_id` string, nullable
    - `number` string
    - `handle` string, nullable
    - `level` string
    - `authenticated` boolean
  - `receipt` object, nullable, required
    - `valid` boolean
    - `verdict` string, nullable
    - `id` string
    - `conditions` object, nullable
      - `duties` string[]
      - `attribution_text` string, nullable
      - `unresolved` unknown[]
        - unknown
  - `checked_at` string, required
  - `cache_seconds` integer, required
  - `policy_echo` object, required
    - `min_kya_level` string
    - `require_kya` boolean
    - `require_intent` boolean
    - `allowed_intent_purposes` string[]
    - `max_intent_risk` string
    - `domain` string
    - `operation` string
    - `require_signed_request` boolean
    - `require_mandate` boolean
    - `require_receipt` boolean
    - `require_clearance` boolean
    - `require_web_bot_auth` boolean
    - `allowed_signature_agents` string[]
  - `next_action` object, required
    - `action` string, required
    - `label` string, required
    - `why` string, required
    - `needs` string, required
    - `url` string, required
  - `intent` object
    - `valid` boolean, required
    - `purpose` string, required
    - `operations` string[], required
    - `risk` object, required
      - `class` string, required
      - `score` number, required
    - `binding` string, required
    - `mandated` boolean, required
    - `audience` unknown, required
    - `conformance` object, required
      - `band` string, required
      - `score` unknown, required
      - `n` integer, required
      - `as_of` string, required
    - `scope` object, required
      - `operation` boolean
      - `domain` boolean
    - `agent` object, required
      - `number` string, required
      - `handle` string, required
      - `level` string, required
      - `status` string, required
      - `did` string, required
    - `expires_at` string, required
  - `clearance` object
    - `valid` boolean, required
    - `purpose` string, required
    - `max_rps` integer, required
    - `paths` string[], required
    - `expires_at` string, required
    - `agent` object, required
      - `number` string, required
      - `handle` string, required
      - `level` string, required
      - `status` string, required
  - `web_bot_auth` object
    - `valid` boolean, required
    - `reasons` string[], required
    - `signature_agent` object, required
      - `url` string, required
      - `type` string, required
      - `host` string, required
      - `source` string, required
      - `directory_signed` boolean, nullable, required
      - `media_type_ok` boolean, nullable, required
    - `keyid` string, required
    - `covered` string[], required
    - `expires` integer, required
    - `agent` object, nullable, required
      - `number` string
      - `level` string

## Other responses

- `400`: Problem details: a stable error code, type URI, title, status and an explanation
- `401`: Problem details: a stable error code, type URI, title, status and an explanation
- `404`: Problem details: a stable error code, type URI, title, status and an explanation
- `405`: Problem details: a stable error code, type URI, title, status and an explanation
- `422`: Problem details: a stable error code, type URI, title, status and an explanation
- `429`: Request budget exhausted; retry after Retry-After seconds
- `500`: Problem details: a stable error code, type URI, title, status and an explanation
- `4XX`: {error, detail}

---

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