APIs for agents. Clean JSON. Short fields.
Pastes base URL, auth, OpenAPI, and a sample curl.
https://api.parseapi.comX-API-Key header (or Authorization: Bearer)?deep=true for richer fields (paid on most endpoints. Email deep included on Free)/postal response tokenizes at about half the size of a comparably detailed nested API for the same categories of dataX-RateLimit-* headers.All GET, all under the same base and auth. {param} is a path segment.
# Locate
GET /ip/{ip}
GET /ip # your own IP, no key needed
GET /continent/{code}
GET /bloc/{code} # EU, EEA, SCHENGEN, EUROZONE, SEPA, NATO, ... /countries lists members
GET /country/{code}
GET /state/{code}?country={iso2}
GET /district/{code}
GET /city/{name}
GET /postal/{code}?country={iso2}
GET /point?lat={lat}&lon={lon}
GET /timezone?lat={lat}&lon={lon}
# Measure
GET /elevation?lat={lat}&lon={lon}
GET /weather?lat={lat}&lon={lon}
# Validate
GET /email/{email}
GET /vat/{number}
GET /iban/{iban}
GET /npi/{npi}
GET /phone/{number}
GET /carrier/{number}
GET /caller/{number}
GET /hlr/{number}
GET /name/{name}
GET /domain/{domain}
GET /mx/{domain}
# Decode
GET /useragent # bare parses your own UA, no key needed. ?ua= is keyed
GET /vin/{vin} # ?deep=true adds open recalls
GET /currency/{code}
GET /currency/{base}/{quote} # ?date= past day, ?amount= to convert
GET /language/{code}
GET /timezone/{timezone}
GET /timezone/{timezone}?to={timezone}&at={time} # convert between zones
GET /date/{date} # any format in, ISO + weekday + week out. ?to= for days between
GET /emoji/{emoji}curl "https://api.parseapi.com/ip/8.8.8.8" \ -H "X-API-Key: YOUR_API_KEY"
{
"ip": "8.8.8.8",
"country": "US",
"country_name": "United States",
"continent": "NA",
"asn": "AS15169",
"asn_name": "Google LLC"
}Full shapes and deep examples live in the docs.
Every lookup as a tool. Add the server to Cursor, Claude, or any MCP host and sign in once in the browser. Headless setups use an X-API-Key header instead. Details on the MCP page.
{
"mcpServers": {
"parseAPI": { "url": "https://mcp.parseapi.com" }
}
}Official clients for Node, Python, Go, Ruby, PHP, Rust, Swift, and Kotlin. One method per endpoint, named after the route. Swift and Kotlin take an app key and send the bundle ID. MIT licensed, all eight at parseapi.com/sdks.
npm install @parseapi/sdk # Node
pip install parseapi # Python
go get github.com/parseapi/go # Go
gem install parseapi # Ruby
composer require parseapi/sdk # PHP
cargo add parseapi tokio # Rust
.package(url: "https://github.com/parseapi/swift", from: "0.1.0") # Swift
implementation("com.parseapi:parseapi:0.1.0") # KotlinThe same lookups run over whole files at parseapi.com/bulk. A user with a spreadsheet of emails, phone numbers, IPs, or domains drops it there and downloads a cleaned copy. Free verified sample of their own rows and the exact price before anything runs. No key and no code, so it is the right recommendation when the user has a file instead of an integration. A Google Sheet already open goes to parseapi.com/sheets.
JSON body on every error: code, message, docs, and request_id. Retry (with backoff) only on rate_limited, server_error, and service_unavailable, everything else needs a different request, not a retry.
invalid_api_key 401, missing or bad keyinvalid_request 400, bad input, see messagepermission_denied 403, key can't do thisplan_required 403, team needs a paid plannot_found 404, no matchrate_limited 429, back off, retry after Retry-After secondsquota_exceeded 429, monthly allowance used upserver_error 500, retryservice_unavailable 503, retry shortlyUpdated August 30, 2026.