Skip to main contentSkip to footer

Authentication

The ReportedIP API uses API key authentication to identify callers and enforce rate limits. Some public endpoints work without authentication, but an API key unlocks higher limits and additional features.

API Key Authentication

Include your API key in every authenticated request. There are two methods — the X-Key header is recommended because it keeps your key out of server access logs.

Method 1: X-Key Header (Recommended)

curl
curl -H "X-Key: YOUR_API_KEY" \
     "https://reportedip.de/wp-json/reportedip/v2/check?ip=1.2.3.4"

Method 2: Query Parameter

curl
curl "https://reportedip.de/wp-json/reportedip/v2/check?ip=1.2.3.4&key=YOUR_API_KEY"
Security note: Avoid the query parameter method in production. Query strings may be logged by web servers, proxies, and browser history. Use the X-Key header instead.

Getting Your API Key

Follow these three steps to obtain your API key:

1

Create an Account

Register for free at reportedip.de/register and verify your email address.

2

Open Your Dashboard

After logging in, navigate to your Dashboard.

3

Generate API Key

Click "Generate API Key" to create your key. Copy it immediately — it will only be shown once.

User Roles & Permissions

Your API key is tied to your user role. Each role has different rate limits and feature access. You start with the Free role upon registration.

Role Checks / Day Reports / Day Features
Public (no key) 100 (per IP) check-public only
Free 1,000 50 Check, Report, Verify
Contributor 5,000 200 Check, Report, Verify
Professional 25,000 1,000 + Bulk Check, Trends, Reports
Enterprise Unlimited Unlimited + Bulk Report, White-Label
Honeypot Unlimited Unlimited Automated Systems

Rate Limits

Every API response includes rate limit headers so you can track your usage in real time. When you exceed your limit, the API responds with 429 Too Many Requests.

Header Description
X-RateLimit-Limit Maximum number of requests allowed per day
X-RateLimit-Remaining Requests remaining in the current window
X-RateLimit-Reset UTC epoch timestamp when the limit resets
Retry-After Seconds to wait before retrying (only on 429 responses)

Example Response Headers

http
HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 742
X-RateLimit-Reset: 1711929600
Content-Type: application/json; charset=UTF-8

Hybrid Authentication

Public endpoints like /check-public, /search-public, and /stats-public work without any authentication. However, they accept an optional API key to unlock higher rate limits.

curl
# Without API key — 100 requests/day per IP
curl "https://reportedip.de/wp-json/reportedip/v2/check-public?ip=1.2.3.4"

# With API key — uses your role's daily limit
curl -H "X-Key: YOUR_API_KEY" \
     "https://reportedip.de/wp-json/reportedip/v2/check-public?ip=1.2.3.4"
Tip: If you only need basic lookups and stay under 100 requests/day, you can skip authentication entirely using the public endpoints.

Error Responses

Authentication errors return standard JSON responses. Always check meta.success and the HTTP status code.

401 Unauthorized

Returned when the API key is missing or invalid.

401 Unauthorized
json
{
  "meta": {
    "success": false,
    "code": 401,
    "message": "Invalid or missing API key."
  },
  "data": null
}

403 Forbidden

Returned when your role does not have permission for the requested endpoint.

403 Forbidden
json
{
  "meta": {
    "success": false,
    "code": 403,
    "message": "Your role does not have access to this endpoint."
  },
  "data": null
}

429 Too Many Requests

Returned when you have exceeded your daily rate limit.

429 Too Many Requests
json
{
  "meta": {
    "success": false,
    "code": 429,
    "message": "Rate limit exceeded. Try again later."
  },
  "data": {
    "retryAfter": 3600
  }
}

Best Practices

1

Cache Responses

IP reputations do not change every second. Cache check results for at least 15 minutes to reduce API calls and stay within your rate limit.

2

Use Exponential Backoff

If you receive a 429 response, wait for the duration specified in the Retry-After header. Do not retry immediately.

3

Choose the Right Role

Start with the Free tier. If you need bulk operations or higher limits, upgrade to Professional or Enterprise.

4

Keep Your Key Secret

Never expose your API key in client-side code, public repositories, or URLs. Use environment variables and the X-Key header.

Security Focused
GDPR Compliant
Made in Germany
Back to Docs