Get an incident
curl --request GET \
--url http://localhost:3000/api/cad/incidents/{id} \
--cookie __Host-argus-session=import requests
url = "http://localhost:3000/api/cad/incidents/{id}"
headers = {"cookie": "__Host-argus-session="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: '__Host-argus-session='}};
fetch('http://localhost:3000/api/cad/incidents/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/cad/incidents/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "__Host-argus-session=",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:3000/api/cad/incidents/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "__Host-argus-session=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:3000/api/cad/incidents/{id}")
.header("cookie", "__Host-argus-session=")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/cad/incidents/{id}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["cookie"] = '__Host-argus-session='
response = http.request(request)
puts response.read_body{
"data": {
"id": "cmg5z1inc0009l508inc00001",
"number": 142,
"status": "OPEN",
"priority": "IMMEDIATE",
"type": "Road traffic collision",
"location": "Park Lane, junction with Upper Brook Street",
"description": "Two vehicles, one on its side. Driver reported trapped.",
"controlNotes": "Approach from Marble Arch.",
"version": 3,
"createdAt": "2026-10-06T19:30:00.000Z",
"updatedAt": "2026-10-06T19:42:10.000Z",
"closedAt": null,
"units": [
{
"id": "cmg5z2unt000al508unt00001",
"callsign": "MO12",
"agencyCode": "MET",
"type": "RESPONSE",
"status": "ASSIGNED",
"incidentId": "cmg5z1inc0009l508inc00001",
"version": 3,
"createdAt": "2026-10-06T19:30:00.000Z",
"updatedAt": "2026-10-06T19:42:10.000Z",
"crew": [
{
"id": "cmg5z3crw000bl508crw00001",
"unitId": "cmg5z2unt000al508unt00001",
"identifier": "Olivia Officer",
"userId": "cmg5x1k2a0000l508a1b2c3d4",
"joinedAt": "2026-10-06T19:30:00.000Z",
"leftAt": null,
"user": {
"id": "cmg5x1k2a0000l508a1b2c3d4",
"displayName": "Olivia Officer",
"discord": {
"id": "254781093445672960",
"username": "olivia.officer",
"avatar": null
},
"roblox": {
"id": "4821093375",
"username": "OliviaOfficer"
},
"staff": {
"id": "cmg5x1k2a0001l5089f8e7d6c",
"active": true
}
}
},
{
"id": "cmg5z3crw000cl508crw00002",
"unitId": "cmg5z2unt000al508unt00001",
"identifier": "Ben Baker",
"userId": "cmg5x1k2a0002l508b7c8d9e0",
"joinedAt": "2026-10-06T19:42:10.000Z",
"leftAt": null,
"user": {
"id": "cmg5x1k2a0002l508b7c8d9e0",
"displayName": "Ben Baker",
"discord": null,
"roblox": null,
"staff": {
"id": "cmg5x1k2a000ol508staff0002",
"active": true
}
}
}
],
"incident": {
"id": "cmg5z1inc0009l508inc00001",
"number": 142,
"status": "OPEN",
"priority": "IMMEDIATE",
"type": "Road traffic collision",
"location": "Park Lane, junction with Upper Brook Street",
"description": "Two vehicles, one on its side. Driver reported trapped.",
"controlNotes": "Approach from Marble Arch.",
"version": 3,
"createdAt": "2026-10-06T19:30:00.000Z",
"updatedAt": "2026-10-06T19:42:10.000Z",
"closedAt": null
}
}
],
"calls": [
{
"id": "cmg5z4cal000dl508cal00001",
"caller": "Witness at the scene",
"location": "Park Lane",
"description": "Two cars have collided, one is on its side.",
"receivedAt": "2026-10-06T19:30:00.000Z",
"updatedAt": "2026-10-06T19:30:00.000Z",
"status": "ATTACHED",
"incidentId": "cmg5z1inc0009l508inc00001"
}
]
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Request validation failed.",
"details": [
{
"path": [
"limit"
],
"message": "Invalid input"
}
]
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Sign in to continue."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "FORBIDDEN",
"message": "Permission required: cad.view."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "NOT_FOUND",
"message": "Incident not found."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "The request could not be completed."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}Incidents
Get an incident
Permission: cad.view.
Access: Browser session, or a service credential holding the permission as a scope.
One incident with its assigned units and attached calls. A closed incident has no assigned units; who attended is in its event history.
GET
/
cad
/
incidents
/
{id}
Get an incident
curl --request GET \
--url http://localhost:3000/api/cad/incidents/{id} \
--cookie __Host-argus-session=import requests
url = "http://localhost:3000/api/cad/incidents/{id}"
headers = {"cookie": "__Host-argus-session="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: '__Host-argus-session='}};
fetch('http://localhost:3000/api/cad/incidents/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/cad/incidents/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "__Host-argus-session=",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:3000/api/cad/incidents/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "__Host-argus-session=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:3000/api/cad/incidents/{id}")
.header("cookie", "__Host-argus-session=")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/cad/incidents/{id}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["cookie"] = '__Host-argus-session='
response = http.request(request)
puts response.read_body{
"data": {
"id": "cmg5z1inc0009l508inc00001",
"number": 142,
"status": "OPEN",
"priority": "IMMEDIATE",
"type": "Road traffic collision",
"location": "Park Lane, junction with Upper Brook Street",
"description": "Two vehicles, one on its side. Driver reported trapped.",
"controlNotes": "Approach from Marble Arch.",
"version": 3,
"createdAt": "2026-10-06T19:30:00.000Z",
"updatedAt": "2026-10-06T19:42:10.000Z",
"closedAt": null,
"units": [
{
"id": "cmg5z2unt000al508unt00001",
"callsign": "MO12",
"agencyCode": "MET",
"type": "RESPONSE",
"status": "ASSIGNED",
"incidentId": "cmg5z1inc0009l508inc00001",
"version": 3,
"createdAt": "2026-10-06T19:30:00.000Z",
"updatedAt": "2026-10-06T19:42:10.000Z",
"crew": [
{
"id": "cmg5z3crw000bl508crw00001",
"unitId": "cmg5z2unt000al508unt00001",
"identifier": "Olivia Officer",
"userId": "cmg5x1k2a0000l508a1b2c3d4",
"joinedAt": "2026-10-06T19:30:00.000Z",
"leftAt": null,
"user": {
"id": "cmg5x1k2a0000l508a1b2c3d4",
"displayName": "Olivia Officer",
"discord": {
"id": "254781093445672960",
"username": "olivia.officer",
"avatar": null
},
"roblox": {
"id": "4821093375",
"username": "OliviaOfficer"
},
"staff": {
"id": "cmg5x1k2a0001l5089f8e7d6c",
"active": true
}
}
},
{
"id": "cmg5z3crw000cl508crw00002",
"unitId": "cmg5z2unt000al508unt00001",
"identifier": "Ben Baker",
"userId": "cmg5x1k2a0002l508b7c8d9e0",
"joinedAt": "2026-10-06T19:42:10.000Z",
"leftAt": null,
"user": {
"id": "cmg5x1k2a0002l508b7c8d9e0",
"displayName": "Ben Baker",
"discord": null,
"roblox": null,
"staff": {
"id": "cmg5x1k2a000ol508staff0002",
"active": true
}
}
}
],
"incident": {
"id": "cmg5z1inc0009l508inc00001",
"number": 142,
"status": "OPEN",
"priority": "IMMEDIATE",
"type": "Road traffic collision",
"location": "Park Lane, junction with Upper Brook Street",
"description": "Two vehicles, one on its side. Driver reported trapped.",
"controlNotes": "Approach from Marble Arch.",
"version": 3,
"createdAt": "2026-10-06T19:30:00.000Z",
"updatedAt": "2026-10-06T19:42:10.000Z",
"closedAt": null
}
}
],
"calls": [
{
"id": "cmg5z4cal000dl508cal00001",
"caller": "Witness at the scene",
"location": "Park Lane",
"description": "Two cars have collided, one is on its side.",
"receivedAt": "2026-10-06T19:30:00.000Z",
"updatedAt": "2026-10-06T19:30:00.000Z",
"status": "ATTACHED",
"incidentId": "cmg5z1inc0009l508inc00001"
}
]
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Request validation failed.",
"details": [
{
"path": [
"limit"
],
"message": "Invalid input"
}
]
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Sign in to continue."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "FORBIDDEN",
"message": "Permission required: cad.view."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "NOT_FOUND",
"message": "Incident not found."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "The request could not be completed."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}Authorizations
sessionCookieserviceCredential
The opaque session cookie set by Discord sign-in. Named argus-session outside production. HttpOnly, so scripts cannot read it; same-origin requests send it automatically. Requests other than GET must also carry an Origin header equal to the application's own origin.
Path Parameters
Incident ID. Argus record identifier.
Required string length:
1 - 64Pattern:
^[a-zA-Z0-9_-]+$Response
Success.
Show child attributes
Show child attributes