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
The example in the published schema
charged 00 credits
- auth (bearer key)
- per-key throttle
- validate body
- balance precheck
- run the capability
- charge credits ON SUCCESS ONLY
- 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 farcurl 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
Field extraction $0.04/callPull a field set you define out of any block of text. You name the fields; you get typed values with confidence.Classification $0.02/callRoute or tag text against your own taxonomy, a label, a confidence, and a one-line rationale.Structure to your schema $0.06/callAny messy input, text, HTML, an email, plus YOUR JSON schema → output shaped to it, validated against your required fields and property types, with an automatic corrective retry and a `valid` flag.Entity matching $0.08/runTwo record sets → which rows are the same real-world thing, with confidence and reasoning. Fuzzy names, typos, aliases handled.Batch categorization $0.03/batchUp to a hundred items against your taxonomy in one call, products, transactions, tickets, each with a confidence.