APIs for tool calling. 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 /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 /elevation?lat={lat}&lon={lon}
GET /weather?lat={lat}&lon={lon}
# Validate
GET /email/{email}
GET /phone/{number}
GET /domain/{domain}
GET /mx/{domain}
# Decode
GET /useragent # bare parses your own UA, no key needed. ?ua= is keyed
GET /currency/{code}
GET /currency/{base}/{quote}
GET /language/{code}
GET /timezone/{timezone}
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. Details on the MCP page.
{
"mcpServers": {
"parseapi": {
"url": "https://mcp.parseapi.com",
"headers": { "X-API-Key": "YOUR_API_KEY" }
}
}
}Official, typed clients for Node, Python, Go, Ruby, PHP, and Rust. One method per endpoint, named after the route. MIT licensed, source on GitHub.
npm install parseapi # Node / TypeScript pip install parseapi # Python go get github.com/parseapi/parseapi-go gem install parseapi # Ruby composer require parseapi/parseapi cargo add parseapi tokio # Rust
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 9, 2026.