← Home
⌕
Ask on Discord
General ER:LC FiveM API
Developers
DOCUMENTATION/API v1 reference

API v1: events

Reference for GET /v1/events and the list of event types, with the scope of each one.

Event polling. Every route hangs off https://api.blixye.com/v1 and carries the key in the Authorization header (see Keys and scopes). This page is generated from the API's OpenAPI specification; if it is not here, the API does not do it.
NOTE Event polling. Every route hangs off https://api.blixye.com/v1 and carries the key in the Authorization header (see Keys and scopes). This page is generated from the API's OpenAPI specification; if it is not here, the API does not do it.
NOTE
GET /events: Poll events (depends on the type)
Poll events
NOTE Poll events
GET /events. The same events as the webhooks (same envelope and id), oldest first. Only the event types covered by the scopes of the key are returned (each type belongs to the read scope of its resource; see the webhooks section). Always store meta.next_cursor and send it as ?cursor= on the next poll. Without a cursor, polling starts 30 days back. Scope: the read scope of each event type's resource (see the list below).
NOTE GET /events. The same events as the webhooks (same envelope and id), oldest first. Only the event types covered by the scopes of the key are returned (each type belongs to the read scope of its resource; see the webhooks section). Always store meta.next_cursor and send it as ?cursor= on the next poll. Without a cursor, polling starts 30 days back. Scope: the read scope of each event type's resource (see the list below).
Parameters:
NOTE Parameters:
NOTE
limit (query; integer, 1-100, default 25, optional): Page size (1-100).
cursor (query; string, optional): The meta.next_cursor of the previous page.
types (query; string, optional): Comma-separated event types to return.
curl "https://api.blixye.com/v1/events?limit=25" \ -H "Authorization: Bearer bx_live_…"
curl "https://api.blixye.com/v1/events?limit=25" \ -H "Authorization: Bearer bx_live_…"
NOTE curl "https://api.blixye.com/v1/events?limit=25" \ -H "Authorization: Bearer bx_live_…"
Response 200: A page of events.
NOTE Response 200: A page of events.
{ "data": [ { "id": "evt_3tq0vJ1c9Ydl2Hk7WqPzEw", "type": "call.created", "created_at": "2026-09-27T18:04:05Z", "data": { "call_id": "cal_3tq0vJ1c9Ydl2Hk7WqPzEw", "call_number": "C-000142", "priority": 3, "status": "pending", "origin": "api" } } ], "meta": { "next_cursor": "cur_3tq0vJ1c9Ydl2Hk7WqPzEw" } }
{ "data": [ { "id": "evt_3tq0vJ1c9Ydl2Hk7WqPzEw", "type": "call.created", "created_at": "2026-09-27T18:04:05Z", "data": { "call_id": "cal_3tq0vJ1c9Ydl2Hk7WqPzEw", "call_number": "C-000142", "priority": 3, "status": "pending", "origin": "api" } } ], "meta": { "next_cursor": "cur_3tq0vJ1c9Ydl2Hk7WqPzEw" } }
NOTE { "data": [ { "id": "evt_3tq0vJ1c9Ydl2Hk7WqPzEw", "type": "call.created", "created_at": "2026-09-27T18:04:05Z", "data": { "call_id": "cal_3tq0vJ1c9Ydl2Hk7WqPzEw", "call_number": "C-000142", "priority": 3, "status": "pending", "origin": "api" } } ], "meta": { "next_cursor": "cur_3tq0vJ1c9Ydl2Hk7WqPzEw" } }
Errors (the format is in Errors):
NOTE Errors (the format is in Errors):
NOTE
400: Malformed request (invalid limit, cursor, JSON, Idempotency-Key, or an API key sent in the URL).
401: Missing, invalid, revoked or expired API key (codes missing_api_key, invalid_api_key, api_key_revoked, api_key_expired).
403: The key lacks a scope (missing_scope), the IP is not allowed (ip_not_allowed), the server's plan has no API (plan_required) or an MDT module is off (module_off).
429: Too many requests for this API key (the limit is per key and per minute, by plan). Too many failed authentications from one IP also give a 429.
Event types
NOTE Event types
There are 30 types. Each one belongs to the read scope of its resource: a key only sees them in GET /v1/events, and can only subscribe a webhook to them, if it has that scope. The same types arrive by webhook (see Webhooks).
NOTE There are 30 types. Each one belongs to the read scope of its resource: a key only sees them in GET /v1/events, and can only subscribe a webhook to them, if it has that scope. The same types arrive by webhook (see Webhooks).
NOTE
call.created (dispatch:read): A call was created (MDT, civilian phone, ER:LC import or the API).
call.updated (dispatch:read): A call was edited. `changed` lists the fields that changed.
call.closed (dispatch:read): A call was closed, with its disposition.
call.unit_assigned (dispatch:read): A unit was assigned to a call.
call.unit_unassigned (dispatch:read): A unit was removed from a call.
unit.status_changed (units:read): A unit changed status (available, en_route, on_scene, busy, off_duty).
citation.created (records:read): A citation was issued.
citation.paid (records:read): A citation was marked as paid.
arrest.created (records:read): An arrest was booked.
warrant.created (records:read): A warrant was requested.
warrant.approved (records:read): A warrant was approved.
warrant.denied (records:read): A warrant was denied.
warrant.executed (records:read): A warrant was executed.
character.created (characters:read): A character (and its ID card) was created.
character.updated (characters:read): A character's ID card was edited.
character.deleted (characters:read): A character was deleted by staff.
character.frozen (characters:read): A character was frozen by staff.
character.unfrozen (characters:read): A character was unfrozen by staff.
vehicle.purchased (vehicles:read): A character bought or received a vehicle.
member.banned (moderation:read): A member was banned from the server.
member.unbanned (moderation:read): A member was unbanned.
sanction.created (moderation:read): A moderation sanction was issued.
sanction.updated (moderation:read): A moderation sanction was edited.
sanction.revoked (moderation:read): A moderation sanction was revoked.
erlc.session_created (erlc:read): An ER:LC session was scheduled or opened.
erlc.session_status_changed (erlc:read): An ER:LC session changed status (`from` → `to`).
job.hired (corporations:read): A character joined a corporation.
job.rank_changed (corporations:read): A character's rank changed.
job.status_changed (corporations:read): A character's membership status changed (active, suspended, on_leave).
job.fired (corporations:read): A character left or was removed from a corporation.
The event envelope
NOTE The event envelope
It is the same in polling and in the webhook, with the same id: use it to avoid processing the same event twice. data only carries opaque ids and what changed; fields that do not apply to a type are left out. This is a call.created for a call created through the API:
NOTE It is the same in polling and in the webhook, with the same id: use it to avoid processing the same event twice. data only carries opaque ids and what changed; fields that do not apply to a type are left out. This is a call.created for a call created through the API:
{ "id": "evt_3tq0vJ1c9Ydl2Hk7WqPzEw", "type": "call.created", "created_at": "2026-09-27T18:04:05Z", "data": { "call_id": "cal_3tq0vJ1c9Ydl2Hk7WqPzEw", "call_number": "C-000142", "priority": 3, "status": "pending", "origin": "api" } }
{ "id": "evt_3tq0vJ1c9Ydl2Hk7WqPzEw", "type": "call.created", "created_at": "2026-09-27T18:04:05Z", "data": { "call_id": "cal_3tq0vJ1c9Ydl2Hk7WqPzEw", "call_number": "C-000142", "priority": 3, "status": "pending", "origin": "api" } }
NOTE { "id": "evt_3tq0vJ1c9Ydl2Hk7WqPzEw", "type": "call.created", "created_at": "2026-09-27T18:04:05Z", "data": { "call_id": "cal_3tq0vJ1c9Ydl2Hk7WqPzEw", "call_number": "C-000142", "priority": 3, "status": "pending", "origin": "api" } }
← Previous
API v1: ER:LC sessions
Next →
API v1: webhooks
48 / 54 Something missing here →
STEP 1 · PLAN ×
Pick your server's plan
After payment you name it and we configure it together. You can change plan whenever you like.
FREE1 OF 1 LEFT Up to 500 characters and basic CAD. To try it. 0 €
PLUSMONTHLY Full CAD, moderation, activity and economy. 5,99 €
PREMIUMER:LC & FIVEM Everything in PLUS, FiveM included and higher limits. 12,99 €
ENTERPRISEPERMANENT All of PREMIUM forever, self-hosted, never a fee. Contact
Continue to payment
Cancel any time · 14-day withdrawal right, unless you ask to start straight away
Confirm and pay
ER:LC PREMIUM
Monthly · one licence
12,99 €
EMAIL
CARD
Back
In development — unavailable
Blixye is in development: services can’t be purchased yet.Secure payment · VAT included
Name your server
This is the name your players see in the launcher and on Discovery. You can change it whenever.
SERVER NAME
It gets a short code, like SKY-T2Q, to link the launcher.
NEXT Once created we open the setup guide: launcher, Discord and modules in three steps.
Back
Create the server
Type at least 3 characters.
STEP 1 OF 3 · GUIDE ×
1. Send your people the launcher
It is the only thing they install, and only once. They sign in with Discord, we verify their Roblox account and the overlay shows over the session.
Go to the download
2. Create your departments
Police, sheriff, fire or whatever you run. Each with its ranks and permissions: that decides who can punish, clock in or read records.
3. Open the server
With the first duty shift the calls, activity and economy start filling up. From there you just tune it.
Back
Next
⌕ ESC
In-game overlay Radio, sheet and dispatch over the session, no alt-tab. ER:LC CAD and departments Queued calls, units with status and rosters with ranks. ER:LC Moderation and appeals Punishments with context, logs and appeals that do not get lost. ER:LC Staff activity Quotas per rank, shifts and an automatic weekly report. ER:LC Economy and businesses Accounts, payroll, player businesses and inventory. ER:LC Blixye Framework The core: characters, permissions, database and QBCore and ESX bridge. FiveM Inventory Weight, containers and safe player trades. FiveM Police MDT Records, fines, warrants and plate lookups. FiveM Banking Accounts, transfers, payroll and business accounts. FiveM Jobs Shifts, payroll and per-company hierarchy. FiveM Garages Vehicle ownership, persistent damage and impound. FiveM Housing Buying, renting, furniture and personal storage. FiveM Phone Messages, calls, apps and in-world socials. FiveM EMS Per-limb injuries, treatment and a hospital with beds. FiveM All the scripts All eight scripts unlimited, as a permanent purchase or a subscription. FiveM Install Blixye on ER:LC From an empty server to the first duty shift, without touching a game file. Docs Install the FiveM framework The zip, the SQL and your current base bridge, in the right order. Docs Your first week What to set up each day so you do not end up with twenty half-done things. Docs CAD and dispatch Calls, units and priorities inside the overlay. Docs Moderation and appeals Punishments with evidence, appeals and the log that covers you. Docs Activity and shifts Hours, quotas and who is really patrolling. Docs Scripts and free version What each script free version limits and what the full one opens. Docs QBCore and ESX bridge Living with your current base without duplicating players or money. Docs Performance Where to look when the server stutters. Docs
Nothing by that name. Try “inventory”, “CAD” or “licences”.
↵ open CTRL K search 37 results
ROTATE THE KEY ×
! The current key stops working the moment you confirm. This cannot be undone.
current key → new key on confirm
Paste the new key into the script config.
Restart the resource: refresh and ensure.
Until you do, the script will not load.
Yes, rotate the key Cancel
What each plan includes ×
FREE
DISCORD
PLUS
PREMIUM
ENTERPRISE
Price
Free
2,99 €/mo
5,99 €/mo
12,99 €/mo
Contact
GENERAL
Characters stored
500
—
5000
∞
∞
Custom invite code
—
✓
✓
✓
✓
CAD
Max corporations
2
—
6
∞
∞
Max subdivisions
0
—
6
∞
∞
MDT data wipe
1 month
—
1 year
Never
Never
MDT access
Complete
—
Complete
Complete
Complete
Logs history
7 days
—
90 days
∞
∞
Data export
—
—
✓
✓
✓
Investigations
—
—
✓
✓
✓
Evidence storage
—
—
Unmetered
Unmetered
Unmetered
Custom laws
50
—
150
∞
∞
Real-time map
—
—
✓
✓
✓
Bodycam
—
—
✓
✓
✓
Realtime map location
—
—
✓
✓
✓
Advanced search
—
—
✓
✓
✓
Radio channels (Discord VC)
10
—
50
100
∞
Roles per corporation
15
—
50
∞
∞
BANK
Bank accounts
1 per char
—
3 per char
6 per char
12 per char
Transfers
✓
—
✓
✓
✓
Transaction history
✓
—
✓
✓
✓
Cards per account
1
—
2
3
5
Timed cards
Fixed durations
—
✓
✓
✓
Usage-based cards
—
—
Max 5 per char
✓
✓
Role rewards
✓
—
✓
✓
✓
Allow negative balance
—
—
✓
✓
✓
Scheduled transfers
—
—
✓
✓
✓
Player debts
—
—
✓
✓
✓
Per-operation limits
—
—
✓
✓
✓
Shared accounts
Max 2 members
—
Max 5 members
∞
∞
ADMIN
Player heatmap
—
—
✓
✓ more precise
✓ more precise
Max forms
3
5
10
∞
∞
Your server on the phone
—
—
✓
✓
✓
Max admin roles
owner +2
owner +5
owner +10
∞
∞
Priority support
—
✓
✓
✓
✓
Staff audit log history
7 days
30 days
90 days
∞
∞
Beta features
—
✓
✓
✓
✓
Create server
Character and storage addons stack on any plan.
Cookies ESSENTIAL ONLY
We only use the essential ones: your session, sign-in security and your language. There is no analytics and no advertising, so there is nothing to accept or reject.
Got it
Cookie policy