CommunityReport API Introduction
The CommunityReport API provides secure, programmatic access to non-emergency incident reports that have been created by Versaterm's CommunityReport platform. CommunityReport is a collection of applications and services which allow community members to report incidents that do not require an officer's immediate response. To learn more about the CommunityReport, please Click Here. If you have technical questions about the CommunityReport API, please Contact Us
Who is the API for?
This API is provided for use by Records Management System (RMS) and other Law Enforcement related vendors who want to connect their tools with the latest in crime reporting technologies. By enabling your platform to connect with the CommunityReport you are able to offer a huge additional value to your current and prospective customers through easy access to reports created within the CommunityReport platform.
What kind of data does the API provide?
The API provides a wealth of information surrounding the community member's original report submission, and all actions taken by the agency so far within the CommunityReport platform. Items available may include:
Who controls access to API data?
Individual agencies control access to their own reporting data within the CommunityReport platform. If you'd like to integrate your RMS platform with CommunityReport, you will need to work directly with the agency using CommunityReport to gain access to their data.
How can I get started?
In order to facilitate the development of new integrations, a sandbox environment is available for your use. This environment contains a number of sample reports, and fully-functional endpoints for developing your integration. For access to the sandbox environment, please contact us.
Overview
The API is a RESTful WebService built on the Microsoft Asp.NET MVC WebAPI platform. It is capable of outputting data in both XML and JSON formats based on the format of the requests it receives. Information about the format of data passed out of the API is available using special POST request you can make to obtain the detailed schema.
API Sections
The API is divided up into three sections. One section covers the operating mode for interacting with Report Data. The other two sections allow for requesting additional information and controlling interactions with the API.
Pull Mode
The pull mode of operation gives you finer control over when your system learns about new reports, and allows you to process new report information in batches as often as your needs dictate.
Learn MoreAd-hoc Requests
In order to keep initial data loads small, requests for data such as media evidence, case history, call audio and audit trail information are made by ad-hoc requests to the WebService. This data can be requested at any time.
Learn MoreAPI Control
The API also provides endpoints for switching the operating mode on the flow, requesting administrative info, and self-testing the connection from your platform to CommunityReport and vice-versa. This gives your platform ultimate control.
Learn MorePull Mode
Full Documentation
Please note this information is intended as an overview of the data types and workflow in the application. Please Click Here for how to obtain complete and official details.
Introduction
The pull mode provides a mode of operation that allows your application complete control over when and how it retrieves report data. It also provides an easy mechanism for performing actions on batches of reports.
Workflow
Refer to following step-by-step guide and diagram to understand how to access reports in the pull mode.
Request Report Digest
In the pull mode, the API does not notify your application of new reports, instead reports are queued within the CommunityReport platform until they are retrieved by your application. In order to retrieve reports you must first request a list, or digest, of reports that are available to take action upon. These reports may be new reports, updated reports, or reports that require information such as a CaseNumber.
Endpoint: api/report/digest
This is the object that is sent back in response to a digest request
Name | Type | Notes |
---|---|---|
IntegrationId | GUID | Uniquely identifies your access to an agency's API data |
AccessToken | GUID | Uniquely identifies your target RMS vendor configuration |
StartDateTime | DateTime | Beginning of the valid range of reports to retrieve data for. Leave blank or omit to retreive all valid reports for all time. |
EndDateTime | DateTime | End of the valid range, leave blank or omit to retreive all reports up to the present time. |
MessageTypes | Array of MessageTypeEnum | An array of the report message types you want to receive in the digest. ('Complete' or 'Update') |
The result of a call to retrieve a digest of reports is an array of ReportDigest objects.
Name | Type | Notes |
---|---|---|
RefNum | Int64 | The report's identifier within CommunityReport |
ActionDate | DateTime | The data the action took place |
ActionType | MessageTypeEnum | The type of action, which describes why the report is in the digest. Ex.,'Complete' or 'Update' |
Report Retrieval
Once your application has the digest, it is up to your application logic to decide how to proceed. In general, you will want to retrieve information about the report. This is most common in the case of a new or updated report.
Endpoint: api/report/index
This is the object that is passed to the retrieval endpoint
Name | Type | Notes |
---|---|---|
IntegrationId | GUID | Uniquely identifies your access to an agency's API data |
AccessToken | GUID | Uniquely identifies your target RMS vendor configuration |
RefNum | Int64 | The report's identifier within CommunityReport |
VersionNumber | string | The Output Schema Version number to utilize. Leave blank to use the most current version. |
The API will respond to the report retrieval request synchronously, meaning you don't have to wait for a response. The response will contain all metadata concerning the requested report. For a full description of the report retrieval data structure, we will provide an API to download the JSON structure for a selected version number. For details please Click Here.
Report Acknowledgment
If you have a report in your digest that includes a MessageTypeEnum of "AcknowledgementRequest" or "CaseNumberRequest" you will want to use this endpoint to close out your integration workflow with the report. You may call this endpoint preemptively without waiting for a request in the digest as desired.
Endpoint: api/report/acknowledge
Use this data type to confirm receipt of a report, and to address any errors or other issues
Name | Type | Notes |
---|---|---|
IntegrationId | GUID | Uniquely identifies your access to an agency's API data |
AccessToken | GUID | Uniquely identifies your target RMS vendor configuration |
RefNum | Int64 | The report's identifier within CommunityReport |
Success | bool | Whether or not your system accepts the report |
Errors | Array of Strings | Error encountered by your application |
CaseNumber | String | Provided only if applicable. This will be the official case number usually generated in the RMS once the record is successfully ingested. Passing this back to CommunityReport enables the automated notifications to include the official case number for the reporting party if they wish to obtain a copy of their report later. |
Ad-Hoc Requests
Full Documentation
Please note this information is intended as an overview of the data types and workflow in the application. Please contact us for complete and official details.
Introduction
Because different applications desire differing levels of information, and in the interest of keeping payloads small, report data such as media upload files and audio files are not included in the initial report detail object. These details can be requested on an as-desired basis by your application at any point without need for a detailed workflow.
Instructions
Each of the Ad-Hoc request endpoints use the same data type for their request at different endpoints. The data definition for this request type is as follows:
This request object is used to make ad-hoc requests for report data
Name | Type | Notes |
---|---|---|
IntegrationId | GUID | Uniquely identifies your access to an agency's API data |
AccessToken | GUID | Uniquely identifies your target RMS vendor configuration |
RefNum | Int64 | The report's identifier within CommunityReport |
Media Evidence
During the reporting process, the reporting party (RP) is asked to upload any digital media they may wish to provide. This can include digital photographs, audio, video, or any electronic documents that the RP deems interesting or important to the report. Likewise, reviewing officials can also add to the evidence in a given report during review. To retreive these media uploads (if any) you make use of the api/metadata/audio endpoint.
Endpoint: api/metadata/evidence
The result of a call to this endpoint will be an array of zero or more ReportEvidence objects.
Name | Type | Notes |
---|---|---|
EvidenceType | EvidenceTypeEnum | The type of media, this may be "photograph", "audio" or "video" as examples |
Finder | Person | This is the individual who located or provided the evidence. |
Location | Location | Identifies the location where the subject of the media was found. |
DateFound | DateTime | When the subject of the media was first created or located |
DateUploaded | DateTime | When the media was first uploaded to CommunityReport |
SASLink | string | A short-access link to retrieve the media file |
SASExpiration | DateTime | When the SASLink will expire |
ItemFileName | string | The file name of the media upload. |
ItemFileType | string | The media file type provided during upload. |
ItemFileSize | string | The size of the media upload w/unit of measure |
ItemDescription | string | The description provided during upload. |
Call Audio
Reports that are made, or updated, through the CommunityReport Voice Reporting System will have recorded audio files associated with them containing a recording of the Reporting Party interacting with the automated phone system. This data can be retrieved by making a request to the api/metadata/evidence endpoint.
A request for audio returns an array of zero or more ReportAudio objects.
Name | Type | Notes |
---|---|---|
SASLink | string | A link to retrieve the audio file |
SASExpiration | DateTime | When the SASLink will expire |
RecordedDate | DateTime | When the audio file was recorded |
API Control
Introduction
The Control API is intended to allow you to configure the API's mode of operation. This part of the API also contains endpoints for end-to-end testing of communication channels to ensure continuous up-time.
API Mode Registration
All integrations are utilizing a pull mode.
Endpoint: api/control/register
Use this object to configure your integration
Name | Type | Notes |
---|---|---|
IntegrationId | GUID | Uniquely identifies your access to an agency's API data |
AccessToken | string | Your unique API token |
MessageTypes | Array of MessageTypeEnum | The message types you wish to receive. 'Complete' or 'Update' |
Full Report Output Schema Definition
Introduction
The CommunityReport API makes provision for defined versions of API output. We may provide new versions of the output schema as new features are introduced, but we will always maintain the prior versions to ensure your integration is not impacted.
Standard Output Schema
The Standard Output Schema for the returns from api/report/index are as follows. The version is "1.0".
Return data schema for: /api/report/index
Note the definifion below includes the schema path data type, description, and a sample value (where applicable).
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "StaticItems": { "type": "object", "description": "Static items related to the case", "properties": { "Offenses": { "type": "array", "description": "List of offenses", "items": { "type": "object", "properties": { "Id": { "type": "string", "description": "Unique identifier for the offense" }, "Name": { "type": "string", "description": "Name of the offense" }, "Code": { "type": "string", "description": "Code representing the offense" }, "Description": { "type": "string", "description": "Description of the offense" }, "UCRCode": { "type": "string", "description": "Uniform Crime Reporting code for the offense" }, "IBRCode": { "type": "string", "description": "Incident-Based Reporting code for the offense" }, "AttemptCommit": { "type": "string", "description": "Indicates if the offense was attempted or committed" }, "CustomField1": { "type": "string", "description": "Custom field 1 for additional information" }, "CustomField2": { "type": "string", "description": "Custom field 2 for additional information" }, "CustomField3": { "type": "string", "description": "Custom field 3 for additional information" }, "AddedBy": { "type": "string", "description": "Name of the person who added the offense" }, "PName": { "type": "string", "description": "Placeholder name for the offense" } } } }, "CustomQuestions": { "type": "array", "description": "List of custom questions related to the case", "items": { "type": "object", "properties": { "Reviewer": { "type": "string", "description": "Name of the reviewer" }, "Question": { "type": "string", "description": "Custom question text" }, "QuestionDateTime": { "type": "string", "description": "Date and time the question was asked" }, "Response": { "type": "string", "description": "Response to the custom question" }, "ResponseDateTime": { "type": "string", "description": "Date and time the response was given" }, "IsComplete": { "type": "string", "description": "Indicates if the question is complete" } } } }, "Notes": { "type": "array", "description": "List of notes related to the case", "items": { "type": "object", "properties": { "EnteredBy": { "type": "string", "description": "Name of the person who entered the note" }, "DateEntered": { "type": "string", "description": "Date the note was entered" }, "Note": { "type": "string", "description": "Text of the note" } } } }, "CaseRecord": { "type": "object", "description": "Record of the case", "properties": { "CaseNum": { "type": "string", "description": "Unique case number" }, "RefNum": { "type": "string", "description": "The internal unique record reference number. Same as ReferenceNumber" }, "OccurDate": { "type": "string", "description": "Date the incident occurred" }, "CaseStatus": { "type": "string", "description": "Current status of the case" }, "CaseStatusDescription": { "type": "string", "description": "Description of the case status" }, "OriginatingIpAddress": { "type": "string", "description": "IP address from which the case was reported" }, "LastUpdateDateTime": { "type": "string", "description": "Date and time the case record was last updated" }, "IsError": { "type": "string", "description": "Indicates if there was an error in the case record" }, "ErrorMessage": { "type": "string", "description": "Error message, if any" }, "Transcript": { "type": "string", "description": "Transcript of the case record" }, "SkipValidation": { "type": "string", "description": "Indicates if validation should be skipped" }, "AuditHistory": { "type": "string", "description": "History of audits performed on the case record" } } } } }, "CaseApprovals": { "type": "array", "description": "List of case approvals", "items": { "type": "object", "properties": { "PrivateComments": { "type": "string", "description": "Private comments related to the approval" }, "PublicComments": { "type": "string", "description": "Public comments related to the approval" }, "Status": { "type": "string", "description": "Status of the approval" }, "StatusDescription": { "type": "string", "description": "Description of the approval status" }, "DenyReason": { "type": "string", "description": "Reason for denial, if applicable" }, "ApprovalDate": { "type": "string", "description": "Date the approval was given" }, "ApprovingOfficer": { "type": "object", "description": "Details of the officer who approved the case", "properties": { "BadgeNumber": { "type": "string", "description": "Badge number of the approving officer" }, "ReviewerName": { "type": "string", "description": "Name of the approving officer" } } } } } }, "ReportStatus": { "type": "string", "description": "Status of the report" }, "ReportStatusDescription": { "type": "string", "description": "Description of the report status" }, "SystemVars": { "type": "object", "description": "System variables related to the case", "properties": { "AgencyID": { "type": "string", "description": "Identifier for the agency" }, "AgencyName": { "type": "string", "description": "Name of the agency" }, "AgencyPhone": { "type": "string", "description": "Phone number of the agency" }, "Channel": { "type": "string", "description": "Communication channel used" }, "SessionId": { "type": "string", "description": "Session identifier" }, "Lang": { "type": "string", "description": "Language used in the report" }, "CaseStatus": { "type": "string", "description": "Current status of the case" }, "ReportedDateTime": { "type": "string", "description": "Date and time the case was reported" }, "RejoinSessionId": { "type": "string", "description": "Session identifier for rejoining" }, "UrlLinkiPhone": { "type": "string", "description": "URL link for iPhone users" }, "UrlLinkAndroid": { "type": "string", "description": "URL link for Android users" }, "UrlLinkCnWeb": { "type": "string", "description": "URL link for web users" }, "UrlTargetLink": { "type": "string", "description": "Target URL link" }, "UrlLinkCrashReport": { "type": "string", "description": "URL link for crash report" }, "IncidentShortDate": { "type": "string", "description": "Short date format for the incident" }, "IncidentHourMin": { "type": "string", "description": "Time of the incident in hours and minutes" } } }, "CrimeDetail": { "type": "object", "description": "Details about the crime", "properties": { "Narrative": { "type": "string", "description": "Narrative description of the crime" }, "CrimeResult": { "type": "object", "description": "Results of the crime", "properties": { "CrimeLoss": { "type": "number", "description": "Monetary loss resulting from the crime" }, "GraffitiCoverage": { "type": "string", "description": "Coverage area of graffiti" }, "GraffitiContent": { "type": "string", "description": "Content of the graffiti" }, "HarassThreatSummary": { "type": "string", "description": "Summary of harassment or threats" } } }, "CrimeLocation": { "type": "object", "description": "Location details of the crime", "properties": { "StreetAddress": { "type": "string", "description": "Street address where the crime occurred" }, "UnitAptSuite": { "type": "string", "description": "Unit, apartment, or suite number" }, "City": { "type": "string", "description": "City where the crime occurred" }, "Zip": { "type": "string", "description": "ZIP code of the crime location" }, "PlaceName": { "type": "string", "description": "Name of the place where the crime occurred" }, "District": { "type": "string", "description": "District of the crime location" }, "Beat": { "type": "string", "description": "Police beat of the crime location" }, "Country": { "type": "string", "description": "Country where the crime occurred" }, "Lat": { "type": "string", "description": "Latitude of the crime location" }, "Lng": { "type": "string", "description": "Longitude of the crime location" }, "GoogleAddress": { "type": "string", "description": "Google address of the crime location" } } }, "ReportingParty": { "type": "object", "description": "Details about the reporting party", "properties": { "Person": { "type": "object", "description": "Personal information of the reporting party", "properties": { "FirstName": { "type": "string", "description": "First name of the reporting party" }, "MiddleName": { "type": "string", "description": "Middle name of the reporting party" }, "LastName": { "type": "string", "description": "Last name of the reporting party" }, "DateOfBirth": { "type": "string", "description": "Date of birth of the reporting party" }, "Age": { "type": "string", "description": "Age of the reporting party" }, "EmailAddress": { "type": "string", "description": "Email address of the reporting party" }, "Phones": { "type": "array", "description": "Phone numbers of the reporting party", "items": { "type": "object", "properties": { "PhoneType": { "type": "string", "description": "Type of phone (e.g., mobile, home)" }, "PhoneNumber": { "type": "string", "description": "Phone number" } } } }, "Address": { "type": "object", "description": "Address of the reporting party", "properties": { "StreetAddress": { "type": "string", "description": "Street address" }, "UnitAptSuite": { "type": "string", "description": "Unit, apartment, or suite number" }, "City": { "type": "string", "description": "City" }, "Zip": { "type": "string", "description": "ZIP code" }, "Country": { "type": "string", "description": "Country" } } }, "ResidentOfCounty": { "type": "string", "description": "Indicates if the reporting party is a resident of the county" }, "Employer": { "type": "object", "description": "Employer information of the reporting party", "properties": { "EmployerName": { "type": "string", "description": "Name of the employer" }, "Occupation": { "type": "string", "description": "Occupation of the reporting party" }, "Address": { "type": "object", "description": "Address of the employer", "properties": { "StreetAddress": { "type": "string", "description": "Street address" }, "UnitAptSuite": { "type": "string", "description": "Unit, apartment, or suite number" }, "City": { "type": "string", "description": "City" }, "Zip": { "type": "string", "description": "ZIP code" } } } } }, "EmploymentStatus": { "type": "string", "description": "Employment status of the reporting party" } } }, "ReporterAlsoVictim": { "type": "string", "description": "Indicates if the reporter is also a victim" }, "BestContactMethod": { "type": "string", "description": "Best method to contact the reporting party" }, "RpCaseSummary": { "type": "string", "description": "Summary of the case from the reporting party's perspective" }, "RpOtherInfo": { "type": "string", "description": "Additional information from the reporting party" }, "AccessCode": { "type": "string", "description": "Access code for the report" }, "PIN": { "type": "number", "description": "PIN code for the report" }, "IpAddress": { "type": "string", "description": "IP address from which the report was submitted" }, "Channel": { "type": "string", "description": "Channel through which the report was submitted" }, "Lang": { "type": "string", "description": "Language of the report" }, "RpCallerId": { "type": "string", "description": "Caller ID of the reporting party" }, "PrimaryPhone": { "type": "string", "description": "Primary phone number of the reporting party" }, "Role": { "type": "string", "description": "Role of the reporting party" }, "Identification": { "type": "object", "description": "Identification details of the reporting party", "properties": { "IdentificationNumber": { "type": "string", "description": "Identification number" } } }, "TrustedReporter": { "type": "string", "description": "Indicates if the reporting party is a trusted reporter" }, "ExcludeRpEntity": { "type": "string", "description": "Entities to be excluded by the reporting party" } } }, "CrimeVictim": { "type": "array", "description": "List of victims involved in the crime", "items": { "type": "object", "properties": { "Person": { "type": "object", "description": "Personal information of the victim", "properties": { "FirstName": { "type": "string", "description": "First name of the victim" }, "MiddleName": { "type": "string", "description": "Middle name of the victim" }, "LastName": { "type": "string", "description": "Last name of the victim" }, "DateOfBirth": { "type": "string", "description": "Date of birth of the victim" }, "Age": { "type": "string", "description": "Age of the victim" }, "EmailAddress": { "type": "string", "description": "Email address of the victim" }, "Phones": { "type": "array", "description": "Phone numbers of the victim", "items": { "type": "object", "properties": { "PhoneType": { "type": "string", "description": "Type of phone (e.g., mobile, home)" }, "PhoneNumber": { "type": "string", "description": "Phone number" } } } }, "Address": { "type": "object", "description": "Address of the victim", "properties": { "StreetAddress": { "type": "string", "description": "Street address" }, "UnitAptSuite": { "type": "string", "description": "Unit, apartment, or suite number" }, "City": { "type": "string", "description": "City" }, "Zip": { "type": "string", "description": "ZIP code" }, "Country": { "type": "string", "description": "Country" } } }, "ResidentOfCounty": { "type": "string", "description": "Indicates if the victim is a resident of the county" }, "EmploymentStatus": { "type": "string", "description": "Employment status of the victim" }, "Employer": { "type": "object", "description": "Employer information of the victim", "properties": { "EmployerName": { "type": "string", "description": "Name of the employer" }, "Occupation": { "type": "string", "description": "Occupation of the victim" }, "WorkHours": { "type": "string", "description": "Work hours of the victim" }, "Address": { "type": "object", "description": "Address of the employer", "properties": { "StreetAddress": { "type": "string", "description": "Street address" }, "UnitAptSuite": { "type": "string", "description": "Unit, apartment, or suite number" }, "City": { "type": "string", "description": "City" }, "Zip": { "type": "string", "description": "ZIP code" }, "Country": { "type": "string", "description": "Country" } } }, "Phones": { "type": "array", "description": "Phone numbers of the employer", "items": { "type": "object", "properties": { "PhoneType": { "type": "string", "description": "Type of phone (e.g., mobile, office)" }, "PhoneNumber": { "type": "string", "description": "Phone number" } } } } } }, "Identification": { "type": "object", "description": "Identification details of the victim", "properties": { "IdentificationNumber": { "type": "string", "description": "Identification number" } } }, "Vehicles": { "type": "array", "description": "Vehicles associated with the victim", "items": { "type": "object", "properties": { "Year": { "type": "string", "description": "Year of the vehicle" }, "LicenseNumber": { "type": "string", "description": "License number of the vehicle" }, "AdditionalIdentifiers": { "type": "string", "description": "Additional identifiers for the vehicle" }, "InsurancePolicyNumber": { "type": "string", "description": "Insurance policy number" }, "InsuranceCompanyName": { "type": "string", "description": "Name of the insurance company" }, "InsurancePolicyDate": { "type": "string", "description": "Date of the insurance policy" }, "Vin": { "type": "string", "description": "Vehicle Identification Number (VIN)" }, "Role": { "type": "string", "description": "Role of the vehicle in the crime" }, "DamageLocations": { "type": "string", "description": "Damage locations on the vehicle" }, "RoFullName": { "type": "string", "description": "Full name of the vehicle's registered owner" }, "RoFullAddress": { "type": "string", "description": "Full address of the vehicle's registered owner" }, "RoPhone": { "type": "string", "description": "Phone number of the vehicle's registered owner" } } } } } }, "Organization": { "type": "object", "description": "Information about the organization if the victim is an organization", "properties": { "NameDBA": { "type": "string", "description": "Doing Business As (DBA) name of the organization" }, "LegalName": { "type": "string", "description": "Legal name of the organization" }, "PrimaryEmail": { "type": "string", "description": "Primary email address of the organization" }, "PrimaryPhone": { "type": "string", "description": "Primary phone number of the organization" }, "Address": { "type": "object", "description": "Address of the organization", "properties": { "StreetAddress": { "type": "string", "description": "Street address" }, "UnitAptSuite": { "type": "string", "description": "Unit, apartment, or suite number" }, "City": { "type": "string", "description": "City" }, "Zip": { "type": "string", "description": "ZIP code" }, "Country": { "type": "string", "description": "Country" } } }, "Vehicles": { "type": "array", "description": "Vehicles associated with the organization", "items": { "type": "object", "properties": { "Year": { "type": "string", "description": "Year of the vehicle" }, "Make": { "type": "string", "description": "Make of the vehicle" }, "Model": { "type": "string", "description": "Model of the vehicle" }, "Color": { "type": "string", "description": "Color of the vehicle" }, "LicenseNumber": { "type": "string", "description": "License number of the vehicle" }, "AdditionalIdentifiers": { "type": "string", "description": "Additional identifiers for the vehicle" }, "InsurancePolicyNumber": { "type": "string", "description": "Insurance policy number" }, "InsuranceCompanyName": { "type": "string", "description": "Name of the insurance company" }, "InsurancePolicyDate": { "type": "string", "description": "Date of the insurance policy" }, "Vin": { "type": "string", "description": "Vehicle Identification Number (VIN)" }, "Role": { "type": "string", "description": "Role of the vehicle in the crime" }, "DamageLocations": { "type": "string", "description": "Damage locations on the vehicle" }, "RoFullName": { "type": "string", "description": "Full name of the vehicle's registered owner" }, "RoFullAddress": { "type": "string", "description": "Full address of the vehicle's registered owner" }, "RoPhone": { "type": "string", "description": "Phone number of the vehicle's registered owner" } } } } } }, "Role": { "type": "string", "description": "Role of the victim in the crime" }, "AdditionalInfo": { "type": "string", "description": "Additional information about the victim" }, "CriminalStatusType": { "type": "string", "description": "Type of criminal status" }, "VictimType": { "type": "string", "description": "Type of victim" }, "SuspectLinkage": { "type": "array", "description": "Linkages to suspects", "items": { "type": "object", "properties": { "SuspFirstName": { "type": "string", "description": "First name of the suspect" }, "SuspLastName": { "type": "string", "description": "Last name of the suspect" } } } }, "VictimIsOrg": { "type": "string", "description": "Indicates if the victim is an organization" } } } }, "Suspects": { "type": "array", "description": "List of suspects involved in the crime", "items": { "type": "object", "properties": { "Person": { "type": "object", "description": "Personal information of the suspect", "properties": { "FirstName": { "type": "string", "description": "First name of the suspect" }, "MiddleName": { "type": "string", "description": "Middle name of the suspect" }, "LastName": { "type": "string", "description": "Last name of the suspect" }, "DateOfBirth": { "type": "string", "description": "Date of birth of the suspect" }, "EmailAddress": { "type": "string", "description": "Email address of the suspect" }, "Phones": { "type": "array", "description": "Phone numbers of the suspect", "items": { "type": "object", "properties": { "PhoneType": { "type": "string", "description": "Type of phone (e.g., mobile, home)" }, "PhoneNumber": { "type": "string", "description": "Phone number" } } } }, "Address": { "type": "object", "description": "Address of the suspect", "properties": { "StreetAddress": { "type": "string", "description": "Street address" }, "UnitAptSuite": { "type": "string", "description": "Unit, apartment, or suite number" }, "City": { "type": "string", "description": "City" }, "Zip": { "type": "string", "description": "ZIP code" }, "Country": { "type": "string", "description": "Country" } } }, "EmploymentStatus": { "type": "string", "description": "Employment status of the suspect" }, "Employer": { "type": "object", "description": "Employer information of the suspect", "properties": { "EmployerName": { "type": "string", "description": "Name of the employer" }, "Occupation": { "type": "string", "description": "Occupation of the suspect" }, "WorkHours": { "type": "string", "description": "Work hours of the suspect" }, "Address": { "type": "object", "description": "Address of the employer", "properties": { "StreetAddress": { "type": "string", "description": "Street address" }, "UnitAptSuite": { "type": "string", "description": "Unit, apartment, or suite number" }, "City": { "type": "string", "description": "City" }, "Zip": { "type": "string", "description": "ZIP code" }, "Country": { "type": "string", "description": "Country" } } }, "Phones": { "type": "array", "description": "Phone numbers of the employer", "items": { "type": "object", "properties": { "PhoneType": { "type": "string", "description": "Type of phone (e.g., mobile, office)" }, "PhoneNumber": { "type": "string", "description": "Phone number" } } } } } }, "Identification": { "type": "object", "description": "Identification details of the suspect", "properties": { "IdentificationNumber": { "type": "string", "description": "Identification number" } } }, "Vehicles": { "type": "array", "description": "Vehicles associated with the suspect", "items": { "type": "object", "properties": { "Year": { "type": "string", "description": "Year of the vehicle" }, "LicenseNumber": { "type": "string", "description": "License number of the vehicle" }, "AdditionalIdentifiers": { "type": "string", "description": "Additional identifiers for the vehicle" }, "InsurancePolicyNumber": { "type": "string", "description": "Insurance policy number" }, "InsuranceCompanyName": { "type": "string", "description": "Name of the insurance company" }, "InsurancePolicyDate": { "type": "string", "description": "Date of the insurance policy" }, "Vin": { "type": "string", "description": "Vehicle Identification Number (VIN)" }, "Role": { "type": "string", "description": "Role of the vehicle in the crime" } } } }, "Height": { "type": "string", "description": "Height of the suspect" }, "Weight": { "type": "string", "description": "Weight of the suspect" }, "Nickname": { "type": "string", "description": "Nickname of the suspect" }, "School": { "type": "object", "description": "School details if the suspect is a student", "properties": { "SchoolName": { "type": "string", "description": "Name of the school" }, "Grade": { "type": "string", "description": "Grade of the suspect" }, "Address": { "type": "object", "description": "Address of the school", "properties": { "StreetAddress": { "type": "string", "description": "Street address" }, "City": { "type": "string", "description": "City" }, "State": { "type": "string", "description": "State" } } } } }, "Injuries": { "type": "string", "description": "Injuries sustained by the suspect" } } }, "Role": { "type": "string", "description": "Role of the suspect in the crime" }, "GeneralAppearance": { "type": "string", "description": "General appearance of the suspect" }, "AdditionalDetails": { "type": "string", "description": "Additional details about the suspect" }, "Arrested": { "type": "string", "description": "Indicates if the suspect was arrested" }, "Voice": { "type": "string", "description": "Description of the suspect's voice" } } } }, "Witnesses": { "type": "array", "description": "List of witnesses involved in the crime", "items": { "type": "object", "properties": { "Person": { "type": "object", "description": "Personal information of the witness", "properties": { "FirstName": { "type": "string", "description": "First name of the witness" }, "MiddleName": { "type": "string", "description": "Middle name of the witness" }, "LastName": { "type": "string", "description": "Last name of the witness" }, "DateOfBirth": { "type": "string", "description": "Date of birth of the witness" }, "Age": { "type": "string", "description": "Age of the witness" }, "EmailAddress": { "type": "string", "description": "Email address of the witness" }, "Phones": { "type": "array", "description": "Phone numbers of the witness", "items": { "type": "object", "properties": { "PhoneType": { "type": "string", "description": "Type of phone (e.g., mobile, home)" }, "PhoneNumber": { "type": "string", "description": "Phone number" } } } }, "Address": { "type": "object", "description": "Address of the witness", "properties": { "StreetAddress": { "type": "string", "description": "Street address" }, "UnitAptSuite": { "type": "string", "description": "Unit, apartment, or suite number" }, "City": { "type": "string", "description": "City" }, "Zip": { "type": "string", "description": "ZIP code" }, "Country": { "type": "string", "description": "Country" } } }, "ResidentOfCounty": { "type": "string", "description": "Indicates if the witness is a resident of the county" }, "EmploymentStatus": { "type": "string", "description": "Employment status of the witness" }, "Employer": { "type": "object", "description": "Employer information of the witness", "properties": { "EmployerName": { "type": "string", "description": "Name of the employer" }, "Occupation": { "type": "string", "description": "Occupation of the witness" }, "WorkHours": { "type": "string", "description": "Work hours of the witness" }, "Address": { "type": "object", "description": "Address of the employer", "properties": { "StreetAddress": { "type": "string", "description": "Street address" }, "UnitAptSuite": { "type": "string", "description": "Unit, apartment, or suite number" }, "City": { "type": "string", "description": "City" }, "Zip": { "type": "string", "description": "ZIP code" }, "Country": { "type": "string", "description": "Country" } } }, "Phones": { "type": "array", "description": "Phone numbers of the employer", "items": { "type": "object", "properties": { "PhoneType": { "type": "string", "description": "Type of phone (e.g., mobile, office)" }, "PhoneNumber": { "type": "string", "description": "Phone number" } } } } } }, "Identification": { "type": "object", "description": "Identification details of the witness", "properties": { "IdentificationNumber": { "type": "string", "description": "Identification number" } } }, "Vehicles": { "type": "array", "description": "Vehicles associated with the witness", "items": { "type": "object", "properties": { "Year": { "type": "string", "description": "Year of the vehicle" }, "Color": { "type": "string", "description": "Color of the vehicle" }, "LicenseNumber": { "type": "string", "description": "License number of the vehicle" }, "AdditionalIdentifiers": { "type": "string", "description": "Additional identifiers for the vehicle" }, "InsurancePolicyNumber": { "type": "string", "description": "Insurance policy number" }, "InsuranceCompanyName": { "type": "string", "description": "Name of the insurance company" }, "InsurancePolicyDate": { "type": "string", "description": "Date of the insurance policy" }, "Vin": { "type": "string", "description": "Vehicle Identification Number (VIN)" }, "Role": { "type": "string", "description": "Role of the vehicle in the crime" }, "DamageLocations": { "type": "string", "description": "Damage locations on the vehicle" }, "RoFullName": { "type": "string", "description": "Full name of the vehicle's registered owner" }, "RoFullAddress": { "type": "string", "description": "Full address of the vehicle's registered owner" }, "RoPhone": { "type": "string", "description": "Phone number of the vehicle's registered owner" } } } }, "Injuries": { "type": "string", "description": "Injuries sustained by the witness" } } }, "Role": { "type": "string", "description": "Role of the witness in the crime" }, "Statement": { "type": "string", "description": "Statement provided by the witness" } } } }, "CrimeMoDetail": { "type": "object", "description": "Modus operandi details of the crime", "properties": { "TheftTypeCode": { "type": "string", "description": "Code representing the type of theft" }, "PointOfEntry": { "type": "string", "description": "Point of entry in the crime" }, "SuspUsedFtw": { "type": "string", "description": "Indicates if the suspect used force, threat, or weapon" }, "FtwHowUsed": { "type": "string", "description": "How the force, threat, or weapon was used" }, "SuspUsing": { "type": "string", "description": "Method used by the suspect" }, "SuspBias": { "type": "string", "description": "Bias of the suspect" }, "NumPremEntered": { "type": "string", "description": "Number of premises entered" }, "HateCrimeSummary": { "type": "string", "description": "Summary of hate crime aspects" }, "TrespassSummary": { "type": "string", "description": "Summary of trespassing details" }, "GangType": { "type": "string", "description": "Type of gang involved" }, "ZipCode": { "type": "string", "description": "ZIP code related to the crime" }, "PhysicalEvidenceSummary": { "type": "string", "description": "Informational summary from the RP about possible physical evidence related to the crime" }, "LargeMediaSummary": { "type": "string", "description": "Summary from the RP about large media files that may be avaialble related to the crime" }, "MediaBestContact": { "type": "string", "description": "Details from the RP about who to contact to obtain the media related to the crime" } } }, "TheftDetail": { "type": "object", "description": "Details about the theft", "properties": { "StolenItems": { "type": "array", "description": "List of stolen items", "items": { "type": "object", "properties": { "PropertyStatusCode": { "type": "string", "description": "Status code of the stolen property" }, "JewelTypeCode": { "type": "string", "description": "Code representing the type of jewelry" }, "ArticleName": { "type": "string", "description": "Name of the stolen item" }, "Manufacturer": { "type": "string", "description": "Manufacturer of the stolen item" }, "ModelName": { "type": "string", "description": "Model name of the stolen item" }, "ModelNumber": { "type": "string", "description": "Model number of the stolen item" }, "IdentificationNumber": { "type": "string", "description": "Identification number of the stolen item" }, "Description": { "type": "string", "description": "Description of the stolen item" }, "Value": { "type": "string", "description": "Value of the stolen item" } } } }, "TheftSummary": { "type": "string", "description": "Summary of the theft incident" }, "TheftDescription": { "type": "string", "description": "Detailed description of the theft" }, "TheftFromPerson": { "type": "string", "description": "Indicates if the theft was from a person" }, "ForcedEntry": { "type": "string", "description": "Indicates if there was forced entry" }, "TheftWithDamage": { "type": "string", "description": "Indicates if the theft caused damage" }, "TheftofMetal": { "type": "string", "description": "Indicates if metal was stolen" }, "TheftCatConv": { "type": "string", "description": "Indicates if catalytic converter was stolen" } } }, "FraudDetail": { "type": "object", "description": "Details about the fraud", "properties": { "TypeOfFraud": { "type": "string", "description": "Type of fraud" }, "Description": { "type": "string", "description": "Description of the fraud" } } }, "PropertyDamageDetail": { "type": "object", "description": "Details about the property damage", "properties": { "Summary": { "type": "string", "description": "Summary of the property damage" }, "GraffitiOnly": { "type": "string", "description": "Indicates if the damage was graffiti only" }, "VehicleHitAndRun": { "type": "string", "description": "Indicates if the damage was due to a vehicle hit and run" } } }, "Evidence": { "type": "array", "description": "List of evidence items", "items": { "type": "object", "properties": { "Description": { "type": "string", "description": "Description of the evidence" }, "DateFound": { "type": "string", "description": "Date the evidence was found" }, "MediaUrl": { "type": "string", "description": "URL to the media evidence" }, "ItemType": { "type": "string", "description": "Type of evidence item" }, "FoundLocation": { "type": "object", "description": "Location where the evidence was found", "properties": { "StreetAddress": { "type": "string", "description": "Street address" }, "City": { "type": "string", "description": "City" }, "Zip": { "type": "string", "description": "ZIP code" }, "Country": { "type": "string", "description": "Country" } } }, "Finder": { "type": "object", "description": "Details about the person who found the evidence", "properties": { "FirstName": { "type": "string", "description": "First name of the finder" }, "LastName": { "type": "string", "description": "Last name of the finder" } } }, "MediaUploadInfo": { "type": "object", "description": "Upload information about the media evidence", "properties": { "FileId": { "type": "string", "description": "File ID of the uploaded media" }, "Title": { "type": "string", "description": "Title of the uploaded media" }, "Description": { "type": "string", "description": "Description of the uploaded media" }, "MediaType": { "type": "string", "description": "Type of media" }, "FileName": { "type": "string", "description": "Name of the uploaded file" }, "ReceivedDate": { "type": "string", "description": "Date the media was received" }, "FileSize": { "type": "string", "description": "Size of the uploaded file" }, "ExcludeFromExport": { "type": "boolean", "description": "Indicates if the media should be excluded from export" } } }, "UploadTitle": { "type": "string", "description": "Title of the upload" }, "FileId": { "type": "string", "description": "File ID of the upload" }, "UploadDate": { "type": "string", "description": "Date of the upload" }, "UploadFileName": { "type": "string", "description": "Name of the uploaded file" }, "UploadMediaType": { "type": "string", "description": "Type of the uploaded media" }, "UploadFileSize": { "type": "string", "description": "Size of the uploaded file" } } } }, "OccurredRangeStart": { "type": "string", "description": "Start date and time of the occurrence range" }, "OccurredRangeEnd": { "type": "string", "description": "End date and time of the occurrence range" }, "OccurredOnDateTime": { "type": "string", "description": "Date and time when the crime occurred" }, "DiscoverdOnDateTime": { "type": "string", "description": "Date and time when the crime was discovered" }, "AddlOffenses": { "type": "string", "description": "Additional offenses related to the crime" }, "CrashDetail": { "type": "object", "description": "Details about the crash", "properties": { "WhatOccured": { "type": "string", "description": "Description of what occurred in the crash" }, "HowOccured": { "type": "string", "description": "Description of how the crash occurred" }, "NumVehicles": { "type": "string", "description": "Number of vehicles involved in the crash" }, "WhatDamage": { "type": "string", "description": "Description of the damage caused by the crash" }, "PersonsInjured": { "type": "string", "description": "Number of persons injured in the crash" }, "UnInsuredDrivers": { "type": "string", "description": "Number of uninsured drivers involved in the crash" }, "NoContactRpOthers": { "type": "string", "description": "Description of any no contact reporting parties or others" }, "AnyLossOverLimit": { "type": "string", "description": "Description of any loss over the limit" }, "PublicPropDamage": { "type": "string", "description": "Description of public property damage" }, "DrugsAlcohol": { "type": "string", "description": "Description of any involvement of drugs or alcohol" }, "HitAndRun": { "type": "string", "description": "Indicates if the crash was a hit and run" } } }, "MediaDownloadUrl": { "type": "string", "description": "URL to download the media" }, "Property": { "type": "array", "description": "List of properties involved in the crime", "items": { "type": "object", "properties": { "ArticleName": { "type": "string", "description": "Name of the article" }, "Description": { "type": "string", "description": "Description of the article" }, "Value": { "type": "string", "description": "Value of the article" }, "Quantity": { "type": "number", "description": "Quantity of the article" }, "IdentificationNumber": { "type": "string", "description": "Identification number of the article" }, "ModelName": { "type": "string", "description": "Model name of the article" }, "ModelNumber": { "type": "string", "description": "Model number of the article" }, "SecurityIssuer": { "type": "string", "description": "Issuer of the security" }, "FirearmCaliber": { "type": "string", "description": "Caliber of the firearm" }, "BicycleSpeed": { "type": "string", "description": "Speed of the bicycle" }, "DocSubject": { "type": "string", "description": "Subject of the document" }, "AlcoholName": { "type": "string", "description": "Name of the alcohol" }, "DrugName": { "type": "string", "description": "Name of the drug" }, "DrugQuantity": { "type": "string", "description": "Quantity of the drug" }, "HorsePower": { "type": "string", "description": "Horsepower of the vehicle" }, "BoatLength": { "type": "string", "description": "Length of the boat" }, "VehiclePlate": { "type": "string", "description": "License plate of the vehicle" }, "VehicleVIN": { "type": "string", "description": "Vehicle Identification Number (VIN)" } } } }, "SubmittedBy": { "type": "object", "description": "Information about the person who submitted the report", "properties": { "OpCode": { "type": "string", "description": "Operation code" } } }, "MediaDownloadInstruct": { "type": "string", "description": "Instructions for downloading the media" }, "FamilyViolence": { "type": "string", "description": "Indicates if the crime involved family violence" } } }, "RpCaseNumber": { "type": "string", "description": "Case number from the reporting party" }, "ReportDate": { "type": "string", "description": "Date the report was submitted" }, "AgencyId": { "type": "number", "description": "Identifier for the agency" }, "ReferenceNumber": { "type": "number", "description": "Reference number for the report" }, "CaseNumber": { "type": "string", "description": "Unique case number" }, "SubmissionComplete": { "type": "string", "description": "Indicates if the submission is complete" }, "ApiVersion": { "type": "string", "description": "Version of the API used" }, "SkipValidation": { "type": "boolean", "description": "Indicates if validation should be skipped" } } }
API Output Schema Versions
Each integration will involve a designated version number and that will define what data is made available. You can inquire what versions are avaialble using the /api/schema/outputversions endpoint.
Endpoint: /api/schema/outputversions
Use this object to configure your request.
Name | Type | Notes |
---|---|---|
IntegrationId | GUID | Uniquely identifies your access to an agency's API data |
AccessToken | string | Your unique API token |
Example return: "1.0, 1.1, 2.0"
API Output Schema Version Details
For a given version number, there is an output schema definition that can be obtained. This JSON data is provided using the /api/schema/index endpoint. You must have the agency-specific integration details to use this endpoint.
Endpoint: /api/schema/index
Use this object to configure your request.
Name | Type | Notes |
---|---|---|
IntegrationId | GUID | Uniquely identifies your access to an agency's API data |
AccessToken | string | Your unique API token |
VersionNumber | string | The target output schema version number. If the version number provided is not valid, that will be indicated in the return. (Valid version numbers are obtained using /api/schema/outputversions defined above.) |
Example return (partial):
'{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "system": { "type": "object", "properties": { "session": { "type": "object", "properties": { "language": { "type": "string" }, "timezone": { "type": "string" }, "id": { "type": "string" }, "channel": { "type": "string" } } },..."''