API reference OpenAPI 3.1
POST /screenings

Create screening

Bearer API key or staff session application/json operation createScreening

Request

Content type: application/json · required

FieldTypeRequiredDescription
profile string No default "onboarding_individual"
subject object Yes
Show 5 nested fields
FieldTypeRequiredDescription
type string No one of person, organization, vessel, aircraft
names array of object Yes —
date_of_birth string No —
nationalities array of string No —
identifiers array of object No —
options object No
Show 3 nested fields
FieldTypeRequiredDescription
monitor boolean No —
no_cache boolean No —
customer_id string No —
curl -X POST "$MONICHEK_API/screenings" \
  -H "Authorization: Bearer $MONICHEK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "profile": "onboarding_individual",
  "subject": {
    "type": "person",
    "names": [
      {
        "full": "Ada Okafor"
      }
    ],
    "date_of_birth": "string",
    "nationalities": [
      "string"
    ],
    "identifiers": [
      {}
    ]
  },
  "options": {
    "monitor": true,
    "no_cache": true,
    "customer_id": "cus_01M3R..."
  }
}'
const res = await fetch(`${MONICHEK_API}/screenings`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${MONICHEK_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "profile": "onboarding_individual",
    "subject": {
      "type": "person",
      "names": [
        {
          "full": "Ada Okafor"
        }
      ],
      "date_of_birth": "string",
      "nationalities": [
        "string"
      ],
      "identifiers": [
        {}
      ]
    },
    "options": {
      "monitor": true,
      "no_cache": true,
      "customer_id": "cus_01M3R..."
    }
  }),
});

const data = await res.json();
import os
import requests

res = requests.post(
    f"{os.environ['MONICHEK_API']}/screenings",
    headers={"Authorization": f"Bearer {os.environ['MONICHEK_API_KEY']}"},
    json={
      "profile": "onboarding_individual",
      "subject": {
        "type": "person",
        "names": [
          {
            "full": "Ada Okafor"
          }
        ],
        "date_of_birth": "string",
        "nationalities": [
          "string"
        ],
        "identifiers": [
          {}
        ]
      },
      "options": {
        "monitor": true,
        "no_cache": true,
        "customer_id": "cus_01M3R..."
      }
    },
)
print(res.json())
$ch = curl_init(getenv('MONICHEK_API') . '/screenings');
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([
        'profile' => 'onboarding_individual',
        'subject' => [
            'type' => 'person',
            'names' => [
                [
                    'full' => 'Ada Okafor',
                ],
            ],
            'date_of_birth' => 'string',
            'nationalities' => [
                'string',
            ],
            'identifiers' => [
                [],
            ],
        ],
        'options' => [
            'monitor' => true,
            'no_cache' => true,
            'customer_id' => 'cus_01M3R...',
        ],
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

Responses

201 Created explainable screening result (§14.4) application/json
{
  "object": "screening",
  "id": "scr_01M3R...",
  "status": "completed",
  "decision": "clear",
  "max_score": 0,
  "hit_count": 0,
  "hits": [],
  "snapshot_id": "snap_202609261346_19b25856",
  "profile": {
    "name": "onboarding_individual",
    "version": 1
  },
  "scoring_model": "monichek-logic-1.0",
  "lists_checked": [],
  "country_risk": {},
  "latency_ms": 1,
  "created_at": "2026-10-07T12:00:00Z"
}

Error responses

StatusMeaningBody
401 Unauthorized RFC 9457 problem
422 Unprocessable Entity RFC 9457 problem

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