Flag duplicates and missing fields before they reach your automation.
Lira Data Integrity reports exact duplicate rows, repeated values in identifiers you name, missing values, absent required fields and mixed scalar types in the data you supply.
Synthetic example, executed locally with the existing credit API v0.1.0. No purchase or production request was made.
These are four findings, not four bad rows: the duplicate row also triggers the identifier check. The example leaves the input unchanged.
[
{
"id": "A1",
"status": "ready"
},
{
"id": "A1",
"status": "ready"
},
{
"id": "A2"
}
]Send this JSON body with the request shown below. YOUR_API_KEY is a placeholder for the key delivered after a completed purchase.
POST https://lira-data-integrity-live.cristiand182gomez.workers.dev/audit
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"format": "json",
"data": [
{
"id": "A1",
"status": "ready"
},
{
"id": "A1",
"status": "ready"
},
{
"id": "A2"
}
],
"id_fields": [
"id"
],
"required_fields": [
"id",
"status",
"amount"
]
}{
"version": "0.1.0",
"input_sha256": "dd329d634e18821eb3795384b780f065947d436eb2b7b3e6feab71e0b77cb572",
"rows": 3,
"fields": [
"id",
"status"
],
"summary": {
"missing_values": 1,
"missing_required_fields": 1,
"exact_duplicate_rows": 1,
"duplicate_identifiers": 1
},
"finding_count": 4,
"findings": [
{
"type": "MISSING_VALUE",
"row": 3,
"field": "status"
},
{
"type": "MISSING_REQUIRED_FIELD",
"field": "amount"
},
{
"type": "EXACT_DUPLICATE_ROW",
"row": 2,
"duplicate_of": 1
},
{
"type": "DUPLICATE_IDENTIFIER",
"field": "id",
"value": "A1",
"rows": [
1,
2
]
}
],
"cleaned": null,
"notes": [
"No missing value is invented.",
"Only exact duplicate rows are auto-fixable in v0.1, and only when explicitly requested.",
"Domain-specific rules require buyer-supplied rules and are not inferred."
]
}
This response came from the existing handler in local public-test mode, without authentication or a credit balance. An authenticated Live response also includes access.label and access.credits_remaining.
JSON row numbers start at 1; CSV row numbers start at 2 after the header. Required fields are checked for presence across the dataset; missing cells are reported separately. This basic API does not infer business rules or certify that a dataset is correct.
Prepaid API credits. Starter: USD 5 for 20 audits (USD 0.25 each). Builder: USD 12 for 100 audits (USD 0.12 each).
20 audit credits
100 audit credits
Authorization: Bearer YOUR_API_KEY to POST /audit on this storefront's origin, with Content-Type: application/json.format as json with an array of objects, or csv with a CSV string. Use id_fields and required_fields to name the fields to check. The example above contains the complete request shape.A successful authenticated audit consumes one credit per call, including when it reports findings. Credit deduction happens after the body parses and the audit runs. Invalid input, rejected authentication and an exhausted balance do not reach that deduction. Reopening the return page does not replenish used credits.
Limits and scope: maximum request body 2,000,000 bytes, including the JSON wrapper. The credit API has no separate row-count cap in its code; infrastructure limits still apply. It provides basic checks, with no custom rule endpoint or v0.2.1 verification/receipt fields. It does not fill missing values or guarantee detection of every error.
If the return page says capture is still pending, wait and reload that page in the same browser. It needs the checkout session saved there to recover the key.
The x402 documentation describes a separate API paid per call in USDC on Base. PayPal API keys and credit balances do not apply there.
| Option | Price | Scope |
|---|---|---|
| PayPal credits | USD 5 / 20 or USD 12 / 100 | Basic v0.1.0 audit; bearer API key; 2,000,000-byte body limit |
| x402 basic | USDC 0.005 / call | v0.2.1 basic audit with verification and digests |
| x402 rules | USDC 0.01 / call | Basic checks plus supplied uniqueness, allowed-value, numeric-range, regex and date-order rules |
Both x402 routes have a 1,000-row and 2,000,000-byte request limit. These are different prices and API versions; credits are not interchangeable with x402 payments.