Create an obligation
Request
Content type: application/json · required
| Field | Type | Required | Description |
|---|---|---|---|
title |
string | Yes | — |
authority |
string | No | — |
reference |
string | No | — |
description |
string | No | — |
owner |
string | No | — |
due_at |
string (date) | No | — |
recurrence |
string | No | one of none, monthly, quarterly, annual · default "none" |
status |
string | No | one of open, in_progress, completed, waived, archived · default "open" |
evidence |
string | No | — |
curl -X POST "$MONICHEK_API/obligations" \
-H "Authorization: Bearer $MONICHEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Example title",
"authority": "string",
"reference": "string",
"description": "Example note",
"owner": "string",
"due_at": "2026-10-23",
"recurrence": "none",
"status": "open",
"evidence": "string"
}'const res = await fetch(`${MONICHEK_API}/obligations`, {
method: "POST",
headers: {
Authorization: `Bearer ${MONICHEK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"title": "Example title",
"authority": "string",
"reference": "string",
"description": "Example note",
"owner": "string",
"due_at": "2026-10-23",
"recurrence": "none",
"status": "open",
"evidence": "string"
}),
});
const data = await res.json();import os
import requests
res = requests.post(
f"{os.environ['MONICHEK_API']}/obligations",
headers={"Authorization": f"Bearer {os.environ['MONICHEK_API_KEY']}"},
json={
"title": "Example title",
"authority": "string",
"reference": "string",
"description": "Example note",
"owner": "string",
"due_at": "2026-10-23",
"recurrence": "none",
"status": "open",
"evidence": "string"
},
)
print(res.json())$ch = curl_init(getenv('MONICHEK_API') . '/obligations');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MONICHEK_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'title' => 'Example title',
'authority' => 'string',
'reference' => 'string',
'description' => 'Example note',
'owner' => 'string',
'due_at' => '2026-10-23',
'recurrence' => 'none',
'status' => 'open',
'evidence' => 'string',
]),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Responses
201 Created
created obligation
application/json
No response example is published for this status.
Error responses
| Status | Meaning | Body |
|---|---|---|
| 403 | Forbidden | RFC 9457 problem |
| 422 | Unprocessable Entity | RFC 9457 problem |
Errors use the RFC 9457 problem format with a stable code.