---
title: "Returns information about the provided IP."
method: GET
path: "/{ip}"
tags: ["general"]
---

# Returns information about the provided IP.

`GET /{ip}`

## Request

- Base URL: `https://ipinfo.io`
- URL: `https://ipinfo.io/{ip}`
- Auth: one of:
  - HTTP basic
  - HTTP bearer
  - API key in query parameter `token`
- TypeScript: <https://skmtc.dev/ipinfo/apis/ipinfo-io-openapi-specification/docs/:ip/get.ts> (a function with typed inputs; its response is checked against the schema)

The ipinfo.io/{ip} endpoint provides comprehensive information about a specified IP address, including geographic location (city, region, country), coordinates, postal code, and timezone.
Based on the pricing tier, it also provides ASN (Autonomous System Number) details, associated company information, privacy settings (e.g., VPN, proxy usage), abuse contact information, and hosted domains associated with the IP.
This endpoint is useful for applications needing detailed IP intelligence, such as identifying geographic origin, privacy status, and potential abuse reporting information.

## Path parameters

- `ip` string, required

## Response `200`

Full response object.

- FullResponse
  - `ip` string, required
  - `bogon` boolean
  - `hostname` string
  - `city` string
  - `region` string
  - `country` string
  - `loc` string
  - `postal` string
  - `timezone` string
  - `org` string
  - `asn` AsnResponse
    - `asn` string, required
    - `name` string, required
    - `country` string
    - `allocated` string, date
    - `registry` 'arin' | 'ripe' | 'apnic' | 'lacnic' | 'afrinic'
    - `domain` string, required
    - `num_ips` integer
    - `route` string
    - `type` 'isp' | 'business' | 'education' | 'hosting' | 'government', required
    - `prefixes` Prefix[]
      - `netblock` string, required
      - `id` string, required
      - `name` string, required
      - `country` string, required
      - `size` string
      - `status` string
      - `domain` string, nullable
      - `rpki_status` 'valid' | 'invalid' | 'unknown'
    - `prefixes6` Prefix6[]
      - `netblock` string, required
      - `id` string, required
      - `name` string, required
      - `country` string, required
      - `size` string
      - `status` string
      - `domain` string
      - `rpki_status` 'valid' | 'invalid' | 'unknown'
    - `peers` string[]
    - `upstreams` string[]
    - `downstreams` string[]
  - `company` CompanyResponse
    - `name` string, required
    - `domain` string, required
    - `type` 'isp' | 'business' | 'education' | 'hosting' | 'government', required
  - `carrier` CarrierResponse
    - `name` string, required
    - `mcc` string, required
    - `mnc` string, required
  - `privacy` PrivacyResponse
    - `vpn` boolean, required
    - `proxy` boolean, required
    - `tor` boolean, required
    - `hosting` boolean, required
    - `relay` boolean, required
    - `service` string, required
  - `domains` DomainsResponse
    - `ip` string
    - `page` integer
    - `total` integer, required
    - `domains` string[]

## Other responses

- `400`: If users try to access a field type that does not exist or do not have permissions to access it, they will encounter a wrong module or field type error.
- `403`: Unknown token or invalid permission. We return the same error for blocking malicious IP addresses as well.
- `404`: Wrong ip. Please provide a valid IP address.
- `429`: Allocated API rate limit has been reached for the token. The user will be prompted with options to increase their API limit.
- `500`: Internal server error or server unavailable.

---

[API](https://skmtc.dev/ipinfo/apis/ipinfo-io-openapi-specification.md) - [All operations](https://skmtc.dev/ipinfo/apis/ipinfo-io-openapi-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/ipinfo/apis/ipinfo-io-openapi-specification/revisions/c63f11e4f26e?raw)
