Record API Endpoints
All custom records and reports utilize the same common formatting. You can manage custom records via the endpoints shown below.Retrieve Record Templates
Access your existing custom record types built from the CAD’s custom record editor.Get Record Templates
Create a New Record
Add a new custom record to your community.New Record
Edit an Existing Record
Modify and update an existing record in your community.Edit Record
Remove a Record
Remove an existing record from your community.Remove Record
Record Formatting
Custom records require a strict format with several dozen different data fields. Due to the complexity, it is highly recommended to create a new custom record template in the CAD UI, and then retrieve the record template for adding new records.- Custom Record
- Section
- Field
{
"recordTypeId": -1, // This is the unique ID for this record type!
"id": -1, // This is the individual record ID number (Leave -1 for NEW)
"syncId": "", // This is used for DB Sync/Merge mapping - Leave Blank
"name": "Eample Record Type", // This is the name of the record type
"type": 1, // See TYPE enum
"sections": [] // Array of custom record "section" objects
}
| Enum | Description |
|---|---|
| 2 | Custom Warrant |
| 3 | Custom BOLO |
| 4 | Custom License |
| 5 | Custom Vehicle Registration |
| 7 | Custom Character |
| 8 | Custom Police Record |
| 9 | Custom Police Report |
| 10 | Custom Medical Record |
| 11 | Custom Medical Report |
| 12 | Custom Fire Record |
| 13 | Custom Fire Report |
| 14 | Custom DMV Record |
| 15 | Custom Law Record |
| 16 | Custom Law Report |
The “Section” object contains all of the data for a custom record section. These objects are held in the CategoryThe
sections array in the custom record object.{
"category": 0, // Premade or Custom Section Type
"label": "Some Custom Section", // Name/Header of Section
"fields": [], // Array of "FIELD" objects
"searchCiv": false, // If this is a civilian character section,
// display the search button to help search and import character data automatically
"searchVeh": false, // If this is a vehicle information section,
// display the search button to help search and import vehicle data automatically
"enableDuplicate": true, // Allow users to duplicate this section while filling out the record/report
"dependency": {
"type": "", // EQUAL, NOTEQUAL, CONTAINS
"fid": "_5678_wxyz",
"acceptableValues": [
"Something",
"Example",
]
}
}
category field contains an enumerator representing the section type. These correspond to the custom or premade category types in the custom record editor.| Enum | Description |
|---|---|
| 0 | Custom |
| 1 | Flags |
| 5 | Speed |
| 6 | Charges |
| 9 | Linked Records |
The Type
StatusThe
MaskMasks can be used in a field to force a specific entry format
Ex:
UIDThe
In addition, a
field object contains all of the data for an individual custom record field. These objects are held in the fields array in the section object.{
"type": "input", // Field type (See Enum)
"label": "Some Field Name",
"value": "", // Field value - MUST be converted into a string
"size": 6, // Integer value 1-12 for column width (6 = 1/2 the row width)
"data": {}, // Object storing data for premade sections
"options": ["Option 1", "Another Option"], // Options for dropdown or checkb
"isPreviewed": false, // Should this field be seen in the lookup preview table?
"isSupervisor": false, // Is this field restricted to supervisors only?
"isRequired": false, // Is this field required to be filled before submitting?
"unique": false, // Ensure unique value against any other records of this type (recordTypeId) - Non-DB Sync and custom sections only!
"readOnly": false, // Prevent users from modifying auto-filled fields
"mask": "###", // Force 3 number entry (See Details)
"maskReverse": false, // Fill mask in reverse order (Money)
"dbMap": false, // Allow this field to be mapped with DB Sync
"isFromSync": false, // DB Sync Internal Processing (Ignore)
"uid": "_1234_abcd", // Random unique field ID (DB Sync and Merge)
"dependency": {
"type": "", // Unused
"fid": "_5678_wxyz",
"acceptableValues": [
"Something",
"Example",
]
}
}
INPUT | Standard Textbox |
|---|---|
TEXTAREA | Multi-line Textbox |
ADDRESS | Auto-filter Dropdown of Street Addresses |
SELECT | Dropdown (Uses options array) |
STATUS | DB Status Enums (See below) |
DATE | Date Picker |
TIME | Time Picker |
IMAGE | Image URL Viewer/Uploader |
CHECKBOXES | List of Checkboxes (Uses options array) |
LABEL | Text Label |
UNIT_NUMBER | Auto filled unit number |
UNIT_NAME | Auto filled unit name |
UNIT_RANK | Auto filled unit rank |
UNIT_AGENCY | Auto filled unit agency |
UNIT_DEPARTMENT | Auto filled unit department |
UNIT_SUBDIVISION | Auto filled unit subdivision |
UNIT_AGENCY_LOCATION | Auto filled unit agency location |
UNIT_AGENCY_ZIP | Auto filled unit agency zip |
UNIT_LOCATION | Auto filled unit location |
STATUS field type is required for Vehicle Registration type records and provides additional optional functionality for BOLO and Warrant records. This status allows the database to search for BOLO/Warrant records that are open or closed, and vehicle registrations that are approved or pending in the DMV panel.The STATUS field value contains an enumeration (integer) value as follows:| Enumerator (Int) | DMV Records | Warrant/BOLO Records |
|---|---|---|
0 | PENDING | ACTIVE |
1 | APPROVED | CLOSED |
2 | REJECTED | N/A |
Ex:
(###) ### - #### forces a phone number format.| Token | Description |
|---|---|
| # | Numeric |
| S | Letter A-Z |
| X | Alphanumeric |
UID or “Unique ID” field helps internally map Database Merge fields.In addition, a
UID field with the value of "first" and "last" are required for the civilian records. A UID field of "plate" is required for a vehicle registration record. This is how the backend process determines searchable license plate and character name values.When you create a custom record and add in a civilian or vehicle section, the imported section will keep the same UID fields. This is how data is mapped from a character or vehicle search and placed into a custom record.DataThe data object stores detailed objects for pre-made section types. The data object type (charge, agency info, flags, etc.) stored can be determined by the parent section’s category enumeration value. If the parent section’s category is not 0 (Custom) then the section will contain a single field, with the data property containing the detailed object.Ex: record.sections[index].fields[0].data object would contain agency information if the record.sections[index].category is 2 (Agency).// Flags (Section Category 1)
{
"flags": ["Some Flag", "Another Flag"]
}
// Checkboxes (Custom Section Category 0)
// Checkboxes options are set in the field.options array
// Checkboxes selection are set in the field.data.flags array
// Ex: options: ["Checkbox 1", "Checkbox 2", "Checkbox 3"]
// Ex: Select #1 & #3 data: { flags: ["Checkbox 1", "Checkbox 3"] }
{
"flags": ["Checkbox 1", "Checkbox 3"]
}
// Agency (Section Category 2)
{
"name": "LSPD", // Agency Name
"recordNumber": -1, // New Record ID
"date": "01/01/2020",
"officer": "John Doe",
"location": "1234 E. Test St",
"zip": "12345",
"badge": "A10"
}
// Speed (Section Category 5)
{
"vehicleSpeed": "70",
"speedLimit": "45",
"paceType": "Radar",
"date": "01/01/2020",
"time": "10:00 PM",
"fine": 350
}
// Charges (Section Category 6)
{
"arrestCharge": "Assault",
"arrestChargeType": "Misdemeanor",
"arrestChargeCounts": 1,
"arrestChargeCode": "A(102)",
"arrestBondType": "Federal Bail Bond",
"arrestBondAmount": 50000,
"jailTime": "5 Years"
}

