API reference OpenAPI 3.1
POST /obligations

Create an obligation

Bearer API key or staff session application/json operation createObligation

Request

Content type: application/json · required

FieldTypeRequiredDescription
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

StatusMeaningBody
403 Forbidden RFC 9457 problem
422 Unprocessable Entity RFC 9457 problem

Errors use the RFC 9457 problem format with a stable code.