> ## Documentation Index
> Fetch the complete documentation index at: https://docs.greip.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Country Data

> This method allows you to retrieve detailed information about a country by providing its country code in the request.

The API returns valuable data, such as the country’s name, capital, population, region, and other relevant attributes, enabling you to enrich your applications with geographic context and enhance user experiences.

export const MCPCallout = () => {
  return <div class="callout my-4 px-5 py-4 overflow-hidden rounded-2xl flex gap-3 border border-[rgba(192, 132, 252, 0.2)] bg-[rgba(192, 132, 252, 0.1)] dark:border-[#c084fc4d] dark:bg-[#c084fc1a] text-[#6005BB] dark:text-[#FFFFFF]" data-callout-type="callout">
      <div class="mt-0.5 w-4" data-component-part="callout-icon">
        <svg class="h-4 w-4 !m-0 shrink-0 bg-[#c084fc] [mask-image:url('https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/duotone/fire.svg')] [-webkit-mask-image:url('https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/duotone/fire.svg')] [mask-repeat:no-repeat] [-webkit-mask-repeat:no-repeat] [mask-position:center] [-webkit-mask-position:center]"></svg>
      </div>
      <div class="text-sm prose dark:prose-invert min-w-0 w-full [&_kbd]:bg-background-light dark:[&_kbd]:bg-background-dark text-[#6005BB] dark:text-[#FFFFFF]" data-component-part="callout-content">
        <span data-as="p">
          Want to skip the docs? Use the{" "}
          <a class="link mint-text-xs border-[#C792FC]" href="/docs-mcp-server">
            <b>MCP Server</b>
          </a>
        </span>
      </div>
    </div>;
};

export const Availability = ({plan, color}) => {
  const colorMap = {
    green: "text-green-700 dark:text-green-400",
    blue: "text-blue-700 dark:text-blue-400",
    purple: "text-purple-700 dark:text-purple-400"
  };
  return <div dir="ltr" data-orientation="horizontal" class="p-4 px-5 mt-0 md:mt-4 flex flex-col sm:flex-row flex-wrap gap-2 relative overflow-hidden rounded-2xl border border-gray-950/10 dark:border-white/10 my-0 bg-gray-50 dark:bg-white/5 dark:codeblock-dark text-gray-950 dark:text-gray-50 codeblock-light text-sm prose prose-gray dark:prose-invert font-semibold no-wrap-words">
      Endpoint availability:{" "}
      <span class={` ${colorMap[color]} flex-1`}>{plan}</span>
      <a class="custom-link text-xs" href="https://greip.io/detailed-pricing">
        Learn more
      </a>
    </div>;
};

## Authentication

Include your API key in the `Authorization` header:

```http theme={null}
Authorization: Bearer <api_key>
```

API v2 accepts the key only in this header, not in query parameters or request bodies. See [Authentication](/authentication).

### Path parameters

<ParamField path="country_code" type="string" required placeholder="The country code">
  The `ISO 3166-1 alpha-2` format of the country code. [Learn more](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)

  Sample value: `GB`
</ParamField>

### Query parameters

<ParamField query="params" type="string" placeholder="The params you want to use">
  The params command is used to determine the data you need in the response.

  Expected values: `language`, `flag`, `currency`, and/or `timezone`.

  Sample value: `language,currency,timezone`
</ParamField>

<ParamField query="format" type="string" default="JSON" placeholder="Response format">
  The format command is used to get a response in a specific format.

  Expected values: `JSON`, `XML`, `CSV`, or `Newline`

  For more information please refer to [Response format](/options/response-format).
</ParamField>

<ParamField query="mode" type="string" default="live" placeholder="Environment">
  The mode command is used in the development stage to simulate the integration process before releasing it to the production environment.

  Expected values: `live`, or `test`.

  For more information please refer to [Development environment](/options/development-environment).
</ParamField>

<ParamField query="source" type="string" placeholder="Integration label">
  Optional label for your own analytics or support correlation (for example a product or channel name).
</ParamField>

<ParamField query="user_id" type="string" placeholder="User identifier">
  The user\_id command can be used to identify requests sent by specific users to monitor in the [Events page](/knowledge-base/events-and-alerts/overview).

  Expected values: email address, phone number, user id, name, etc.

  For more information please refer to [User identifier](/options/user-identifier).
</ParamField>

<Panel>
  <MCPCallout />

  <Availability plan="Standard and above" color="green" />

  <ResponseExample>
    ```json Success theme={null}

    {
      "success": true,
      "data": {
        "geo": {
          "continent": "North America",
          "continent_code": "NA",
          "continent_geo_name_id": 6255149,
          "country": "United States",
          "country_code": "US",
          "country_geo_name_id": 6252001,
          "capital": "Washington, D.C.",
          "population": 331002651,
          "phone": "1",
          "is_eu": false,
          "neighbours": "CA,MX,PM",
          "tld": ".us"
        },
        "language": {
          "name": "English",
          "code": "en",
          "native": "English"
        },
        "currency": {
          "name": "United States Dollar",
          "code": "USD",
          "symbol": "$"
        },
        "flag": {
          "emoji": "🇺🇸",
          "unicode": "U+1F1FA U+1F1F8",
          "png": {
            "1000px": "https://greip.io/img/flags/png1000px/us.png",
            "250px": "https://greip.io/img/flags/png250px/us.png",
            "100px": "https://greip.io/img/flags/png100px/us.png"
          },
          "svg": "https://greip.io/img/flags/svg/us.svg"
        },
        "custom_rules_applied": { "total": 0, "rules": [] }
      },
      "execution_ms": 0
    }

    ```

    ```json Error theme={null}
    {
      "success": false,
      "code": 101,
      "type": "invalid_key",
      "description": "The API Key is missing or invalid."
    }
    ```
  </ResponseExample>
</Panel>

### Response properties

<ResponseField name="success" type="boolean" required>
  `true` when the request succeeded; `false` on error.
</ResponseField>

<ResponseField name="data" type="object" required>
  <Expandable title="properties" defaultOpen={true}>
    <ResponseField name="geo" type="object" required>
      Core country attributes (always present when the country code is valid).

      <Expandable title="properties" defaultOpen={true}>
        <ResponseField name="continent" type="string">
          Localized continent name.
        </ResponseField>

        <ResponseField name="continent_code" type="string">
          Continent code.
        </ResponseField>

        <ResponseField name="continent_geo_name_id" type="integer">
          GeoName ID of the continent.
        </ResponseField>

        <ResponseField name="country" type="string">
          Localized country name.
        </ResponseField>

        <ResponseField name="country_code" type="string" required>
          ISO 3166-1 alpha-2 country code from the path.
        </ResponseField>

        <ResponseField name="country_geo_name_id" type="integer">
          GeoName ID of the country.
        </ResponseField>

        <ResponseField name="capital" type="string">
          Capital city.
        </ResponseField>

        <ResponseField name="population" type="integer">
          Population.
        </ResponseField>

        <ResponseField name="phone" type="string">
          International dialing code.
        </ResponseField>

        <ResponseField name="is_eu" type="boolean">
          Whether the country is in the EU.
        </ResponseField>

        <ResponseField name="neighbours" type="string">
          Comma-separated neighbour country codes.
        </ResponseField>

        <ResponseField name="tld" type="string">
          Country top-level domain (for example `.us`).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="language" type="object">
      Included when `params` contains `language`.

      <Expandable title="properties" defaultOpen={true}>
        <ResponseField name="name" type="string" />

        <ResponseField name="code" type="string" />

        <ResponseField name="native" type="string" />
      </Expandable>
    </ResponseField>

    <ResponseField name="flag" type="object">
      Included when `params` contains `flag`.

      <Expandable title="properties" defaultOpen={true}>
        <ResponseField name="emoji" type="string" />

        <ResponseField name="unicode" type="string" />

        <ResponseField name="png" type="object">
          <Expandable title="properties" defaultOpen={true}>
            <ResponseField name="1000px" type="string" />

            <ResponseField name="250px" type="string" />

            <ResponseField name="100px" type="string" />
          </Expandable>
        </ResponseField>

        <ResponseField name="svg" type="string" />
      </Expandable>
    </ResponseField>

    <ResponseField name="currency" type="object">
      Included when `params` contains `currency`.

      <Expandable title="properties" defaultOpen={true}>
        <ResponseField name="name" type="string" />

        <ResponseField name="code" type="string" />

        <ResponseField name="symbol" type="string" />
      </Expandable>
    </ResponseField>

    <ResponseField name="custom_rules_applied" type="object">
      Custom rules metadata (same shape as other geo endpoints).

      <Expandable title="properties" defaultOpen={true}>
        <ResponseField name="total" type="integer" />

        <ResponseField name="rules" type="array" />
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="execution_ms" type="integer" required>
  Time taken to process the request (milliseconds).
</ResponseField>


## OpenAPI

````yaml openapi/v2.json GET /lookup/countries/{country_code}
openapi: 3.0.3
info:
  title: Greip API v2 (docs playground)
  version: 2.0.0
servers:
  - url: https://v2.greipapi.com
security: []
paths:
  /lookup/countries/{country_code}:
    get:
      summary: Country data
      operationId: lookupCountry
      parameters:
        - name: country_code
          in: path
          required: true
          schema:
            type: string
        - name: params
          in: query
          required: false
          schema:
            type: string
        - name: format
          in: query
          schema:
            type: string
            default: JSON
        - name: mode
          in: query
          schema:
            type: string
            default: live
        - name: source
          in: query
          schema:
            type: string
        - name: user_id
          in: query
          schema:
            type: string
      responses:
        '200':
          description: OK
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.