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

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>.