Credits & Billing
Credits & Billing
The Partners API is metered by Partner API credits, split into six independent buckets — one per product area:
Each endpoint charges only its own bucket. The buckets are strictly
isolated: running out of searches credits returns 402 Payment Required
on search even if your donors bucket still has a large balance, and vice
versa. There is no shared/fungible pool — credits never move between buckets.
How charging works
- Single-item endpoints (e.g.
GET /donors/{id},GET /search) cost 1 credit per request, charged to that endpoint’s bucket. - Bulk endpoints (
POST /enhancements,POST /exports,POST /donors/batch,POST /lists/{id}/donors,POST /networks/{id}/members/batch) cost 1 credit per item in the request, charged to that endpoint’s bucket. If you don’t have enough credits in that bucket for the full batch, we process as many items as your bucket balance allows (partial processing). - Credits are charged upfront, before the request runs.
- If the request fails with a 5xx server error, the credit is automatically refunded.
- If the request fails with a 4xx client error, the credit is also refunded.
- When your team has no credits left, the API returns
402 Payment Required(see below).
Free endpoints
The following endpoints never consume a credit:
Utility
- All health checks (e.g.
GET /donors/health,GET /search/health) GET /docs,GET /redoc, andGET /openapi.json— the API docs and specGET /testGET /credits— the balance endpoint
Donors
GET /donors/{id}/metadata— single donor metadataPOST /donors/metadata/batch— batch donor metadata
Enhancements
POST /enhancements/results/batch— get enhancement resultsGET /enhancements/{id}/progress— single enhancement progressPOST /enhancements/progress/batch— batch enhancement progress
Exports
GET /exports— list past exports
Lists
GET /lists— list all listsGET /lists/{id}— get single list metadataPATCH /lists/{id}— rename a listPOST /lists/{id}/donors/remove— remove donors from a list
Networks
GET /networks— list all networksPUT /networks/{id}— rename a networkGET /networks/jobs/{job_id}— check bulk add progressPOST /networks/{id}/members/remove— remove members
Checking your balance
Call the free GET /credits endpoint. It returns the available balance for
each of the six buckets:
- Each field is the credits remaining in that bucket right now.
Need more credits?
When a bucket is empty, the endpoints that charge that bucket return
402 Payment Required — even if your other buckets still have a balance:
The bucket field names the exhausted bucket so you know which product area
to top up.
To obtain more credits, email team@donoratlas.com.