MENU
cURL Java Ruby Python HTTP PHP JavaScript Go C#

Mark43 for Developers: API Guide

Introduction

Welcome to Mark43 for Developers


 __          __  _
 \ \        / / | |
  \ \  /\  / /__| | ___ ___  _ __ ___   ___
   \ \/  \/ / _ \ |/ __/ _ \| '_ ` _ \ / _ \
    \  /\  /  __/ | (_| (_) | | | | | |  __/
     \/  \/ \___|_|\___\___/|_| |_| |_|\___|

Mark43 is proud to partner with location providers, community engagement software, and other law enforcement technologies to help us bring cloud-first, data-driven technology to public safety.

By using Mark43 API, you accept our Developer Terms of Use Agreement.

Base URL

The base URL of Mark43 API is: https://department.mark43.com/partnerships/api.
The API provides a set of endpoints, each with its own unique path.

Authentication

Based on REST principles, Mark43 API Endpoints support authentication with secure API tokens using the standard HTTP Basic Authorization Header. This header must be attached to every request made to the Mark43 system. Contact your Mark43 Technical Services Representative for more information.

Response Structure

Data resources are accessed via standard HTTPS requests in UTF-8 format to an API endpoint. Mark43 API uses the appropriate HTTP verbs for each action:

GET Retrieves resources
POST Creates resources
PUT Changes and/or replaces resources or collections
DELETE Deletes resources

All response data is returned as a JSON object with the following overall structure:

{
  "data": {},
  "success": true,
  "error": "Error message if success is false"
}

data Object Contains created or retrieved objects
success Boolean Indicates whether the request was successful
error String Populated with a corresponding error message if the request was unsuccessful

Response Status Codes

Mark43 API uses the response status codes defined in RFC 2616 and RFC 6586.

Associated Records Endpoints

Associated Records Endpoints allow for the creation and retrieval of Associated Records in Mark43 RMS.

Associated Records are records/reports that are linked to a Mark43 report with a different Report Number. These can be records/reports that exist outside an agency's jurisdiction (e.g., an Arrest Report from a neighboring agency), or within (e.g., multiple Offense/Incident Reports for burglaries committed by the same suspect).

For details on person, organization, item, and location object creation, see Additional Model Information.

GET: Associated Records According to REN

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/associated_records/external_links \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/associated_records/external_links");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/associated_records/external_links',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/associated_records/external_links', headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/associated_records/external_links HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/associated_records/external_links', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/associated_records/external_links',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/associated_records/external_links", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/associated_records/external_links";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/associated_records/external_links

Retrieves existing Associated Records links for all reports under provided Reporting Event Numbers (RENs).

Parameters

Name In Type Required Description
reporting_event_numbers query array[string] false Reporting Event Numbers for which Associated Records should be returned

Example responses

200 Response

{
  "data": [
    {
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "mark43Id": 0,
      "reasonForAssociation": "string",
      "reasonForAssociationOther": "string",
      "sourceId": "string",
      "sourceSystemName": "string",
      "sourceSystemOther": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "url": "string"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalReportExternalLink
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

POST: Associated Records According to REN

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/associated_records/external_links?reporting_event_numbers=string \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/associated_records/external_links?reporting_event_numbers=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/associated_records/external_links',
  params: {
  'reporting_event_numbers' => 'array[string]'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/associated_records/external_links', params={
  'reporting_event_numbers': [
  "string"
]
}, headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/associated_records/external_links?reporting_event_numbers=string HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/associated_records/external_links', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '[
  {
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "mark43Id": 0,
    "reasonForAssociation": "string",
    "reasonForAssociationOther": "string",
    "sourceId": "string",
    "sourceSystemName": "string",
    "sourceSystemOther": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z",
    "url": "string"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/associated_records/external_links?reporting_event_numbers=string',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/associated_records/external_links", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/associated_records/external_links";

      string json = @"[
  {
    ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
    ""externalId"": ""string"",
    ""externalSystem"": ""string"",
    ""externalType"": ""WARRANT"",
    ""mark43Id"": 0,
    ""reasonForAssociation"": ""string"",
    ""reasonForAssociationOther"": ""string"",
    ""sourceId"": ""string"",
    ""sourceSystemName"": ""string"",
    ""sourceSystemOther"": ""string"",
    ""updatedDateUtc"": ""2019-08-24T14:15:22Z"",
    ""url"": ""string""
  }
]";
      ExternalReportExternalLink content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(ExternalReportExternalLink content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(ExternalReportExternalLink content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/associated_records/external_links

Creates Associated Records links for reports with specified Reporting Event Numbers (RENs).

Body parameter

[
  {
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "mark43Id": 0,
    "reasonForAssociation": "string",
    "reasonForAssociationOther": "string",
    "sourceId": "string",
    "sourceSystemName": "string",
    "sourceSystemOther": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z",
    "url": "string"
  }
]

Parameters

Name In Type Required Description
reporting_event_numbers query array[string] true Reporting Event Numbers of reports to which ExternalReportExternalLinks should be added
report_types query array[string] false Types of reports to which ExternalReportExternalLinks should be added
body body ExternalReportExternalLink true ExternalReportExternalLinks to be created

Allowable Values

Parameter Value
report_types ARREST
report_types CITATION
report_types CUSTODIAL_PROPERTY
report_types CUSTOM
report_types FIELD_CONTACT
report_types IMPOUND
report_types MISSING_PERSONS
report_types OFFENSE
report_types SUPPLEMENT
report_types TOW_VEHICLE
report_types TRAFFIC_CRASH

Example responses

200 Response

{
  "data": [
    {
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "mark43Id": 0,
      "reasonForAssociation": "string",
      "reasonForAssociationOther": "string",
      "sourceId": "string",
      "sourceSystemName": "string",
      "sourceSystemOther": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "url": "string"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalReportExternalLink
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

POST: Associated Records According to Report ID

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/associated_records/external_links/report_ids?report_ids=0 \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/associated_records/external_links/report_ids?report_ids=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/associated_records/external_links/report_ids',
  params: {
  'report_ids' => 'array[integer]'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/associated_records/external_links/report_ids', params={
  'report_ids': [
  0
]
}, headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/associated_records/external_links/report_ids?report_ids=0 HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/associated_records/external_links/report_ids', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '[
  {
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "mark43Id": 0,
    "reasonForAssociation": "string",
    "reasonForAssociationOther": "string",
    "sourceId": "string",
    "sourceSystemName": "string",
    "sourceSystemOther": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z",
    "url": "string"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/associated_records/external_links/report_ids?report_ids=0',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/associated_records/external_links/report_ids", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/associated_records/external_links/report_ids";

      string json = @"[
  {
    ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
    ""externalId"": ""string"",
    ""externalSystem"": ""string"",
    ""externalType"": ""WARRANT"",
    ""mark43Id"": 0,
    ""reasonForAssociation"": ""string"",
    ""reasonForAssociationOther"": ""string"",
    ""sourceId"": ""string"",
    ""sourceSystemName"": ""string"",
    ""sourceSystemOther"": ""string"",
    ""updatedDateUtc"": ""2019-08-24T14:15:22Z"",
    ""url"": ""string""
  }
]";
      ExternalReportExternalLink content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(ExternalReportExternalLink content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(ExternalReportExternalLink content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/associated_records/external_links/report_ids

Creates Associated Records links for reports with specified Mark43 Report IDs.

Body parameter

[
  {
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "mark43Id": 0,
    "reasonForAssociation": "string",
    "reasonForAssociationOther": "string",
    "sourceId": "string",
    "sourceSystemName": "string",
    "sourceSystemOther": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z",
    "url": "string"
  }
]

Parameters

Name In Type Required Description
report_ids query array[integer] true Mark43 IDs of reports to which ExternalReportExternalLinks should be added
body body ExternalReportExternalLink true ExternalReportExternalLinks to be created

Example responses

200 Response

{
  "data": [
    {
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "mark43Id": 0,
      "reasonForAssociation": "string",
      "reasonForAssociationOther": "string",
      "sourceId": "string",
      "sourceSystemName": "string",
      "sourceSystemOther": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "url": "string"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalReportExternalLink
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

Attachment Endpoints

Attachment Endpoints allow for the creation and retrieval of attachments in Mark43 RMS. Attachments, such as image and audio files, can be added to or retrieved from:

POST: File Attachments

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/attachments/files?entity_id=0&entity_type=ITEM_PROFILE&link_type=FINGERPRINT \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/attachments/files?entity_id=0&entity_type=ITEM_PROFILE&link_type=FINGERPRINT");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/attachments/files',
  params: {
  'entity_id' => 'integer(int64)',
'entity_type' => 'string',
'link_type' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/attachments/files', params={
  'entity_id': '0',  'entity_type': 'ITEM_PROFILE',  'link_type': 'FINGERPRINT'
}, headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/attachments/files?entity_id=0&entity_type=ITEM_PROFILE&link_type=FINGERPRINT HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'multipart/form-data',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/attachments/files', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '{
  "my-file": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/attachments/files?entity_id=0&entity_type=ITEM_PROFILE&link_type=FINGERPRINT',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/attachments/files", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/attachments/files";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/attachments/files

Creates file attachments that can be added to reports, item profiles, and person profiles.

Body parameter

my-file: string

Parameters

Name In Type Required Description
entity_id query integer(int64) true ID of associated entity
entity_type query string true Type of associated entity
link_type query string true Link between attachment and associated entity
body body object false none
» my-file body string(binary) false none

Allowable Values

Parameter Value
entity_type ITEM_PROFILE
entity_type PERSON_PROFILE
entity_type REPORT
link_type FINGERPRINT
link_type REPORT_ATTACHMENT
link_type IDENTIFYING_MARK
link_type PERSON_PROFILE_ATTACHMENT
link_type ITEM_PROFILE_ATTACHMENT

Example responses

200 Response

{
  "data": {
    "attachmentIds": [
      0
    ],
    "warnings": {
      "property1": "string",
      "property2": "string"
    }
  },
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultExternalAttachmentCreationResult
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

POST: Image Attachments

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/attachments/images?entity_id=0&entity_type=ITEM_PROFILE&link_type=MUGSHOT \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/attachments/images?entity_id=0&entity_type=ITEM_PROFILE&link_type=MUGSHOT");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/attachments/images',
  params: {
  'entity_id' => 'integer(int64)',
'entity_type' => 'string',
'link_type' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/attachments/images', params={
  'entity_id': '0',  'entity_type': 'ITEM_PROFILE',  'link_type': 'MUGSHOT'
}, headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/attachments/images?entity_id=0&entity_type=ITEM_PROFILE&link_type=MUGSHOT HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'multipart/form-data',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/attachments/images', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '{
  "my-file": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/attachments/images?entity_id=0&entity_type=ITEM_PROFILE&link_type=MUGSHOT',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/attachments/images", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/attachments/images";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/attachments/images

Creates image attachments that can be added to reports, item profiles, and person profiles.

Body parameter

my-file: string

Parameters

Name In Type Required Description
entity_id query integer(int64) true ID of associated entity
entity_type query string true Type of associated entity
link_type query string true Link between attachment and associated entity
body body object false none
» my-file body string(binary) false none

Allowable Values

Parameter Value
entity_type ITEM_PROFILE
entity_type PERSON_PROFILE
entity_type REPORT
link_type MUGSHOT
link_type FINGERPRINT
link_type REPORT_ATTACHMENT
link_type PERSON_PROFILE_ATTACHMENT
link_type ITEM_PROFILE_PHOTO
link_type ITEM_PROFILE_ATTACHMENT

Example responses

200 Response

{
  "data": {
    "attachmentIds": [
      0
    ],
    "warnings": {
      "property1": "string",
      "property2": "string"
    }
  },
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultExternalAttachmentCreationResult
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

POST: Search and Retrieve Attachments

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/attachments/search?entity_type=ITEM_PROFILE \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/attachments/search?entity_type=ITEM_PROFILE");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/attachments/search',
  params: {
  'entity_type' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/attachments/search', params={
  'entity_type': 'ITEM_PROFILE'
}, headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/attachments/search?entity_type=ITEM_PROFILE HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/attachments/search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '[
  0
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/attachments/search?entity_type=ITEM_PROFILE',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/attachments/search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/attachments/search";


      await PostAsync(null, url);

    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/attachments/search

Searches for and retrieves attachments according to Entity Id, Entity Type, and Link Type.

Body parameter

[
  0
]

Parameters

Name In Type Required Description
entity_type query string true Type of associated entity
link_types query array[string] false Link between attachment and associated entity
body body array[integer] true Set of Mark43 entity IDs

Allowable Values

Parameter Value
entity_type ITEM_PROFILE
entity_type PERSON_PROFILE
entity_type REPORT
link_types MUGSHOT
link_types FINGERPRINT
link_types REPORT_ATTACHMENT
link_types IDENTIFYING_MARK
link_types PERSON_PROFILE_ATTACHMENT
link_types COURT_ORDER_ATTACHMENT
link_types ITEM_PROFILE_PHOTO
link_types ITEM_PROFILE_ATTACHMENT

Example responses

200 Response

{
  "data": [
    {
      "attachmentType": {},
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "entityType": {},
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "fileId": 0,
      "fileName": "string",
      "fileType": "CSV",
      "fileWebServerPath": "string",
      "linkType": "INVOLVED_PERSON_IN_REPORT",
      "mark43Id": 0,
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalAttachment
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

GET: Output File Stream Attachments

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/attachments/stream/{file_id}

URL obj = new URL("https://department.mark43.com/partnerships/api/external/attachments/stream/{file_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/attachments/stream/{file_id}',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.get('https://department.mark43.com/partnerships/api/external/attachments/stream/{file_id}')

print(r.json())

GET https://department.mark43.com/partnerships/api/external/attachments/stream/{file_id} HTTP/1.1

<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/attachments/stream/{file_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


fetch('https://department.mark43.com/partnerships/api/external/attachments/stream/{file_id}',
{
  method: 'GET'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/attachments/stream/{file_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/attachments/stream/{file_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/attachments/stream/{file_id}

Retrieves output file stream attachments according to file ID.

Parameters

Name In Type Required Description
file_id path integer(int64) true Attachment file ID

Responses

Status Meaning Description Model
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None
default Default Successful operation None

GET: Attachments by ID

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/attachments/{attachment_id} \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/attachments/{attachment_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/attachments/{attachment_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/attachments/{attachment_id}', headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/attachments/{attachment_id} HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/attachments/{attachment_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/attachments/{attachment_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/attachments/{attachment_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/attachments/{attachment_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/attachments/{attachment_id}

Retrieves attachments according to attachment ID.

Parameters

Name In Type Required Description
attachment_id path integer(int64) true Attachment ID

Example responses

200 Response

{
  "data": [
    {
      "attachmentType": {},
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "entityType": {},
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "fileId": 0,
      "fileName": "string",
      "fileType": "CSV",
      "fileWebServerPath": "string",
      "linkType": "INVOLVED_PERSON_IN_REPORT",
      "mark43Id": 0,
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalAttachment
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

CAD Configuration Endpoints

CAD Configuration Endpoints allow for the retrieval of unit and station configuration settings.

GET: Configuration Data for All Stations

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/cad/configuration/stations \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cad/configuration/stations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/cad/configuration/stations',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/cad/configuration/stations', headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/cad/configuration/stations HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/cad/configuration/stations', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cad/configuration/stations',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/cad/configuration/stations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cad/configuration/stations";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/cad/configuration/stations

Retrieves station configuration settings.

Example responses

200 Response

{
  "data": [
    {
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "dispatchAreaId": 20,
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "isActive": true,
      "mark43Id": 0,
      "stationAddress": {},
      "stationName": "strin",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalStation
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

GET: Configuration Data for Unit States

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/cad/configuration/unit_states \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cad/configuration/unit_states");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/cad/configuration/unit_states',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/cad/configuration/unit_states', headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/cad/configuration/unit_states HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/cad/configuration/unit_states', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cad/configuration/unit_states',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/cad/configuration/unit_states", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cad/configuration/unit_states";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/cad/configuration/unit_states

Retrieves unit state configuration settings.

Example responses

200 Response

{
  "data": [
    {
      "agencyType": "POLICE",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "displayAbbreviation": "string",
      "displayValue": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "isEventRelated": true,
      "mark43Id": 0,
      "maxTimeSpentInStatus": "string",
      "unitStateGroup": "UNAVAILABLE",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalUnitState
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

GET: Latest Unit Status for Provided Units

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/cad/configuration/unit_statuses?unit_id=0 \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cad/configuration/unit_statuses?unit_id=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/cad/configuration/unit_statuses',
  params: {
  'unit_id' => 'array[integer]'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/cad/configuration/unit_statuses', params={
  'unit_id': [
  0
]
}, headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/cad/configuration/unit_statuses?unit_id=0 HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/cad/configuration/unit_statuses', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cad/configuration/unit_statuses?unit_id=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/cad/configuration/unit_statuses", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cad/configuration/unit_statuses";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/cad/configuration/unit_statuses

Retrieves the latest unit status information for the provided Mark43 unit IDs.

Parameters

Name In Type Required Description
unit_id query array[integer] true List of Mark43 unit IDs

Example responses

200 Response

{
  "data": [
    {
      "activeDateUtc": "2019-08-24T14:15:22Z",
      "additionalUnitTypes": [],
      "agencyCode": "string",
      "agencyOri": "string",
      "agencyType": "POLICE",
      "comments": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "dispatchAreaId": 20,
      "dispatchAreaOverrideId": 20,
      "equipmentType": [],
      "expirationDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "isMemberRequired": true,
      "isTemporary": true,
      "mark43Id": 0,
      "stationId": 20,
      "stationName": "strin",
      "stationOverrideId": 20,
      "subdivision1": "string",
      "subdivision2": "string",
      "subdivision3": "string",
      "subdivision4": "string",
      "subdivision5": "string",
      "tagNumber": "string",
      "unitCallSign": "string",
      "unitStatuses": [],
      "unitType": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "users": []
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalCadEventInvolvedUnit
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

GET: Configuration Data for All Units

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/cad/configuration/units \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cad/configuration/units");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/cad/configuration/units',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/cad/configuration/units', headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/cad/configuration/units HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/cad/configuration/units', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cad/configuration/units',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/cad/configuration/units", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cad/configuration/units";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/cad/configuration/units

Retrieves the configuration settings for all units within a department.

Example responses

200 Response

{
  "data": [
    {
      "activeDateUtc": "2019-08-24T14:15:22Z",
      "additionalUnitTypes": [],
      "agencyCode": "string",
      "agencyOri": "string",
      "agencyType": "POLICE",
      "comments": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "dispatchAreaId": 20,
      "dispatchAreaOverrideId": 20,
      "equipmentType": [],
      "expirationDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "isMemberRequired": true,
      "isTemporary": true,
      "mark43Id": 0,
      "stationId": 20,
      "stationName": "strin",
      "stationOverrideId": 20,
      "subdivision1": "string",
      "subdivision2": "string",
      "subdivision3": "string",
      "subdivision4": "string",
      "subdivision5": "string",
      "tagNumber": "string",
      "unitCallSign": "string",
      "unitType": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalUnit
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

CAD Event Endpoints

CAD Event Endpoints allow for the creation and retrieval of CAD Events.

For details on person, organization, item, and location object creation, see Additional Model Information.

POST: CAD Event

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/cad/event \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cad/event");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/cad/event',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/cad/event', headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/cad/event HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/cad/event', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '{
  "additionalInfos": [
    {
      "additionalInfoType": "string",
      "author": {},
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "mark43Id": 0,
      "text": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "agencyCode": "string",
  "agencyId": 0,
  "alarmLevel": "string",
  "assignedAgencyOri": "string",
  "cadAgencyEventNumber": "string",
  "cadCommonEventId": 0,
  "cadCommonEventNumber": "string",
  "callDateUtc": "2019-08-24T14:15:22Z",
  "callForServiceCode": "string",
  "callTaker": {
    "badgeNumber": "string",
    "bureau": "string",
    "cityIdNumber": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "currentAssignmentDate": "2019-08-24T14:15:22Z",
    "currentDutyStatus": "string",
    "currentDutyStatusDate": "2019-08-24",
    "dateHired": "2019-08-24",
    "dateOfBirth": "2019-08-24",
    "departmentAgencyId": 0,
    "division": "string",
    "externalCadId": "string",
    "externalHrId": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "firstName": "string",
    "gender": "string",
    "isDisabled": true,
    "isSsoUser": true,
    "lastName": "string",
    "licenseNumber": "string",
    "mark43Id": 0,
    "mark43UserAccountRoleId": 0,
    "mark43UserGroup": "CALL_TAKER",
    "middleName": "string",
    "mobileId": "string",
    "personnelUnit": "string",
    "primaryEmail": "string",
    "race": "string",
    "rank": "string",
    "roles": [
      "string"
    ],
    "skills": [
      "string"
    ],
    "ssn": "string",
    "startDateUtc": "2019-08-24T14:15:22Z",
    "stateIdNumber": "string",
    "suffix": "string",
    "title": "string",
    "trainingIdNumber": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  },
  "callerName": "string",
  "callerPhoneNumber": "string",
  "createdDateUtc": "2019-08-24T14:15:22Z",
  "disposition": "string",
  "e911EventNumber": "string",
  "eventClosedDateUtc": "2019-08-24T14:15:22Z",
  "eventPriority": "string",
  "eventReceivedDateUtc": "2019-08-24T14:15:22Z",
  "eventStartDateUtc": "2019-08-24T14:15:22Z",
  "eventStatus": "string",
  "eventType": "string",
  "externalCadTicketUnitAndMembers": [
    {
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "isPrimaryOnEvent": true,
      "mark43Id": 0,
      "unitCallSign": "string",
      "unitDispatchNumber": "string",
      "unitMember": {},
      "unitType": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "externalId": "string",
  "externalLocation": {
    "additionalDescription": "string",
    "apartmentNumber": "string",
    "category": "string",
    "city": "string",
    "classifyFlag": true,
    "country": "string",
    "county": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "crossStreet1": "string",
    "crossStreet2": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "fireSubdivision1": "string",
    "fireSubdivision2": "string",
    "fireSubdivision3": "string",
    "fireSubdivision4": "string",
    "fireSubdivision5": "string",
    "fullAddress": "string",
    "ignoreValidations": true,
    "latitude": 0,
    "longitude": 0,
    "mark43Id": 0,
    "placeName": "string",
    "resolveLocationFlag": true,
    "state": "string",
    "statePlaneX": 0,
    "statePlaneY": 0,
    "statePlaneZone": "string",
    "streetAddress": "string",
    "streetName": "string",
    "streetNumber": "string",
    "subdivision1": "string",
    "subdivision2": "string",
    "subdivision3": "string",
    "subdivision4": "string",
    "subdivision5": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z",
    "zip": "string"
  },
  "externalSystem": "string",
  "externalType": "WARRANT",
  "firstUnitArrivalDateUtc": "2019-08-24T14:15:22Z",
  "firstUnitDispatchDateUtc": "2019-08-24T14:15:22Z",
  "firstUnitEnrouteDateutc": "2019-08-24T14:15:22Z",
  "involvedPersons": [
    {
      "additionalDetails": {},
      "build": "string",
      "citizenship": "string",
      "contextId": 0,
      "contextType": "WARRANT",
      "contextualId": 0,
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "dateOfBirth": "2019-08-24",
      "dateOfBirthRangeEnd": "2019-08-24",
      "dateOfBirthRangeStart": "2019-08-24",
      "dateOfDeath": "2019-08-24T14:15:22Z",
      "description": "string",
      "email": "string",
      "emailType": "string",
      "emails": {},
      "emergencyContacts": [],
      "employmentHistories": [],
      "ethnicity": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "eyeColor": "string",
      "facialHair": "string",
      "fbiNumber": "string",
      "firstName": "string",
      "hairColor": "string",
      "hairLength": "string",
      "hairStyle": "string",
      "height": 0,
      "homeAddress": {},
      "homeAddresses": [],
      "identifyingMarks": [],
      "involvement": "INVOLVED_PERSON_IN_REPORT",
      "involvementSequenceNumber": 0,
      "isJuvenile": true,
      "isNonDisclosureRequest": true,
      "lastName": "string",
      "licenseNumber": "string",
      "licenseState": "string",
      "licenseStatus": "string",
      "licenseType": "string",
      "maritalStatus": "string",
      "mark43Id": 0,
      "masterId": 0,
      "middleName": "string",
      "mugshotWebServerFilePath": "string",
      "needsInterpreter": true,
      "nickname": "string",
      "nicknames": [],
      "otherIdentifiers": {},
      "personAttributes": [],
      "personGangTrackings": [],
      "personInjuries": [],
      "phoneNumber": "string",
      "phoneNumberType": "string",
      "phoneNumbers": {},
      "placeOfBirth": "string",
      "race": "string",
      "residentStatus": "string",
      "schoolHistories": [],
      "sex": "string",
      "skinTone": "string",
      "ssn": "string",
      "stateIdNumber": "string",
      "stateOfBirth": "string",
      "subjectType": "string",
      "subjectTypeDescription": "string",
      "suffix": "string",
      "title": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "vision": "string",
      "weight": 0,
      "workAddress": {},
      "workAddresses": []
    }
  ],
  "involvedUnits": [
    {
      "activeDateUtc": "2019-08-24T14:15:22Z",
      "additionalUnitTypes": [],
      "agencyCode": "string",
      "agencyOri": "string",
      "agencyType": "POLICE",
      "comments": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "dispatchAreaId": 20,
      "dispatchAreaOverrideId": 20,
      "equipmentType": [],
      "expirationDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "isMemberRequired": true,
      "isTemporary": true,
      "mark43Id": 0,
      "stationId": 20,
      "stationName": "strin",
      "stationOverrideId": 20,
      "subdivision1": "string",
      "subdivision2": "string",
      "subdivision3": "string",
      "subdivision4": "string",
      "subdivision5": "string",
      "tagNumber": "string",
      "unitCallSign": "string",
      "unitStatuses": [],
      "unitType": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "users": []
    }
  ],
  "involvedVehicles": [
    {
      "additionalDetails": {},
      "allowCreationWithoutVinOrPlate": true,
      "barcodeValues": [],
      "bodyStyle": "string",
      "bodyStyleDescription": "string",
      "category": "string",
      "contextId": 0,
      "contextType": "WARRANT",
      "contextualId": 0,
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "declaredValueUnknown": true,
      "description": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "forfeitureValue": 15,
      "insurancePolicyNumber": "string",
      "insuranceProvider": "string",
      "intakePerson": "string",
      "isBiohazard": true,
      "isImpounded": true,
      "licensePlateNumber": "string",
      "linkedNames": [],
      "make": "string",
      "makeNcicCode": "string",
      "mark43Id": 0,
      "masterId": 0,
      "measurement": "string",
      "mileage": 0,
      "model": "string",
      "modelNcicCode": "string",
      "otherIdentifiers": {},
      "ownerNotified": true,
      "primaryColor": "string",
      "propertyStatus": "string",
      "quantity": 0,
      "reasonForCustody": "string",
      "recoveredAddress": {},
      "recoveredByOther": "string",
      "recoveredDateUtc": "2019-08-24T14:15:22Z",
      "recoveringOfficer": {},
      "registrationState": "string",
      "registrationType": "string",
      "registrationYear": 0,
      "secondaryColor": "string",
      "serialNumber": "string",
      "size": "string",
      "statementOfFacts": "string",
      "statusDateUtc": "2019-08-24T14:15:22Z",
      "storageFacility": "string",
      "storageLocation": "string",
      "towingCompany": "string",
      "towingCompanyOther": "string",
      "towingLocation": "string",
      "towingNumber": "string",
      "type": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "value": 0,
      "vehicleRecoveryType": "string",
      "vehicleSearchConsentedTo": true,
      "vehicleSearched": true,
      "vinNumber": "string",
      "yearOfManufacture": 0
    }
  ],
  "lastEventClearingComments": "string",
  "mark43Id": 0,
  "narrative": "string",
  "proQaDeterminantCode": "string",
  "reportingEventNumber": "string",
  "reportingPartyLocation": {
    "additionalDescription": "string",
    "apartmentNumber": "string",
    "category": "string",
    "city": "string",
    "classifyFlag": true,
    "country": "string",
    "county": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "crossStreet1": "string",
    "crossStreet2": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "fireSubdivision1": "string",
    "fireSubdivision2": "string",
    "fireSubdivision3": "string",
    "fireSubdivision4": "string",
    "fireSubdivision5": "string",
    "fullAddress": "string",
    "ignoreValidations": true,
    "latitude": 0,
    "longitude": 0,
    "mark43Id": 0,
    "placeName": "string",
    "resolveLocationFlag": true,
    "state": "string",
    "statePlaneX": 0,
    "statePlaneY": 0,
    "statePlaneZone": "string",
    "streetAddress": "string",
    "streetName": "string",
    "streetNumber": "string",
    "subdivision1": "string",
    "subdivision2": "string",
    "subdivision3": "string",
    "subdivision4": "string",
    "subdivision5": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z",
    "zip": "string"
  },
  "reportingPartyNotes": "string",
  "reportingPartyPhoneNumber": "string",
  "reportingPerson": {
    "additionalDetails": {
      "property1": "string",
      "property2": "string"
    },
    "build": "string",
    "citizenship": "string",
    "contextId": 0,
    "contextType": "WARRANT",
    "contextualId": 0,
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "dateOfBirth": "2019-08-24",
    "dateOfBirthRangeEnd": "2019-08-24",
    "dateOfBirthRangeStart": "2019-08-24",
    "dateOfDeath": "2019-08-24T14:15:22Z",
    "description": "string",
    "email": "string",
    "emailType": "string",
    "emails": {
      "property1": "string",
      "property2": "string"
    },
    "emergencyContacts": [
      {}
    ],
    "employmentHistories": [
      {}
    ],
    "ethnicity": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "eyeColor": "string",
    "facialHair": "string",
    "fbiNumber": "string",
    "firstName": "string",
    "hairColor": "string",
    "hairLength": "string",
    "hairStyle": "string",
    "height": 0,
    "homeAddress": {
      "additionalDescription": "string",
      "apartmentNumber": "string",
      "category": "string",
      "city": "string",
      "classifyFlag": true,
      "country": "string",
      "county": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "crossStreet1": "string",
      "crossStreet2": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "fireSubdivision1": "string",
      "fireSubdivision2": "string",
      "fireSubdivision3": "string",
      "fireSubdivision4": "string",
      "fireSubdivision5": "string",
      "fullAddress": "string",
      "ignoreValidations": true,
      "latitude": 0,
      "longitude": 0,
      "mark43Id": 0,
      "placeName": "string",
      "resolveLocationFlag": true,
      "state": "string",
      "statePlaneX": 0,
      "statePlaneY": 0,
      "statePlaneZone": "string",
      "streetAddress": "string",
      "streetName": "string",
      "streetNumber": "string",
      "subdivision1": "string",
      "subdivision2": "string",
      "subdivision3": "string",
      "subdivision4": "string",
      "subdivision5": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "zip": "string"
    },
    "homeAddresses": [
      {}
    ],
    "identifyingMarks": [
      {}
    ],
    "involvement": "INVOLVED_PERSON_IN_REPORT",
    "involvementSequenceNumber": 0,
    "isJuvenile": true,
    "isNonDisclosureRequest": true,
    "lastName": "string",
    "licenseNumber": "string",
    "licenseState": "string",
    "licenseStatus": "string",
    "licenseType": "string",
    "maritalStatus": "string",
    "mark43Id": 0,
    "masterId": 0,
    "middleName": "string",
    "mugshotWebServerFilePath": "string",
    "needsInterpreter": true,
    "nickname": "string",
    "nicknames": [
      "string"
    ],
    "otherIdentifiers": {
      "property1": "string",
      "property2": "string"
    },
    "personAttributes": [
      {}
    ],
    "personGangTrackings": [
      {}
    ],
    "personInjuries": [
      {}
    ],
    "phoneNumber": "string",
    "phoneNumberType": "string",
    "phoneNumbers": {
      "property1": "string",
      "property2": "string"
    },
    "placeOfBirth": "string",
    "race": "string",
    "residentStatus": "string",
    "schoolHistories": [
      {}
    ],
    "sex": "string",
    "skinTone": "string",
    "ssn": "string",
    "stateIdNumber": "string",
    "stateOfBirth": "string",
    "subjectType": "string",
    "subjectTypeDescription": "string",
    "suffix": "string",
    "title": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z",
    "vision": "string",
    "weight": 0,
    "workAddress": {
      "additionalDescription": "string",
      "apartmentNumber": "string",
      "category": "string",
      "city": "string",
      "classifyFlag": true,
      "country": "string",
      "county": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "crossStreet1": "string",
      "crossStreet2": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "fireSubdivision1": "string",
      "fireSubdivision2": "string",
      "fireSubdivision3": "string",
      "fireSubdivision4": "string",
      "fireSubdivision5": "string",
      "fullAddress": "string",
      "ignoreValidations": true,
      "latitude": 0,
      "longitude": 0,
      "mark43Id": 0,
      "placeName": "string",
      "resolveLocationFlag": true,
      "state": "string",
      "statePlaneX": 0,
      "statePlaneY": 0,
      "statePlaneZone": "string",
      "streetAddress": "string",
      "streetName": "string",
      "streetNumber": "string",
      "subdivision1": "string",
      "subdivision2": "string",
      "subdivision3": "string",
      "subdivision4": "string",
      "subdivision5": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "zip": "string"
    },
    "workAddresses": [
      {}
    ]
  },
  "secondaryEventType": "string",
  "updatedDateUtc": "2019-08-24T14:15:22Z"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cad/event',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/cad/event", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cad/event";

      string json = @"{
  ""additionalInfos"": [
    {
      ""additionalInfoType"": ""string"",
      ""author"": {},
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""mark43Id"": 0,
      ""text"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
    }
  ],
  ""agencyCode"": ""string"",
  ""agencyId"": 0,
  ""alarmLevel"": ""string"",
  ""assignedAgencyOri"": ""string"",
  ""cadAgencyEventNumber"": ""string"",
  ""cadCommonEventId"": 0,
  ""cadCommonEventNumber"": ""string"",
  ""callDateUtc"": ""2019-08-24T14:15:22Z"",
  ""callForServiceCode"": ""string"",
  ""callTaker"": {
    ""badgeNumber"": ""string"",
    ""bureau"": ""string"",
    ""cityIdNumber"": ""string"",
    ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
    ""currentAssignmentDate"": ""2019-08-24T14:15:22Z"",
    ""currentDutyStatus"": ""string"",
    ""currentDutyStatusDate"": ""2019-08-24"",
    ""dateHired"": ""2019-08-24"",
    ""dateOfBirth"": ""2019-08-24"",
    ""departmentAgencyId"": 0,
    ""division"": ""string"",
    ""externalCadId"": ""string"",
    ""externalHrId"": ""string"",
    ""externalId"": ""string"",
    ""externalSystem"": ""string"",
    ""externalType"": ""WARRANT"",
    ""firstName"": ""string"",
    ""gender"": ""string"",
    ""isDisabled"": true,
    ""isSsoUser"": true,
    ""lastName"": ""string"",
    ""licenseNumber"": ""string"",
    ""mark43Id"": 0,
    ""mark43UserAccountRoleId"": 0,
    ""mark43UserGroup"": ""CALL_TAKER"",
    ""middleName"": ""string"",
    ""mobileId"": ""string"",
    ""personnelUnit"": ""string"",
    ""primaryEmail"": ""string"",
    ""race"": ""string"",
    ""rank"": ""string"",
    ""roles"": [
      ""string""
    ],
    ""skills"": [
      ""string""
    ],
    ""ssn"": ""string"",
    ""startDateUtc"": ""2019-08-24T14:15:22Z"",
    ""stateIdNumber"": ""string"",
    ""suffix"": ""string"",
    ""title"": ""string"",
    ""trainingIdNumber"": ""string"",
    ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
  },
  ""callerName"": ""string"",
  ""callerPhoneNumber"": ""string"",
  ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
  ""disposition"": ""string"",
  ""e911EventNumber"": ""string"",
  ""eventClosedDateUtc"": ""2019-08-24T14:15:22Z"",
  ""eventPriority"": ""string"",
  ""eventReceivedDateUtc"": ""2019-08-24T14:15:22Z"",
  ""eventStartDateUtc"": ""2019-08-24T14:15:22Z"",
  ""eventStatus"": ""string"",
  ""eventType"": ""string"",
  ""externalCadTicketUnitAndMembers"": [
    {
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""isPrimaryOnEvent"": true,
      ""mark43Id"": 0,
      ""unitCallSign"": ""string"",
      ""unitDispatchNumber"": ""string"",
      ""unitMember"": {},
      ""unitType"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
    }
  ],
  ""externalId"": ""string"",
  ""externalLocation"": {
    ""additionalDescription"": ""string"",
    ""apartmentNumber"": ""string"",
    ""category"": ""string"",
    ""city"": ""string"",
    ""classifyFlag"": true,
    ""country"": ""string"",
    ""county"": ""string"",
    ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
    ""crossStreet1"": ""string"",
    ""crossStreet2"": ""string"",
    ""externalId"": ""string"",
    ""externalSystem"": ""string"",
    ""externalType"": ""WARRANT"",
    ""fireSubdivision1"": ""string"",
    ""fireSubdivision2"": ""string"",
    ""fireSubdivision3"": ""string"",
    ""fireSubdivision4"": ""string"",
    ""fireSubdivision5"": ""string"",
    ""fullAddress"": ""string"",
    ""ignoreValidations"": true,
    ""latitude"": 0,
    ""longitude"": 0,
    ""mark43Id"": 0,
    ""placeName"": ""string"",
    ""resolveLocationFlag"": true,
    ""state"": ""string"",
    ""statePlaneX"": 0,
    ""statePlaneY"": 0,
    ""statePlaneZone"": ""string"",
    ""streetAddress"": ""string"",
    ""streetName"": ""string"",
    ""streetNumber"": ""string"",
    ""subdivision1"": ""string"",
    ""subdivision2"": ""string"",
    ""subdivision3"": ""string"",
    ""subdivision4"": ""string"",
    ""subdivision5"": ""string"",
    ""updatedDateUtc"": ""2019-08-24T14:15:22Z"",
    ""zip"": ""string""
  },
  ""externalSystem"": ""string"",
  ""externalType"": ""WARRANT"",
  ""firstUnitArrivalDateUtc"": ""2019-08-24T14:15:22Z"",
  ""firstUnitDispatchDateUtc"": ""2019-08-24T14:15:22Z"",
  ""firstUnitEnrouteDateutc"": ""2019-08-24T14:15:22Z"",
  ""involvedPersons"": [
    {
      ""additionalDetails"": {},
      ""build"": ""string"",
      ""citizenship"": ""string"",
      ""contextId"": 0,
      ""contextType"": ""WARRANT"",
      ""contextualId"": 0,
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""dateOfBirth"": ""2019-08-24"",
      ""dateOfBirthRangeEnd"": ""2019-08-24"",
      ""dateOfBirthRangeStart"": ""2019-08-24"",
      ""dateOfDeath"": ""2019-08-24T14:15:22Z"",
      ""description"": ""string"",
      ""email"": ""string"",
      ""emailType"": ""string"",
      ""emails"": {},
      ""emergencyContacts"": [],
      ""employmentHistories"": [],
      ""ethnicity"": ""string"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""eyeColor"": ""string"",
      ""facialHair"": ""string"",
      ""fbiNumber"": ""string"",
      ""firstName"": ""string"",
      ""hairColor"": ""string"",
      ""hairLength"": ""string"",
      ""hairStyle"": ""string"",
      ""height"": 0,
      ""homeAddress"": {},
      ""homeAddresses"": [],
      ""identifyingMarks"": [],
      ""involvement"": ""INVOLVED_PERSON_IN_REPORT"",
      ""involvementSequenceNumber"": 0,
      ""isJuvenile"": true,
      ""isNonDisclosureRequest"": true,
      ""lastName"": ""string"",
      ""licenseNumber"": ""string"",
      ""licenseState"": ""string"",
      ""licenseStatus"": ""string"",
      ""licenseType"": ""string"",
      ""maritalStatus"": ""string"",
      ""mark43Id"": 0,
      ""masterId"": 0,
      ""middleName"": ""string"",
      ""mugshotWebServerFilePath"": ""string"",
      ""needsInterpreter"": true,
      ""nickname"": ""string"",
      ""nicknames"": [],
      ""otherIdentifiers"": {},
      ""personAttributes"": [],
      ""personGangTrackings"": [],
      ""personInjuries"": [],
      ""phoneNumber"": ""string"",
      ""phoneNumberType"": ""string"",
      ""phoneNumbers"": {},
      ""placeOfBirth"": ""string"",
      ""race"": ""string"",
      ""residentStatus"": ""string"",
      ""schoolHistories"": [],
      ""sex"": ""string"",
      ""skinTone"": ""string"",
      ""ssn"": ""string"",
      ""stateIdNumber"": ""string"",
      ""stateOfBirth"": ""string"",
      ""subjectType"": ""string"",
      ""subjectTypeDescription"": ""string"",
      ""suffix"": ""string"",
      ""title"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z"",
      ""vision"": ""string"",
      ""weight"": 0,
      ""workAddress"": {},
      ""workAddresses"": []
    }
  ],
  ""involvedUnits"": [
    {
      ""activeDateUtc"": ""2019-08-24T14:15:22Z"",
      ""additionalUnitTypes"": [],
      ""agencyCode"": ""string"",
      ""agencyOri"": ""string"",
      ""agencyType"": ""POLICE"",
      ""comments"": ""string"",
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""dispatchAreaId"": 20,
      ""dispatchAreaOverrideId"": 20,
      ""equipmentType"": [],
      ""expirationDateUtc"": ""2019-08-24T14:15:22Z"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""isMemberRequired"": true,
      ""isTemporary"": true,
      ""mark43Id"": 0,
      ""stationId"": 20,
      ""stationName"": ""strin"",
      ""stationOverrideId"": 20,
      ""subdivision1"": ""string"",
      ""subdivision2"": ""string"",
      ""subdivision3"": ""string"",
      ""subdivision4"": ""string"",
      ""subdivision5"": ""string"",
      ""tagNumber"": ""string"",
      ""unitCallSign"": ""string"",
      ""unitStatuses"": [],
      ""unitType"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z"",
      ""users"": []
    }
  ],
  ""involvedVehicles"": [
    {
      ""additionalDetails"": {},
      ""allowCreationWithoutVinOrPlate"": true,
      ""barcodeValues"": [],
      ""bodyStyle"": ""string"",
      ""bodyStyleDescription"": ""string"",
      ""category"": ""string"",
      ""contextId"": 0,
      ""contextType"": ""WARRANT"",
      ""contextualId"": 0,
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""declaredValueUnknown"": true,
      ""description"": ""string"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""forfeitureValue"": 15,
      ""insurancePolicyNumber"": ""string"",
      ""insuranceProvider"": ""string"",
      ""intakePerson"": ""string"",
      ""isBiohazard"": true,
      ""isImpounded"": true,
      ""licensePlateNumber"": ""string"",
      ""linkedNames"": [],
      ""make"": ""string"",
      ""makeNcicCode"": ""string"",
      ""mark43Id"": 0,
      ""masterId"": 0,
      ""measurement"": ""string"",
      ""mileage"": 0,
      ""model"": ""string"",
      ""modelNcicCode"": ""string"",
      ""otherIdentifiers"": {},
      ""ownerNotified"": true,
      ""primaryColor"": ""string"",
      ""propertyStatus"": ""string"",
      ""quantity"": 0,
      ""reasonForCustody"": ""string"",
      ""recoveredAddress"": {},
      ""recoveredByOther"": ""string"",
      ""recoveredDateUtc"": ""2019-08-24T14:15:22Z"",
      ""recoveringOfficer"": {},
      ""registrationState"": ""string"",
      ""registrationType"": ""string"",
      ""registrationYear"": 0,
      ""secondaryColor"": ""string"",
      ""serialNumber"": ""string"",
      ""size"": ""string"",
      ""statementOfFacts"": ""string"",
      ""statusDateUtc"": ""2019-08-24T14:15:22Z"",
      ""storageFacility"": ""string"",
      ""storageLocation"": ""string"",
      ""towingCompany"": ""string"",
      ""towingCompanyOther"": ""string"",
      ""towingLocation"": ""string"",
      ""towingNumber"": ""string"",
      ""type"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z"",
      ""value"": 0,
      ""vehicleRecoveryType"": ""string"",
      ""vehicleSearchConsentedTo"": true,
      ""vehicleSearched"": true,
      ""vinNumber"": ""string"",
      ""yearOfManufacture"": 0
    }
  ],
  ""lastEventClearingComments"": ""string"",
  ""mark43Id"": 0,
  ""narrative"": ""string"",
  ""proQaDeterminantCode"": ""string"",
  ""reportingEventNumber"": ""string"",
  ""reportingPartyLocation"": {
    ""additionalDescription"": ""string"",
    ""apartmentNumber"": ""string"",
    ""category"": ""string"",
    ""city"": ""string"",
    ""classifyFlag"": true,
    ""country"": ""string"",
    ""county"": ""string"",
    ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
    ""crossStreet1"": ""string"",
    ""crossStreet2"": ""string"",
    ""externalId"": ""string"",
    ""externalSystem"": ""string"",
    ""externalType"": ""WARRANT"",
    ""fireSubdivision1"": ""string"",
    ""fireSubdivision2"": ""string"",
    ""fireSubdivision3"": ""string"",
    ""fireSubdivision4"": ""string"",
    ""fireSubdivision5"": ""string"",
    ""fullAddress"": ""string"",
    ""ignoreValidations"": true,
    ""latitude"": 0,
    ""longitude"": 0,
    ""mark43Id"": 0,
    ""placeName"": ""string"",
    ""resolveLocationFlag"": true,
    ""state"": ""string"",
    ""statePlaneX"": 0,
    ""statePlaneY"": 0,
    ""statePlaneZone"": ""string"",
    ""streetAddress"": ""string"",
    ""streetName"": ""string"",
    ""streetNumber"": ""string"",
    ""subdivision1"": ""string"",
    ""subdivision2"": ""string"",
    ""subdivision3"": ""string"",
    ""subdivision4"": ""string"",
    ""subdivision5"": ""string"",
    ""updatedDateUtc"": ""2019-08-24T14:15:22Z"",
    ""zip"": ""string""
  },
  ""reportingPartyNotes"": ""string"",
  ""reportingPartyPhoneNumber"": ""string"",
  ""reportingPerson"": {
    ""additionalDetails"": {
      ""property1"": ""string"",
      ""property2"": ""string""
    },
    ""build"": ""string"",
    ""citizenship"": ""string"",
    ""contextId"": 0,
    ""contextType"": ""WARRANT"",
    ""contextualId"": 0,
    ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
    ""dateOfBirth"": ""2019-08-24"",
    ""dateOfBirthRangeEnd"": ""2019-08-24"",
    ""dateOfBirthRangeStart"": ""2019-08-24"",
    ""dateOfDeath"": ""2019-08-24T14:15:22Z"",
    ""description"": ""string"",
    ""email"": ""string"",
    ""emailType"": ""string"",
    ""emails"": {
      ""property1"": ""string"",
      ""property2"": ""string""
    },
    ""emergencyContacts"": [
      {}
    ],
    ""employmentHistories"": [
      {}
    ],
    ""ethnicity"": ""string"",
    ""externalId"": ""string"",
    ""externalSystem"": ""string"",
    ""externalType"": ""WARRANT"",
    ""eyeColor"": ""string"",
    ""facialHair"": ""string"",
    ""fbiNumber"": ""string"",
    ""firstName"": ""string"",
    ""hairColor"": ""string"",
    ""hairLength"": ""string"",
    ""hairStyle"": ""string"",
    ""height"": 0,
    ""homeAddress"": {
      ""additionalDescription"": ""string"",
      ""apartmentNumber"": ""string"",
      ""category"": ""string"",
      ""city"": ""string"",
      ""classifyFlag"": true,
      ""country"": ""string"",
      ""county"": ""string"",
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""crossStreet1"": ""string"",
      ""crossStreet2"": ""string"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""fireSubdivision1"": ""string"",
      ""fireSubdivision2"": ""string"",
      ""fireSubdivision3"": ""string"",
      ""fireSubdivision4"": ""string"",
      ""fireSubdivision5"": ""string"",
      ""fullAddress"": ""string"",
      ""ignoreValidations"": true,
      ""latitude"": 0,
      ""longitude"": 0,
      ""mark43Id"": 0,
      ""placeName"": ""string"",
      ""resolveLocationFlag"": true,
      ""state"": ""string"",
      ""statePlaneX"": 0,
      ""statePlaneY"": 0,
      ""statePlaneZone"": ""string"",
      ""streetAddress"": ""string"",
      ""streetName"": ""string"",
      ""streetNumber"": ""string"",
      ""subdivision1"": ""string"",
      ""subdivision2"": ""string"",
      ""subdivision3"": ""string"",
      ""subdivision4"": ""string"",
      ""subdivision5"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z"",
      ""zip"": ""string""
    },
    ""homeAddresses"": [
      {}
    ],
    ""identifyingMarks"": [
      {}
    ],
    ""involvement"": ""INVOLVED_PERSON_IN_REPORT"",
    ""involvementSequenceNumber"": 0,
    ""isJuvenile"": true,
    ""isNonDisclosureRequest"": true,
    ""lastName"": ""string"",
    ""licenseNumber"": ""string"",
    ""licenseState"": ""string"",
    ""licenseStatus"": ""string"",
    ""licenseType"": ""string"",
    ""maritalStatus"": ""string"",
    ""mark43Id"": 0,
    ""masterId"": 0,
    ""middleName"": ""string"",
    ""mugshotWebServerFilePath"": ""string"",
    ""needsInterpreter"": true,
    ""nickname"": ""string"",
    ""nicknames"": [
      ""string""
    ],
    ""otherIdentifiers"": {
      ""property1"": ""string"",
      ""property2"": ""string""
    },
    ""personAttributes"": [
      {}
    ],
    ""personGangTrackings"": [
      {}
    ],
    ""personInjuries"": [
      {}
    ],
    ""phoneNumber"": ""string"",
    ""phoneNumberType"": ""string"",
    ""phoneNumbers"": {
      ""property1"": ""string"",
      ""property2"": ""string""
    },
    ""placeOfBirth"": ""string"",
    ""race"": ""string"",
    ""residentStatus"": ""string"",
    ""schoolHistories"": [
      {}
    ],
    ""sex"": ""string"",
    ""skinTone"": ""string"",
    ""ssn"": ""string"",
    ""stateIdNumber"": ""string"",
    ""stateOfBirth"": ""string"",
    ""subjectType"": ""string"",
    ""subjectTypeDescription"": ""string"",
    ""suffix"": ""string"",
    ""title"": ""string"",
    ""updatedDateUtc"": ""2019-08-24T14:15:22Z"",
    ""vision"": ""string"",
    ""weight"": 0,
    ""workAddress"": {
      ""additionalDescription"": ""string"",
      ""apartmentNumber"": ""string"",
      ""category"": ""string"",
      ""city"": ""string"",
      ""classifyFlag"": true,
      ""country"": ""string"",
      ""county"": ""string"",
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""crossStreet1"": ""string"",
      ""crossStreet2"": ""string"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""fireSubdivision1"": ""string"",
      ""fireSubdivision2"": ""string"",
      ""fireSubdivision3"": ""string"",
      ""fireSubdivision4"": ""string"",
      ""fireSubdivision5"": ""string"",
      ""fullAddress"": ""string"",
      ""ignoreValidations"": true,
      ""latitude"": 0,
      ""longitude"": 0,
      ""mark43Id"": 0,
      ""placeName"": ""string"",
      ""resolveLocationFlag"": true,
      ""state"": ""string"",
      ""statePlaneX"": 0,
      ""statePlaneY"": 0,
      ""statePlaneZone"": ""string"",
      ""streetAddress"": ""string"",
      ""streetName"": ""string"",
      ""streetNumber"": ""string"",
      ""subdivision1"": ""string"",
      ""subdivision2"": ""string"",
      ""subdivision3"": ""string"",
      ""subdivision4"": ""string"",
      ""subdivision5"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z"",
      ""zip"": ""string""
    },
    ""workAddresses"": [
      {}
    ]
  },
  ""secondaryEventType"": ""string"",
  ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
}";
      ExternalCadEvent content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(ExternalCadEvent content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(ExternalCadEvent content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/cad/event

Creates a CAD Event in the Unassigned Events dispatch queue.

Body parameter

{
  "additionalInfos": [
    {
      "additionalInfoType": "string",
      "author": {},
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "mark43Id": 0,
      "text": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "agencyCode": "string",
  "agencyId": 0,
  "alarmLevel": "string",
  "assignedAgencyOri": "string",
  "cadAgencyEventNumber": "string",
  "cadCommonEventId": 0,
  "cadCommonEventNumber": "string",
  "callDateUtc": "2019-08-24T14:15:22Z",
  "callForServiceCode": "string",
  "callTaker": {
    "badgeNumber": "string",
    "bureau": "string",
    "cityIdNumber": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "currentAssignmentDate": "2019-08-24T14:15:22Z",
    "currentDutyStatus": "string",
    "currentDutyStatusDate": "2019-08-24",
    "dateHired": "2019-08-24",
    "dateOfBirth": "2019-08-24",
    "departmentAgencyId": 0,
    "division": "string",
    "externalCadId": "string",
    "externalHrId": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "firstName": "string",
    "gender": "string",
    "isDisabled": true,
    "isSsoUser": true,
    "lastName": "string",
    "licenseNumber": "string",
    "mark43Id": 0,
    "mark43UserAccountRoleId": 0,
    "mark43UserGroup": "CALL_TAKER",
    "middleName": "string",
    "mobileId": "string",
    "personnelUnit": "string",
    "primaryEmail": "string",
    "race": "string",
    "rank": "string",
    "roles": [
      "string"
    ],
    "skills": [
      "string"
    ],
    "ssn": "string",
    "startDateUtc": "2019-08-24T14:15:22Z",
    "stateIdNumber": "string",
    "suffix": "string",
    "title": "string",
    "trainingIdNumber": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  },
  "callerName": "string",
  "callerPhoneNumber": "string",
  "createdDateUtc": "2019-08-24T14:15:22Z",
  "disposition": "string",
  "e911EventNumber": "string",
  "eventClosedDateUtc": "2019-08-24T14:15:22Z",
  "eventPriority": "string",
  "eventReceivedDateUtc": "2019-08-24T14:15:22Z",
  "eventStartDateUtc": "2019-08-24T14:15:22Z",
  "eventStatus": "string",
  "eventType": "string",
  "externalCadTicketUnitAndMembers": [
    {
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "isPrimaryOnEvent": true,
      "mark43Id": 0,
      "unitCallSign": "string",
      "unitDispatchNumber": "string",
      "unitMember": {},
      "unitType": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "externalId": "string",
  "externalLocation": {
    "additionalDescription": "string",
    "apartmentNumber": "string",
    "category": "string",
    "city": "string",
    "classifyFlag": true,
    "country": "string",
    "county": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "crossStreet1": "string",
    "crossStreet2": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "fireSubdivision1": "string",
    "fireSubdivision2": "string",
    "fireSubdivision3": "string",
    "fireSubdivision4": "string",
    "fireSubdivision5": "string",
    "fullAddress": "string",
    "ignoreValidations": true,
    "latitude": 0,
    "longitude": 0,
    "mark43Id": 0,
    "placeName": "string",
    "resolveLocationFlag": true,
    "state": "string",
    "statePlaneX": 0,
    "statePlaneY": 0,
    "statePlaneZone": "string",
    "streetAddress": "string",
    "streetName": "string",
    "streetNumber": "string",
    "subdivision1": "string",
    "subdivision2": "string",
    "subdivision3": "string",
    "subdivision4": "string",
    "subdivision5": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z",
    "zip": "string"
  },
  "externalSystem": "string",
  "externalType": "WARRANT",
  "firstUnitArrivalDateUtc": "2019-08-24T14:15:22Z",
  "firstUnitDispatchDateUtc": "2019-08-24T14:15:22Z",
  "firstUnitEnrouteDateutc": "2019-08-24T14:15:22Z",
  "involvedPersons": [
    {
      "additionalDetails": {},
      "build": "string",
      "citizenship": "string",
      "contextId": 0,
      "contextType": "WARRANT",
      "contextualId": 0,
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "dateOfBirth": "2019-08-24",
      "dateOfBirthRangeEnd": "2019-08-24",
      "dateOfBirthRangeStart": "2019-08-24",
      "dateOfDeath": "2019-08-24T14:15:22Z",
      "description": "string",
      "email": "string",
      "emailType": "string",
      "emails": {},
      "emergencyContacts": [],
      "employmentHistories": [],
      "ethnicity": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "eyeColor": "string",
      "facialHair": "string",
      "fbiNumber": "string",
      "firstName": "string",
      "hairColor": "string",
      "hairLength": "string",
      "hairStyle": "string",
      "height": 0,
      "homeAddress": {},
      "homeAddresses": [],
      "identifyingMarks": [],
      "involvement": "INVOLVED_PERSON_IN_REPORT",
      "involvementSequenceNumber": 0,
      "isJuvenile": true,
      "isNonDisclosureRequest": true,
      "lastName": "string",
      "licenseNumber": "string",
      "licenseState": "string",
      "licenseStatus": "string",
      "licenseType": "string",
      "maritalStatus": "string",
      "mark43Id": 0,
      "masterId": 0,
      "middleName": "string",
      "mugshotWebServerFilePath": "string",
      "needsInterpreter": true,
      "nickname": "string",
      "nicknames": [],
      "otherIdentifiers": {},
      "personAttributes": [],
      "personGangTrackings": [],
      "personInjuries": [],
      "phoneNumber": "string",
      "phoneNumberType": "string",
      "phoneNumbers": {},
      "placeOfBirth": "string",
      "race": "string",
      "residentStatus": "string",
      "schoolHistories": [],
      "sex": "string",
      "skinTone": "string",
      "ssn": "string",
      "stateIdNumber": "string",
      "stateOfBirth": "string",
      "subjectType": "string",
      "subjectTypeDescription": "string",
      "suffix": "string",
      "title": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "vision": "string",
      "weight": 0,
      "workAddress": {},
      "workAddresses": []
    }
  ],
  "involvedUnits": [
    {
      "activeDateUtc": "2019-08-24T14:15:22Z",
      "additionalUnitTypes": [],
      "agencyCode": "string",
      "agencyOri": "string",
      "agencyType": "POLICE",
      "comments": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "dispatchAreaId": 20,
      "dispatchAreaOverrideId": 20,
      "equipmentType": [],
      "expirationDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "isMemberRequired": true,
      "isTemporary": true,
      "mark43Id": 0,
      "stationId": 20,
      "stationName": "strin",
      "stationOverrideId": 20,
      "subdivision1": "string",
      "subdivision2": "string",
      "subdivision3": "string",
      "subdivision4": "string",
      "subdivision5": "string",
      "tagNumber": "string",
      "unitCallSign": "string",
      "unitStatuses": [],
      "unitType": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "users": []
    }
  ],
  "involvedVehicles": [
    {
      "additionalDetails": {},
      "allowCreationWithoutVinOrPlate": true,
      "barcodeValues": [],
      "bodyStyle": "string",
      "bodyStyleDescription": "string",
      "category": "string",
      "contextId": 0,
      "contextType": "WARRANT",
      "contextualId": 0,
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "declaredValueUnknown": true,
      "description": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "forfeitureValue": 15,
      "insurancePolicyNumber": "string",
      "insuranceProvider": "string",
      "intakePerson": "string",
      "isBiohazard": true,
      "isImpounded": true,
      "licensePlateNumber": "string",
      "linkedNames": [],
      "make": "string",
      "makeNcicCode": "string",
      "mark43Id": 0,
      "masterId": 0,
      "measurement": "string",
      "mileage": 0,
      "model": "string",
      "modelNcicCode": "string",
      "otherIdentifiers": {},
      "ownerNotified": true,
      "primaryColor": "string",
      "propertyStatus": "string",
      "quantity": 0,
      "reasonForCustody": "string",
      "recoveredAddress": {},
      "recoveredByOther": "string",
      "recoveredDateUtc": "2019-08-24T14:15:22Z",
      "recoveringOfficer": {},
      "registrationState": "string",
      "registrationType": "string",
      "registrationYear": 0,
      "secondaryColor": "string",
      "serialNumber": "string",
      "size": "string",
      "statementOfFacts": "string",
      "statusDateUtc": "2019-08-24T14:15:22Z",
      "storageFacility": "string",
      "storageLocation": "string",
      "towingCompany": "string",
      "towingCompanyOther": "string",
      "towingLocation": "string",
      "towingNumber": "string",
      "type": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "value": 0,
      "vehicleRecoveryType": "string",
      "vehicleSearchConsentedTo": true,
      "vehicleSearched": true,
      "vinNumber": "string",
      "yearOfManufacture": 0
    }
  ],
  "lastEventClearingComments": "string",
  "mark43Id": 0,
  "narrative": "string",
  "proQaDeterminantCode": "string",
  "reportingEventNumber": "string",
  "reportingPartyLocation": {
    "additionalDescription": "string",
    "apartmentNumber": "string",
    "category": "string",
    "city": "string",
    "classifyFlag": true,
    "country": "string",
    "county": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "crossStreet1": "string",
    "crossStreet2": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "fireSubdivision1": "string",
    "fireSubdivision2": "string",
    "fireSubdivision3": "string",
    "fireSubdivision4": "string",
    "fireSubdivision5": "string",
    "fullAddress": "string",
    "ignoreValidations": true,
    "latitude": 0,
    "longitude": 0,
    "mark43Id": 0,
    "placeName": "string",
    "resolveLocationFlag": true,
    "state": "string",
    "statePlaneX": 0,
    "statePlaneY": 0,
    "statePlaneZone": "string",
    "streetAddress": "string",
    "streetName": "string",
    "streetNumber": "string",
    "subdivision1": "string",
    "subdivision2": "string",
    "subdivision3": "string",
    "subdivision4": "string",
    "subdivision5": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z",
    "zip": "string"
  },
  "reportingPartyNotes": "string",
  "reportingPartyPhoneNumber": "string",
  "reportingPerson": {
    "additionalDetails": {
      "property1": "string",
      "property2": "string"
    },
    "build": "string",
    "citizenship": "string",
    "contextId": 0,
    "contextType": "WARRANT",
    "contextualId": 0,
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "dateOfBirth": "2019-08-24",
    "dateOfBirthRangeEnd": "2019-08-24",
    "dateOfBirthRangeStart": "2019-08-24",
    "dateOfDeath": "2019-08-24T14:15:22Z",
    "description": "string",
    "email": "string",
    "emailType": "string",
    "emails": {
      "property1": "string",
      "property2": "string"
    },
    "emergencyContacts": [
      {}
    ],
    "employmentHistories": [
      {}
    ],
    "ethnicity": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "eyeColor": "string",
    "facialHair": "string",
    "fbiNumber": "string",
    "firstName": "string",
    "hairColor": "string",
    "hairLength": "string",
    "hairStyle": "string",
    "height": 0,
    "homeAddress": {
      "additionalDescription": "string",
      "apartmentNumber": "string",
      "category": "string",
      "city": "string",
      "classifyFlag": true,
      "country": "string",
      "county": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "crossStreet1": "string",
      "crossStreet2": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "fireSubdivision1": "string",
      "fireSubdivision2": "string",
      "fireSubdivision3": "string",
      "fireSubdivision4": "string",
      "fireSubdivision5": "string",
      "fullAddress": "string",
      "ignoreValidations": true,
      "latitude": 0,
      "longitude": 0,
      "mark43Id": 0,
      "placeName": "string",
      "resolveLocationFlag": true,
      "state": "string",
      "statePlaneX": 0,
      "statePlaneY": 0,
      "statePlaneZone": "string",
      "streetAddress": "string",
      "streetName": "string",
      "streetNumber": "string",
      "subdivision1": "string",
      "subdivision2": "string",
      "subdivision3": "string",
      "subdivision4": "string",
      "subdivision5": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "zip": "string"
    },
    "homeAddresses": [
      {}
    ],
    "identifyingMarks": [
      {}
    ],
    "involvement": "INVOLVED_PERSON_IN_REPORT",
    "involvementSequenceNumber": 0,
    "isJuvenile": true,
    "isNonDisclosureRequest": true,
    "lastName": "string",
    "licenseNumber": "string",
    "licenseState": "string",
    "licenseStatus": "string",
    "licenseType": "string",
    "maritalStatus": "string",
    "mark43Id": 0,
    "masterId": 0,
    "middleName": "string",
    "mugshotWebServerFilePath": "string",
    "needsInterpreter": true,
    "nickname": "string",
    "nicknames": [
      "string"
    ],
    "otherIdentifiers": {
      "property1": "string",
      "property2": "string"
    },
    "personAttributes": [
      {}
    ],
    "personGangTrackings": [
      {}
    ],
    "personInjuries": [
      {}
    ],
    "phoneNumber": "string",
    "phoneNumberType": "string",
    "phoneNumbers": {
      "property1": "string",
      "property2": "string"
    },
    "placeOfBirth": "string",
    "race": "string",
    "residentStatus": "string",
    "schoolHistories": [
      {}
    ],
    "sex": "string",
    "skinTone": "string",
    "ssn": "string",
    "stateIdNumber": "string",
    "stateOfBirth": "string",
    "subjectType": "string",
    "subjectTypeDescription": "string",
    "suffix": "string",
    "title": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z",
    "vision": "string",
    "weight": 0,
    "workAddress": {
      "additionalDescription": "string",
      "apartmentNumber": "string",
      "category": "string",
      "city": "string",
      "classifyFlag": true,
      "country": "string",
      "county": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "crossStreet1": "string",
      "crossStreet2": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "fireSubdivision1": "string",
      "fireSubdivision2": "string",
      "fireSubdivision3": "string",
      "fireSubdivision4": "string",
      "fireSubdivision5": "string",
      "fullAddress": "string",
      "ignoreValidations": true,
      "latitude": 0,
      "longitude": 0,
      "mark43Id": 0,
      "placeName": "string",
      "resolveLocationFlag": true,
      "state": "string",
      "statePlaneX": 0,
      "statePlaneY": 0,
      "statePlaneZone": "string",
      "streetAddress": "string",
      "streetName": "string",
      "streetNumber": "string",
      "subdivision1": "string",
      "subdivision2": "string",
      "subdivision3": "string",
      "subdivision4": "string",
      "subdivision5": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "zip": "string"
    },
    "workAddresses": [
      {}
    ]
  },
  "secondaryEventType": "string",
  "updatedDateUtc": "2019-08-24T14:15:22Z"
}

Parameters

Name In Type Required Description
body body ExternalCadEvent true CAD Event to be created

Example responses

200 Response

{
  "data": {
    "externalCadEvent": {
      "additionalInfos": [],
      "agencyCode": "string",
      "agencyId": 0,
      "alarmLevel": "string",
      "assignedAgencyOri": "string",
      "cadAgencyEventNumber": "string",
      "cadCommonEventId": 0,
      "cadCommonEventNumber": "string",
      "callDateUtc": "2019-08-24T14:15:22Z",
      "callForServiceCode": "string",
      "callTaker": {},
      "callerName": "string",
      "callerPhoneNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "disposition": "string",
      "e911EventNumber": "string",
      "eventClosedDateUtc": "2019-08-24T14:15:22Z",
      "eventPriority": "string",
      "eventReceivedDateUtc": "2019-08-24T14:15:22Z",
      "eventStartDateUtc": "2019-08-24T14:15:22Z",
      "eventStatus": "string",
      "eventType": "string",
      "externalCadTicketUnitAndMembers": [],
      "externalId": "string",
      "externalLocation": {},
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstUnitArrivalDateUtc": "2019-08-24T14:15:22Z",
      "firstUnitDispatchDateUtc": "2019-08-24T14:15:22Z",
      "firstUnitEnrouteDateutc": "2019-08-24T14:15:22Z",
      "involvedPersons": [],
      "involvedUnits": [],
      "involvedVehicles": [],
      "lastEventClearingComments": "string",
      "mark43Id": 0,
      "narrative": "string",
      "proQaDeterminantCode": "string",
      "reportingEventNumber": "string",
      "reportingPartyLocation": {},
      "reportingPartyNotes": "string",
      "reportingPartyPhoneNumber": "string",
      "reportingPerson": {},
      "secondaryEventType": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    },
    "warnings": {
      "property1": "string",
      "property2": "string"
    }
  },
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultExternalCadEventCreationResult
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

POST: CAD Additional Information

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/cad/event/additional_info \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cad/event/additional_info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/cad/event/additional_info',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/cad/event/additional_info', headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/cad/event/additional_info HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/cad/event/additional_info', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '{
  "additionalInfoType": "string",
  "author": {
    "badgeNumber": "string",
    "bureau": "string",
    "cityIdNumber": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "currentAssignmentDate": "2019-08-24T14:15:22Z",
    "currentDutyStatus": "string",
    "currentDutyStatusDate": "2019-08-24",
    "dateHired": "2019-08-24",
    "dateOfBirth": "2019-08-24",
    "departmentAgencyId": 0,
    "division": "string",
    "externalCadId": "string",
    "externalHrId": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "firstName": "string",
    "gender": "string",
    "isDisabled": true,
    "isSsoUser": true,
    "lastName": "string",
    "licenseNumber": "string",
    "mark43Id": 0,
    "mark43UserAccountRoleId": 0,
    "mark43UserGroup": "CALL_TAKER",
    "middleName": "string",
    "mobileId": "string",
    "personnelUnit": "string",
    "primaryEmail": "string",
    "race": "string",
    "rank": "string",
    "roles": [
      "string"
    ],
    "skills": [
      "string"
    ],
    "ssn": "string",
    "startDateUtc": "2019-08-24T14:15:22Z",
    "stateIdNumber": "string",
    "suffix": "string",
    "title": "string",
    "trainingIdNumber": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  },
  "createdDateUtc": "2019-08-24T14:15:22Z",
  "externalId": "string",
  "externalSystem": "string",
  "externalType": "WARRANT",
  "mark43Id": 0,
  "text": "string",
  "updatedDateUtc": "2019-08-24T14:15:22Z"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cad/event/additional_info',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/cad/event/additional_info", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cad/event/additional_info";

      string json = @"{
  ""additionalInfoType"": ""string"",
  ""author"": {
    ""badgeNumber"": ""string"",
    ""bureau"": ""string"",
    ""cityIdNumber"": ""string"",
    ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
    ""currentAssignmentDate"": ""2019-08-24T14:15:22Z"",
    ""currentDutyStatus"": ""string"",
    ""currentDutyStatusDate"": ""2019-08-24"",
    ""dateHired"": ""2019-08-24"",
    ""dateOfBirth"": ""2019-08-24"",
    ""departmentAgencyId"": 0,
    ""division"": ""string"",
    ""externalCadId"": ""string"",
    ""externalHrId"": ""string"",
    ""externalId"": ""string"",
    ""externalSystem"": ""string"",
    ""externalType"": ""WARRANT"",
    ""firstName"": ""string"",
    ""gender"": ""string"",
    ""isDisabled"": true,
    ""isSsoUser"": true,
    ""lastName"": ""string"",
    ""licenseNumber"": ""string"",
    ""mark43Id"": 0,
    ""mark43UserAccountRoleId"": 0,
    ""mark43UserGroup"": ""CALL_TAKER"",
    ""middleName"": ""string"",
    ""mobileId"": ""string"",
    ""personnelUnit"": ""string"",
    ""primaryEmail"": ""string"",
    ""race"": ""string"",
    ""rank"": ""string"",
    ""roles"": [
      ""string""
    ],
    ""skills"": [
      ""string""
    ],
    ""ssn"": ""string"",
    ""startDateUtc"": ""2019-08-24T14:15:22Z"",
    ""stateIdNumber"": ""string"",
    ""suffix"": ""string"",
    ""title"": ""string"",
    ""trainingIdNumber"": ""string"",
    ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
  },
  ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
  ""externalId"": ""string"",
  ""externalSystem"": ""string"",
  ""externalType"": ""WARRANT"",
  ""mark43Id"": 0,
  ""text"": ""string"",
  ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
}";
      ExternalCadAdditionalInfo content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(ExternalCadAdditionalInfo content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(ExternalCadAdditionalInfo content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/cad/event/additional_info

Creates additional information to be added to a CAD Event according to Agency Event ID or Agency Event Number. The Event ID or Event Number must be provided.

Body parameter

{
  "additionalInfoType": "string",
  "author": {
    "badgeNumber": "string",
    "bureau": "string",
    "cityIdNumber": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "currentAssignmentDate": "2019-08-24T14:15:22Z",
    "currentDutyStatus": "string",
    "currentDutyStatusDate": "2019-08-24",
    "dateHired": "2019-08-24",
    "dateOfBirth": "2019-08-24",
    "departmentAgencyId": 0,
    "division": "string",
    "externalCadId": "string",
    "externalHrId": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "firstName": "string",
    "gender": "string",
    "isDisabled": true,
    "isSsoUser": true,
    "lastName": "string",
    "licenseNumber": "string",
    "mark43Id": 0,
    "mark43UserAccountRoleId": 0,
    "mark43UserGroup": "CALL_TAKER",
    "middleName": "string",
    "mobileId": "string",
    "personnelUnit": "string",
    "primaryEmail": "string",
    "race": "string",
    "rank": "string",
    "roles": [
      "string"
    ],
    "skills": [
      "string"
    ],
    "ssn": "string",
    "startDateUtc": "2019-08-24T14:15:22Z",
    "stateIdNumber": "string",
    "suffix": "string",
    "title": "string",
    "trainingIdNumber": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  },
  "createdDateUtc": "2019-08-24T14:15:22Z",
  "externalId": "string",
  "externalSystem": "string",
  "externalType": "WARRANT",
  "mark43Id": 0,
  "text": "string",
  "updatedDateUtc": "2019-08-24T14:15:22Z"
}

Parameters

Name In Type Required Description
agency_event_id query integer(int64) false Agency Event ID for which additional information is created
agency_event_number query string false Agency Event Number for which additional information is created
body body ExternalCadAdditionalInfo false Additional information to create

Example responses

200 Response

{
  "data": {
    "externalAdditionalInfo": {
      "additionalInfoType": "string",
      "author": {},
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "mark43Id": 0,
      "text": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    },
    "warnings": {
      "property1": "string",
      "property2": "string"
    }
  },
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultExternalCadAdditionalInfoCreationResult
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

GET: CAD Events

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/cad/events?start_date_utc=string&end_date_utc=string \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cad/events?start_date_utc=string&end_date_utc=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/cad/events',
  params: {
  'start_date_utc' => 'string',
'end_date_utc' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/cad/events', params={
  'start_date_utc': 'string',  'end_date_utc': 'string'
}, headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/cad/events?start_date_utc=string&end_date_utc=string HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/cad/events', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cad/events?start_date_utc=string&end_date_utc=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/cad/events", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cad/events";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/cad/events

Retrieves CAD Events created within a specified date/time range.

Parameters

Name In Type Required Description
start_date_utc query string true Beginning of date/time range for CAD Event Start Date in UTC
end_date_utc query string true End of date/time range for CAD Event End Date in UTC
from query integer(int32) false Number of records to skip for paginated results
size query integer(int32) false Max size of results set to return. Default & max value: 25
agency_type query array[string] false Agency type filter
agency_code query array[string] false Agency code filter
include_unit_status_history_data query boolean false Include optional unit status history data

Example responses

200 Response

{
  "data": [
    {
      "additionalInfos": [],
      "agencyCode": "string",
      "agencyId": 0,
      "alarmLevel": "string",
      "assignedAgencyOri": "string",
      "cadAgencyEventNumber": "string",
      "cadCommonEventId": 0,
      "cadCommonEventNumber": "string",
      "callDateUtc": "2019-08-24T14:15:22Z",
      "callForServiceCode": "string",
      "callTaker": {},
      "callerName": "string",
      "callerPhoneNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "disposition": "string",
      "e911EventNumber": "string",
      "eventClosedDateUtc": "2019-08-24T14:15:22Z",
      "eventPriority": "string",
      "eventReceivedDateUtc": "2019-08-24T14:15:22Z",
      "eventStartDateUtc": "2019-08-24T14:15:22Z",
      "eventStatus": "string",
      "eventType": "string",
      "externalCadTicketUnitAndMembers": [],
      "externalId": "string",
      "externalLocation": {},
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstUnitArrivalDateUtc": "2019-08-24T14:15:22Z",
      "firstUnitDispatchDateUtc": "2019-08-24T14:15:22Z",
      "firstUnitEnrouteDateutc": "2019-08-24T14:15:22Z",
      "involvedPersons": [],
      "involvedUnits": [],
      "involvedVehicles": [],
      "lastEventClearingComments": "string",
      "mark43Id": 0,
      "narrative": "string",
      "proQaDeterminantCode": "string",
      "reportingEventNumber": "string",
      "reportingPartyLocation": {},
      "reportingPartyNotes": "string",
      "reportingPartyPhoneNumber": "string",
      "reportingPerson": {},
      "secondaryEventType": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalCadEvent
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

GET: Active CAD Events

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/cad/events/active \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cad/events/active");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/cad/events/active',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/cad/events/active', headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/cad/events/active HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/cad/events/active', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cad/events/active',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/cad/events/active", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cad/events/active";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/cad/events/active

Retrieves currently active CAD events

Parameters

Name In Type Required Description
include_unit_status_history_data query boolean false Include optional unit status history data

Example responses

200 Response

{
  "data": [
    {
      "additionalInfos": [],
      "agencyCode": "string",
      "agencyId": 0,
      "alarmLevel": "string",
      "assignedAgencyOri": "string",
      "cadAgencyEventNumber": "string",
      "cadCommonEventId": 0,
      "cadCommonEventNumber": "string",
      "callDateUtc": "2019-08-24T14:15:22Z",
      "callForServiceCode": "string",
      "callTaker": {},
      "callerName": "string",
      "callerPhoneNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "disposition": "string",
      "e911EventNumber": "string",
      "eventClosedDateUtc": "2019-08-24T14:15:22Z",
      "eventPriority": "string",
      "eventReceivedDateUtc": "2019-08-24T14:15:22Z",
      "eventStartDateUtc": "2019-08-24T14:15:22Z",
      "eventStatus": "string",
      "eventType": "string",
      "externalCadTicketUnitAndMembers": [],
      "externalId": "string",
      "externalLocation": {},
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstUnitArrivalDateUtc": "2019-08-24T14:15:22Z",
      "firstUnitDispatchDateUtc": "2019-08-24T14:15:22Z",
      "firstUnitEnrouteDateutc": "2019-08-24T14:15:22Z",
      "involvedPersons": [],
      "involvedUnits": [],
      "involvedVehicles": [],
      "lastEventClearingComments": "string",
      "mark43Id": 0,
      "narrative": "string",
      "proQaDeterminantCode": "string",
      "reportingEventNumber": "string",
      "reportingPartyLocation": {},
      "reportingPartyNotes": "string",
      "reportingPartyPhoneNumber": "string",
      "reportingPerson": {},
      "secondaryEventType": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalCadEvent
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

GET: CAD Events by Event IDs

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/cad/events/ids?cad_event_ids=0 \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cad/events/ids?cad_event_ids=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/cad/events/ids',
  params: {
  'cad_event_ids' => 'array[integer]'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/cad/events/ids', params={
  'cad_event_ids': [
  0
]
}, headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/cad/events/ids?cad_event_ids=0 HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/cad/events/ids', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cad/events/ids?cad_event_ids=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/cad/events/ids", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cad/events/ids";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/cad/events/ids

Retrieves CAD Events according to their Mark43 CAD Event IDs.

Parameters

Name In Type Required Description
cad_event_ids query array[integer] true Mark43 Cad Event IDs
include_unit_status_history_data query boolean false Include optional unit status history data

Example responses

200 Response

{
  "data": [
    {
      "additionalInfos": [],
      "agencyCode": "string",
      "agencyId": 0,
      "alarmLevel": "string",
      "assignedAgencyOri": "string",
      "cadAgencyEventNumber": "string",
      "cadCommonEventId": 0,
      "cadCommonEventNumber": "string",
      "callDateUtc": "2019-08-24T14:15:22Z",
      "callForServiceCode": "string",
      "callTaker": {},
      "callerName": "string",
      "callerPhoneNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "disposition": "string",
      "e911EventNumber": "string",
      "eventClosedDateUtc": "2019-08-24T14:15:22Z",
      "eventPriority": "string",
      "eventReceivedDateUtc": "2019-08-24T14:15:22Z",
      "eventStartDateUtc": "2019-08-24T14:15:22Z",
      "eventStatus": "string",
      "eventType": "string",
      "externalCadTicketUnitAndMembers": [],
      "externalId": "string",
      "externalLocation": {},
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstUnitArrivalDateUtc": "2019-08-24T14:15:22Z",
      "firstUnitDispatchDateUtc": "2019-08-24T14:15:22Z",
      "firstUnitEnrouteDateutc": "2019-08-24T14:15:22Z",
      "involvedPersons": [],
      "involvedUnits": [],
      "involvedVehicles": [],
      "lastEventClearingComments": "string",
      "mark43Id": 0,
      "narrative": "string",
      "proQaDeterminantCode": "string",
      "reportingEventNumber": "string",
      "reportingPartyLocation": {},
      "reportingPartyNotes": "string",
      "reportingPartyPhoneNumber": "string",
      "reportingPerson": {},
      "secondaryEventType": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalCadEvent
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

CAD Ticket Endpoints

This CAD Ticket Endpoint allows for the creation of CAD tickets.

For details on person, organization, item, and location object creation, see Additional Model Information.

POST: Create CAD Tickets

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/cad_tickets \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cad_tickets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/cad_tickets',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/cad_tickets', headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/cad_tickets HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/cad_tickets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '[
  {
    "agencyCode": "string",
    "assignedAgencyOri": "string",
    "cadAgencyEventNumber": "string",
    "cadCommonEventNumber": "string",
    "callDateUtc": "2019-08-24T14:15:22Z",
    "callerName": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "e911EventNumber": "string",
    "eventClosedDateUtc": "2019-08-24T14:15:22Z",
    "eventStartDateUtc": "2019-08-24T14:15:22Z",
    "eventStatus": "string",
    "eventType": "string",
    "externalCadTicketComments": [
      {}
    ],
    "externalCadTicketUnitAndMembers": [
      {}
    ],
    "externalId": "string",
    "externalLocation": {
      "additionalDescription": "string",
      "apartmentNumber": "string",
      "category": "string",
      "city": "string",
      "classifyFlag": true,
      "country": "string",
      "county": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "crossStreet1": "string",
      "crossStreet2": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "fireSubdivision1": "string",
      "fireSubdivision2": "string",
      "fireSubdivision3": "string",
      "fireSubdivision4": "string",
      "fireSubdivision5": "string",
      "fullAddress": "string",
      "ignoreValidations": true,
      "latitude": 0,
      "longitude": 0,
      "mark43Id": 0,
      "placeName": "string",
      "resolveLocationFlag": true,
      "state": "string",
      "statePlaneX": 0,
      "statePlaneY": 0,
      "statePlaneZone": "string",
      "streetAddress": "string",
      "streetName": "string",
      "streetNumber": "string",
      "subdivision1": "string",
      "subdivision2": "string",
      "subdivision3": "string",
      "subdivision4": "string",
      "subdivision5": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "zip": "string"
    },
    "externalSystem": "string",
    "externalType": "WARRANT",
    "firstUnitArrivalDateUtc": "2019-08-24T14:15:22Z",
    "firstUnitDispatchDateUtc": "2019-08-24T14:15:22Z",
    "involvedPersons": [
      {}
    ],
    "involvedVehicles": [
      {}
    ],
    "mark43Id": 0,
    "reportingEventNumber": "string",
    "secondaryEventType": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cad_tickets',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/cad_tickets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cad_tickets";

      string json = @"[
  {
    ""agencyCode"": ""string"",
    ""assignedAgencyOri"": ""string"",
    ""cadAgencyEventNumber"": ""string"",
    ""cadCommonEventNumber"": ""string"",
    ""callDateUtc"": ""2019-08-24T14:15:22Z"",
    ""callerName"": ""string"",
    ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
    ""e911EventNumber"": ""string"",
    ""eventClosedDateUtc"": ""2019-08-24T14:15:22Z"",
    ""eventStartDateUtc"": ""2019-08-24T14:15:22Z"",
    ""eventStatus"": ""string"",
    ""eventType"": ""string"",
    ""externalCadTicketComments"": [
      {}
    ],
    ""externalCadTicketUnitAndMembers"": [
      {}
    ],
    ""externalId"": ""string"",
    ""externalLocation"": {
      ""additionalDescription"": ""string"",
      ""apartmentNumber"": ""string"",
      ""category"": ""string"",
      ""city"": ""string"",
      ""classifyFlag"": true,
      ""country"": ""string"",
      ""county"": ""string"",
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""crossStreet1"": ""string"",
      ""crossStreet2"": ""string"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""fireSubdivision1"": ""string"",
      ""fireSubdivision2"": ""string"",
      ""fireSubdivision3"": ""string"",
      ""fireSubdivision4"": ""string"",
      ""fireSubdivision5"": ""string"",
      ""fullAddress"": ""string"",
      ""ignoreValidations"": true,
      ""latitude"": 0,
      ""longitude"": 0,
      ""mark43Id"": 0,
      ""placeName"": ""string"",
      ""resolveLocationFlag"": true,
      ""state"": ""string"",
      ""statePlaneX"": 0,
      ""statePlaneY"": 0,
      ""statePlaneZone"": ""string"",
      ""streetAddress"": ""string"",
      ""streetName"": ""string"",
      ""streetNumber"": ""string"",
      ""subdivision1"": ""string"",
      ""subdivision2"": ""string"",
      ""subdivision3"": ""string"",
      ""subdivision4"": ""string"",
      ""subdivision5"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z"",
      ""zip"": ""string""
    },
    ""externalSystem"": ""string"",
    ""externalType"": ""WARRANT"",
    ""firstUnitArrivalDateUtc"": ""2019-08-24T14:15:22Z"",
    ""firstUnitDispatchDateUtc"": ""2019-08-24T14:15:22Z"",
    ""involvedPersons"": [
      {}
    ],
    ""involvedVehicles"": [
      {}
    ],
    ""mark43Id"": 0,
    ""reportingEventNumber"": ""string"",
    ""secondaryEventType"": ""string"",
    ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
  }
]";
      ExternalCadTicket content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(ExternalCadTicket content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(ExternalCadTicket content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/cad_tickets

Creates CAD tickets.

Body parameter

[
  {
    "agencyCode": "string",
    "assignedAgencyOri": "string",
    "cadAgencyEventNumber": "string",
    "cadCommonEventNumber": "string",
    "callDateUtc": "2019-08-24T14:15:22Z",
    "callerName": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "e911EventNumber": "string",
    "eventClosedDateUtc": "2019-08-24T14:15:22Z",
    "eventStartDateUtc": "2019-08-24T14:15:22Z",
    "eventStatus": "string",
    "eventType": "string",
    "externalCadTicketComments": [
      {}
    ],
    "externalCadTicketUnitAndMembers": [
      {}
    ],
    "externalId": "string",
    "externalLocation": {
      "additionalDescription": "string",
      "apartmentNumber": "string",
      "category": "string",
      "city": "string",
      "classifyFlag": true,
      "country": "string",
      "county": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "crossStreet1": "string",
      "crossStreet2": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "fireSubdivision1": "string",
      "fireSubdivision2": "string",
      "fireSubdivision3": "string",
      "fireSubdivision4": "string",
      "fireSubdivision5": "string",
      "fullAddress": "string",
      "ignoreValidations": true,
      "latitude": 0,
      "longitude": 0,
      "mark43Id": 0,
      "placeName": "string",
      "resolveLocationFlag": true,
      "state": "string",
      "statePlaneX": 0,
      "statePlaneY": 0,
      "statePlaneZone": "string",
      "streetAddress": "string",
      "streetName": "string",
      "streetNumber": "string",
      "subdivision1": "string",
      "subdivision2": "string",
      "subdivision3": "string",
      "subdivision4": "string",
      "subdivision5": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "zip": "string"
    },
    "externalSystem": "string",
    "externalType": "WARRANT",
    "firstUnitArrivalDateUtc": "2019-08-24T14:15:22Z",
    "firstUnitDispatchDateUtc": "2019-08-24T14:15:22Z",
    "involvedPersons": [
      {}
    ],
    "involvedVehicles": [
      {}
    ],
    "mark43Id": 0,
    "reportingEventNumber": "string",
    "secondaryEventType": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  }
]

Parameters

Name In Type Required Description
hard_insert query boolean false If true, performs hard insert on CAD tickets (Delete + Insert)
body body ExternalCadTicket true CAD tickets to be created

Example responses

200 Response

{
  "data": [
    {
      "externalCadTicket": {},
      "validationErrorMessages": [],
      "warnings": {}
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalCadTicketCreationResult
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

Case Management Endpoints

Case Management Endpoints allow agencies that use the Mark43 Case Management Module to interact with case information.

For details on person, organization, item, and location object creation, see Additional Model Information.

GET: Cases by Reporting Event Numbers

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/cases?reporting_event_numbers=string \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cases?reporting_event_numbers=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/cases',
  params: {
  'reporting_event_numbers' => 'array[string]'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/cases', params={
  'reporting_event_numbers': [
  "string"
]
}, headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/cases?reporting_event_numbers=string HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/cases', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cases?reporting_event_numbers=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/cases", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cases";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/cases

Retrieves cases based on Reporting Event Numbers (RENs).

Parameters

Name In Type Required Description
reporting_event_numbers query array[string] true Reporting Event Numbers to be returned

Example responses

200 Response

{
  "data": [
    {
      "approvalStatus": "DRAFT",
      "approvalStatusDateUtc": "2019-08-24T14:15:22Z",
      "approvalStatusUpdatedDateUtc": "2019-08-24T14:15:22Z",
      "assignedDate": "2019-08-24T14:15:22Z",
      "assignedPersonnelUnit": "string",
      "assignedUser": {},
      "assistingInvestigators": [],
      "caseNotes": [],
      "caseReviews": [],
      "caseStatus": "string",
      "caseStatusDateUtc": "2019-08-24T14:15:22Z",
      "caseStatusUpdatedDateUtc": "2019-08-24T14:15:22Z",
      "caseTypeAbbrevation": "string",
      "caseTypeDisplayName": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "localId": "string",
      "mark43Id": 0,
      "supervisors": [],
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalCase
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

POST: Case Notes

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/cases/notes/{case_id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cases/notes/{case_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/cases/notes/{case_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/cases/notes/{case_id}', headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/cases/notes/{case_id} HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/cases/notes/{case_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '[
  {
    "author": {
      "badgeNumber": "string",
      "bureau": "string",
      "cityIdNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "currentAssignmentDate": "2019-08-24T14:15:22Z",
      "currentDutyStatus": "string",
      "currentDutyStatusDate": "2019-08-24",
      "dateHired": "2019-08-24",
      "dateOfBirth": "2019-08-24",
      "departmentAgencyId": 0,
      "division": "string",
      "externalCadId": "string",
      "externalHrId": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstName": "string",
      "gender": "string",
      "isDisabled": true,
      "isSsoUser": true,
      "lastName": "string",
      "licenseNumber": "string",
      "mark43Id": 0,
      "mark43UserAccountRoleId": 0,
      "mark43UserGroup": "CALL_TAKER",
      "middleName": "string",
      "mobileId": "string",
      "personnelUnit": "string",
      "primaryEmail": "string",
      "race": "string",
      "rank": "string",
      "roles": [],
      "skills": [],
      "ssn": "string",
      "startDateUtc": "2019-08-24T14:15:22Z",
      "stateIdNumber": "string",
      "suffix": "string",
      "title": "string",
      "trainingIdNumber": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    },
    "content": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "mark43Id": 0,
    "title": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cases/notes/{case_id}',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/cases/notes/{case_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cases/notes/{case_id}";

      string json = @"[
  {
    ""author"": {
      ""badgeNumber"": ""string"",
      ""bureau"": ""string"",
      ""cityIdNumber"": ""string"",
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""currentAssignmentDate"": ""2019-08-24T14:15:22Z"",
      ""currentDutyStatus"": ""string"",
      ""currentDutyStatusDate"": ""2019-08-24"",
      ""dateHired"": ""2019-08-24"",
      ""dateOfBirth"": ""2019-08-24"",
      ""departmentAgencyId"": 0,
      ""division"": ""string"",
      ""externalCadId"": ""string"",
      ""externalHrId"": ""string"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""firstName"": ""string"",
      ""gender"": ""string"",
      ""isDisabled"": true,
      ""isSsoUser"": true,
      ""lastName"": ""string"",
      ""licenseNumber"": ""string"",
      ""mark43Id"": 0,
      ""mark43UserAccountRoleId"": 0,
      ""mark43UserGroup"": ""CALL_TAKER"",
      ""middleName"": ""string"",
      ""mobileId"": ""string"",
      ""personnelUnit"": ""string"",
      ""primaryEmail"": ""string"",
      ""race"": ""string"",
      ""rank"": ""string"",
      ""roles"": [],
      ""skills"": [],
      ""ssn"": ""string"",
      ""startDateUtc"": ""2019-08-24T14:15:22Z"",
      ""stateIdNumber"": ""string"",
      ""suffix"": ""string"",
      ""title"": ""string"",
      ""trainingIdNumber"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
    },
    ""content"": ""string"",
    ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
    ""externalId"": ""string"",
    ""externalSystem"": ""string"",
    ""externalType"": ""WARRANT"",
    ""mark43Id"": 0,
    ""title"": ""string"",
    ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
  }
]";
      ExternalCaseNote content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(ExternalCaseNote content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(ExternalCaseNote content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/cases/notes/{case_id}

Adds case notes to a case.

Body parameter

[
  {
    "author": {
      "badgeNumber": "string",
      "bureau": "string",
      "cityIdNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "currentAssignmentDate": "2019-08-24T14:15:22Z",
      "currentDutyStatus": "string",
      "currentDutyStatusDate": "2019-08-24",
      "dateHired": "2019-08-24",
      "dateOfBirth": "2019-08-24",
      "departmentAgencyId": 0,
      "division": "string",
      "externalCadId": "string",
      "externalHrId": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstName": "string",
      "gender": "string",
      "isDisabled": true,
      "isSsoUser": true,
      "lastName": "string",
      "licenseNumber": "string",
      "mark43Id": 0,
      "mark43UserAccountRoleId": 0,
      "mark43UserGroup": "CALL_TAKER",
      "middleName": "string",
      "mobileId": "string",
      "personnelUnit": "string",
      "primaryEmail": "string",
      "race": "string",
      "rank": "string",
      "roles": [],
      "skills": [],
      "ssn": "string",
      "startDateUtc": "2019-08-24T14:15:22Z",
      "stateIdNumber": "string",
      "suffix": "string",
      "title": "string",
      "trainingIdNumber": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    },
    "content": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "mark43Id": 0,
    "title": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  }
]

Parameters

Name In Type Required Description
case_id path integer(int64) true Case ID
body body ExternalCaseNote true Case note information

Example responses

200 Response

{
  "data": [
    {
      "externalCaseNote": {},
      "warnings": []
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalCaseNoteCreationResult
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

GET: Updated Cases

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/cases/updated?start_date_utc=string&end_date_utc=string \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/cases/updated?start_date_utc=string&end_date_utc=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/cases/updated',
  params: {
  'start_date_utc' => 'string',
'end_date_utc' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/cases/updated', params={
  'start_date_utc': 'string',  'end_date_utc': 'string'
}, headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/cases/updated?start_date_utc=string&end_date_utc=string HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/cases/updated', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/cases/updated?start_date_utc=string&end_date_utc=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/cases/updated", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/cases/updated";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/cases/updated

Retrieves cases that have been updated within a given date/time range.

Parameters

Name In Type Required Description
start_date_utc query string true Start of date/time range for case updated date in UTC
end_date_utc query string true End of date/time range for case updated date in UTC
from query integer(int32) false Number of records to skip for paginated results. Default value: 0
size query integer(int32) false Max size of results set to return. Default & max value: 25

Example responses

200 Response

{
  "data": {
    "from": 0,
    "records": [
      {}
    ],
    "size": 0,
    "totalRecordCount": 0
  },
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultExternalResultExternalCase
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

Department User Endpoints

Department User Endpoints allow for the retrieval and updating of department user profiles.

For details on person, organization, item, and location object creation, see Additional Model Information.

GET: All Department Users

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/users \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/users',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/users', headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/users HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/users', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/users";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/users

Retrieves the user profiles of all personnel within a given department. Returned results include biographical information, roles, and date hired. For comprehensive user profiles, use GET external/users/full.

Example responses

200 Response

{
  "data": [
    {
      "badgeNumber": "string",
      "bureau": "string",
      "cityIdNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "currentAssignmentDate": "2019-08-24T14:15:22Z",
      "currentDutyStatus": "string",
      "currentDutyStatusDate": "2019-08-24",
      "dateHired": "2019-08-24",
      "dateOfBirth": "2019-08-24",
      "departmentAgencyId": 0,
      "division": "string",
      "externalCadId": "string",
      "externalHrId": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstName": "string",
      "gender": "string",
      "isDisabled": true,
      "isSsoUser": true,
      "lastName": "string",
      "licenseNumber": "string",
      "mark43Id": 0,
      "mark43UserAccountRoleId": 0,
      "mark43UserGroup": "CALL_TAKER",
      "middleName": "string",
      "mobileId": "string",
      "personnelUnit": "string",
      "primaryEmail": "string",
      "race": "string",
      "rank": "string",
      "roles": [],
      "skills": [],
      "ssn": "string",
      "startDateUtc": "2019-08-24T14:15:22Z",
      "stateIdNumber": "string",
      "suffix": "string",
      "title": "string",
      "trainingIdNumber": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultSetExternalUser
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

GET: Full User Profile Information

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/users/full \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/users/full");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/users/full',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/users/full', headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/users/full HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/users/full', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/users/full',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/users/full", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/users/full";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/users/full

Retrieves the full user profiles for all personnel within a given department. Returned results include biographical information, division, rank, personnel unit, current duty status, and more.

Example responses

200 Response

{
  "data": [
    {
      "badgeNumber": "string",
      "bureau": "string",
      "cityIdNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "currentAssignmentDate": "2019-08-24T14:15:22Z",
      "currentDutyStatus": "string",
      "currentDutyStatusDate": "2019-08-24",
      "dateHired": "2019-08-24",
      "dateOfBirth": "2019-08-24",
      "departmentAgencyId": 0,
      "division": "string",
      "externalCadId": "string",
      "externalHrId": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstName": "string",
      "gender": "string",
      "isDisabled": true,
      "isSsoUser": true,
      "lastName": "string",
      "licenseNumber": "string",
      "mark43Id": 0,
      "mark43UserAccountRoleId": 0,
      "mark43UserGroup": "CALL_TAKER",
      "middleName": "string",
      "mobileId": "string",
      "personnelUnit": "string",
      "primaryEmail": "string",
      "race": "string",
      "rank": "string",
      "roles": [],
      "skills": [],
      "ssn": "string",
      "startDateUtc": "2019-08-24T14:15:22Z",
      "stateIdNumber": "string",
      "suffix": "string",
      "title": "string",
      "trainingIdNumber": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalUser
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

GET: Department Users by ID

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/users/ids?user_ids=0 \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/users/ids?user_ids=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/users/ids',
  params: {
  'user_ids' => 'array[integer]'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/users/ids', params={
  'user_ids': [
  0
]
}, headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/users/ids?user_ids=0 HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/users/ids', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/users/ids?user_ids=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/users/ids", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/users/ids";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/users/ids

Retrieves a collection of user profiles according to their Mark43 IDs.

Parameters

Name In Type Required Description
user_ids query array[integer] true Mark43 IDs of the users being requested

Example responses

200 Response

{
  "data": [
    {
      "badgeNumber": "string",
      "bureau": "string",
      "cityIdNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "currentAssignmentDate": "2019-08-24T14:15:22Z",
      "currentDutyStatus": "string",
      "currentDutyStatusDate": "2019-08-24",
      "dateHired": "2019-08-24",
      "dateOfBirth": "2019-08-24",
      "departmentAgencyId": 0,
      "division": "string",
      "externalCadId": "string",
      "externalHrId": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstName": "string",
      "gender": "string",
      "isDisabled": true,
      "isSsoUser": true,
      "lastName": "string",
      "licenseNumber": "string",
      "mark43Id": 0,
      "mark43UserAccountRoleId": 0,
      "mark43UserGroup": "CALL_TAKER",
      "middleName": "string",
      "mobileId": "string",
      "personnelUnit": "string",
      "primaryEmail": "string",
      "race": "string",
      "rank": "string",
      "roles": [],
      "skills": [],
      "ssn": "string",
      "startDateUtc": "2019-08-24T14:15:22Z",
      "stateIdNumber": "string",
      "suffix": "string",
      "title": "string",
      "trainingIdNumber": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultSetExternalUser
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

POST: Upsert/Replace User Information

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/users/v2 \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/users/v2");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/users/v2',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/users/v2', headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/users/v2 HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/users/v2', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '[
  {
    "badgeNumber": "string",
    "bureau": "string",
    "cityIdNumber": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "currentAssignmentDate": "2019-08-24T14:15:22Z",
    "currentDutyStatus": "string",
    "currentDutyStatusDate": "2019-08-24",
    "dateHired": "2019-08-24",
    "dateOfBirth": "2019-08-24",
    "departmentAgencyId": 0,
    "division": "string",
    "externalCadId": "string",
    "externalHrId": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "firstName": "string",
    "gender": "string",
    "isDisabled": true,
    "isSsoUser": true,
    "lastName": "string",
    "licenseNumber": "string",
    "mark43Id": 0,
    "mark43UserAccountRoleId": 0,
    "mark43UserGroup": "CALL_TAKER",
    "middleName": "string",
    "mobileId": "string",
    "personnelUnit": "string",
    "primaryEmail": "string",
    "race": "string",
    "rank": "string",
    "roles": [
      "string"
    ],
    "skills": [
      "string"
    ],
    "ssn": "string",
    "startDateUtc": "2019-08-24T14:15:22Z",
    "stateIdNumber": "string",
    "suffix": "string",
    "title": "string",
    "trainingIdNumber": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/users/v2',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/users/v2", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/users/v2";

      string json = @"[
  {
    ""badgeNumber"": ""string"",
    ""bureau"": ""string"",
    ""cityIdNumber"": ""string"",
    ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
    ""currentAssignmentDate"": ""2019-08-24T14:15:22Z"",
    ""currentDutyStatus"": ""string"",
    ""currentDutyStatusDate"": ""2019-08-24"",
    ""dateHired"": ""2019-08-24"",
    ""dateOfBirth"": ""2019-08-24"",
    ""departmentAgencyId"": 0,
    ""division"": ""string"",
    ""externalCadId"": ""string"",
    ""externalHrId"": ""string"",
    ""externalId"": ""string"",
    ""externalSystem"": ""string"",
    ""externalType"": ""WARRANT"",
    ""firstName"": ""string"",
    ""gender"": ""string"",
    ""isDisabled"": true,
    ""isSsoUser"": true,
    ""lastName"": ""string"",
    ""licenseNumber"": ""string"",
    ""mark43Id"": 0,
    ""mark43UserAccountRoleId"": 0,
    ""mark43UserGroup"": ""CALL_TAKER"",
    ""middleName"": ""string"",
    ""mobileId"": ""string"",
    ""personnelUnit"": ""string"",
    ""primaryEmail"": ""string"",
    ""race"": ""string"",
    ""rank"": ""string"",
    ""roles"": [
      ""string""
    ],
    ""skills"": [
      ""string""
    ],
    ""ssn"": ""string"",
    ""startDateUtc"": ""2019-08-24T14:15:22Z"",
    ""stateIdNumber"": ""string"",
    ""suffix"": ""string"",
    ""title"": ""string"",
    ""trainingIdNumber"": ""string"",
    ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
  }
]";
      ExternalUser content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(ExternalUser content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(ExternalUser content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/users/v2

Allows for the disabling of users, but not the assignment/removal of roles. Due to security protocol, changes to a user's email address cannot be made with this endpoint.

Body parameter

[
  {
    "badgeNumber": "string",
    "bureau": "string",
    "cityIdNumber": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "currentAssignmentDate": "2019-08-24T14:15:22Z",
    "currentDutyStatus": "string",
    "currentDutyStatusDate": "2019-08-24",
    "dateHired": "2019-08-24",
    "dateOfBirth": "2019-08-24",
    "departmentAgencyId": 0,
    "division": "string",
    "externalCadId": "string",
    "externalHrId": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "firstName": "string",
    "gender": "string",
    "isDisabled": true,
    "isSsoUser": true,
    "lastName": "string",
    "licenseNumber": "string",
    "mark43Id": 0,
    "mark43UserAccountRoleId": 0,
    "mark43UserGroup": "CALL_TAKER",
    "middleName": "string",
    "mobileId": "string",
    "personnelUnit": "string",
    "primaryEmail": "string",
    "race": "string",
    "rank": "string",
    "roles": [
      "string"
    ],
    "skills": [
      "string"
    ],
    "ssn": "string",
    "startDateUtc": "2019-08-24T14:15:22Z",
    "stateIdNumber": "string",
    "suffix": "string",
    "title": "string",
    "trainingIdNumber": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  }
]

Parameters

Name In Type Required Description
body body ExternalUser true Users with their information

Example responses

200 Response

{
  "data": [
    {
      "badgeNumber": "string",
      "bureau": "string",
      "cityIdNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "currentAssignmentDate": "2019-08-24T14:15:22Z",
      "currentDutyStatus": "string",
      "currentDutyStatusDate": "2019-08-24",
      "dateHired": "2019-08-24",
      "dateOfBirth": "2019-08-24",
      "departmentAgencyId": 0,
      "division": "string",
      "externalCadId": "string",
      "externalHrId": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstName": "string",
      "gender": "string",
      "isDisabled": true,
      "isSsoUser": true,
      "lastName": "string",
      "licenseNumber": "string",
      "mark43Id": 0,
      "mark43UserAccountRoleId": 0,
      "mark43UserGroup": "CALL_TAKER",
      "middleName": "string",
      "mobileId": "string",
      "personnelUnit": "string",
      "primaryEmail": "string",
      "race": "string",
      "rank": "string",
      "roles": [],
      "skills": [],
      "ssn": "string",
      "startDateUtc": "2019-08-24T14:15:22Z",
      "stateIdNumber": "string",
      "suffix": "string",
      "title": "string",
      "trainingIdNumber": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalUser
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

POST: Upsert/Replace User Information, including a particular set of Roles

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/users/with_roles \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/users/with_roles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/users/with_roles',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/users/with_roles', headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/users/with_roles HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/users/with_roles', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '{
  "mark43RolesToReplace": [
    "string"
  ],
  "usersToUpsert": [
    {
      "badgeNumber": "string",
      "bureau": "string",
      "cityIdNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "currentAssignmentDate": "2019-08-24T14:15:22Z",
      "currentDutyStatus": "string",
      "currentDutyStatusDate": "2019-08-24",
      "dateHired": "2019-08-24",
      "dateOfBirth": "2019-08-24",
      "departmentAgencyId": 0,
      "division": "string",
      "externalCadId": "string",
      "externalHrId": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstName": "string",
      "gender": "string",
      "isDisabled": true,
      "isSsoUser": true,
      "lastName": "string",
      "licenseNumber": "string",
      "mark43Id": 0,
      "mark43UserAccountRoleId": 0,
      "mark43UserGroup": "CALL_TAKER",
      "middleName": "string",
      "mobileId": "string",
      "personnelUnit": "string",
      "primaryEmail": "string",
      "race": "string",
      "rank": "string",
      "roles": [],
      "skills": [],
      "ssn": "string",
      "startDateUtc": "2019-08-24T14:15:22Z",
      "stateIdNumber": "string",
      "suffix": "string",
      "title": "string",
      "trainingIdNumber": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/users/with_roles',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/users/with_roles", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/users/with_roles";

      string json = @"{
  ""mark43RolesToReplace"": [
    ""string""
  ],
  ""usersToUpsert"": [
    {
      ""badgeNumber"": ""string"",
      ""bureau"": ""string"",
      ""cityIdNumber"": ""string"",
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""currentAssignmentDate"": ""2019-08-24T14:15:22Z"",
      ""currentDutyStatus"": ""string"",
      ""currentDutyStatusDate"": ""2019-08-24"",
      ""dateHired"": ""2019-08-24"",
      ""dateOfBirth"": ""2019-08-24"",
      ""departmentAgencyId"": 0,
      ""division"": ""string"",
      ""externalCadId"": ""string"",
      ""externalHrId"": ""string"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""firstName"": ""string"",
      ""gender"": ""string"",
      ""isDisabled"": true,
      ""isSsoUser"": true,
      ""lastName"": ""string"",
      ""licenseNumber"": ""string"",
      ""mark43Id"": 0,
      ""mark43UserAccountRoleId"": 0,
      ""mark43UserGroup"": ""CALL_TAKER"",
      ""middleName"": ""string"",
      ""mobileId"": ""string"",
      ""personnelUnit"": ""string"",
      ""primaryEmail"": ""string"",
      ""race"": ""string"",
      ""rank"": ""string"",
      ""roles"": [],
      ""skills"": [],
      ""ssn"": ""string"",
      ""startDateUtc"": ""2019-08-24T14:15:22Z"",
      ""stateIdNumber"": ""string"",
      ""suffix"": ""string"",
      ""title"": ""string"",
      ""trainingIdNumber"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
    }
  ]
}";
      ExternalUserUpsertRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(ExternalUserUpsertRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(ExternalUserUpsertRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/users/with_roles

Allows for the disabling of users and the assignment/removal of roles. Due to security protocol, changes to a user's email address cannot be made with this endpoint.

Body parameter

{
  "mark43RolesToReplace": [
    "string"
  ],
  "usersToUpsert": [
    {
      "badgeNumber": "string",
      "bureau": "string",
      "cityIdNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "currentAssignmentDate": "2019-08-24T14:15:22Z",
      "currentDutyStatus": "string",
      "currentDutyStatusDate": "2019-08-24",
      "dateHired": "2019-08-24",
      "dateOfBirth": "2019-08-24",
      "departmentAgencyId": 0,
      "division": "string",
      "externalCadId": "string",
      "externalHrId": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstName": "string",
      "gender": "string",
      "isDisabled": true,
      "isSsoUser": true,
      "lastName": "string",
      "licenseNumber": "string",
      "mark43Id": 0,
      "mark43UserAccountRoleId": 0,
      "mark43UserGroup": "CALL_TAKER",
      "middleName": "string",
      "mobileId": "string",
      "personnelUnit": "string",
      "primaryEmail": "string",
      "race": "string",
      "rank": "string",
      "roles": [],
      "skills": [],
      "ssn": "string",
      "startDateUtc": "2019-08-24T14:15:22Z",
      "stateIdNumber": "string",
      "suffix": "string",
      "title": "string",
      "trainingIdNumber": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    }
  ]
}

Parameters

Name In Type Required Description
body body ExternalUserUpsertRequest true Users with their information

Example responses

200 Response

{
  "data": [
    {
      "externalUser": {},
      "validationErrorMessages": [],
      "warnings": {}
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListExternalUserCreationResult
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

GET: Department User by ID

Code samples

# You can also use wget
curl -X GET https://department.mark43.com/partnerships/api/external/users/{id} \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/users/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://department.mark43.com/partnerships/api/external/users/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://department.mark43.com/partnerships/api/external/users/{id}', headers = headers)

print(r.json())

GET https://department.mark43.com/partnerships/api/external/users/{id} HTTP/1.1

Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://department.mark43.com/partnerships/api/external/users/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...


const headers = {
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/users/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://department.mark43.com/partnerships/api/external/users/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }

    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/users/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }




    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

GET /external/users/{id}

Retrieves the profile of a single user according to their Mark43 ID.

Parameters

Name In Type Required Description
id path integer(int64) true Mark43 ID of the user being requested

Example responses

200 Response

{
  "data": {
    "badgeNumber": "string",
    "bureau": "string",
    "cityIdNumber": "string",
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "currentAssignmentDate": "2019-08-24T14:15:22Z",
    "currentDutyStatus": "string",
    "currentDutyStatusDate": "2019-08-24",
    "dateHired": "2019-08-24",
    "dateOfBirth": "2019-08-24",
    "departmentAgencyId": 0,
    "division": "string",
    "externalCadId": "string",
    "externalHrId": "string",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "firstName": "string",
    "gender": "string",
    "isDisabled": true,
    "isSsoUser": true,
    "lastName": "string",
    "licenseNumber": "string",
    "mark43Id": 0,
    "mark43UserAccountRoleId": 0,
    "mark43UserGroup": "CALL_TAKER",
    "middleName": "string",
    "mobileId": "string",
    "personnelUnit": "string",
    "primaryEmail": "string",
    "race": "string",
    "rank": "string",
    "roles": [
      "string"
    ],
    "skills": [
      "string"
    ],
    "ssn": "string",
    "startDateUtc": "2019-08-24T14:15:22Z",
    "stateIdNumber": "string",
    "suffix": "string",
    "title": "string",
    "trainingIdNumber": "string",
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  },
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultExternalUser
304 Not Modified Not modified None
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
500 Internal Server Error Internal server error None

E911 Endpoints

E911 Endpoints allow for integrating 911 call data into Mark43 CAD events and tickets.

PUT: E911 Data

Code samples

# You can also use wget
curl -X PUT https://department.mark43.com/partnerships/api/partnerships/e911 \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/partnerships/e911");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.put 'https://department.mark43.com/partnerships/api/partnerships/e911',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.put('https://department.mark43.com/partnerships/api/partnerships/e911', headers = headers)

print(r.json())

PUT https://department.mark43.com/partnerships/api/partnerships/e911 HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://department.mark43.com/partnerships/api/partnerships/e911', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '[
  {
    "agencyCode": "string",
    "callerAddress": "string",
    "callerName": "string",
    "callerSubPremise": "string",
    "callingPhoneNumber": "string",
    "classOfService": "stri",
    "companyId": "strin",
    "confidencePercentage": "str",
    "countryCode": "UNDEFINED",
    "e911StationId": "string",
    "ems": "string",
    "fire": "string",
    "latitude": 0,
    "longitude": 0,
    "phoneNumber": "string",
    "pilotNumber": "string",
    "pilotPhoneNumber": "string",
    "police": "string",
    "rawData": "string",
    "rawE911Buffer": "string",
    "source": "string",
    "sourceSystemCode": "string",
    "stationId": "string",
    "subscriberAddressType": "string",
    "subscriberBuildingFloor": "strin",
    "subscriberBuildingName": "st",
    "subscriberLocality": "string",
    "subscriberLocationDetails": "string",
    "subscriberName": "string",
    "subscriberStateCode": "st",
    "subscriberStreetDirection": "str",
    "subscriberStreetDirectionPreFix": "str",
    "subscriberStreetName": "string",
    "subscriberStreetNumber": "string",
    "subscriberStreetNumberTrailer": "stri",
    "subscriberStreetSuffix": "stri",
    "subscriberUnitNumber": "string",
    "telcoComment": "string",
    "towerAltitude": "string",
    "towerLatitude": 0,
    "towerLongitude": 0,
    "uncertaintyFactor": "string"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/partnerships/e911',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://department.mark43.com/partnerships/api/partnerships/e911", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }



    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://department.mark43.com/partnerships/api/partnerships/e911";


      string json = @"[
  {
    ""agencyCode"": ""string"",
    ""callerAddress"": ""string"",
    ""callerName"": ""string"",
    ""callerSubPremise"": ""string"",
    ""callingPhoneNumber"": ""string"",
    ""classOfService"": ""stri"",
    ""companyId"": ""strin"",
    ""confidencePercentage"": ""str"",
    ""countryCode"": ""UNDEFINED"",
    ""e911StationId"": ""string"",
    ""ems"": ""string"",
    ""fire"": ""string"",
    ""latitude"": 0,
    ""longitude"": 0,
    ""phoneNumber"": ""string"",
    ""pilotNumber"": ""string"",
    ""pilotPhoneNumber"": ""string"",
    ""police"": ""string"",
    ""rawData"": ""string"",
    ""rawE911Buffer"": ""string"",
    ""source"": ""string"",
    ""sourceSystemCode"": ""string"",
    ""stationId"": ""string"",
    ""subscriberAddressType"": ""string"",
    ""subscriberBuildingFloor"": ""strin"",
    ""subscriberBuildingName"": ""st"",
    ""subscriberLocality"": ""string"",
    ""subscriberLocationDetails"": ""string"",
    ""subscriberName"": ""string"",
    ""subscriberStateCode"": ""st"",
    ""subscriberStreetDirection"": ""str"",
    ""subscriberStreetDirectionPreFix"": ""str"",
    ""subscriberStreetName"": ""string"",
    ""subscriberStreetNumber"": ""string"",
    ""subscriberStreetNumberTrailer"": ""stri"",
    ""subscriberStreetSuffix"": ""stri"",
    ""subscriberUnitNumber"": ""string"",
    ""telcoComment"": ""string"",
    ""towerAltitude"": ""string"",
    ""towerLatitude"": 0,
    ""towerLongitude"": 0,
    ""uncertaintyFactor"": ""string""
  }
]";
      E911Call content = JsonConvert.DeserializeObject(json);
      var result = await PutAsync(id, content, url);


    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, E911Call content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }


    /// Serialize an object to Json
    private StringContent SerializeObject(E911Call content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

PUT /partnerships/e911

Inserts phone call data from an E911 interface into CAD events and tickets.

Body parameter

[
  {
    "agencyCode": "string",
    "callerAddress": "string",
    "callerName": "string",
    "callerSubPremise": "string",
    "callingPhoneNumber": "string",
    "classOfService": "stri",
    "companyId": "strin",
    "confidencePercentage": "str",
    "countryCode": "UNDEFINED",
    "e911StationId": "string",
    "ems": "string",
    "fire": "string",
    "latitude": 0,
    "longitude": 0,
    "phoneNumber": "string",
    "pilotNumber": "string",
    "pilotPhoneNumber": "string",
    "police": "string",
    "rawData": "string",
    "rawE911Buffer": "string",
    "source": "string",
    "sourceSystemCode": "string",
    "stationId": "string",
    "subscriberAddressType": "string",
    "subscriberBuildingFloor": "strin",
    "subscriberBuildingName": "st",
    "subscriberLocality": "string",
    "subscriberLocationDetails": "string",
    "subscriberName": "string",
    "subscriberStateCode": "st",
    "subscriberStreetDirection": "str",
    "subscriberStreetDirectionPreFix": "str",
    "subscriberStreetName": "string",
    "subscriberStreetNumber": "string",
    "subscriberStreetNumberTrailer": "stri",
    "subscriberStreetSuffix": "stri",
    "subscriberUnitNumber": "string",
    "telcoComment": "string",
    "towerAltitude": "string",
    "towerLatitude": 0,
    "towerLongitude": 0,
    "uncertaintyFactor": "string"
  }
]

Parameters

Name In Type Required Description
body body E911Call false Phone calls from an E911 interface

Example responses

200 Response

{
  "data": [
    {
      "agencyId": 0,
      "cadCallInputAttrId": 0,
      "callTakerId": 0,
      "callTakerStationAttrId": 0,
      "callerAddress": "string",
      "callerName": "string",
      "callerSubPremise": "string",
      "classOfService": "string",
      "companyId": "string",
      "confidencePercentage": "string",
      "createdBy": 0,
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "departmentId": 0,
      "id": 0,
      "latitude": 0,
      "longitude": 0,
      "phoneNumberId": 0,
      "phoneNumberRaw": "string",
      "pilotPhoneNumberId": 0,
      "pilotPhoneNumberRaw": "string",
      "rawData": "string",
      "rmsEventId": 0,
      "uncertaintyFactor": "string",
      "updatedBy": 0,
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "uqKey": "string"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListCadPhoneCall
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

PUT: E911 Data - California Agencies (Deprecated)

Code samples

# You can also use wget
curl -X PUT https://department.mark43.com/partnerships/api/partnerships/e911/ca \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/partnerships/e911/ca");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.put 'https://department.mark43.com/partnerships/api/partnerships/e911/ca',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.put('https://department.mark43.com/partnerships/api/partnerships/e911/ca', headers = headers)

print(r.json())

PUT https://department.mark43.com/partnerships/api/partnerships/e911/ca HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://department.mark43.com/partnerships/api/partnerships/e911/ca', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '[
  {
    "agencyCode": "string",
    "callerAddress": "string",
    "callerName": "string",
    "callerSubPremise": "string",
    "callingPhoneNumber": "string",
    "classOfService": "string",
    "companyId": "string",
    "confidencePercentage": "string",
    "countryCode": "UNDEFINED",
    "e911StationId": "string",
    "latitude": 0,
    "longitude": 0,
    "phoneNumber": "string",
    "pilotPhoneNumber": "string",
    "rawData": "string",
    "rawE911Buffer": "string",
    "source": "string",
    "sourceSystemCode": "string",
    "stationId": "string",
    "subscriberAddressType": "string",
    "subscriberBuildingFloor": "strin",
    "subscriberBuildingName": "st",
    "subscriberLocality": "string",
    "subscriberLocationDetails": "string",
    "subscriberName": "string",
    "subscriberStateCode": "st",
    "subscriberStreetDirection": "str",
    "subscriberStreetDirectionPreFix": "str",
    "subscriberStreetName": "string",
    "subscriberStreetNumber": "string",
    "subscriberStreetNumberTrailer": "stri",
    "subscriberStreetSuffix": "stri",
    "subscriberUnitNumber": "string",
    "towerAltitude": "string",
    "towerLatitude": 0,
    "towerLongitude": 0,
    "uncertaintyFactor": "string"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/partnerships/e911/ca',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://department.mark43.com/partnerships/api/partnerships/e911/ca", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }



    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://department.mark43.com/partnerships/api/partnerships/e911/ca";


      string json = @"[
  {
    ""agencyCode"": ""string"",
    ""callerAddress"": ""string"",
    ""callerName"": ""string"",
    ""callerSubPremise"": ""string"",
    ""callingPhoneNumber"": ""string"",
    ""classOfService"": ""string"",
    ""companyId"": ""string"",
    ""confidencePercentage"": ""string"",
    ""countryCode"": ""UNDEFINED"",
    ""e911StationId"": ""string"",
    ""latitude"": 0,
    ""longitude"": 0,
    ""phoneNumber"": ""string"",
    ""pilotPhoneNumber"": ""string"",
    ""rawData"": ""string"",
    ""rawE911Buffer"": ""string"",
    ""source"": ""string"",
    ""sourceSystemCode"": ""string"",
    ""stationId"": ""string"",
    ""subscriberAddressType"": ""string"",
    ""subscriberBuildingFloor"": ""strin"",
    ""subscriberBuildingName"": ""st"",
    ""subscriberLocality"": ""string"",
    ""subscriberLocationDetails"": ""string"",
    ""subscriberName"": ""string"",
    ""subscriberStateCode"": ""st"",
    ""subscriberStreetDirection"": ""str"",
    ""subscriberStreetDirectionPreFix"": ""str"",
    ""subscriberStreetName"": ""string"",
    ""subscriberStreetNumber"": ""string"",
    ""subscriberStreetNumberTrailer"": ""stri"",
    ""subscriberStreetSuffix"": ""stri"",
    ""subscriberUnitNumber"": ""string"",
    ""towerAltitude"": ""string"",
    ""towerLatitude"": 0,
    ""towerLongitude"": 0,
    ""uncertaintyFactor"": ""string""
  }
]";
      CAE911Call content = JsonConvert.DeserializeObject(json);
      var result = await PutAsync(id, content, url);


    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, CAE911Call content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }


    /// Serialize an object to Json
    private StringContent SerializeObject(CAE911Call content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

PUT /partnerships/e911/ca

Deprecated. Use /partnerships/e911.

Body parameter

[
  {
    "agencyCode": "string",
    "callerAddress": "string",
    "callerName": "string",
    "callerSubPremise": "string",
    "callingPhoneNumber": "string",
    "classOfService": "string",
    "companyId": "string",
    "confidencePercentage": "string",
    "countryCode": "UNDEFINED",
    "e911StationId": "string",
    "latitude": 0,
    "longitude": 0,
    "phoneNumber": "string",
    "pilotPhoneNumber": "string",
    "rawData": "string",
    "rawE911Buffer": "string",
    "source": "string",
    "sourceSystemCode": "string",
    "stationId": "string",
    "subscriberAddressType": "string",
    "subscriberBuildingFloor": "strin",
    "subscriberBuildingName": "st",
    "subscriberLocality": "string",
    "subscriberLocationDetails": "string",
    "subscriberName": "string",
    "subscriberStateCode": "st",
    "subscriberStreetDirection": "str",
    "subscriberStreetDirectionPreFix": "str",
    "subscriberStreetName": "string",
    "subscriberStreetNumber": "string",
    "subscriberStreetNumberTrailer": "stri",
    "subscriberStreetSuffix": "stri",
    "subscriberUnitNumber": "string",
    "towerAltitude": "string",
    "towerLatitude": 0,
    "towerLongitude": 0,
    "uncertaintyFactor": "string"
  }
]

Parameters

Name In Type Required Description
body body CAE911Call false Phone calls from an E911 interface

Example responses

200 Response

{
  "data": [
    {
      "agencyId": 0,
      "cadCallInputAttrId": 0,
      "callTakerId": 0,
      "callTakerStationAttrId": 0,
      "callerAddress": "string",
      "callerName": "string",
      "callerSubPremise": "string",
      "classOfService": "string",
      "companyId": "string",
      "confidencePercentage": "string",
      "createdBy": 0,
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "departmentId": 0,
      "id": 0,
      "latitude": 0,
      "longitude": 0,
      "phoneNumberId": 0,
      "phoneNumberRaw": "string",
      "pilotPhoneNumberId": 0,
      "pilotPhoneNumberRaw": "string",
      "rawData": "string",
      "rmsEventId": 0,
      "uncertaintyFactor": "string",
      "updatedBy": 0,
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "uqKey": "string"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListCadPhoneCall
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

PUT: E911 Data - New Jersey Agencies (Deprecated)

Code samples

# You can also use wget
curl -X PUT https://department.mark43.com/partnerships/api/partnerships/e911/nj \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/partnerships/e911/nj");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.put 'https://department.mark43.com/partnerships/api/partnerships/e911/nj',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.put('https://department.mark43.com/partnerships/api/partnerships/e911/nj', headers = headers)

print(r.json())

PUT https://department.mark43.com/partnerships/api/partnerships/e911/nj HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://department.mark43.com/partnerships/api/partnerships/e911/nj', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '[
  {
    "agencyCode": "string",
    "callerAddress": "string",
    "callerName": "string",
    "callerSubPremise": "string",
    "callingPhoneNumber": "string",
    "classOfService": "string",
    "companyId": "string",
    "confidencePercentage": "string",
    "countryCode": "UNDEFINED",
    "e911StationId": "string",
    "latitude": 0,
    "longitude": 0,
    "phoneNumber": "string",
    "pilotPhoneNumber": "string",
    "rawData": "string",
    "rawE911Buffer": "string",
    "source": "string",
    "sourceSystemCode": "string",
    "stationId": "string",
    "subscriberAddressType": "string",
    "subscriberBuildingFloor": "strin",
    "subscriberBuildingName": "st",
    "subscriberLocality": "string",
    "subscriberLocationDetails": "string",
    "subscriberName": "string",
    "subscriberStateCode": "st",
    "subscriberStreetDirection": "str",
    "subscriberStreetDirectionPreFix": "str",
    "subscriberStreetName": "string",
    "subscriberStreetNumber": "string",
    "subscriberStreetNumberTrailer": "stri",
    "subscriberStreetSuffix": "stri",
    "subscriberUnitNumber": "string",
    "towerAltitude": "string",
    "towerLatitude": 0,
    "towerLongitude": 0,
    "uncertaintyFactor": "string"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/partnerships/e911/nj',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://department.mark43.com/partnerships/api/partnerships/e911/nj", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }



    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://department.mark43.com/partnerships/api/partnerships/e911/nj";


      string json = @"[
  {
    ""agencyCode"": ""string"",
    ""callerAddress"": ""string"",
    ""callerName"": ""string"",
    ""callerSubPremise"": ""string"",
    ""callingPhoneNumber"": ""string"",
    ""classOfService"": ""string"",
    ""companyId"": ""string"",
    ""confidencePercentage"": ""string"",
    ""countryCode"": ""UNDEFINED"",
    ""e911StationId"": ""string"",
    ""latitude"": 0,
    ""longitude"": 0,
    ""phoneNumber"": ""string"",
    ""pilotPhoneNumber"": ""string"",
    ""rawData"": ""string"",
    ""rawE911Buffer"": ""string"",
    ""source"": ""string"",
    ""sourceSystemCode"": ""string"",
    ""stationId"": ""string"",
    ""subscriberAddressType"": ""string"",
    ""subscriberBuildingFloor"": ""strin"",
    ""subscriberBuildingName"": ""st"",
    ""subscriberLocality"": ""string"",
    ""subscriberLocationDetails"": ""string"",
    ""subscriberName"": ""string"",
    ""subscriberStateCode"": ""st"",
    ""subscriberStreetDirection"": ""str"",
    ""subscriberStreetDirectionPreFix"": ""str"",
    ""subscriberStreetName"": ""string"",
    ""subscriberStreetNumber"": ""string"",
    ""subscriberStreetNumberTrailer"": ""stri"",
    ""subscriberStreetSuffix"": ""stri"",
    ""subscriberUnitNumber"": ""string"",
    ""towerAltitude"": ""string"",
    ""towerLatitude"": 0,
    ""towerLongitude"": 0,
    ""uncertaintyFactor"": ""string""
  }
]";
      NJE911Call content = JsonConvert.DeserializeObject(json);
      var result = await PutAsync(id, content, url);


    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, NJE911Call content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }


    /// Serialize an object to Json
    private StringContent SerializeObject(NJE911Call content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

PUT /partnerships/e911/nj

Deprecated. Use /partnerships/e911.

Body parameter

[
  {
    "agencyCode": "string",
    "callerAddress": "string",
    "callerName": "string",
    "callerSubPremise": "string",
    "callingPhoneNumber": "string",
    "classOfService": "string",
    "companyId": "string",
    "confidencePercentage": "string",
    "countryCode": "UNDEFINED",
    "e911StationId": "string",
    "latitude": 0,
    "longitude": 0,
    "phoneNumber": "string",
    "pilotPhoneNumber": "string",
    "rawData": "string",
    "rawE911Buffer": "string",
    "source": "string",
    "sourceSystemCode": "string",
    "stationId": "string",
    "subscriberAddressType": "string",
    "subscriberBuildingFloor": "strin",
    "subscriberBuildingName": "st",
    "subscriberLocality": "string",
    "subscriberLocationDetails": "string",
    "subscriberName": "string",
    "subscriberStateCode": "st",
    "subscriberStreetDirection": "str",
    "subscriberStreetDirectionPreFix": "str",
    "subscriberStreetName": "string",
    "subscriberStreetNumber": "string",
    "subscriberStreetNumberTrailer": "stri",
    "subscriberStreetSuffix": "stri",
    "subscriberUnitNumber": "string",
    "towerAltitude": "string",
    "towerLatitude": 0,
    "towerLongitude": 0,
    "uncertaintyFactor": "string"
  }
]

Parameters

Name In Type Required Description
body body NJE911Call false Phone calls from an E911 interface

Example responses

200 Response

{
  "data": [
    {
      "agencyId": 0,
      "cadCallInputAttrId": 0,
      "callTakerId": 0,
      "callTakerStationAttrId": 0,
      "callerAddress": "string",
      "callerName": "string",
      "callerSubPremise": "string",
      "classOfService": "string",
      "companyId": "string",
      "confidencePercentage": "string",
      "createdBy": 0,
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "departmentId": 0,
      "id": 0,
      "latitude": 0,
      "longitude": 0,
      "phoneNumberId": 0,
      "phoneNumberRaw": "string",
      "pilotPhoneNumberId": 0,
      "pilotPhoneNumberRaw": "string",
      "rawData": "string",
      "rmsEventId": 0,
      "uncertaintyFactor": "string",
      "updatedBy": 0,
      "updatedDateUtc": "2019-08-24T14:15:22Z",
      "uqKey": "string"
    }
  ],
  "error": "string",
  "success": true
}

Responses

Status Meaning Description Model
200 OK Successful operation ApiResultListCadPhoneCall
400 Bad Request Bad arguments to this resource None
401 Unauthorized Unauthorized access to this operation None
403 Forbidden Insufficient permissions to perform this operation None
404 Not Found Could not find resource None
413 Payload Too Large Request body is too large None
422 Unprocessable Entity Invalid entity None
500 Internal Server Error Internal server error None

Evidence Endpoints

Evidence Endpoints allow for various operations within the Mark43 Evidence Module, including:

For details on person, organization, item, and location object creation, see Additional Model Information.

POST: Chain Event

Code samples

# You can also use wget
curl -X POST https://department.mark43.com/partnerships/api/external/evidence/chain_events \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

URL obj = new URL("https://department.mark43.com/partnerships/api/external/evidence/chain_events");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://department.mark43.com/partnerships/api/external/evidence/chain_events',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://department.mark43.com/partnerships/api/external/evidence/chain_events', headers = headers)

print(r.json())

POST https://department.mark43.com/partnerships/api/external/evidence/chain_events HTTP/1.1

Content-Type: application/json
Accept: application/json

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://department.mark43.com/partnerships/api/external/evidence/chain_events', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

const inputBody = '[
  {
    "chainEventType": "string",
    "createdByUser": {
      "badgeNumber": "string",
      "bureau": "string",
      "cityIdNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "currentAssignmentDate": "2019-08-24T14:15:22Z",
      "currentDutyStatus": "string",
      "currentDutyStatusDate": "2019-08-24",
      "dateHired": "2019-08-24",
      "dateOfBirth": "2019-08-24",
      "departmentAgencyId": 0,
      "division": "string",
      "externalCadId": "string",
      "externalHrId": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstName": "string",
      "gender": "string",
      "isDisabled": true,
      "isSsoUser": true,
      "lastName": "string",
      "licenseNumber": "string",
      "mark43Id": 0,
      "mark43UserAccountRoleId": 0,
      "mark43UserGroup": "CALL_TAKER",
      "middleName": "string",
      "mobileId": "string",
      "personnelUnit": "string",
      "primaryEmail": "string",
      "race": "string",
      "rank": "string",
      "roles": [],
      "skills": [],
      "ssn": "string",
      "startDateUtc": "2019-08-24T14:15:22Z",
      "stateIdNumber": "string",
      "suffix": "string",
      "title": "string",
      "trainingIdNumber": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    },
    "createdDateUtc": "2019-08-24T14:15:22Z",
    "description": "string",
    "eventDateUtc": "2019-08-24T14:15:22Z",
    "externalId": "string",
    "externalSystem": "string",
    "externalType": "WARRANT",
    "facility": "string",
    "itemInPoliceCustodyDateUtc": "2019-08-24T14:15:22Z",
    "mark43Id": 0,
    "masterItemId": 0,
    "receivedByName": "string",
    "receivedByUser": {
      "badgeNumber": "string",
      "bureau": "string",
      "cityIdNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "currentAssignmentDate": "2019-08-24T14:15:22Z",
      "currentDutyStatus": "string",
      "currentDutyStatusDate": "2019-08-24",
      "dateHired": "2019-08-24",
      "dateOfBirth": "2019-08-24",
      "departmentAgencyId": 0,
      "division": "string",
      "externalCadId": "string",
      "externalHrId": "string",
      "externalId": "string",
      "externalSystem": "string",
      "externalType": "WARRANT",
      "firstName": "string",
      "gender": "string",
      "isDisabled": true,
      "isSsoUser": true,
      "lastName": "string",
      "licenseNumber": "string",
      "mark43Id": 0,
      "mark43UserAccountRoleId": 0,
      "mark43UserGroup": "CALL_TAKER",
      "middleName": "string",
      "mobileId": "string",
      "personnelUnit": "string",
      "primaryEmail": "string",
      "race": "string",
      "rank": "string",
      "roles": [],
      "skills": [],
      "ssn": "string",
      "startDateUtc": "2019-08-24T14:15:22Z",
      "stateIdNumber": "string",
      "suffix": "string",
      "title": "string",
      "trainingIdNumber": "string",
      "updatedDateUtc": "2019-08-24T14:15:22Z"
    },
    "reportId": 0,
    "storageLocation": "string",
    "storageLocationId": 0,
    "updatedDateUtc": "2019-08-24T14:15:22Z"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://department.mark43.com/partnerships/api/external/evidence/chain_events',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://department.mark43.com/partnerships/api/external/evidence/chain_events", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }


    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://department.mark43.com/partnerships/api/external/evidence/chain_events";

      string json = @"[
  {
    ""chainEventType"": ""string"",
    ""createdByUser"": {
      ""badgeNumber"": ""string"",
      ""bureau"": ""string"",
      ""cityIdNumber"": ""string"",
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""currentAssignmentDate"": ""2019-08-24T14:15:22Z"",
      ""currentDutyStatus"": ""string"",
      ""currentDutyStatusDate"": ""2019-08-24"",
      ""dateHired"": ""2019-08-24"",
      ""dateOfBirth"": ""2019-08-24"",
      ""departmentAgencyId"": 0,
      ""division"": ""string"",
      ""externalCadId"": ""string"",
      ""externalHrId"": ""string"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""firstName"": ""string"",
      ""gender"": ""string"",
      ""isDisabled"": true,
      ""isSsoUser"": true,
      ""lastName"": ""string"",
      ""licenseNumber"": ""string"",
      ""mark43Id"": 0,
      ""mark43UserAccountRoleId"": 0,
      ""mark43UserGroup"": ""CALL_TAKER"",
      ""middleName"": ""string"",
      ""mobileId"": ""string"",
      ""personnelUnit"": ""string"",
      ""primaryEmail"": ""string"",
      ""race"": ""string"",
      ""rank"": ""string"",
      ""roles"": [],
      ""skills"": [],
      ""ssn"": ""string"",
      ""startDateUtc"": ""2019-08-24T14:15:22Z"",
      ""stateIdNumber"": ""string"",
      ""suffix"": ""string"",
      ""title"": ""string"",
      ""trainingIdNumber"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
    },
    ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
    ""description"": ""string"",
    ""eventDateUtc"": ""2019-08-24T14:15:22Z"",
    ""externalId"": ""string"",
    ""externalSystem"": ""string"",
    ""externalType"": ""WARRANT"",
    ""facility"": ""string"",
    ""itemInPoliceCustodyDateUtc"": ""2019-08-24T14:15:22Z"",
    ""mark43Id"": 0,
    ""masterItemId"": 0,
    ""receivedByName"": ""string"",
    ""receivedByUser"": {
      ""badgeNumber"": ""string"",
      ""bureau"": ""string"",
      ""cityIdNumber"": ""string"",
      ""createdDateUtc"": ""2019-08-24T14:15:22Z"",
      ""currentAssignmentDate"": ""2019-08-24T14:15:22Z"",
      ""currentDutyStatus"": ""string"",
      ""currentDutyStatusDate"": ""2019-08-24"",
      ""dateHired"": ""2019-08-24"",
      ""dateOfBirth"": ""2019-08-24"",
      ""departmentAgencyId"": 0,
      ""division"": ""string"",
      ""externalCadId"": ""string"",
      ""externalHrId"": ""string"",
      ""externalId"": ""string"",
      ""externalSystem"": ""string"",
      ""externalType"": ""WARRANT"",
      ""firstName"": ""string"",
      ""gender"": ""string"",
      ""isDisabled"": true,
      ""isSsoUser"": true,
      ""lastName"": ""string"",
      ""licenseNumber"": ""string"",
      ""mark43Id"": 0,
      ""mark43UserAccountRoleId"": 0,
      ""mark43UserGroup"": ""CALL_TAKER"",
      ""middleName"": ""string"",
      ""mobileId"": ""string"",
      ""personnelUnit"": ""string"",
      ""primaryEmail"": ""string"",
      ""race"": ""string"",
      ""rank"": ""string"",
      ""roles"": [],
      ""skills"": [],
      ""ssn"": ""string"",
      ""startDateUtc"": ""2019-08-24T14:15:22Z"",
      ""stateIdNumber"": ""string"",
      ""suffix"": ""string"",
      ""title"": ""string"",
      ""trainingIdNumber"": ""string"",
      ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
    },
    ""reportId"": 0,
    ""storageLocation"": ""string"",
    ""storageLocationId"": 0,
    ""updatedDateUtc"": ""2019-08-24T14:15:22Z""
  }
]";
      ExternalChainEvent content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);


    }

    /// Performs a POST Request
    public async Task PostAsync(ExternalChainEvent content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }



    /// Serialize an object to Json
    private StringContent SerializeObject(ExternalChainEvent content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }

    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

POST /external/evidence/chain_events

Creates new chain events in the chain of custody for evidence items.

Body parameter

[
  {
    "chainEventType": "string",
    "createdByUser": {
      "badgeNumber": "string",
      "bureau": "string",
      "cityIdNumber": "string",
      "createdDateUtc": "2019-08-24T14:15:22Z",
      "currentAssignmentDate": "2019-08-24T14:15:22Z",
      "currentDutyStatus": "string",
      "currentDutyStatusDate": "2019-08-24",
      "dateHired": "2019-08-24",
      "dateOfBirth": "2019-08-24",
      "departmentAgencyId":