Support ← All resources

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.

Applies to Smart Squad 2.9

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

ServiceWhat it doesMethods
PersonSearch and retrieve person records10
VehicleSearch and retrieve vehicles; manage the vehicle lookup list6
BusinessSearch and retrieve business records2
LocationSearch, retrieve, verify and parse addresses; create phone and email records6
LookupReference and code lists; current weather by coordinate5
PhoneBookAgency contacts and phone book entries4
ExternalQueryConfiguration of the agency’s external query sources1

Field work

ServiceWhat it doesMethods
TicketSearch and create citations; drive records and court export status20+
IRSImpaired roadside screening; custom ticket fields, charges, tow companies, detachments15+
NoteSearch notes, retrieve by record, and track notes awaiting export20+
FormsRetrieve, update, archive and submit agency forms; form number pool8+
OccurrenceSearch occurrences, create and update reports, monthly statistics15+
TaskingActive tasks, task detail, and the start / complete / approve lifecycle8+
ShiftShifts by date range, current shift, and custom shift fields8

Communication and awareness

ServiceWhat it doesMethods
AlertUser alerts, print job sharing, and scan requests between devices8+
MessagingDiscussions and messages, membership and invitations8+
IntelIntelligence groupings and postings, including shared groupings8+
DispatchPending and active dispatch events, event detail, and comments4
SituationalSituational awareness map layers and sources4
GeoLocation clustering for officers, squads and citations over a date range3

Evidence and interviews

ServiceWhat it doesMethods
TranscriptionSearch transcriptions, retrieve detail, update, approve and export6
VirtualResponseVirtual interviews — create, search, retrieve and track export state8+
MdlServiceMobile driver’s licence verification certificate1

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.

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.