Nationalize.io Nationality API

Operations for predicting nationality from names

Operations 1

GET / Predict nationality from name #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/nationalize-nationality-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

nationalize-nationality-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Nationalize.io Nationality API
  description: Free REST API that predicts the nationality of a person based on their first name using probabilistic models derived from a dataset of approximately one billion people spanning 250 countries and territories. Accepts single or batched names (up to 10), handles diacritics automatically, and returns ranked country probabilities as JSON using ISO 3166-1 alpha-2 codes. The same API key works across all three Demografix services (Genderize, Agify, Nationalize).
  version: 1.0.0
  termsOfService: https://nationalize.io/legal/terms-and-conditions
  contact:
    url: https://nationalize.io
servers:
- url: https://api.nationalize.io
  description: Production server
tags:
- name: Nationality
  description: Operations for predicting nationality from names
paths:
  /:
    get:
      operationId: predictNationality
      summary: Predict nationality from name
      description: Predicts the nationality of one or more people based on their names, returning ranked country probabilities drawn from a dataset of approximately one billion people. Supports single name lookups, batched requests of up to 10 names, full name parsing, and diacritics handling. Results are returned as ISO 3166-1 alpha-2 country codes paired with probability scores, up to five countries per name.
      parameters:
      - name: name
        in: query
        required: true
        description: A single name to predict nationality for. For batched lookups use the array form `name[]` repeated up to 10 times. Last names carry the strongest nationality signals; full names are also accepted and parsed automatically.
        schema:
          type: string
          example: nguyen
      - name: name[]
        in: query
        required: false
        description: Batch form of the name parameter. Repeat up to 10 times to look up multiple names in a single request. Each name counts individually toward the monthly usage limit.
        schema:
          type: array
          items:
            type: string
          maxItems: 10
          example:
          - anna
          - john
          - kim
        style: form
        explode: true
      - name: apikey
        in: query
        required: false
        description: API authentication key. Required for paid plans and to track usage. Obtain at https://nationalize.io/login. The same key works across Genderize, Agify, and Nationalize.
        schema:
          type: string
          example: your_api_key_here
      responses:
        '200':
          description: Nationality prediction result. Returns a single object for a single name lookup, or an array of objects for a batched request.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/NationalityResult'
                - type: array
                  items:
                    $ref: '#/components/schemas/NationalityResult'
              examples:
                single:
                  summary: Single name lookup
                  value:
                    name: nguyen
                    country:
                    - country_id: VN
                      probability: 0.561
                    - country_id: US
                      probability: 0.035
                    - country_id: AU
                      probability: 0.021
                    - country_id: CA
                      probability: 0.016
                    - country_id: FR
                      probability: 0.012
                    count: 360408
                not_found:
                  summary: Name not found in dataset
                  value:
                    name: zzzzunknown
                    country: null
                    count: 0
                batch:
                  summary: Batched name lookup
                  value:
                  - name: anna
                    country:
                    - country_id: FI
                      probability: 0.083
                    - country_id: PL
                      probability: 0.079
                    - country_id: SE
                      probability: 0.071
                    - country_id: 'NO'
                      probability: 0.063
                    - country_id: DK
                      probability: 0.058
                    count: 1234567
                  - name: john
                    country:
                    - country_id: US
                      probability: 0.288
                    - country_id: GB
                      probability: 0.195
                    - country_id: AU
                      probability: 0.072
                    - country_id: CA
                      probability: 0.065
                    - country_id: IE
                      probability: 0.042
                    count: 987654
        '402':
          description: Payment Required. The monthly request quota has been exceeded on the free tier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: Request limit reached
        '422':
          description: Unprocessable Entity. The request is missing required parameters or contains invalid input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: Missing 'name' parameter
        '429':
          description: Too Many Requests. Monthly usage limit exceeded. Resets at the start of the next billing cycle.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: Request limit reached
      tags:
      - Nationality
components:
  schemas:
    CountryProbability:
      type: object
      description: A country prediction with its associated probability score
      properties:
        country_id:
          type: string
          description: ISO 3166-1 alpha-2 country code
          pattern: ^[A-Z]{2}$
          example: VN
        probability:
          type: number
          format: double
          description: Confidence score for this nationality, between 0 and 1. The sum of all probabilities in the array may be less than 1 as only the top five results are returned.
          minimum: 0
          maximum: 1
          example: 0.561
      required:
      - country_id
      - probability
    NationalityResult:
      type: object
      description: Nationality prediction for a single name
      properties:
        name:
          type: string
          description: The input name as submitted in the request
        country:
          description: Ranked list of up to five predicted nationalities with probability scores. Null when the name is not found in the dataset after all matching attempts (direct match, diacritics removal, full name parsing).
          oneOf:
          - type: array
            items:
              $ref: '#/components/schemas/CountryProbability'
            maxItems: 5
          - type: 'null'
        count:
          type: integer
          description: Number of data points used in the prediction
          minimum: 0
          example: 360408
      required:
      - name
      - country
      - count
    ErrorResponse:
      type: object
      description: Error response from the API
      properties:
        error:
          type: string
          description: Human-readable error message describing the problem
      required:
      - error
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: apikey
      description: API key obtained from https://nationalize.io/login. The same key is shared across all three Demografix services (Genderize, Agify, Nationalize).