---
title: "Check up to 100 resources, licenses or assets for their intended uses in one call, reusing licenses you hold. Answers use the attestation vocabulary: allowed, blocked, needs_review, insufficient_evidence"
method: POST
path: "/v1/rights/check"
tags: ["Rights desk"]
---

# Check up to 100 resources, licenses or assets for their intended uses in one call, reusing licenses you hold. Answers use the attestation vocabulary: allowed, blocked, needs_review, insufficient_evidence

`POST /v1/rights/check`

## Request

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

## Headers

- `X-Request-Id` string

## Request body

- object
  - `intended_use` object: Intended use: every true flag is a right the check must find documented; omitted flags are false; unknown fields are refused. For instance {"commercial_use":true,"deployment":true,"attribution_planned":true,"duration_days":365}
    - `commercial_use` boolean
    - `redistribution` boolean
    - `modification` boolean
    - `sublicensing` boolean
    - `deployment` boolean
    - `model_training` boolean
    - `model_inference` boolean
    - `attribution_planned` boolean
    - `geography` string: worldwide (default) or a region code such as US, EU, UK
    - `duration_days` integer, nullable: Whole days of use (1 to 36500), or null for no fixed term
  - `items` object[], required
    - `ref` string
    - `resource_id` string
    - `license` string
    - `asset` string
    - `intended_use` object: Intended use: every true flag is a right the check must find documented; omitted flags are false; unknown fields are refused. For instance {"commercial_use":true,"deployment":true,"attribution_planned":true,"duration_days":365}
      - `commercial_use` boolean
      - `redistribution` boolean
      - `modification` boolean
      - `sublicensing` boolean
      - `deployment` boolean
      - `model_training` boolean
      - `model_inference` boolean
      - `attribution_planned` boolean
      - `geography` string: worldwide (default) or a region code such as US, EU, UK
      - `duration_days` integer, nullable: Whole days of use (1 to 36500), or null for no fixed term

## Response `200`

OK

- object: Inferred from 15 recorded responses; required fields appeared in every one; additional properties may appear.
  - `items` object[], required
    - `ref` string, required
    - `subject` object, required
      - `resource_id` unknown, required
      - `license` string, nullable, required
      - `asset` string, nullable, required
    - `intended_use` object, required
      - `commercial_use` boolean, required
      - `redistribution` boolean, required
      - `modification` boolean, required
      - `sublicensing` boolean, required
      - `deployment` boolean, required
      - `attribution_planned` boolean, required
      - `geography` string, required
      - `duration_days` unknown, required
      - `model_training` boolean, required
      - `model_inference` boolean, required
    - `answer` string, required
    - `basis` object, required
      - `kind` string, required
      - `license` string
      - `url` string
      - `reference_hash` string
      - `reference_hash_covers` string[]
      - `verdict` string
      - `entitlement_id` string
      - `source` string
      - `verified_with_rights_holder` boolean
      - `evidence_sha256` string, nullable
      - `expires_at` unknown
    - `reasons` string[], required
    - `duties` string[], required
    - `unresolved` string[], required
    - `next_actions` string[], required
    - `cache` object
      - `key` string, required
      - `deterministic` boolean, required
      - `depends_on` object, required
      - `max_age_seconds` integer, required
      - `note` string, required
    - `use_override` object
      - `fields` string[], required
      - `batch_intended_use` object, required
    - `source` object
      - `platform` string, required
      - `item` string, required
      - `url` string, required
      - `declared_license` string, required
      - `license` string, required
      - `basis` string, required
      - `evidence_url` string, required
      - `note` string, required
      - `fetched_at` string, required
  - `summary` object, required
    - `total` integer, required
    - `allowed` integer, required
    - `blocked` integer, required
    - `needs_review` integer, required
    - `insufficient_evidence` integer, required
    - `all_clear` boolean, required
    - `with_overridden_use` integer, required
  - `next_action` object, required
    - `action` string, required
    - `label` string, required
    - `why` string, required
    - `needs` string, required
    - `tool` string
    - `rest` 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)
