Dispatch & LEO API

Calls management, dispatch units, BOLOs, lookups, suspects, and announcements for law enforcement operations.

Authentication: Most endpoints require authCheck — a valid JWT Bearer token or active session cookie. Some dispatch endpoints (location tracking) use x-api-key for server-to-server communication. See Authentication for details.

1. Calls Management

The calls system manages dispatched calls for service. Calls track type, location, priority, status, assigned units, attached civilians and vehicles, and dispatcher notes.

Auto-Expiry: Calls with status pending, active, or dispatched are automatically deleted after 25 minutes of inactivity. Ensure your integration handles this cleanup gracefully.

Call Status Lifecycle

StatusDescription
pendingCall created, awaiting assignment
assignedUnit(s) assigned to the call
enrouteUnit(s) en route to the scene
on-sceneUnit(s) arrived at the scene
closedCall resolved and closed
cancelledCall was cancelled
GET /api/calls/pending authCheck

Retrieve all pending calls for a community. Returns calls that have not yet been assigned or resolved.

Query Parameters

ParameterTypeRequiredDescription
communityIdstringYesThe community to fetch calls for

Response

[
  {
    "_id": "665a1b2c3d4e5f6a7b8c9d0e",
    "callType": "Traffic Stop",
    "location": "Main St & 5th Ave",
    "caller": "Anonymous",
    "description": "Erratic driving reported",
    "status": "pending",
    "priority": "normal",
    "postal": "345",
    "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
    "createdAt": "2025-06-01T14:30:00.000Z"
  }
]
GET /api/calls/:id authCheck

Get a single call with full details including populated references for assigned units, attached civilians, and vehicles.

Path Parameters

ParameterTypeDescription
idstringThe call ID

Response

{
  "_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "callType": "Traffic Stop",
  "location": "Main St & 5th Ave",
  "caller": "John Doe",
  "description": "Erratic driving reported",
  "status": "on-scene",
  "priority": "high",
  "postal": "345",
  "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
  "assignedUnits": [
    { "_id": "unit1", "unitName": "1-Adam-12", "status": "on-scene" }
  ],
  "attachedCivilians": [
    { "_id": "civ1", "firstName": "Jane", "lastName": "Smith", "licenseNumber": "DL-12345" }
  ],
  "attachedVehicles": [
    { "_id": "veh1", "plate": "ABC1234", "make": "Honda", "model": "Civic", "year": "2020" }
  ],
  "notes": [
    { "text": "Driver cooperative", "createdBy": "Officer Adams", "createdAt": "2025-06-01T14:35:00.000Z" }
  ],
  "createdAt": "2025-06-01T14:30:00.000Z",
  "updatedAt": "2025-06-01T14:45:00.000Z"
}
POST /api/calls authCheck

Create a new call for service. A new call starts with pending status by default.

Request Body

FieldTypeRequiredDescription
callTypestringYesType of call (e.g. "Traffic Stop", "Robbery")
locationstringYesLocation or address of the call
communityIdstringYesCommunity this call belongs to
callerstringNoName of the caller
descriptionstringNoDetails about the call
prioritystringNoOne of: low, normal, high. Defaults to normal
postalstringNoPostal code for map reference

Example Request

{
  "callType": "Suspicious Activity",
  "location": "1200 Oak Avenue",
  "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
  "caller": "Anonymous",
  "description": "Person looking into car windows in parking lot",
  "priority": "normal",
  "postal": "221"
}

Response 201

{
  "success": true,
  "call": {
    "_id": "665a1b2c3d4e5f6a7b8c9d0e",
    "callType": "Suspicious Activity",
    "location": "1200 Oak Avenue",
    "status": "pending",
    "priority": "normal",
    "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
    "createdAt": "2025-06-01T14:30:00.000Z"
  }
}
PUT /api/calls/:id authCheck

Update an existing call. All fields are optional — only provided fields will be updated.

Request Body

FieldTypeRequiredDescription
callTypestringNoUpdated call type
locationstringNoUpdated location
callerstringNoUpdated caller name
descriptionstringNoUpdated description
statusstringNoUpdated status
prioritystringNoUpdated priority (low, normal, high)
postalstringNoUpdated postal code

Example Request

{
  "description": "Updated: suspect now wearing a red jacket",
  "priority": "high"
}
DELETE /api/calls/:id authCheck

Permanently delete a call. Admin only. Use the status update endpoint to close or cancel calls during normal operations.

Admin Required: This endpoint requires administrator privileges. Non-admin users will receive a 403 Forbidden response.
PATCH /api/calls/:id/status authCheck

Update only the status of a call. This is the preferred method for progressing calls through the status lifecycle.

Request Body

FieldTypeRequiredDescription
statusstringYesOne of: pending, assigned, enroute, on-scene, closed, cancelled

Example Request

{
  "status": "enroute"
}
PATCH /api/calls/:id/attach-civilian authCheck

Attach a civilian record to a call. You can identify the civilian by ID, license number, or full name.

Request Body (one of the following)

FieldTypeRequiredDescription
civilianIdstringOption 1Direct civilian record ID
licenseNumberstringOption 2Civilian's license number
firstNamestringOption 3Civilian's first name (used with lastName)
lastNamestringOption 3Civilian's last name (used with firstName)

Example — By License Number

{
  "licenseNumber": "DL-12345"
}

Example — By Name

{
  "firstName": "Jane",
  "lastName": "Smith"
}
PATCH /api/calls/:id/attach-vehicle authCheck

Attach a vehicle record to a call. Identify the vehicle by ID or plate number.

Request Body (one of the following)

FieldTypeRequiredDescription
vehicleIdstringOption 1Direct vehicle record ID
platestringOption 2Vehicle plate number

Example

{
  "plate": "ABC1234"
}
POST /api/calls/:id/notes authCheck

Add a dispatcher or officer note to a call. Notes are appended chronologically and include the author and timestamp.

Request Body

FieldTypeRequiredDescription
textstringYesThe note content

Example Request

{
  "text": "Suspect fled on foot heading northbound"
}
PUT /api/calls/:id/assign-unit authCheck

Add or remove a unit from a call's assigned units list.

Request Body

FieldTypeRequiredDescription
actionstringYesOne of: add, remove
unitIdstringYesThe unit's ID
unitNamestringYesThe unit's display name (e.g. "1-Adam-12")

Example — Add Unit

{
  "action": "add",
  "unitId": "665b2c3d4e5f6a7b8c9d0e1f",
  "unitName": "1-Adam-12"
}

Example — Remove Unit

{
  "action": "remove",
  "unitId": "665b2c3d4e5f6a7b8c9d0e1f",
  "unitName": "1-Adam-12"
}

2. Dispatch

The dispatch system manages active units, real-time location tracking (for FiveM livemap integration), 911 call management, and unit assignments from the dispatcher's perspective.

GET /api/dispatch/units authCheck

Get all active units for a community. Returns unit status, assigned calls, and current information.

Query Parameters

ParameterTypeRequiredDescription
communityIdstringYesThe community to fetch units for

Response

[
  {
    "_id": "665b2c3d4e5f6a7b8c9d0e1f",
    "unitName": "1-Adam-12",
    "status": "available",
    "job": "police",
    "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
    "assignedCalls": ["665a1b2c3d4e5f6a7b8c9d0e"]
  }
]
POST /api/dispatch/location-update API Key

Update a unit's real-time location for the FiveM livemap. This endpoint is designed for high-frequency calls from the FiveM server.

Request Body

FieldTypeRequiredDescription
unitIdstringYesThe unit's unique identifier
unitNamestringYesThe unit's display name
xnumberYesX coordinate on the game map
ynumberYesY coordinate on the game map
znumberYesZ coordinate (altitude)
headingnumberYesDirection the unit is facing (0–360)
jobstringYesUnit's job type (e.g. "police", "ems", "fire")
statusstringYesCurrent unit status
postalstringYesNearest postal code
communityIdstringYesCommunity ID

Example Request

// Header: x-api-key: fvm_xxxxx
{
  "unitId": "officer_42",
  "unitName": "1-Adam-12",
  "x": -1042.5,
  "y": -2745.3,
  "z": 21.3,
  "heading": 180.0,
  "job": "police",
  "status": "patrolling",
  "postal": "345",
  "communityId": "663f1a2b3c4d5e6f7a8b9c0d"
}
GET /api/dispatch/locations

Get all tracked unit locations for the livemap display. Returns the most recent position data for every active unit.

Query Parameters

ParameterTypeRequiredDescription
communityIdstringYesThe community to fetch locations for

Response

[
  {
    "unitId": "officer_42",
    "unitName": "1-Adam-12",
    "x": -1042.5,
    "y": -2745.3,
    "z": 21.3,
    "heading": 180.0,
    "job": "police",
    "status": "patrolling",
    "postal": "345",
    "updatedAt": "2025-06-01T14:30:05.000Z"
  }
]
DELETE /api/dispatch/location/:unitId API Key

Remove a unit from location tracking. Typically called when a unit goes off-duty or disconnects from the FiveM server.

Path Parameters

ParameterTypeDescription
unitIdstringThe unit's unique identifier to remove from tracking
GET /api/dispatch/911 authCheck

Get all active 911 calls for the dispatch board. Returns open emergency calls awaiting response or currently being serviced.

Query Parameters

ParameterTypeRequiredDescription
communityIdstringYesThe community to fetch 911 calls for

Response

[
  {
    "_id": "665c3d4e5f6a7b8c9d0e1f2a",
    "callType": "911 Emergency",
    "location": "Legion Square",
    "caller": "Civilian #4421",
    "description": "Shots fired near the fountain",
    "status": "pending",
    "priority": "high",
    "postal": "110",
    "assignedUnits": [],
    "createdAt": "2025-06-01T14:45:00.000Z"
  }
]
GET /api/dispatch/911/markers

Get 911 call markers for map display. Returns location data formatted for rendering on the dispatch livemap.

Query Parameters

ParameterTypeRequiredDescription
communityIdstringYesThe community to fetch markers for
POST /api/dispatch/911/:callId/assign authCheck

Assign one or more units to a 911 call. Accepts either unit IDs or unit names for flexible assignment.

Path Parameters

ParameterTypeDescription
callIdstringThe 911 call ID

Request Body

FieldTypeRequiredDescription
unitIdsstring[]Option 1Array of unit IDs to assign
unitNamesstring[]Option 2Array of unit names to assign

Example — By Unit IDs

{
  "unitIds": [
    "665b2c3d4e5f6a7b8c9d0e1f",
    "665b2c3d4e5f6a7b8c9d0e2a"
  ]
}

Example — By Unit Names

{
  "unitNames": ["1-Adam-12", "2-Boy-15"]
}
POST /api/dispatch/911/:callId/close authCheck

Close a 911 call with a disposition and optional closing notes.

Path Parameters

ParameterTypeDescription
callIdstringThe 911 call ID

Request Body

FieldTypeRequiredDescription
dispositionstringNoFinal disposition of the call (e.g. "Arrest Made", "Unfounded", "Report Taken")
notesstringNoClosing notes or summary

Example Request

{
  "disposition": "Arrest Made",
  "notes": "Suspect apprehended at scene. One weapon recovered."
}

3. BOLOs (Be On the Lookout)

BOLOs alert officers about wanted persons, suspicious vehicles, or ongoing situations. BOLOs support priority levels, expiration dates, subject and vehicle details, and read-tracking.

Permissions: BOLO creation is governed by the community's boloPermission setting, which can be set to admin, supervisor, or all. Check your community settings to determine who can create BOLOs.
GET /api/bolos/active authCheck

Get all active BOLOs for the dispatch dashboard. Returns non-expired, non-deactivated BOLOs.

Query Parameters

ParameterTypeRequiredDescription
communityIdstringYesThe community to fetch BOLOs for

Response

[
  {
    "_id": "665d4e5f6a7b8c9d0e1f2a3b",
    "reason": "Armed Robbery Suspect",
    "description": "Suspect robbed a convenience store at gunpoint",
    "priority": "critical",
    "subjectFirstName": "John",
    "subjectLastName": "Doe",
    "subjectDescription": "Male, 6ft, black hoodie",
    "vehiclePlate": "XYZ9876",
    "vehicleMake": "Ford",
    "vehicleModel": "F-150",
    "vehicleColor": "Black",
    "isActive": true,
    "viewedBy": ["user1", "user2"],
    "expiresAt": "2025-06-02T14:00:00.000Z",
    "createdAt": "2025-06-01T14:00:00.000Z"
  }
]
GET /api/bolos/search authCheck

Search BOLOs by text query. Searches across reason, description, subject name, and vehicle information.

Query Parameters

ParameterTypeRequiredDescription
querystringYesSearch text
communityIdstringYesCommunity scope
POST /api/bolos authCheck

Create a new BOLO. Requires the boloPermission level configured for the community (admin, supervisor, or all).

Request Body

FieldTypeRequiredDescription
reasonstringYesReason for the BOLO
descriptionstringYesDetailed description
communityIdstringYesCommunity this BOLO belongs to
prioritystringNoOne of: low, medium, high, critical
expiresAtstringNoISO 8601 expiration date/time

Subject Fields (all optional)

FieldTypeDescription
subjectFirstNamestringSubject's first name
subjectLastNamestringSubject's last name
subjectDOBstringSubject's date of birth
subjectLicensestringSubject's license number
subjectDescriptionstringPhysical description of the subject

Vehicle Fields (all optional)

FieldTypeDescription
vehiclePlatestringVehicle license plate
vehicleMakestringVehicle manufacturer
vehicleModelstringVehicle model
vehicleYearstringVehicle year
vehicleColorstringVehicle color
vehicleDescriptionstringAdditional vehicle description

Example Request

{
  "reason": "Armed Robbery Suspect",
  "description": "Suspect robbed First National Bank, fled on foot heading east",
  "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
  "priority": "critical",
  "subjectFirstName": "John",
  "subjectLastName": "Doe",
  "subjectDescription": "Male, 6ft, wearing black hoodie and jeans",
  "vehiclePlate": "XYZ9876",
  "vehicleMake": "Ford",
  "vehicleModel": "F-150",
  "vehicleYear": "2022",
  "vehicleColor": "Black",
  "vehicleDescription": "Lifted, tinted windows, aftermarket bumper",
  "expiresAt": "2025-06-02T14:00:00.000Z"
}
PUT /api/bolos/:id authCheck

Update an existing BOLO. Accepts all the same fields as the create endpoint. Only provided fields will be modified.

Path Parameters

ParameterTypeDescription
idstringThe BOLO ID

Example Request

{
  "priority": "high",
  "description": "Updated: suspect last seen heading west on Interstate 4",
  "vehicleDescription": "Damage to front-left quarter panel"
}
DELETE /api/bolos/:id authCheck

Deactivate a BOLO. The BOLO record is retained but marked as inactive and will no longer appear in active BOLO listings.

Path Parameters

ParameterTypeDescription
idstringThe BOLO ID to deactivate
POST /api/bolos/:id/viewed authCheck

Mark a BOLO as viewed by the current user. Used to track which officers have acknowledged and read a BOLO.

Path Parameters

ParameterTypeDescription
idstringThe BOLO ID

4. Lookups

The lookup system provides officers with the ability to search civilian records, vehicles, and reports. It supports smart search with automatic type detection as well as explicit type-based queries.

Rate Limited: The smart search endpoint is limited to 60 requests per minute per user. Plan your integration accordingly.
POST /api/lookup authCheck

Perform a smart search across civilians, vehicles, and records. The system automatically detects the query type, or you can specify it explicitly.

Request Body

FieldTypeRequiredDescription
querystringYesThe search query (name, plate, SSN, phone, etc.)
communityIdstringYesCommunity scope
typestringNoForce a specific search type: name, partial_name, phone, plate, ssn

Search Type Behavior

TypeDescriptionExample Query
nameExact first + last name match"John Smith"
partial_namePartial name matching"Smi"
phonePhone number lookup"555-0123"
plateVehicle plate number lookup"ABC1234"
ssnSocial security number lookup"123-45-6789"

Example Request

{
  "query": "John Smith",
  "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
  "type": "name"
}

Response

{
  "civilians": [
    {
      "_id": "665e5f6a7b8c9d0e1f2a3b4c",
      "firstName": "John",
      "lastName": "Smith",
      "dateOfBirth": "1990-05-15",
      "licenseNumber": "DL-12345",
      "phone": "555-0123",
      "address": "742 Evergreen Terrace"
    }
  ],
  "vehicles": [
    {
      "_id": "665f6a7b8c9d0e1f2a3b4c5d",
      "plate": "ABC1234",
      "make": "Honda",
      "model": "Civic",
      "year": "2020",
      "owner": "John Smith"
    }
  ]
}
GET /api/lookup/recent

Get recent lookup history. Useful for showing officers their most recent searches for quick re-access.

Query Parameters

ParameterTypeRequiredDescription
communityIdstringYesCommunity scope
typestringNoFilter by lookup type
limitnumberNoNumber of results to return. Default: 10
GET /api/lookup/civilian/:id

Get detailed civilian information by record ID. Returns full profile including licenses, warrants, flags, and associated vehicles.

Path Parameters

ParameterTypeDescription
idstringThe civilian record ID

Query Parameters

ParameterTypeRequiredDescription
communityIdstringYesCommunity scope
GET /api/lookup/vehicle/:id

Get detailed vehicle information by record ID. Returns registration, owner details, stolen status, and insurance info.

Path Parameters

ParameterTypeDescription
idstringThe vehicle record ID

Query Parameters

ParameterTypeRequiredDescription
communityIdstringYesCommunity scope
GET /api/lookup/reports/:licenseNumber

Get all reports (incidents, citations, arrests) associated with a specific license number. Useful for pulling a subject's full history during a stop.

Path Parameters

ParameterTypeDescription
licenseNumberstringThe civilian's license number

Query Parameters

ParameterTypeRequiredDescription
communityIdstringYesCommunity scope

Response

{
  "reports": [
    {
      "_id": "665g7b8c9d0e1f2a3b4c5d6e",
      "type": "citation",
      "title": "Speeding - 85 in a 55 zone",
      "officerName": "Officer Adams",
      "createdAt": "2025-05-28T10:15:00.000Z"
    },
    {
      "_id": "665h8c9d0e1f2a3b4c5d6e7f",
      "type": "arrest",
      "title": "DUI - First Offense",
      "officerName": "Officer Baker",
      "createdAt": "2025-05-15T22:30:00.000Z"
    }
  ]
}

5. Suspects

Manage suspect records associated with active investigations. Suspects can be linked to calls, BOLOs, and reports.

POST /api/suspects authCheck

Create a new suspect record.

Example Request

{
  "firstName": "John",
  "lastName": "Doe",
  "description": "Male, 6ft, black hoodie",
  "status": "at-large",
  "communityId": "663f1a2b3c4d5e6f7a8b9c0d"
}
GET /api/suspects authCheck

Get all suspect records for the community.

Response

[
  {
    "_id": "665i9d0e1f2a3b4c5d6e7f8a",
    "firstName": "John",
    "lastName": "Doe",
    "description": "Male, 6ft, black hoodie",
    "status": "at-large",
    "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
    "createdAt": "2025-06-01T15:00:00.000Z"
  }
]
GET /api/suspects/:id authCheck

Get a single suspect record by ID with full details.

Path Parameters

ParameterTypeDescription
idstringThe suspect record ID
PUT /api/suspects/:id authCheck

Update an existing suspect record. Only provided fields will be modified.

Path Parameters

ParameterTypeDescription
idstringThe suspect record ID

Example Request

{
  "status": "in-custody",
  "description": "Updated: suspect now in custody at Central Booking"
}

6. Announcements

Announcements are broadcast messages displayed on the dispatch dashboard. They support priority levels and optional expiration. Only supervisors and administrators can create or delete announcements.

GET /api/announcements/active authCheck

Get all active (non-expired) announcements for the dispatch dashboard.

Query Parameters

ParameterTypeRequiredDescription
communityIdstringYesThe community to fetch announcements for

Response

[
  {
    "_id": "665j0e1f2a3b4c5d6e7f8a9b",
    "title": "Shift Change Reminder",
    "message": "All day-shift units report to briefing room at 1800 hours for shift change.",
    "priority": "info",
    "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
    "expiresAt": "2025-06-01T18:00:00.000Z",
    "createdBy": "Sgt. Johnson",
    "createdAt": "2025-06-01T12:00:00.000Z"
  },
  {
    "_id": "665k1f2a3b4c5d6e7f8a9b0c",
    "title": "High-Speed Pursuit Policy Update",
    "message": "Effective immediately: all pursuits require supervisor authorization before initiation.",
    "priority": "urgent",
    "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
    "expiresAt": null,
    "createdBy": "Chief Williams",
    "createdAt": "2025-06-01T08:00:00.000Z"
  }
]
POST /api/announcements supervisor / admin

Create a new announcement. Only users with supervisor or admin roles can create announcements.

Request Body

FieldTypeRequiredDescription
titlestringYesAnnouncement title
messagestringYesAnnouncement body text
prioritystringYesOne of: info, warning, urgent
communityIdstringYesCommunity this announcement belongs to
expiresAtstringNoISO 8601 expiration date/time. If omitted, announcement persists until deleted

Priority Levels

PriorityUse Case
infoGeneral information, reminders, shift changes
warningImportant notices requiring attention (weather alerts, policy changes)
urgentCritical alerts requiring immediate action (active threats, officer safety)

Example Request

{
  "title": "Severe Weather Warning",
  "message": "Tornado warning in effect for the northern district until 2100 hours. All units exercise caution.",
  "priority": "warning",
  "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
  "expiresAt": "2025-06-01T21:00:00.000Z"
}

Response 201

{
  "success": true,
  "announcement": {
    "_id": "665l2a3b4c5d6e7f8a9b0c1d",
    "title": "Severe Weather Warning",
    "message": "Tornado warning in effect for the northern district until 2100 hours. All units exercise caution.",
    "priority": "warning",
    "communityId": "663f1a2b3c4d5e6f7a8b9c0d",
    "expiresAt": "2025-06-01T21:00:00.000Z",
    "createdAt": "2025-06-01T15:30:00.000Z"
  }
}
DELETE /api/announcements/:id supervisor / admin

Delete an announcement. Only users with supervisor or admin roles can delete announcements. The announcement is permanently removed.

Path Parameters

ParameterTypeDescription
idstringThe announcement ID to delete

Quick Reference

Complete endpoint summary for all Dispatch & LEO routes.

Calls (/api/calls)

MethodEndpointDescriptionAuth
GET/api/calls/pendingGet pending callsauthCheck
GET/api/calls/:idGet call detailsauthCheck
POST/api/callsCreate callauthCheck
PUT/api/calls/:idUpdate callauthCheck
DELETE/api/calls/:idDelete call (admin)authCheck
PATCH/api/calls/:id/statusUpdate statusauthCheck
PATCH/api/calls/:id/attach-civilianAttach civilianauthCheck
PATCH/api/calls/:id/attach-vehicleAttach vehicleauthCheck
POST/api/calls/:id/notesAdd noteauthCheck
PUT/api/calls/:id/assign-unitAdd/remove unitauthCheck

Dispatch (/api/dispatch)

MethodEndpointDescriptionAuth
GET/api/dispatch/unitsActive unitsauthCheck
POST/api/dispatch/location-updateUpdate unit locationAPI Key
GET/api/dispatch/locationsAll unit locations
DELETE/api/dispatch/location/:unitIdRemove from trackingAPI Key
GET/api/dispatch/911Active 911 callsauthCheck
GET/api/dispatch/911/markers911 map markers
POST/api/dispatch/911/:callId/assignAssign units to 911authCheck
POST/api/dispatch/911/:callId/closeClose 911 callauthCheck

BOLOs (/api/bolos)

MethodEndpointDescriptionAuth
GET/api/bolos/activeActive BOLOsauthCheck
GET/api/bolos/searchSearch BOLOsauthCheck
POST/api/bolosCreate BOLOauthCheck
PUT/api/bolos/:idUpdate BOLOauthCheck
DELETE/api/bolos/:idDeactivate BOLOauthCheck
POST/api/bolos/:id/viewedMark BOLO viewedauthCheck

Lookups (/api/lookup)

MethodEndpointDescriptionAuth
POST/api/lookupSmart search (60/min)authCheck
GET/api/lookup/recentRecent lookups
GET/api/lookup/civilian/:idDetailed civilian
GET/api/lookup/vehicle/:idDetailed vehicle
GET/api/lookup/reports/:licenseNumberReports by license

Suspects (/api/suspects)

MethodEndpointDescriptionAuth
POST/api/suspectsCreate suspectauthCheck
GET/api/suspectsGet all suspectsauthCheck
GET/api/suspects/:idGet suspect by IDauthCheck
PUT/api/suspects/:idUpdate suspectauthCheck

Announcements (/api/announcements)

MethodEndpointDescriptionAuth
GET/api/announcements/activeActive announcementsauthCheck
POST/api/announcementsCreate announcementsupervisor/admin
DELETE/api/announcements/:idDelete announcementsupervisor/admin