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

# Stock x402: RSL rights before RAG ingestion and AI training

`POST /v1/rights/preflight/x402`

## Request

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

RSL rights before RAG ingestion, AI input, training and search. Stock x402 v2 EIP-3009 fresh Rights Preflight, 0.02 USDC on Base. One authorization binds one request on first valid use; no SIWX, no pre-signature body binding. Reviewed origins only. Diagnostic report, not a license or legal clearance. First unpaid valid POST returns a 402 without source work. No verifiable declaration after authorized observation means no settlement; that authorization remains bound to this attempted input. Preserve the exact signed retry privately for recovery. Secure SIWX remains recommended when supported.

## 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'
  - `max_total_micro` string, required: Integer micro-USDC budget; this fixed fresh SKU requires at least 20000 and charges exactly 20000.

## Response `200`

Signed settled report, or available:false/charge_micro:0 when no declaration is verifiable.

- union
  - object
    - `version` 'acqpath-stock-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
    - `sku` 'rights.preflight.stock.fresh.v1'
    - `request_binding` 'ATOMIC_FIRST_VALID_USE_NOT_PRE_SIGNATURE'
  - object
    - `available` unknown, required
    - `charge_micro` '0', required

## Other responses

- `402`: Stock x402 v2 challenge or invalid payment. No SIWX required.
- `409`: Authorization already bound to another body, route or SKU.
- `410`: Report retired; financial journal retained.
- `422`: Only fresh, approved origins and sufficient budget accepted.
- `503`: Unavailable or uncertain settlement. Preserve the exact signed retry; never sign another payment for recovery.

---

[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)
