Skip to main content
The batch endpoint processes up to 50 inputs per request and counts as a single request toward your rate limit, so you can enrich up to 3,000 contacts per minute.

Plan your credits

Each item costs 1 credit. Enriching 20,000 contacts costs 20,000 credits. Check your balance in Billing before you start, because a batch that cannot be fully covered is rejected with quota_exceeded.

Choose the best input for each contact

Use the strongest signal you have, in this order:
  1. First name or full name (type: "name"), the most accurate.
  2. Personal email (type: "email"), when you have no name.
  3. Username (type: "username"), when that is all you have.
Add country whenever you know it. It noticeably improves results for names whose gender varies by country.

Example

Make the job resumable

Large imports get interrupted. Make yours safe to restart:
  • Store a status per contact: pending, done or failed.
  • Select only pending contacts when the job starts, so a restart never pays twice for the same contact.
  • Keep failed contacts separate and review them before deciding to resend.

Validate before you send

One invalid item rejects the entire batch, so filter locally first:
  • Skip empty values and values over 1,024 characters.
  • Send emails as plain addresses only, such as alice@example.com, not "Alice" <alice@example.com>.
  • Use two-letter country codes, such as US or DE.
  • Make each id unique within a batch and at most 100 characters.

Store results thoughtfully

Save result_status as well as gender, so you can tell “predicted female” apart from “unknown”. Many teams also store confidence and the date of the prediction. Read Reading predictions before using the results in personalization.