Grove Data Check

Data checks for agents

Check a CSV for missing values, duplicate rows, schema mismatches and invalid types. Get a deterministic JSON report. No AI model receives the CSV.

Price and availability

$0.01 USDC per check. The payment endpoint advertises its current network in the PAYMENT-REQUIRED header. Base Sepolia is a test network: its payments are not real revenue. Base mainnet payments go to the Grove Shared Fund wallet.

POST https://grove.g-datalabs.com/api/data-check-paid

Send JSON containing csv, optional rules, and authorizedToProcess: true. Use an x402 v2 client with exact EIP-3009 USDC payments. The 402 response includes the price, network and Bazaar input schema. No Grove operator key is required.

CSV rules and limits · Build an x402 buyer

Limits and delivery

Up to 1,000,000 UTF-8 bytes of CSV, 10,000 data rows, 100 columns, and a 4 MB JSON request. Invalid CSV or rules are rejected before settlement. A report that finds quality problems is a successfully delivered check.

Synthetic example · no purchase

See what a check returns

Three made-up records: a valid zero, a missing measurement, and an invalid date and number. This example uses the existing service and does not contain anyone’s observations.

record_id,date,exercise_minutes
1,2026-09-01,0
2,2026-09-03,
3,2026-02-30,twenty

Download the complete example request. It includes exact column names, required values, integer types and date rules.

See the request JSON
{
  "csv": "record_id,date,exercise_minutes\n1,2026-09-01,0\n2,2026-09-03,\n3,2026-02-30,twenty\n",
  "rules": {
    "expectedColumns": [
      "record_id",
      "date",
      "exercise_minutes"
    ],
    "columns": [
      {
        "name": "record_id",
        "type": "integer",
        "required": true,
        "unique": true
      },
      {
        "name": "date",
        "type": "date",
        "required": true
      },
      {
        "name": "exercise_minutes",
        "type": "integer",
        "required": true
      }
    ]
  },
  "authorizedToProcess": true
}

Expected quality findings

The zero in record 2 is valid. Record numbers count parsed CSV records including the header; quoted multiline fields can make them differ from physical line numbers.

The local validator reports summary.passed: false, 3 data rows, 1 missing cell and 3 findings. These are local test results, not a receipt for a paid order.

From preview to paid result

  1. Send the JSON to the endpoint above without payment to inspect its current quote. HTTP 402 means payment is required; it does not mean the CSV has been checked.
  2. Use an x402 v2 buyer to review and sign the advertised terms. The signed request uses PAYMENT-SIGNATURE; a bearer token is not a payment authorization. No Grove operator key is needed.
  3. After verified settlement, a completed check returns HTTP 200. Quality problems are findings in a delivered report. Read issues[].code, issues[].record and issues[].column.

Only the first 200 findings are returned in issues. Check summary.issueCount and issuesTruncated for larger reports. If payment becomes uncertain, follow the recovery instructions below before any new payment.

Retries and payment support

Keep the signed payment and exact request locally until you receive the report. Resubmit them unchanged to recover the same result without another charge. A payment cannot buy a different check. For a pending or uncertain payment, do not generate another payment: retain the payment ID and transaction hash for reconciliation by the Grove operator.

Settlement receipts are retained so the same report can be regenerated after a connection failure. Refunds are not automatic. Do not use this pilot for time-critical work; if a payment remains unresolved, contact the Grove operator through your existing support channel with the payment ID, without sharing your raw CSV or wallet secrets.

Data handling

CSV content is processed in memory and is not deliberately stored by Grove or sent to model providers. Payment records retain input and rules fingerprints, wallet addresses, amounts, network, transaction receipts and status. New checks also retain row/column and finding counts, report fingerprints, processing timestamps and response-attempt counts; raw values and column names are excluded from this work log. Hosting providers process requests. Submit only data you have permission to use. A quality report does not verify truth, ownership or licensing.

Production recipient: 0xe01c0cb99db28df5e996416129577e559442c167 · USDC on Base.