Server Intelligence
For Developers.
Integrate RedM & FiveM server data directly into your applications. One endpoint to fetch configuration, dynamic variables, and player lists.
Getting an API Key
To start using the API, you'll need a unique API key. This key identifies your application and tracks your usage limits.
- Log in to your account.
- Navigate to the Dashboard.
- Click the "Create New Key" button.
- Copy your key immediately.
Note: Keys are only shown once. If you lose it, you'll need to generate a new one. Banned or restricted accounts cannot create new keys.
Authentication
All API requests require an API key. You can generate a key in your dashboard. Keys are prefixed with csl_.
Option 1: HTTP Header (Recommended)
Option 2: Query Parameter
Immediate Revocation: Our API uses Redis-backed authentication. When a key is revoked or an account is banned, access is terminated instantly across all endpoints.
Rate Limiting
Requests are limited based on your plan. If you exceed the limit, you will receive a 429 Too Many Requests response.
Response Headers
X-RateLimit-LimitMax requests per minuteX-RateLimit-RemainingRequests left in windowX-RateLimit-ResetTime until reset (ms)
Plan Limits
- Free10 req/min
- Pro20 req/min
- Advanced120 req/min
Server Lookup
Retrieves aggregated data for a specific server. Handles resolving CFX Server IDs (xxxxxx) and direct IP:Port addresses.
Resolution rules
- target accepts CFX ID, IP, Domain, or IP:Port
- If no port is provided, tries 30120 and 30110 over HTTP and HTTPS
- On connection timeout/unreachable, you may receive 504/502 responses
- Privacy note: private CFX listings may redact player names via the API; direct IP can include full names if allowed by the server
Request
HEADERS
x-api-keystring*RequiredQUERY PARAMS
targetstring*RequiredThe server identifier. Can be a 6-character ID (e.g., abcdef) or an IP:Port.
Interactive Playground
Example Response
{
"players": [
{ "endpoint": "1.2.3.4:30120", "id": 12, "name": "PlayerOne", "ping": 42 },
{ "endpoint": "1.2.3.4:30120", "id": 45, "name": "Developer", "ping": 10 }
],
"server": {
"hostname": "Official RedM RP Server",
"mapname": "Saint Denis",
"gametype": "Roleplay",
"sv_maxClients": 128,
"icon": "base64_data...",
"vars": {
"sv_projectName": "My Community",
"tags": "rdr3, rp, serious",
"banner_detail": "https://i.imgur.com/example.png"
}
}
}Code Examples
Curl
-H "x-api-key: csl_..."
Node.js
headers: { "x-api-key": "csl_..." }
});
const data = await res.json();
Python
headers = { "x-api-key": "csl_..." }
res = requests.get("https://.../api/lookup?target=xxxxxx", headers=headers)
data = res.json()
Handling Icons & Banners
Server icons are returned as Base64 strings, while banners are standard URLs. Here's how to display them.
Server Icon
The server.icon field contains the raw Base64 data. You must prepend the data URI scheme to display it.
// React / Next.js Example<img
src={`data:image/png;base64,${data.server.icon}`}
alt="Server Icon"
/>Server Banner
Banners are found in server.vars.banner_detail or server.vars.banner_connecting.
// React / Next.js Example<img
src={data.server.vars.banner_detail}
alt="Server Banner"
/>Error Codes
The API uses standard HTTP status codes to indicate the success or failure of requests.
| Code | Error | Description |
|---|---|---|
| 200 | OK | Request was successful. |
| 400 | Bad Request | Invalid request parameters (e.g., missing or malformed target). |
| 401 | Unauthorized | Missing, invalid, or expired API key. |
| 403 | Forbidden | Access denied (e.g., user is banned). |
| 429 | Too Many Requests | Rate limit exceeded. Check X-RateLimit-* headers. |
| 405 | Method Not Allowed | Only GET requests are supported for this endpoint. |
| 500 | Internal Error | Something went wrong on our end. |
| 502 | Bad Gateway | Target server is offline or unreachable. |
| 503 | Service Unavailable | API is currently under maintenance. |
| 504 | Gateway Timeout | Target server took too long to respond. |
System Status
Monitor API health and maintenance status via our public status endpoint. No API key required.
Secure & Private
API keys are securely hashed. We prioritize user privacy and data security.
Aggregated Data
We merge data from players.json, dynamic.json, and info.json into a single, clean response object.
Type-Safe
Consistent JSON structure regardless of the target server version or configuration.