ParseRail
api.thecompound.tech/v1
39 endpoints1 paused242/242 checks passingcredits from $20

Extract & structure

Record normalization

A batch of messy records → clean canonical rows, with a change log of every fix (casing, formats, dedup-ready values).

POST/v1/normalize$0.05/batch, 5 credits, charged only on success60 calls a minute per key

The example in the published schema

charged 0 credits
  1. auth (bearer key)
  2. per-key throttle
  3. validate body
  4. balance precheck
  5. run the capability
  6. charge credits ON SUCCESS ONLY
  7. JSON
The request body/v1/normalize
{
  "records": [
    {
      "name": "SMITH, jon",
      "phone": "415.555.0199",
      "state": "california"
    }
  ],
  "instructions": "US phone format, 2-letter state codes, Title Case names"
}
The responsepublished example
// sending the call
// 0 credits charged so far
curl https://api.thecompound.tech/v1/normalize \
  -H "Authorization: Bearer $COMPOUND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"records":[{"name":"SMITH, jon","phone":"415.555.0199","state":"california"}],"instructions":"US phone format, 2-letter state codes, Title Case names"}'

Scored

9 of 9 field checks passed when the eval suite last ran against production, on 2026-07-08. Every endpoint's score

The Extract & structure guide has this endpoint with its example response. The reference has every parameter.

More from Extract & structure

Get a key and buy credits