Developer API
The same intelligence that powers the site is available as a small REST surface: single-IP lookup, a JSON bulk proxy check route, key management, usage introspection and documented free proxy-list exports.
Authentication
Create a key in the API Console or with the key endpoint below. Send it
as either X-API-Key: mpc_live_… or Authorization: Bearer mpc_live_….
curl -X POST https://myproxychecker.com/api/v1/keys \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com","label":"production"}'
Keys are shown once, stored only as keyed hashes, and expose two daily usage buckets:
lookup for /v1/ip/{ip} and bulk for /v1/check.
Lookup one IP
curl https://myproxychecker.com/v1/ip/8.8.8.8 \
-H 'X-API-Key: mpc_live_xxx'
The response includes label, risk band, proxy/VPN/Tor flags, ASN/org and country. Rate headers are
returned on successful and failed calls: X-RateLimit-Limit,
X-RateLimit-Remaining and X-RateLimit-Reset.
python - <<'PY'
import requests
r = requests.get(
"https://myproxychecker.com/v1/ip/8.8.8.8",
headers={"X-API-Key": "mpc_live_xxx"},
timeout=20,
)
print(r.json())
PY
const res = await fetch("https://myproxychecker.com/v1/ip/8.8.8.8", {
headers: { "X-API-Key": "mpc_live_xxx" },
});
console.log(await res.json());
Bulk check proxies with JSON
POST /v1/check reuses the same proxy parser and check engine as the web app, but
returns one JSON payload instead of SSE. v1 intentionally does not support
judgeUrl.
curl -X POST https://myproxychecker.com/v1/check \
-H 'Content-Type: application/json' \
-H 'X-API-Key: mpc_live_xxx' \
-d '{
"proxies": [
"198.51.100.10:8080",
"socks5://203.0.113.12:1080"
],
"protocol": "auto"
}'
The response shape is { ok, meta, results[], summary }. Bulk quota is counted by
accepted proxy rows, not by request count.
Manage keys and usage
GET /v1/me— key details plus splitusage.lookupandusage.bulkGET /api/v1/usage— the same split usage view, without the key recordPOST /api/v1/keys/rotate— issue a new key and revoke the current oneDELETE /api/v1/keys/current— revoke the current key
Free proxy-list export docs
The list exports stay public but are documented separately so they can be cited and linked from other developer surfaces: Free Proxy List Export API.
Error model
Errors follow the same pattern everywhere: { ok:false, error:{ code, message } }.
Common codes include API_KEY_REQUIRED, API_KEY_INVALID,
INVALID_JSON, NO_PROXIES, TOO_MANY_PROXIES,
UNSUPPORTED_FIELD and QUOTA_EXCEEDED.
Machine-readable references
Download the current schema from /openapi.yaml and the AI-oriented site map from /llms.txt.
Frequently asked questions
Does the bulk JSON API support judge URLs?
No. POST /v1/check intentionally omits judgeUrl in v1 so the public developer surface stays a bounded proxy-diagnostics API instead of a more general relay.
How are lookup and bulk quotas counted?
Lookup quota counts individual IP lookups. Bulk quota counts accepted proxy rows processed by POST /v1/check, so a 10-proxy request consumes 10 bulk units.
Can I use Bearer auth instead of X-API-Key?
Yes. All authenticated API routes accept either X-API-Key: <key> or Authorization: Bearer <key>.