# IP Address API (ip.app)

> Free, zero-auth API that returns the caller's public IP address, ASN, geolocation, timezone, user-agent, request headers, and connection security details. Supports plain text, JSON, Markdown, and HEAD (response-header-only) responses. Every response carries `x-ipapp-ip` and `x-ipapp-ip-version` HTTP headers so the IP can be retrieved with a single HEAD request.

> **No ads, trackers, or weird requirements!**

## Endpoints

- [GET /](https://ip.app/): Public IP address (IPv4 or IPv6)
- [GET /asn](https://ip.app/asn): Autonomous System Number and organization
- [GET /headers](https://ip.app/headers): HTTP request headers echoed back
- [GET /loc](https://ip.app/loc): IP-based geolocation (city, region, country, coordinates, EU flag)
- [GET /sec](https://ip.app/sec): TLS version / cipher, HTTP protocol, TCP RTT, bot detection
- [GET /tz](https://ip.app/tz): IANA timezone
- [GET /ua](https://ip.app/ua): User-Agent
- [GET /whereami](https://ip.app/whereami): Mozilla Location Service-compatible coordinates

## Machine-readable specification

- [OpenAPI 3.1 (YAML)](https://ip.app/openapi.yaml): Full API contract
- [OpenAPI 3.1 (JSON)](https://ip.app/openapi.json): Same spec in JSON

## Content negotiation

- Default: `text/plain`
- JSON: `Accept: application/json`, `Content-Type: application/json`, `?json=1`, or `?format=json`
- Markdown (docs only, on `/`): `Accept: text/markdown` or `?format=md`
- HTML (docs only, on `/`): `Accept: text/html`

## Methods

All endpoints accept `GET`, `POST`, and `HEAD`. POST bodies are ignored.

## Optional

- [Documentation (HTML)](https://ip.app/): Human-readable docs rendered from the README
- [Author](https://fili.com/): Technical SEO consultant and ex-Google engineer Fili
- [Disclaimer](https://fili.com/d/): Use at your own risk
