Smart Squad API
Integrate records, citations, notes, dispatch and evidence workflows with Smart Squad. This guide is for developers and system integrators building against an agency’s Smart Squad installation.
Getting access
Access is granted per agency. An API key is issued to your organisation by Faction Four, with the agreement of the agency whose installation you are integrating with — we do not issue keys against an agency’s data without them. Contact support to start that conversation.
Transport and authentication
All requests are made over HTTPS. Plain HTTP is not supported and should never be used, including in development.
Your API key is passed as the sessionID parameter, which is the
first argument of every method. There is no separate login step and no token exchange
— the key is presented on each call.
Treat the key as a credential with access to criminal justice information. Never place it in client-side code, a public repository, a URL, or a log. Rotate it immediately if it may have been exposed, by contacting support.
Request and response format
The API is a SOAP interface, but requests and responses are exchanged as JSON rather than XML. This is the single thing most integrators get wrong, so it is worth stating plainly: use the WSDL to discover method names and the shape of their parameters, then send JSON.
Send Content-Type: application/json; charset=utf-8. Object
parameters are passed as JSON objects matching the structure in the WSDL. Responses are
returned wrapped in a d property.
Example — search notes
POST https://{agency-host}/services/Note.asmx/searchAllNotes
Content-Type: application/json; charset=utf-8
{
"sessionID": "{your-api-key}",
"criteria": {
"searchText": "Main Street"
}
}
The same call from the browser:
fetch("https://{agency-host}/services/Note.asmx/searchAllNotes", {
method: "POST",
headers: { "Content-Type": "application/json; charset=utf-8" },
body: JSON.stringify({
sessionID: API_KEY,
criteria: { searchText: "Main Street" }
})
})
.then(r => r.json())
.then(result => console.log(result.d))
.catch(err => console.error(err));
Discovering methods
Every service publishes a WSDL at
https://{agency-host}/services/{Service}.asmx?WSDL, which is the authoritative
list of methods and parameter shapes for the version you are integrating with. A SOAP client
such as SoapUI will enumerate them and generate a sample payload; convert that payload to
JSON before sending it.
Services
Thirty-two services are available in 2.9. Method counts are indicative — the WSDL for your agency’s installation is authoritative.
Records and search
| Service | What it does | Methods |
|---|---|---|
| Person | Search and retrieve person records | 10 |
| Vehicle | Search and retrieve vehicles; manage the vehicle lookup list | 6 |
| Business | Search and retrieve business records | 2 |
| Location | Search, retrieve, verify and parse addresses; create phone and email records | 6 |
| Lookup | Reference and code lists; current weather by coordinate | 5 |
| PhoneBook | Agency contacts and phone book entries | 4 |
| ExternalQuery | Configuration of the agency’s external query sources | 1 |
Field work
| Service | What it does | Methods |
|---|---|---|
| Ticket | Search and create citations; drive records and court export status | 20+ |
| IRS | Impaired roadside screening; custom ticket fields, charges, tow companies, detachments | 15+ |
| Note | Search notes, retrieve by record, and track notes awaiting export | 20+ |
| Forms | Retrieve, update, archive and submit agency forms; form number pool | 8+ |
| Occurrence | Search occurrences, create and update reports, monthly statistics | 15+ |
| Tasking | Active tasks, task detail, and the start / complete / approve lifecycle | 8+ |
| Shift | Shifts by date range, current shift, and custom shift fields | 8 |
Communication and awareness
| Service | What it does | Methods |
|---|---|---|
| Alert | User alerts, print job sharing, and scan requests between devices | 8+ |
| Messaging | Discussions and messages, membership and invitations | 8+ |
| Intel | Intelligence groupings and postings, including shared groupings | 8+ |
| Dispatch | Pending and active dispatch events, event detail, and comments | 4 |
| Situational | Situational awareness map layers and sources | 4 |
| Geo | Location clustering for officers, squads and citations over a date range | 3 |
Evidence and interviews
| Service | What it does | Methods |
|---|---|---|
| Transcription | Search transcriptions, retrieve detail, update, approve and export | 6 |
| VirtualResponse | Virtual interviews — create, search, retrieve and track export state | 8+ |
| MdlService | Mobile driver’s licence verification certificate | 1 |
Restricted services
These exist in the API but are not documented for general integration. They carry administrative authority, agency configuration, audit records, or personal data with additional handling requirements. Access is considered case by case with the agency — talk to us about what you are trying to build.
Admin,Settings,UserManagement— agency administration and configurationSearchAudit— query audit recordsWellness— officer wellness data, subject to consentSmartDraft,TicketScan,TicketDuplicates— AI tuning and processing pipelines
Errors
A failed call returns a SOAP fault. Treat any non-success response as a failure of the whole call rather than a partial result, and do not retry automatically on an authentication or authorisation failure — a repeatedly rejected key will be investigated as a potential compromise.
Build for the network you are on: an agency installation may be on-premise, behind a VPN, or subject to maintenance windows. Time out, back off, and retry idempotent reads rather than assuming availability.
Versioning
The API is versioned with the product. An agency’s installation exposes the surface of the version it runs, which is not necessarily the newest release — always develop against the WSDL of the installation you are integrating with, and confirm the version with the agency before relying on a method.
Methods are added between releases. Removals and signature changes are communicated in advance to integrators holding an active key.
Support
Integration questions, key requests and access to restricted services all go through Faction Four support.
