# Bulk gender lookup: from ten thousand names to ten million

> Plain-Markdown twin of <https://gender-api.com/en/bulk-gender-lookup>, published for LLMs,
> agents and anyone who prefers text to HTML. Figures verified 2026-09-01; the HTML page
> renders the country count and every price live, so it is the authority if the two differ.

Upload the file or call the API. Either way you know the price before you start, every row comes
back with the evidence behind it, and your spreadsheet comes back as your spreadsheet.

## The short answer

- Up to **10,000,000 rows** in one CSV, **100,000** in one Excel workbook, or **100 names** per
  API request with no ceiling on the number of requests.
- One lookup is one credit, bought in advance — **from about €0.35 per 1,000 names** at the
  largest published package. You know the price of the whole job before you start it, on a VAT
  invoice, and credits do not expire.
- Your workbook is returned, not replaced: styles, dates, formulas, merged cells and the other
  worksheets all survive. The new columns are merged in beside your data.
- Every row carries a probability and a sample count, so you can accept the confident rows
  automatically and send only the rest to review.

## Two ways to do it, and how to choose

A one-off clean-up and a continuously enriched database are different jobs. The same data answers
both, but you should not use the same route for both.

![The two routes for a large list. The upload route runs from your CSV or Excel file through the upload assistant, where you point at the column holding the first names, into background processing, and back out as the same file with the ga_ columns merged in, announced by e-mail. The API route runs from your application through a POST to the batch endpoint, up to 100 names per request, to JSON per name. Both spend one credit per lookup from the same prepaid balance.](https://gender-api.com/img/compare/bulk/fig1-two-routes.svg)

*Both routes, and the balance they share.*

| Question | Upload a file | Call the API |
|---|---|---|
| Best for | A list you have now — a CRM export, an event registration list, a mailing list | Names arriving continuously — sign-ups, orders, imported leads |
| Who does it | Anyone who has the file. No code. | A developer, once — then it runs itself |
| Size limit | 10,000,000 rows per CSV, 100,000 per Excel workbook | 100 names per request, no total limit |
| What you get back | The same file, with new columns merged in | JSON per name, to write wherever you want it |
| Telling it the country | Assign a country column in the wizard | A country, locale or IP address per name |
| While it runs | Processing continues in the background; you get an e-mail with the download link when it is done | Synchronous — one request, one answer |
| Cost | Identical. One credit per lookup either way, from the same balance. | |

## What a large job actually costs

Priced per lookup, not per seat and not per month. One name resolved is one credit, whether it
went through a file or the API, and the rate improves as the volume rises.

| Names | Cheapest published package that covers it, net |
|---|---|
| 10,000 | €16.99 |
| 100,000 | €99.00 |
| 500,000 | €299 |
| 10,000,000 | ask for a quote |

These are list prices on the default price set; some regions see a lower set, and the live page
renders whichever applies to the visitor. Current figures and the subscription option:
<https://gender-api.com/en/pricing>

**Two things worth doing before you buy, because both reduce what you pay:** de-duplicate the
list — the same first name twice costs two credits — and strip the rows you do not actually need
gendered. A name you never send is free, and on a real customer export those two steps often
remove a surprising share of the file.

## Your spreadsheet comes back as a spreadsheet

We do not read your data out, gender it and hand you a new file. We open your workbook, write the
new columns into it and give it back.

![A spreadsheet with the original ID, First Name, Last Name and Country columns untouched, and four new columns beside them: ga_first_name, ga_gender, ga_accuracy and ga_samples. Katharina resolves to female with accuracy 100 from 88 samples, Barbara to female with 98 from 3,709 samples, and Andrea in Italy to male with 100 from 65,535 samples.](https://gender-api.com/img/excel-and-csv/enriched-file.png)

*An enriched workbook. The original columns are exactly as they were; the new ones sit beside them.*

- Styles, number and date formats, formulas and merged cells are preserved — a date stays a date,
  and a formula is still a formula.
- Multi-sheet workbooks stay multi-sheet. The upload looks through every sheet, picks the first one
  with data, and lets you switch to another with a worksheet picker.
- The header row does not have to be row 1. It is detected, and if the detection is wrong you click
  the correct row in the preview grid.
- Free text above the table, a table starting in column C, sparse or duplicated column titles: all
  handled, because real exports look like that.

The columns added beside your data:

| Column | What is in it |
|---|---|
| `ga_gender` | The result. The labels are yours to choose — male/female/unknown, m/f, 1/2, or whatever your CRM already expects. |
| `ga_accuracy` | How one-sided the observed distribution is for this name, as a whole number from 0 to 100. (The API returns the same thing as a probability between 0 and 1.) Optional column. |
| `ga_samples` | How many observations that rests on. Optional column, and the one that makes the result auditable. |
| `ga_first_name` | The first name actually resolved — useful when the input was a full name or an e-mail address. Optional column. |

Upload assistant: <https://gender-api.com/en/genderize-excel-and-csv-files>

## Why the sample count matters more at scale

On ten names you can eyeball the results. On a million you cannot, so the question becomes which
rows you are willing to act on unchecked.

Because every row carries a probability and the number of observations behind it, you get to draw
that line yourself. A common one: accept anything from `ga_accuracy` 90 upwards with a decent
sample count, hold back the rest for a human or a neutral salutation. The alternative — one
confidence level applied to your whole database, chosen by somebody else — is how a list ends up
addressing people wrongly at scale.

![Five rows of an enriched file measured against a threshold of ga_accuracy 90 and ga_samples 50. Katharina, Barbara and Andrea clear it and are used as they are. A row at accuracy 61 with 42 samples and a row with no result at all fall below it and are held back for review.](https://gender-api.com/img/compare/bulk/fig2-threshold.svg)

*Illustrative threshold; the first three rows are the values from the file above.*

Note the two scales: the spreadsheet's `ga_accuracy` column is a whole number from 0 to 100, while
the API returns the same thing as a `probability` between 0 and 1.

Names the database cannot resolve leave the gender column empty rather than filled with a guess.
With 9,124,598 first names across 192 countries that is a small share of an ordinary list — but it
is a share you get to see.

If your list spans several countries, say so: the same name is not the same gender everywhere.
<https://gender-api.com/en/compare/gender-api-vs-chatgpt>

## Doing it in code

For continuous enrichment, the batch endpoint takes up to 100 names per request. The payload is a
bare JSON array:

```http
POST https://gender-api.com/v2/gender/by-first-name-multiple
[
    { "first_name": "Sandra", "country": "DE" },
    { "first_name": "Andrea", "country": "IT" }
]
```

Each entry answers independently, with its own probability, sample count and country — so a batch
is genuinely a batch, not a single answer applied to several names.

- Official clients for PHP, Python, Node, Java, Go, Ruby, Rust, Perl and .NET:
  <https://gender-api.com/en/clients>
- Full v2 reference, an OpenAPI description and a Postman collection:
  <https://gender-api.com/en/api-docs/v2>
- Prompt-ready implementation guide: <https://gender-api.com/skill.md>
- Ready-made integrations for Excel, Google Sheets, Shopify, HubSpot, Salesforce and Zapier:
  <https://gender-api.com/en/app-integrations>

## The procurement questions

A list of real customer names is personal data, and a large job usually needs signing off by
somebody who will ask about exactly this:

- A German company; all servers are located in Germany and the data is processed inside the EU.
- Uploaded files are stored encrypted and deleted after ten days — earlier if you delete them
  yourself.
- A data-processing agreement can be requested in the account.
- Server logs contain the submitted name and are kept for 14 days, for accounting reasons.
- Every purchase produces a proper VAT invoice, and EU VAT IDs are handled correctly.
- Credits from one-off packages do not expire, so a single large clean-up does not need a
  subscription.

Full picture: <https://gender-api.com/en/privacy-policy/overview>

## Frequently asked questions

**How many names can I process at once?**
Up to 10,000,000 rows in a single CSV file, up to 100,000 rows in a single Excel workbook, and 100
names per request over the API — with no ceiling on how many requests you make. Larger than that,
split the file or loop the API.

**What does a large gender lookup job cost?**
One lookup costs one credit, so the price is fixed before you start: the cheapest published package
covering 500,000 names is €299 net. Above the largest published package it becomes a quote rather
than a list price. You buy the credits up front, they do not expire, and every purchase produces a
VAT invoice.

**Do I need a developer?**
No. Upload the file, point at the column that holds the first names, and download the finished
file — no code involved. The API is there for the case where enrichment has to happen continuously
rather than once.

**Will my Excel file come back intact?**
Yes. Styles, number and date formats, formulas, merged cells and every other worksheet stay as they
were; the new columns are merged into your workbook rather than a fresh file being generated from
your data.

**What happens to rows the database cannot resolve?**
The gender column stays empty and the sample count tells you why. Nothing is guessed to fill a gap,
so you can filter those rows and decide what to do with them instead of discovering the guesses
later.

**Is a bulk upload GDPR compliant?**
It is a German company, all servers are located in Germany and the data is processed inside the EU.
Uploaded files are stored encrypted and deleted after ten days, and a data-processing agreement can
be requested in the account.

**Can I try it before paying?**
Yes — every account includes 100 free lookups per month, which is enough to run a sample of your
own list and check the results before you buy credits for the whole file.

## Start with a sample of your own list

100 free lookups a month, no credit card — enough to run a slice of the real file and check the
results before you buy for all of it: <https://gender-api.com/en/account/overview>

- Upload a CSV or Excel file: <https://gender-api.com/en/genderize-excel-and-csv-files>
- Pricing: <https://gender-api.com/en/pricing>
- Ask about a larger volume: <https://gender-api.com/en/contact>
