Overview
The Dispatch API provides endpoints for managing 911 calls, BOLOs (Be On the Lookout), active dispatchers, area of play, and unit status updates.
Most dispatch endpoints require the Dispatch permission.
Get Dispatch Data
curl -X GET https://your-cad.com/api/dispatch \
-H "Cookie: snaily-cad-access-token=<token>"
Get current dispatch information including area of play and active dispatcher count.
Response
Current area of play (AOP)
Number of active dispatchers
Current user’s active dispatcher status
Update Area of Play
curl -X POST https://your-cad.com/api/dispatch/aop \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-d '{
"aop": "Los Santos"
}'
Update the current area of play.
Request Body
Response
Signal 100
curl -X POST https://your-cad.com/api/dispatch/signal-100 \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-d '{
"value": true,
"callId": "optional-call-id"
}'
Enable or disable Signal 100 (emergency - all units standby).
Request Body
Enable or disable Signal 100
Optional call ID to associate with Signal 100
Response
Current Signal 100 status
Set Dispatcher Active/Inactive
curl -X POST https://your-cad.com/api/dispatch/dispatchers-state \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-d '{
"value": true
}'
Set the authenticated user as an active or inactive dispatcher.
Request Body
Set dispatcher active (true) or inactive (false)
Response
Active dispatcher object (or null if inactive)
Updated count of active dispatchers
Update Active Dispatcher
curl -X PUT https://your-cad.com/api/dispatch/active-dispatcher \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-d '{
"activeDepartment": "department-id"
}'
Update the active dispatcher’s department filter.
Request Body
Department ID to filter by (or null for all)
911 Calls
Get All 911 Calls
curl -X GET "https://your-cad.com/api/911-calls?includeEnded=false&skip=0" \
-H "Cookie: snaily-cad-access-token=<token>"
Get all 911 calls with filtering options.
Query Parameters
Filter by assigned unit ID
Response
Array of 911 call objects
Get Call by ID
curl -X GET https://your-cad.com/api/911-calls/{callId} \
-H "Cookie: snaily-cad-access-token=<token>"
Get a specific 911 call by ID or case number.
Path Parameters
Create 911 Call
curl -X POST https://your-cad.com/api/911-calls \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-H "is-from-dispatch: true" \
-d '{
"name": "John Doe",
"location": "123 Main Street",
"postal": "90210",
"description": "Suspicious activity reported",
"type": "call-type-id",
"situationCode": "situation-code-id"
}'
Create a new 911 call.
Set to “true” if call is created by dispatch (bypasses approval)
Request Body
Update 911 Call
curl -X PUT https://your-cad.com/api/911-calls/{callId} \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-d '{
"description": "Updated call details",
"postal": "90211"
}'
Update an existing 911 call.
End 911 Call
curl -X PUT https://your-cad.com/api/911-calls/{callId}/end \
-H "Cookie: snaily-cad-access-token=<token>"
Mark a 911 call as ended.
BOLOs
Get All BOLOs
curl -X GET "https://your-cad.com/api/bolos?skip=0&type=VEHICLE" \
-H "Cookie: snaily-cad-access-token=<token>"
Get all Be On the Lookout (BOLO) entries.
Query Parameters
BOLO type: VEHICLE, PERSON, or OTHER
Response
Create BOLO
curl -X POST https://your-cad.com/api/bolos \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-d '{
"type": "VEHICLE",
"description": "Stolen vehicle",
"plate": "ABC123",
"model": "Honda Civic",
"color": "Red"
}'
Create a new BOLO.
Request Body
BOLO type: VEHICLE, PERSON, or OTHER
License plate (for vehicles)
Vehicle or person color/description
Person name (for person BOLOs)
Update BOLO
curl -X PUT https://your-cad.com/api/bolos/{boloId} \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-d '{
"description": "Updated BOLO information"
}'
Update an existing BOLO.
Delete BOLO
curl -X DELETE https://your-cad.com/api/bolos/{boloId} \
-H "Cookie: snaily-cad-access-token=<token>"
Delete a BOLO.
Mark Vehicle as Stolen
curl -X POST https://your-cad.com/api/bolos/mark-stolen/{vehicleId} \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-d '{
"value": true,
"color": "Red",
"plate": "ABC123"
}'
Mark a vehicle as stolen and optionally create a BOLO.
Request Body
Mark as stolen (true) or not stolen (false)
Search Units
curl -X POST https://your-cad.com/api/dispatch/units/search \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-d '{
"query": "1A-23"
}'
Search for active units (officers and deputies).
Request Body
Search query (callsign, name, etc.)
Response
Returns array of matching officers, deputies, and combined units (max 25 each).
Update Unit Radio Channel
curl -X PUT https://your-cad.com/api/dispatch/radio-channel/{unitId} \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-d '{
"radioChannel": "channel-1"
}'
Update a unit’s radio channel.
Path Parameters
Unit ID (officer, deputy, or combined unit)
Request Body
Tones
Get Active Tones
curl -X GET https://your-cad.com/api/dispatch/tones \
-H "Cookie: snaily-cad-access-token=<token>"
Get all active notification tones.
Create/Update Tone
curl -X POST https://your-cad.com/api/dispatch/tones \
-H "Cookie: snaily-cad-access-token=<token>" \
-H "Content-Type: application/json" \
-d '{
"description": "Major incident alert",
"leoTone": true,
"emsFdTone": true
}'
Create or update a tone notification.
Request Body
Delete Tone
curl -X DELETE https://your-cad.com/api/dispatch/tones/{toneId} \
-H "Cookie: snaily-cad-access-token=<token>"
Delete an active tone.