List markers
curl --request GET \
--url http://localhost:3000/api/pnc/markers \
--cookie __Host-argus-session=import requests
url = "http://localhost:3000/api/pnc/markers"
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/pnc/markers', 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/pnc/markers",
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/pnc/markers"
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/pnc/markers")
.header("cookie", "__Host-argus-session=")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/pnc/markers")
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": "cmg6a7mrk000ml508mrk00001",
"reference": "MRK-000012",
"type": "WANTED",
"civilian": {
"id": "cmg6a1civ000fl508civ00001",
"reference": "CIV-000123",
"fullName": "Amelia Hart"
},
"vehicle": null,
"reason": "Wanted for robbery at Mount Street",
"details": null,
"issuedBy": {
"id": "cmg5x1k2a0000l508a1b2c3d4",
"displayName": "Olivia Officer"
},
"createdAt": "2026-10-06T19:30:00.000Z",
"expiresAt": null,
"active": true,
"clearedAt": null,
"clearedBy": null,
"clearReason": null
},
{
"id": "cmg6a7mrk000pl508mrk00002",
"reference": "MRK-000013",
"type": "STOLEN_VEHICLE",
"civilian": null,
"vehicle": {
"id": "cmg6a4veh000jl508veh00001",
"plate": "LK21ABC",
"make": "BMW",
"model": "3 Series",
"colour": "Black"
},
"reason": "Reported stolen from Berkeley Square",
"details": null,
"issuedBy": {
"id": "cmg5x1k2a0000l508a1b2c3d4",
"displayName": "Olivia Officer"
},
"createdAt": "2026-10-06T19:30:00.000Z",
"expiresAt": null,
"active": true,
"clearedAt": null,
"clearedBy": null,
"clearReason": null
}
],
"meta": {
"limit": 25,
"offset": 0,
"hasMore": false
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Request validation failed.",
"details": [
{
"path": [
"civilianId"
],
"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: pnc.view."
},
"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"
}Markers
List markers
Permission: pnc.view.
Access: Browser session, or a service credential holding the permission as a scope.
Markers and BOLOs, newest first.
Unknown query parameters are rejected with 400.
GET
/
pnc
/
markers
List markers
curl --request GET \
--url http://localhost:3000/api/pnc/markers \
--cookie __Host-argus-session=import requests
url = "http://localhost:3000/api/pnc/markers"
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/pnc/markers', 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/pnc/markers",
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/pnc/markers"
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/pnc/markers")
.header("cookie", "__Host-argus-session=")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/pnc/markers")
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": "cmg6a7mrk000ml508mrk00001",
"reference": "MRK-000012",
"type": "WANTED",
"civilian": {
"id": "cmg6a1civ000fl508civ00001",
"reference": "CIV-000123",
"fullName": "Amelia Hart"
},
"vehicle": null,
"reason": "Wanted for robbery at Mount Street",
"details": null,
"issuedBy": {
"id": "cmg5x1k2a0000l508a1b2c3d4",
"displayName": "Olivia Officer"
},
"createdAt": "2026-10-06T19:30:00.000Z",
"expiresAt": null,
"active": true,
"clearedAt": null,
"clearedBy": null,
"clearReason": null
},
{
"id": "cmg6a7mrk000pl508mrk00002",
"reference": "MRK-000013",
"type": "STOLEN_VEHICLE",
"civilian": null,
"vehicle": {
"id": "cmg6a4veh000jl508veh00001",
"plate": "LK21ABC",
"make": "BMW",
"model": "3 Series",
"colour": "Black"
},
"reason": "Reported stolen from Berkeley Square",
"details": null,
"issuedBy": {
"id": "cmg5x1k2a0000l508a1b2c3d4",
"displayName": "Olivia Officer"
},
"createdAt": "2026-10-06T19:30:00.000Z",
"expiresAt": null,
"active": true,
"clearedAt": null,
"clearedBy": null,
"clearReason": null
}
],
"meta": {
"limit": 25,
"offset": 0,
"hasMore": false
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Request validation failed.",
"details": [
{
"path": [
"civilianId"
],
"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: pnc.view."
},
"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.
Query Parameters
Markers on this person. Argus record identifier.
Required string length:
1 - 64Pattern:
^[a-zA-Z0-9_-]+$Markers on this vehicle. Argus record identifier.
Required string length:
1 - 64Pattern:
^[a-zA-Z0-9_-]+$Only this type.
Available options:
PERSON_BOLO, VEHICLE_BOLO, WANTED, MISSING_PERSON, OFFICER_SAFETY, STOLEN_VEHICLE, GENERAL true for markers in force; false for cleared or expired ones.
Available options:
true, false Page size.
Required range:
1 <= x <= 100Number of items to skip.
Required range:
0 <= x <= 10000