Datenmodell

Interviews

Geplanter Termin zu einer Bewerbung. Trägt Art (Telefon / Video / vor Ort / Take-Home), Zeitpunkt, Dauer, Interviewer:innen, Meeting-Link / Raum, Status, Einladungs-Notiz.

Modellname: interview
Endpunkte: 5
Max. Seitengröße: 200

Felder

Validierungsregeln pro Feld. Werte, die diese Bedingungen verletzen, werden mit 400 abgewiesen, bevor sie die Datenbank erreichen.

FeldTypRegeln
kindenum
notesstring
max. Länge8000
titlestring
max. Länge200
agendastring
max. Länge4000
job_idstring
max. Länge64
statusenum
enumscheduled | completed | no_show | cancelled | rescheduled
locationstring
max. Länge200
meeting_urlurl
max. Länge2048
send_invitebool-
candidate_idstring
max. Länge64
scheduled_atstring
max. Länge32
application_idstring
max. Länge64ref →application
interviewer_idstring
max. Länge64
interviewer_idslist-
duration_minutesnumber-

Mutabilität

Welche Felder darfst du senden, und wann? Felder ohne Markierung werden vom Server vergeben - das Senden ist kein Fehler, sie werden stillschweigend ignoriert.

Anlegbar - im POST-Body lesbar.Änderbar - im PATCH-Body lesbar.Server-verwaltet - vom Body ignoriert.
FeldAnlegbarÄnderbar
kind
notes
title
agenda
job_id
status
location
meeting_url
send_invite
candidate_id
scheduled_at
application_id
interviewer_id
interviewer_ids
duration_minutes

Felder mit Anlegbar, aber ohne Änderbar, sind nach dem Erstellen unveränderlich. Server-verwaltete Felder umfassen id, Zeitstempel, Eigentümerschaft und Status.

Filter & Sortierung

Auf Listen-Endpunkten kombinierbar. Wiederholte Filter-Keys werden zu IN-Bedingungen, ein - vor einem Sort-Key kehrt die Richtung um. Beispiel: ?status=open&status=blocked&sort=-created_at.

Filter-Keys

application_iddata__application_id
candidate_iddata__candidate_id
job_iddata__job_id
kinddata__kind
statusdata__status
interviewer_iddata__interviewer_id
status
is_archivedis_archived
owned_byowned_by
created_bycreated_by

Sortier-Keys

scheduled_atdata__scheduled_at
created_atcreated_at
updated_atupdated_at

Standard: scheduled_at

Endpunkte

Jeder Endpunkt unten zeigt seine HTTP-Methode, den Pfad und den dafür benötigten PAT-Scope. Code-Beispiele decken curl, JavaScript, TypeScript, Python, Rust, Java und WebSocket ab.

GET/xapi2/data/interviewinterview:list

Objekte auflisten

Liefert eine paginierte Liste sichtbarer Objekte. Standard-Seitengröße 20; mit ?limit= änderbar (typabhängig begrenzt). ?after=<id> für Keyset-Paginierung bei nach created_at sortierten Listen, ?offset= für Offset-Paginierung.

curl -H "Authorization: Bearer pat_…" \
"https://www.ki-bewerber-management.de/xapi2/data/interview?limit=20"
GET/xapi2/data/interview/{id}interview:read

Einzelnes Objekt lesen

Liefert das Objekt anhand der ID. 404, falls es nicht existiert oder du keinen Lese-Zugriff hast (beide Fälle sind bewusst zusammengelegt).

curl -H "Authorization: Bearer pat_…" \
https://www.ki-bewerber-management.de/xapi2/data/interview/OBJECT_ID
POST/xapi2/data/interviewinterview:create

Erstellen

Erstellt ein neues Objekt. Der Body ist ein flaches JSON-Dict mit Feldwerten. Server-seitige Felder (id, Zeitstempel, Ownership) werden automatisch gefüllt; nur die unten als anlegbar gelisteten Felder werden aus dem Body übernommen.

curl -H "Authorization: Bearer pat_…" \
-H "Content-Type: application/json" \
-X POST https://www.ki-bewerber-management.de/xapi2/data/interview \
-d '{"name": "…"}'
PATCH/xapi2/data/interview/{id}interview:update

Aktualisieren

Teilweise Aktualisierung. Nur Felder im Body werden verändert; alles andere bleibt erhalten. Gleiche Erlaubnisliste wie bei Create, abzüglich der nach dem Anlegen unveränderlichen Felder.

curl -H "Authorization: Bearer pat_…" \
-H "Content-Type: application/json" \
-X PATCH https://www.ki-bewerber-management.de/xapi2/data/interview/OBJECT_ID \
-d '{"name": "…"}'
DELETE/xapi2/data/interview/{id}interview:delete

Löschen

Entfernt das Objekt. Es verschwindet sofort aus allen Standard-Listen und wird von read / list nicht mehr zurückgegeben.

curl -H "Authorization: Bearer pat_…" \
-X DELETE https://www.ki-bewerber-management.de/xapi2/data/interview/OBJECT_ID

In der CLI

Dieselben Endpunkte sind auch über die KI BMS CLI verfügbar. Für Skripte, CI und Bulk-Imports ist sie meist die schnellere Wahl.

atscli interview list --limit 5
atscli interview get <id>
atscli interview create --application-id "Hello"
atscli interview upsert --unique application_id --csv items.csv
atscli interview schema # Felder & Limits

Volle Befehlsreferenz, Profile, CSV-Import, Auto-Retry, NDJSON-Streaming → /docs/cli