API
The same data as the web page, in JSON. Keys are for customers on a contract: ask us for one.
Send your key in the X-API-Key header. The full reference lists every field and lets you try calls.
Add subrecipients
curl -X POST https://subrecipientwatch.com/v1/subrecipients \
-H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"subrecipients": [{"uei": "ABCD1234EFGH", "name": "Example Food Bank", "aln": "10.568"}]}'
See where everyone stands
curl https://subrecipientwatch.com/v1/status -H "X-API-Key: YOUR_KEY"
Main endpoints
| Call | What it does |
|---|---|
POST /v1/import?filename=list.csv | Read a spreadsheet sent as the raw body, without saving it |
GET /v1/search?name=... | Find a UEI from part of a name. Only finds organizations with an audit on file |
GET, POST /v1/subrecipients | List or add subrecipients |
DELETE /v1/subrecipients/{uei} | Remove one |
GET, PUT /v1/profile | The names you go by |
GET /v1/names-seen | Names your subrecipients use for pass-through agencies |
GET /v1/status | Every status from saved data, most urgent first |
POST /v1/check | Reload from the clearinghouse and save a record for each |
GET /v1/todos | What to do, soonest deadline first |
GET /v1/alerts | Audits accepted since you started watching |
PUT /v1/decisions/{report_id} | Record a management decision |
GET /v1/records, /v1/verify-records | Your records, and a check of the whole chain |
Limits and errors
Each subrecipient in a request counts toward your per-minute limit. Going over returns 429 with a Retry-After header.
A bad key returns 401. If the clearinghouse can't be reached, your list still saves and the response's problem field says why.