CountriesResponse
Two lists, deliberately not merged. `registrations` is measured volume and is comparable only among countries that publish counts. `attested_in` is presence, with no weight attached — a country appears there whether or not anyone counted it.
Properties
| Name | Type | Description |
|---|---|---|
| credits_charged | integer | How many credits this call took from the balance: always 1. |
| credits_remaining | integer | Balance once this call is paid for. |
| data_version | stringnull | Name-dataset snapshot that produced the answer. |
| request_id | stringnull | Identifier of this call, also sent as the `X-Request-Id` header. Quote it in support requests. |
| took_ms | integer | Whole milliseconds spent building the distribution on our side, network time excluded. |
| name | string | The name that was looked up. |
| basis | object | What the numbers rest on. Carried in the response rather than left to the documentation, because the person reading a percentage is not reading the docs. |
| registrations | array | Countries with counted registrations, most first, cut to `limit`. Shares are calculated across every counted country before the cut, so they sum to 100 only when nothing is cut. |
| attested_in | array | Every country the name occurs in, counted or not, alphabetically. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/namegender/main/json-schema/namegender-countries-response-schema.json",
"title": "CountriesResponse",
"description": "Two lists, deliberately not merged. `registrations` is measured volume and is comparable only among countries that publish counts. `attested_in` is presence, with no weight attached — a country appears there whether or not anyone counted it.",
"x-generated": "2026-10-06",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/namegender-api-openapi.json#/components/schemas/CountriesResponse",
"type": "object",
"properties": {
"credits_charged": {
"type": "integer",
"description": "How many credits this call took from the balance: always 1."
},
"credits_remaining": {
"type": "integer",
"description": "Balance once this call is paid for."
},
"data_version": {
"type": [
"string",
"null"
],
"description": "Name-dataset snapshot that produced the answer."
},
"request_id": {
"type": [
"string",
"null"
],
"description": "Identifier of this call, also sent as the `X-Request-Id` header. Quote it in support requests."
},
"took_ms": {
"type": "integer",
"description": "Whole milliseconds spent building the distribution on our side, network time excluded."
},
"name": {
"type": "string",
"description": "The name that was looked up."
},
"basis": {
"type": "object",
"description": "What the numbers rest on. Carried in the response rather than left to the documentation, because the person reading a percentage is not reading the docs.",
"properties": {
"counted_sources": {
"type": "array",
"items": {
"type": "string"
},
"description": "The statistical offices that publish observation counts."
},
"counted_countries": {
"type": "integer",
"description": "Countries with counted registrations for this name, before `limit` is applied. Can be larger than the length of `registrations`."
},
"attested_countries": {
"type": "integer",
"description": "Countries in `attested_in`, which `limit` never cuts."
},
"note": {
"type": "string",
"description": "Plain-language caveat. Show it next to the percentages."
}
}
},
"registrations": {
"type": "array",
"description": "Countries with counted registrations, most first, cut to `limit`. Shares are calculated across every counted country before the cut, so they sum to 100 only when nothing is cut.",
"items": {
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2."
},
"count": {
"type": "integer",
"description": "Observed registrations."
},
"share": {
"type": "number",
"format": "float",
"description": "This country's percentage of the name's registrations across all counting countries, including any that `limit` cut from the list."
},
"gender": {
"type": [
"string",
"null"
],
"description": "Majority gender for the name in this country."
},
"probability": {
"type": "integer",
"description": "Share, 0–100, carrying that gender in this country."
},
"source": {
"type": "string",
"description": "Statistical office the count comes from."
}
}
}
},
"attested_in": {
"type": "array",
"items": {
"type": "string"
},
"description": "Every country the name occurs in, counted or not, alphabetically."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/namegender-countries-response"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.