Clear a marker
curl --request POST \
--url http://localhost:3000/api/pnc/markers/{id}/clear \
--header 'Content-Type: application/json' \
--cookie __Host-argus-session= \
--data '
{
"reason": "Vehicle recovered"
}
'import requests
url = "http://localhost:3000/api/pnc/markers/{id}/clear"
payload = { "reason": "Vehicle recovered" }
headers = {
"cookie": "__Host-argus-session=",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {cookie: '__Host-argus-session=', 'Content-Type': 'application/json'},
body: JSON.stringify({reason: 'Vehicle recovered'})
};
fetch('http://localhost:3000/api/pnc/markers/{id}/clear', 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/{id}/clear",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'reason' => 'Vehicle recovered'
]),
CURLOPT_COOKIE => "__Host-argus-session=",
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3000/api/pnc/markers/{id}/clear"
payload := strings.NewReader("{\n \"reason\": \"Vehicle recovered\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("cookie", "__Host-argus-session=")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:3000/api/pnc/markers/{id}/clear")
.header("cookie", "__Host-argus-session=")
.header("Content-Type", "application/json")
.body("{\n \"reason\": \"Vehicle recovered\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/pnc/markers/{id}/clear")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["cookie"] = '__Host-argus-session='
request["Content-Type"] = 'application/json'
request.body = "{\n \"reason\": \"Vehicle recovered\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"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": false,
"clearedAt": "2026-10-06T19:42:10.000Z",
"clearedBy": {
"id": "cmg5x1k2a0000l508a1b2c3d4",
"displayName": "Olivia Officer"
},
"clearReason": "Vehicle recovered"
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Request validation failed.",
"details": [
{
"path": [
"reason"
],
"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.markers.manage."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "MARKER_NOT_ACTIVE",
"message": "The marker does not exist or was already cleared."
},
"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
Clear a marker
Permission: pnc.markers.manage. Needs a signed-in user; service credentials are refused with USER_REQUIRED.
Access: Browser session only.
Marks the marker as cleared with who and why. It stays in the history.
POST
/
pnc
/
markers
/
{id}
/
clear
Clear a marker
curl --request POST \
--url http://localhost:3000/api/pnc/markers/{id}/clear \
--header 'Content-Type: application/json' \
--cookie __Host-argus-session= \
--data '
{
"reason": "Vehicle recovered"
}
'import requests
url = "http://localhost:3000/api/pnc/markers/{id}/clear"
payload = { "reason": "Vehicle recovered" }
headers = {
"cookie": "__Host-argus-session=",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {cookie: '__Host-argus-session=', 'Content-Type': 'application/json'},
body: JSON.stringify({reason: 'Vehicle recovered'})
};
fetch('http://localhost:3000/api/pnc/markers/{id}/clear', 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/{id}/clear",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'reason' => 'Vehicle recovered'
]),
CURLOPT_COOKIE => "__Host-argus-session=",
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3000/api/pnc/markers/{id}/clear"
payload := strings.NewReader("{\n \"reason\": \"Vehicle recovered\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("cookie", "__Host-argus-session=")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:3000/api/pnc/markers/{id}/clear")
.header("cookie", "__Host-argus-session=")
.header("Content-Type", "application/json")
.body("{\n \"reason\": \"Vehicle recovered\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/pnc/markers/{id}/clear")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["cookie"] = '__Host-argus-session='
request["Content-Type"] = 'application/json'
request.body = "{\n \"reason\": \"Vehicle recovered\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"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": false,
"clearedAt": "2026-10-06T19:42:10.000Z",
"clearedBy": {
"id": "cmg5x1k2a0000l508a1b2c3d4",
"displayName": "Olivia Officer"
},
"clearReason": "Vehicle recovered"
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Request validation failed.",
"details": [
{
"path": [
"reason"
],
"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.markers.manage."
},
"requestId": "3f1c9d5e-7a42-4f0b-9c1e-8b6d2a4e5f70"
}{
"error": {
"code": "MARKER_NOT_ACTIVE",
"message": "The marker does not exist or was already cleared."
},
"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
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
Marker ID. Argus record identifier.
Required string length:
1 - 64Pattern:
^[a-zA-Z0-9_-]+$Body
application/json
Required string length:
3 - 500Response
Success.
Show child attributes
Show child attributes