---
title: "Check RSL and machine-readable content usage rights before AI ingestion"
method: POST
path: "/v1/rights/preflight"
tags: ["RSL rights", "AI content usage rights", "RAG ingestion", "training content rights", "machine-readable licensing"]
---

# Check RSL and machine-readable content usage rights before AI ingestion

`POST /v1/rights/preflight`

## Request

- Base URL: `https://api.getacqpath.com`
- URL: `https://api.getacqpath.com/v1/rights/preflight`
- Auth: none declared

Use the tested official TypeScript or Python x402 signer with the AcqPath SIWX adapter; the normal signer and random payment nonce remain unchanged. Retain private X-AcqPath-Request state and retry the same normalized body. Zero-config stock x402, stock SIWX-only hooks, Agent402 automatic router execution and generic paid proxies are not claimed. Empty POST is discovery-only; never pay until a prepared binding is returned. UNKNOWN is not permission.

## Headers

- `X-AcqPath-Request` string

## Request body

- object
  - `resource` string, uri, required: HTTPS resource on an explicitly reviewed origin; no query, fragment, credentials, IP literal, encoded slash or redirect.
  - `purpose` 'ai-input' | 'ai-train' | 'ai-index' | 'search', required
  - `user_class` 'commercial' | 'non-commercial' | 'education' | 'government' | 'personal'
  - `geo` string, nullable: Caller-supplied geographical context. This is not independently verified location.
  - `freshness_seconds` integer
  - `tier` 'fresh' | 'deep'
  - `max_total_micro` string, required: Integer micro-USDC budget, at most 100000000000; fresh 20000, deep 50000 under current configuration.

## Response `200`

Signed paid report OR unavailable response with charge_micro:0; inspect available before signing.

- union
  - object
    - `version` 'acqpath-public-rights-v1', required
    - `input_sha256` string, required
    - `legal_clearance` unknown, required
    - `report` object, required
      - `resource` string, uri, required
      - `purpose` 'ai-input' | 'ai-train' | 'ai-index' | 'search', required
      - `decision` 'ALLOW_DECLARED' | 'DENY_DECLARED' | 'LICENSE_REQUIRED' | 'UNKNOWN', required
      - `declaration_count` integer, required
    - `evidence` object, required
      - `algorithm` 'Ed25519', required
      - `format` 'acqpath-evidence-v1', required
      - `payload` object, required
      - `signature` string, required
    - `delivery_proof` object, required
      - `algorithm` 'Ed25519', required
      - `format` 'acqpath-evidence-v1', required
      - `payload` object, required
      - `signature` string, required
    - `payment_settlement` object, required
      - `success` unknown, required
      - `network` 'eip155:8453' | 'eip155:84532', required
      - `transaction` string, required
  - object
    - `available` unknown, required
    - `reason` string, required
    - `charge_micro` '0', required

## Other responses

- `402`: x402 v2 challenge. Prepared binding is required before signing.
- `409`: Context/body mismatch or payment replay; no new signature.
- `410`: Unpaid request expired or paid report retired.
- `503`: Unavailable or uncertain settlement; preserve context, never automatically sign again.

---

[API](https://skmtc.dev/getacqpath/apis/acqpath-rsl-rights-preflight-public-integration-flow.md) · [All operations](https://skmtc.dev/getacqpath/apis/acqpath-rsl-rights-preflight-public-integration-flow/llms.txt) · [OpenAPI document](https://skmtc.dev/getacqpath/apis/acqpath-rsl-rights-preflight-public-integration-flow/revisions/e84ecdb687d7?raw)
