Skip to main content

Stability

The Argus API is internal and unversioned. It serves the Argus web application and the community’s own integrations. Any release can change a path, a field or a rule without notice. Nothing here is a commitment to third parties.
This documentation describes the code as of 6 October 2026. It was checked against the running router: every documented operation was called, and every response was compared with its documented shape.

What is implemented

86 operations.

Known limits and rough edges

These are true of the current implementation. Clients should allow for them. Across the API
  • No versioning, no CORS, and no webhooks or push. Clients poll.
  • Paging is by offset, capped at 10,000. There are no cursors and no total counts.
  • Only moderation accepts an idempotency key. Retrying any other create request can create a second record.
CAD
  • CAD changes are POST to action paths and replace whole records; the rest of the API uses PATCH for partial updates.
  • CAD list endpoints ignore unknown query parameters. Everywhere else they are rejected.
  • GET /cad/events returns oldest first. Combined with the offset cap, the newest entries of a very long global history cannot be reached without filtering by incident or unit.
  • There is no endpoint for a single unit or a single call. Read them from their lists, or from an incident.
  • A call cannot be detached from an incident once attached.
  • Closing an incident records no outcome, and a closed incident no longer lists the units that attended. Read its events instead.
  • Assigning a unit or attaching a call advances the incident’s version, which makes open edit forms stale. See Optimistic concurrency.
  • Simultaneous changes can fail with a generic 409 CONFLICT. Nothing is retried for you.
  • Incident type, location and agency code are free text.
MDT
  • A crew learns of a dispatch by polling GET /cad/me/unit.
  • A crew cannot clear its own incident; only Control can release a unit.
Civilians and PNC
  • EXPIRED licences and warrants are worked out when read. Nothing is written to history at the moment of expiry.
  • Markers can only be placed on people and vehicles that are on record.
  • Members can transfer a vehicle only between their own characters.
  • Service credentials can read the PNC but cannot make official changes.
Identity and administration
  • A linked Roblox account cannot be unlinked or moved through the API.
  • The staff.manage permission exists in the catalogue but no endpoint checks it. Changing staff membership needs admin.manage.
  • The role list returns permissions as objects, while creating or replacing a role returns them as plain keys.
ER:LC
  • Only the server summary and the player list are exposed. There is no queue list (only a count), no in-game staff list endpoint beyond the summary, and no vehicles, emergency calls or logs.
  • Kicks and bans need the player to be in the server. Offline bans are not supported.

Planned, not implemented

Nothing in this section exists in the API. It is listed so that readers do not go looking for it.
  • Ingesting emergency calls from ER:LC, and suggesting the nearest unit
  • A live map, unit locations and structured addresses
  • A panic button and priority alerts
  • Linking incidents to PNC people and vehicles
  • Department management: agencies, subdivisions and certifications
  • Unit vehicles and radio groups

Changelog