openapi: 3.0.0 info: description: 'Official OpenAPI Specification for IPinfo''s comprehensive IP intelligence API. This specification defines all endpoints for IP geolocation, ASN data, company information, privacy detection, and specialized data services. ## Authentication All endpoints support three authentication methods: - **HTTP Basic Auth**: Use your token as the username with empty password - **Bearer Token**: Include token in Authorization header - **Query Parameter**: Pass token as `?token=YOUR_TOKEN` [Learn more about authentication](https://ipinfo.io/developers#authentication) ## IPinfo API Tiers IPinfo offers three main API tiers with different feature sets: ### IPinfo Lite Lightweight IP geolocation with essential information including ASN details, country, and continent data. Perfect for basic geolocation needs with fast response times. Unlimited requests on paid plans. - Endpoints: `/lite/me`, `/lite/{ip}`, `/lite/{ip}/{field}` - Base URL: `https://api.ipinfo.io/` - [Documentation](https://ipinfo.io/developers/lite-api) ### IPinfo Core Comprehensive IP information with detailed geolocation data (city, region, coordinates, postal code, timezone), ASN information, and classification boolean flags (anycast, hosting, mobile, satellite). - Endpoints: `/lookup/me`, `/lookup/{ip}`, `/lookup/{ip}/{field}` - Base URL: `https://api.ipinfo.io/` - [Documentation](https://ipinfo.io/developers/core-api) ### IPinfo Plus All Core features plus mobile/carrier detection, anonymity analysis (VPN, proxy, Tor, relay detection), service identification, and extended geographic metadata. Ideal for security, fraud prevention, and advanced analytics. - Endpoints: `/plus/me`, `/plus/{ip}`, `/plus/{ip}/{field}` - Base URL: `https://api.ipinfo.io/` - [Documentation](https://ipinfo.io/developers/plus-api) ## Specialized Detection APIs ### Residential Proxy Detection Detect residential, mobile, and datacenter proxy IPs with activity insights, last seen dates, and proxy service identification. - Endpoints: `/{ip}/resproxy` - [Documentation](https://ipinfo.io/developers/residential-proxy-api) ### Privacy Detection Standard Detect VPNs, proxies, Tor exit nodes, relays, and hosting providers associated with an IP address. Returns core privacy signals including service provider identification. - Endpoints: `/{ip}/privacy` - [Documentation](https://ipinfo.io/developers/privacy-standard-api) ### Privacy Detection Extended Advanced anonymous IP detection with detailed methodologies, confidence metrics, and metadata for VPNs, proxies, Tor, hosting providers, and relays. - Endpoints: `/{ip}/privacy_extended` - [Documentation](https://ipinfo.io/developers/privacy-extended-api) ## Legacy API Products For backwards compatibility, legacy endpoints remain available: - [IP to Geolocation API](https://ipinfo.io/products/ip-geolocation-api) - Use Core or Plus instead - [IP to Privacy Detection API](https://ipinfo.io/products/proxy-vpn-detection-api) - Use Plus instead - [ASN API](https://ipinfo.io/products/asn-api) - `/AS{asn}` endpoint - [IP to Company API](https://ipinfo.io/products/ip-company-api) - `/{ip}/company` endpoint - [Hosted Domains API](https://ipinfo.io/products/reverse-ip-api) - `/domains/{ip}` endpoint - [IP to Phone Carrier Detection API](https://ipinfo.io/products/ip-carrier-api) - `/{ip}/carrier` endpoint - [IP to Abuse Contact API](https://ipinfo.io/products/ip-abuse-contact-api) - `/{ip}/abuse` endpoint - [IP WHOIS API](https://ipinfo.io/products/whois-api) - `/whois/*` endpoints ## Special Endpoints - **Token Info**: `/me` - View request limits and API access for your token - **Batch Requests**: `/batch` - Enrich multiple IPs in a single request - **IP Summarization**: `/tools/summarize-ips` - Analyze up to 500,000 IPs - **IP Mapping**: `/tools/map` - Visualize up to 500,000 IPs on an interactive map - **Single Field**: `/{ip}/{field}` - Get specific field values as plaintext ## Rate Limits - **IPinfo Lite**: Unlimited requests on paid plans - **Paid Plans**: Monthly request limits with configurable alerts and automatic metered billing - **Rate Limit Exceeded**: 429 HTTP status code when limit reached [View pricing and limits](https://ipinfo.io/pricing) ## Resources - **Developer Portal**: [https://ipinfo.io/developers](https://ipinfo.io/developers) - **API Libraries**: Official libraries for Python, Node.js, Java, Ruby, PHP, Go, and more - **Sign Up**: [Free account](https://ipinfo.io/signup) with up to 50,000 requests/month - **Community Support**: [https://community.ipinfo.io/](https://community.ipinfo.io/) - **Email Support**: support@ipinfo.io --- ' version: 1.0.0 title: IPinfo.io OpenAPI Specification abuse ipinfo plus API contact: name: IPinfo email: support@ipinfo.io url: https://ipinfo.io/ servers: - url: https://ipinfo.io/ - url: https://v6.ipinfo.io/ - url: https://api.ipinfo.io/ tags: - name: ipinfo plus description: IPinfo Plus API - Enhanced IP information service with mobile and anonymity detection. externalDocs: description: Find more info here url: https://ipinfo.io/products/plus paths: /plus/me: get: tags: - ipinfo plus summary: IPinfo Returns Plus IP Information About the Current IP description: 'Returns comprehensive plus IP information about the current IP including enhanced geolocation, ASN details, mobile/carrier information, anonymity detection, and various IP characteristics. ' operationId: getCurrentPlusInformation servers: - url: https://api.ipinfo.io/ - url: https://v4.api.ipinfo.io/ - url: https://v6.api.ipinfo.io/ security: - BasicAuth: [] - BearerAuth: [] - ApiKeyAuth: [] responses: '200': $ref: '#/components/responses/PlusResponse' '403': $ref: '#/components/responses/PlusForbidden' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /plus/{ip}: get: tags: - ipinfo plus summary: IPinfo Returns Plus IP Information About the Provided IP description: 'Returns comprehensive plus IP information about the provided IP including enhanced geolocation, ASN details, mobile/carrier information, anonymity detection, and various IP characteristics. ' operationId: getPlusInformationByIp servers: - url: https://api.ipinfo.io/ - url: https://v4.api.ipinfo.io/ - url: https://v6.api.ipinfo.io/ security: - BasicAuth: [] - BearerAuth: [] - ApiKeyAuth: [] parameters: - $ref: '#/components/parameters/Ip' responses: '200': $ref: '#/components/responses/PlusResponse' '400': $ref: '#/components/responses/PlusBadRequest' '403': $ref: '#/components/responses/PlusForbidden' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /plus/me/{field}: get: tags: - ipinfo plus summary: IPinfo Returns a Specific Field from Plus IP Information About the Current IP description: 'Returns a specific field from plus IP information about the current IP. ' operationId: getCurrentPlusField servers: - url: https://api.ipinfo.io/ - url: https://v4.api.ipinfo.io/ - url: https://v6.api.ipinfo.io/ security: - BasicAuth: [] - BearerAuth: [] - ApiKeyAuth: [] parameters: - $ref: '#/components/parameters/PlusField' responses: '200': $ref: '#/components/responses/PlusField' '403': $ref: '#/components/responses/PlusForbidden' '404': $ref: '#/components/responses/PlusInvalidField' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /plus/{ip}/{field}: get: tags: - ipinfo plus summary: IPinfo Returns a Specific Field from Plus IP Information About the Provided IP description: 'Returns a specific field from plus IP information about the provided IP. ' operationId: getPlusFieldByIp servers: - url: https://api.ipinfo.io/ - url: https://v4.api.ipinfo.io/ - url: https://v6.api.ipinfo.io/ security: - BasicAuth: [] - BearerAuth: [] - ApiKeyAuth: [] parameters: - $ref: '#/components/parameters/Ip' - $ref: '#/components/parameters/PlusField' responses: '200': $ref: '#/components/responses/PlusField' '400': $ref: '#/components/responses/PlusBadRequest' '403': $ref: '#/components/responses/PlusForbidden' '404': $ref: '#/components/responses/PlusInvalidField' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' components: responses: PlusInvalidField: description: Invalid field name error. content: application/json: schema: $ref: '#/components/schemas/PlusErrorInvalidField' PlusForbidden: description: Forbidden error (authentication issues). content: application/json: schema: $ref: '#/components/schemas/PlusErrorForbidden' InternalServerError: description: Internal server error or server unavailable. content: text/plain: schema: $ref: '#/components/schemas/Error500' PlusResponse: description: Plus response object. content: application/json: schema: $ref: '#/components/schemas/PlusResponse' PlusBadRequest: description: Bad request error (invalid IP format). content: application/json: schema: $ref: '#/components/schemas/PlusErrorBadRequest' PlusField: description: A specific field value from the plus response. content: text/plain: schema: type: string example: Toronto application/json: schema: type: object example: city: Toronto region: Ontario TooManyRequests: description: Allocated API rate limit has been reached for the token. The user will be prompted with options to increase their API limit. content: application/json: schema: $ref: '#/components/schemas/Error429' parameters: Ip: name: ip in: path description: A single IPv4 or IPv6 IP address. required: true schema: type: string PlusField: name: field in: path description: A specific field from the plus response or nested geo/as/mobile/anonymous fields. required: true schema: type: string enum: - ip - geo - geo/city - geo/region - geo/region_code - geo/country - geo/country_code - geo/continent - geo/continent_code - geo/latitude - geo/longitude - geo/timezone - geo/postal_code - geo/dma_code - geo/geoname_id - geo/radius - geo/last_changed - as - as/asn - as/name - as/domain - as/type - as/last_changed - mobile - mobile/name - mobile/mcc - mobile/mnc - anonymous - anonymous/name - anonymous/is_proxy - anonymous/is_relay - anonymous/is_tor - anonymous/is_vpn - is_anonymous - is_anycast - is_hosting - is_mobile - is_satellite schemas: Error500: type: string example: Internal server error Error429: type: object required: - title - message properties: title: type: string example: Rate limit exceeded message: type: string example: Upgrade to increase your usage limits at https://ipinfo.io/pricing, or contact us via https://ipinfo.io/support PlusErrorBadRequest: type: object required: - error properties: error: type: string example: Please provide a valid IP address PlusErrorForbidden: type: object required: - status - error properties: status: type: integer example: 403 error: type: object required: - title - message properties: title: type: string example: Unknown token message: type: string example: Please ensure you've entered your token correctly. Refer to https://ipinfo.io/developers for details, or contact us at support@ipinfo.io for help PlusErrorInvalidField: type: object required: - error properties: error: type: string example: invalid_field is not a valid field. PlusResponse: type: object required: - ip properties: ip: type: string example: 206.47.33.149 geo: type: object properties: city: type: string example: Toronto region: type: string example: Ontario region_code: type: string example: 'ON' country: type: string example: Canada country_code: type: string example: CA continent: type: string example: North America continent_code: type: string example: NA latitude: type: number example: 43.6561 longitude: type: number example: -79.3406 timezone: type: string example: America/Toronto postal_code: type: string example: M4M dma_code: type: string example: '57' geoname_id: type: string example: '6167865' radius: type: integer example: 50 last_changed: type: string format: date example: '2025-09-21' as: type: object properties: asn: type: string example: AS577 name: type: string example: Bell Canada domain: type: string example: bell.ca type: type: string example: isp last_changed: type: string format: date example: '2025-09-28' mobile: type: object properties: name: type: string example: Bell Mobility mcc: type: string example: '302' mnc: type: string example: '610' anonymous: type: object properties: name: type: string example: Google One VPN is_proxy: type: boolean example: false is_relay: type: boolean example: false is_tor: type: boolean example: false is_vpn: type: boolean example: false is_anonymous: type: boolean example: false is_anycast: type: boolean example: false is_hosting: type: boolean example: false is_mobile: type: boolean example: true is_satellite: type: boolean example: false securitySchemes: BasicAuth: type: http scheme: basic BearerAuth: type: http scheme: bearer ApiKeyAuth: type: apiKey in: query name: token externalDocs: description: IPinfo Developers Portal / Documentation url: https://ipinfo.io/developers