API reference / Ops: settings
List retention policies Copy page
GET /ops/retentionCopy
How long each kind of data is kept, the runtime setting that decides it, the oldest stored row, and the job that deletes expired rows with its last and next run. Change a policy with PUT /ops/settings/{key}.
bearer auth
Responses 200 OK application/json
policiesarray of object required
401 Unauthorized application/problem+json
codestring required
Stable machine-readable error code
detailstring
Human-readable explanation
errorsarray of object
Field-level validation errors
request_idstring
Correlates with server logs and traces
statusinteger (int64) required
HTTP status code
titlestring required
Short summary of the problem type
typestring
URI identifying the problem type
403 Forbidden application/problem+json
codestring required
Stable machine-readable error code
detailstring
Human-readable explanation
errorsarray of object
Field-level validation errors
request_idstring
Correlates with server logs and traces
statusinteger (int64) required
HTTP status code
titlestring required
Short summary of the problem type
typestring
URI identifying the problem type
500 Internal Server Error application/problem+json
codestring required
Stable machine-readable error code
detailstring
Human-readable explanation
errorsarray of object
Field-level validation errors
request_idstring
Correlates with server logs and traces
statusinteger (int64) required
HTTP status code
titlestring required
Short summary of the problem type
typestring
URI identifying the problem type
v0.5
Request curl Go TypeScript
Copy curl -X GET "https://api.example.com/ops/retention" \
-H "Authorization: Bearer $TOKEN " req, _ := http. NewRequest ( "GET" , "https://api.example.com/ops/retention" , nil )
req.Header. Set ( "Authorization" , "Bearer " + token)
resp, err := http.DefaultClient. Do (req)
if err != nil {
return err
}
defer resp.Body. Close () const res = await fetch ( "https://api.example.com/ops/retention" , {
method: "GET" ,
headers: { Authorization: `Bearer ${ token }` },
});
const data = await res. json (); {
"policies" : [
{
"data" : "audit_events" ,
"enforced_by" : "string" ,
"job" : "retention" ,
"last_run" : {
"finalized_at" : "2026-09-15T12:00:00Z" ,
"id" : 1 ,
"state" : "completed"
},
"next_run_at" : "2026-09-15T12:00:00Z" ,
"oldest_at" : "2026-09-15T12:00:00Z" ,
"retention" : "8760h0m0s" ,
"retention_seconds" : 1 ,
"setting" : "audit.retention"
}
]
} {
"code" : "project_name_taken" ,
"detail" : "project name is already taken" ,
"errors" : [
{
"location" : "body.name" ,
"message" : "expected length >= 1"
}
],
"request_id" : "req_9f86d081884c7d65" ,
"status" : 409 ,
"title" : "Conflict" ,
"type" : "string"
} {
"code" : "project_name_taken" ,
"detail" : "project name is already taken" ,
"errors" : [
{
"location" : "body.name" ,
"message" : "expected length >= 1"
}
],
"request_id" : "req_9f86d081884c7d65" ,
"status" : 409 ,
"title" : "Conflict" ,
"type" : "string"
} {
"code" : "project_name_taken" ,
"detail" : "project name is already taken" ,
"errors" : [
{
"location" : "body.name" ,
"message" : "expected length >= 1"
}
],
"request_id" : "req_9f86d081884c7d65" ,
"status" : 409 ,
"title" : "Conflict" ,
"type" : "string"
} Base URL https://api.example.comAuth bearer