Countries

List or search countries

Changed on

Returns a paginated list of countries. Supports full-text search via q, per-property filter chains (e.g. ?region=Europe&landlocked=1), pagination via limit/offset, and response shaping via response_fields / response_fields_omit. Per-property filters use any searchable field name as a query parameter; see https://restcountries.com/docs#fields for the full list.

get/countries/v5

Request

Query parameters

qstring

Full-text search across every searchable property. Case-insensitive substring match.

limitinteger

Number of records to return. Defaults to 25; accepts an integer from 1 to 100 on the free plan, or up to 500 on paid plans. Non-integer or below-range values return HTTP 400; a value above your plan's ceiling but within the paid maximum (e.g. 200 on a free plan) returns HTTP 403 indicating it is valid only on paid plans. See https://restcountries.com/docs#pagination for details.

offsetinteger

Number of records to skip for pagination. Default 0.

response_fieldsstring

Comma-separated dot-path projection. Only the specified fields are returned. Example: names.common,codes.alpha_2,flag.emoji

response_fields_omitstring

Comma-separated dot-path blocklist. The specified fields are removed from the response. Useful for trimming heavy branches like names.translations.

prettyboolean

Set to true (a bare ?pretty, 1, or true) to pretty-print the JSON response; 0 or false keep it minified. Default is minified.

Response

Paginated list of countries.

Changes

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the // response's property pattern ^[a-z_]+\.[a-z0-9_]+$ was added for the status

    • info

      the // response's property pattern ^[a-z_]+\.[a-z0-9_]+$ was added for the status

    • info

      the // response's property pattern ^[a-z_]+\.[a-z0-9_]+$ was added for the status

    • info

      the // response's property pattern ^[a-z_]+\.[a-z0-9_]+$ was added for the status

    • info

      the // response's property pattern ^[a-z_]+\.[a-z0-9_]+$ was added for the status

    • info

      the // response's property pattern ^[a-z_]+\.[a-z0-9_]+$ was added for the status

    • breaking

      added to the //// response property oneOf list for the response status

    • breaking

      the //// response's property type changed from object to no type for status

    • warning

      removed the optional property ///// from the response with the status

    • warning

      removed the optional property ///// from the response with the status

    • warning

      removed the optional property ///// from the response with the status

    • warning

      removed the optional property ///// from the response with the status

    • warning

      removed the optional property ///// from the response with the status