Skip to main content

API Reference

This section documents Kestrel's server-to-server integration surface — for building your own external client against Kestrel directly: an AI radio/STT bot, a scripted tool, or anything else outside a browser.

If you're running the official FiveM resources (kestrel-cad, kestrel-anpr-bridge, kestrel-ers-bridge), you don't need this section — see Setting Up Your Community instead, they already call this API for you. Come here if you're building your own integration instead of using those resources.

  • Base URL: https://<your-deployment>/api/v1
  • Auth: Bearer JWT
  • Token lifetime: 12 minutes, no refresh token — re-exchange your credential before it expires
  • Format: JSON over REST

Two credential kinds

SurfaceAuthReaches
FiveM BridgeBearer JWT, 12-min TTLDuty status (on/off only), lookups, BOLOs, citations, arrests, panic, 911, location — one linked player at a time
API credentialBearer JWT, 12-min TTLA slice of the general CAD API not tied to any one player — currently units, CAD calls, BOLOs, and vehicle/person/warrant lookup

Pick based on what you're building:

  • Building something that acts on behalf of an in-game player — an officer running a plate from a custom in-game tool, a radio bot voicing commands for a specific cop — use the FiveM Bridge (see Getting a Token and FiveM Bridge Endpoints).
  • Building something that manages dispatch operations directly, with no specific player attached — a standalone dashboard, an automated reporting tool — use the API credential (see API Credential).

Both credential kinds are created from the Kestrel web app under Admin → Integrations by an admin with the appropriate permission — see Setting Up Your Community.

Where to go next