CAD API Endpoints: Developer Reference Guide
Developer reference guide for CDE CAD API endpoints. Covers authentication, person lookups, vehicle queries, dispatch integration, and webhook configuration for FiveM server integration.
The CDE CAD API enables developers to build powerful integrations between FiveM servers and the CAD system. From in-game plate lookups to automated status updates and webhook notifications, the API provides programmatic access to all CAD features. This guide covers authentication, available endpoints, and integration best practices.
Authentication
API Key Authentication
All API requests require a valid API key passed in the Authorization header. API keys are generated in the CAD admin panel and can be scoped to specific permissions and rate limits.
Bearer Token Format
Include your API key in requests using the format: Authorization: Bearer YOUR_API_KEY. All requests without valid authentication return a 401 Unauthorized response.
Rate Limiting
API requests are rate-limited to prevent abuse. Default limits are 100 requests per minute for standard keys and 500 per minute for premium keys. Exceeding limits returns 429 Too Many Requests.
HTTPS Required
All API requests must be made over HTTPS. HTTP requests are rejected. This ensures all data transmitted between your server and the CAD is encrypted.
Person Endpoints
GET /api/v1/persons/search
Search for persons by name, DOB, or ID. Query parameters: firstName, lastName, dateOfBirth, personId. Returns matching records with basic information and criminal history summary.
GET /api/v1/persons/
Retrieve complete person record by ID. Returns full profile including physical description, addresses, vehicles, criminal history, warrants, and associated reports.
GET /api/v1/persons//history
Retrieve criminal history for a specific person. Returns all arrests, citations, warrants, court appearances, and sentences in chronological order.
POST /api/v1/persons
Create a new person record (civilian character). Required fields: firstName, lastName, dateOfBirth, gender. Optional: physical description, address, phone number.
Vehicle Endpoints
GET /api/v1/vehicles/search
Search vehicles by plate, VIN, or owner. Query parameters: plate, vin, ownerId, ownerName. Returns matching vehicles with registration status and flags.
GET /api/v1/vehicles/
Retrieve complete vehicle record by ID. Returns registration details, owner information, status flags (stolen, impounded), and associated incidents.
POST /api/v1/vehicles
Register a new vehicle. Required fields: plate, make, model, year, color, ownerId. Optional: vin, insuranceStatus, registrationExpiry.
PATCH /api/v1/vehicles//status
Update vehicle status. Valid statuses: active, stolen, impounded, suspended. Status changes trigger appropriate CAD alerts and BOLO generation.
Dispatch Endpoints
GET /api/v1/dispatch/calls
Retrieve active dispatch calls. Returns all current 911 calls with priority, type, location, assigned units, and status. Supports filtering by priority and type.
POST /api/v1/dispatch/calls
Create a new 911 call. Required fields: callType, priority, location, description. Optional: callerName, callerPhone, notes.
PATCH /api/v1/dispatch/units//status
Update unit status. Valid statuses: available, busy, enRoute, onScene, outOfService. Automatically updates the dispatch board and LiveMap.
POST /api/v1/dispatch/bolo
Create a new BOLO. Required fields: type (person/vehicle), description, reason. Optional: plate, suspectName, lastSeenLocation, expiryTime.
Webhook Configuration
Webhook Events
Subscribe to events including: newCall, callUpdated, callClosed, newArrest, newCitation, newBOLO, boloResolved, warrantIssued, warrantServed, unitStatusChange.
Webhook Payload Format
Webhooks deliver JSON payloads containing the event type, timestamp, and relevant data. Discord-formatted payloads are available for direct Discord channel integration.
Retry Policy
Failed webhook deliveries are retried up to 3 times with exponential backoff (1 minute, 5 minutes, 15 minutes). After 3 failures, the webhook is marked as failing and an admin alert is generated.
Webhook Security
Webhook payloads include an HMAC signature in the X-Webhook-Signature header for verification. Validate this signature to ensure payloads are genuine and not tampered with.
Best Practices
Cache Responses
Cache frequently accessed data like person and vehicle lookups on your FiveM server to reduce API calls. Use reasonable TTLs (5-15 minutes) and invalidate on updates.
Handle Errors Gracefully
Implement proper error handling for all API calls. Check HTTP status codes and display user-friendly messages. Never expose raw API errors to players.
Use Webhooks for Real-Time
Instead of polling the API for updates, subscribe to webhook events. This reduces API load and provides instant notifications when data changes.
Secure Your API Key
Never expose your API key in client-side code or public repositories. Store it in server-side configuration files and use environment variables when possible.