API Referenz

CrewBrain REST-API Referenz 

Die CrewBrain REST-API bietet Ihnen die Möglichkeit, von außen auf die Daten des Systems zuzugreifen und neue Daten anzulegen oder vorhandene Daten zu verändern. Hierzu stehen viele verschiedene Funktionen zur Verfügung, mit denen Sie sowohl auf Stammdaten (Mitarbeiter, Freelancer, Kategorien, etc.) als auch Bewegungsdaten (Jobs, etc.) zugreifen können.

Inhaltsverzeichnis 

Authentifizierung 

Die Kommunikation mit CrewBrain ist ausschließlich über verschlüsselte SSL-Verbindungen möglich. Zur Authentifizierung stellt CrewBrain zwei Varianten zur Verfügung: HTTP-Basis-Authentifizierung und ein Accesstoken. Letzteres sollte bevorzugt verwendet werden, damit kein Passwort in der API-Implementierung gespeichert werden muss.

Basic Authentication 

Die HTTP-Basis-Authentifizierung stellt die einfachste Anmeldemethode dar. Hierzu geben Sie einfach jedem Aufruf der REST-API einen gültigen Benutzernamen und das zugehörige Passwort mit.

Accesstoken 

Durch die Nutzung eines Access- oder API-Tokens muss das Passwort des Nutzers nur einmalig zur initialen Authenzifizierung abgefragt werden, für die weitere Kommunikation wird das Accesstoken verwendet. Diese Tokens haben in CrewBrain eine Gültigkeit von 14 Tagen nach der letzten Verwendung und können von jedem Benutzer unter "Mein Account" > "Aktive Sitzungen" verwaltet werden.

Alle Accesstokens in CrewBrain sind an einen Benutzer gebunden und berechtigen zu denselben Funktionen, zu denen auch der Benutzer berechtigt ist. Um ein Accesstoken zu erhalten, muss folgender GET-Request mit Basic Authentication (Username & Passwort) ausgeführt werden:

GET https://your-name.crewbrain.com/api/accesstoken

Die Antwort auf diesen Abruf ist ein JSON-Objekt, welches ein gültiges Accesstoken enthält. Dieses kann bei weiteren Requests anstelle der Basic Authentification verwendet werden. Dazu wird das Token im Header X-API-KEY übergeben.

URI-Struktur 

Die CrewBrain REST-API erlaubt den Zugriff auf Ressourcen (Datentypen) über URI-Pfade. Um die REST-API zu nutzen muss Ihre Anwendung eine HTTP-Anfrage stellen und die Antwort auswerten. Die CrewBrain API nutzt das JSON-Format und HTTP-Statuscodes als Rückgabeformat sowie die HTTP-Methoden wie GET, POST, PUT und DELETE. URIs für die CrewBrain REST-API haben die folgende Struktur:

https://your-name.crewbrain.com/api/ressource-name

Technische IDs 

Jedes Objekt wird in der CrewBrain-Datenbank mit einer eindeutigen ID hinterlegt. Diese ist im gleichnamigen Feld ID in jedem Objekt gespeichert und dient auch zur Identifikation der Objekte in der API (z.B. als jobID, docID, etc.). Parallel dazu existiert in allen Stammdaten-Objekten das Feld FremdID, welches eine bis zu 32 Zeichen lange ID eines Fremdsystems aufnehmen kann. In diesem Feld können Sie die technische ID von Fremdsystemen hinterlegen, die entsprechenden Objekte lassen sich dann auch in der API direkt über die Fremd-ID selektieren:

https://your-name.crewbrain.com/api/ressource-name/FremdID:abcdefghijklmnopqrstuvwxyz

Datumswerte 

Als Grundlage für die Datumswerte setzt die Schnittstelle auf das Format ISO 8601. Ein Datum wird von der API in der Form 2019-01-01 ausgegeben, ein Datum mit Zeitangabe in der Form 20190101T235959Z. Wenn Sie Daten an die API senden akzeptiert die Schnittstelle neben diesen Formaten auch die Formate 2019-01-01T23:59:59Z sowie 2019-01-01T23:59:59+00:00. Die Werte werden von der Schnittstelle automatisch in die in CrewBrain hinterlegte Zeitzone konvertiert.

Kodierung 

Die Kodierung für alle Aufrufe ist UTF-8. Dies gilt sowohl für das JSON-Objekt, welches an die REST-API übermittelt wird als auch für die Antworten, die an den Client zurückgeliefert werden.

Durchsatzbegrenzung 

Für die Nutzung unserer API gelten die folgenden Durchsatzbegrenzungen:

Wird eines dieser Limits überschritten, so antwortet die API mit dem HTTP Statuscode 429 - Too Many Requests.

Ressourcen 

Jobs & Projekte 

api/calendar/ 

Bietet Zugriff auf die Kalendar-Darstellung

> Kalender auslesen POST api/calendar/
api/jobs/ 

Bietet Zugriff auf die Jobs des aktuell angemeldeten Benutzers

> Jobs auslesen GET api/jobs/
api/job/ 

Bietet Zugriff auf Jobs und deren Informationen

> Job auslesen GET api/job/{jobId}
> Job anlegen POST api/job/
> Job aktualisieren PUT api/job/{jobId}
> Job löschen DELETE api/job/{jobId}
> Jobs durchsuchen POST api/job/suche
> Alle Dokumente auslesen GET api/job/{jobId}/dokumente/
> Dokument auslesen GET api/job/{jobId}/dokument/{docId}
> Dokument speichern POST api/job/{jobId}/dokument/
> Dokument aktualisieren PUT api/job/{jobId}/dokument/{docId}
> Dokument löschen DELETE api/job/{jobId}/dokument/{docId}
> Alle Kategorien auslesen GET api/job/{jobId}/kategorien/
> Kategorie auslesen GET api/job/{jobId}/kategorie/{kategorieId}
> Kategorie anlegen POST api/job/{jobId}/kategorie/
> Kategorie aktualisieren PUT api/job/{jobId}/kategorie/{kategorieId}
> Kategorie löschen DELETE api/job/{jobId}/kategorie/{kategorieId}
> Mitarbeiter auslesen GET api/job/{jobId}/mitarbeiter/{terminMitarbeiterId}
> Mitarbeiter anlegen POST api/job/{jobId}/mitarbeiter/
> Mitarbeiter aktualisieren PUT api/job/{jobId}/mitarbeiter/{terminMitarbeiterId}
> Mitarbeiter löschen DELETE api/job/{jobId}/mitarbeiter/{terminMitarbeiterId}
> Mehrere Mitarbeiter aktualisieren PUT api/job/{jobId}/mitarbeiter/
> Fahrzeug auslesen GET api/job/{jobId}/fahrzeug/{terminFahrzeugId}
> Fahrzeug anlegen POST api/job/{jobId}/fahrzeug/
> Fahrzeug aktualisieren PUT api/job/{jobId}/fahrzeug/{terminFahrzeugId}
> Fahrzeug löschen DELETE api/job/{jobId}/fahrzeug/{terminFahrzeugId}
> Mehrere Fahrzeuge aktualisieren PUT api/job/{jobId}/fahrzeug/
> Raum auslesen GET api/job/{jobId}/room/{terminRaumId}
> Raum anlegen POST api/job/{jobId}/room/
> Raum aktualisieren PUT api/job/{jobId}/room/{terminRaumId}
> Raum löschen DELETE api/job/{jobId}/room/{terminRaumId}
> Mehrere Räume aktualisieren PUT api/job/{jobId}/room/
> Disponent auslesen GET api/job/{jobId}/disponent/{disponentenId}
> Disponent anlegen POST api/job/{jobId}/disponent/
> Disponent aktualisieren PUT api/job/{jobId}/disponent/{disponentenId}
> Disponent löschen DELETE api/job/{jobId}/disponent/{disponentenId}
> Projektleiter auslesen GET api/job/{jobId}/projektleiter/{projektleiterId}
> Projektleiter anlegen POST api/job/{jobId}/projektleiter/
> Projektleiter aktualisieren PUT api/job/{jobId}/projektleiter/{projektleiterId}
> Projektleiter löschen DELETE api/job/{jobId}/projektleiter/{projektleiterId}
> Kunden-Ansprechpartner auslesen GET api/job/{jobId}/kundenansprechpartner/{ansprechpartnerId}
> Kunden-Ansprechpartner anlegen POST api/job/{jobId}/kundenansprechpartner/
> Kunden-Ansprechpartner aktualisieren PUT api/job/{jobId}/kundenansprechpartner/{ansprechpartnerId}
> Kunden-Ansprechpartner löschen DELETE api/job/{jobId}/kundenansprechpartner/{ansprechpartnerId}
> Location-Ansprechpartner auslesen GET api/job/{jobId}/locationansprechpartner/{ansprechpartnerId}
> Location-Ansprechpartner anlegen POST api/job/{jobId}/locationansprechpartner/
> Location-Ansprechpartner aktualisieren PUT api/job/{jobId}/locationansprechpartner/{ansprechpartnerId}
> Location-Ansprechpartner löschen DELETE api/job/{jobId}/locationansprechpartner/{ansprechpartnerId}
> Zusatzdaten auslesen GET api/job/{jobId}/zusatzdaten/{zusatzdatentypId}
> Zusatzdaten aktualisieren PUT api/job/{jobId}/zusatzdaten/{zusatzdatentypId}
> Zusatzdaten löschen DELETE api/job/{jobId}/zusatzdaten/{zusatzdatentypId}
> Alle Kommentare auslesen GET api/job/{jobId}/kommentare/
> Kommentar auslesen GET api/job/{jobId}/kommentar/{kommentarId}
> Kommentar anlegen POST api/job/{jobId}/kommentar/
> Kommentar bearbeiten PUT api/job/{jobId}/kommentar/{kommentarId}
> Kommentar löschen DELETE api/job/{jobId}/kommentar/{kommentarId}
api/projekt/ 

Bietet Zugriff auf Projekte und deren Informationen

> Projekt auslesen GET api/projekt/{projektId}
> Projekt anlegen POST api/projekt/
> Projekt aktualisieren PUT api/projekt/{projektId}
> Projekt löschen DELETE api/projekt/{projektId}
> Projekte durchsuchen POST api/projekt/suche
> Alle Dokumente auslesen GET api/projekt/{projektId}/dokumente/
> Dokument auslesen GET api/projekt/{projektId}/dokument/{docId}
> Dokument speichern POST api/projekt/{projektId}/dokument/
> Dokument aktualisieren PUT api/projekt/{projektId}/dokument/{docId}
> Dokument löschen DELETE api/projekt/{projektId}/dokument/{docId}
> Disponent auslesen GET api/projekt/{projektId}/disponent/{disponentenId}
> Disponent anlegen POST api/projekt/{projektId}/disponent/
> Disponent aktualisieren PUT api/projekt/{projektId}/disponent/{disponentenId}
> Disponent löschen DELETE api/projekt/{projektId}/disponent/{disponentenId}
> Projektleiter auslesen GET api/projekt/{projektId}/projektleiter/{projektleiterId}
> Projektleiter anlegen POST api/projekt/{projektId}/projektleiter/
> Projektleiter aktualisieren PUT api/projekt/{projektId}/projektleiter/{projektleiterId}
> Projektleiter löschen DELETE api/projekt/{projektId}/projektleiter/{projektleiterId}
> Kunden-Ansprechpartner auslesen GET api/projekt/{projektId}/kundenansprechpartner/{ansprechpartnerId}
> Kunden-Ansprechpartner anlegen POST api/projekt/{projektId}/kundenansprechpartner/
> Kunden-Ansprechpartner aktualisieren PUT api/projekt/{projektId}/kundenansprechpartner/{ansprechpartnerId}
> Kunden-Ansprechpartner löschen DELETE api/projekt/{projektId}/kundenansprechpartner/{ansprechpartnerId}
> Zusatzdaten auslesen GET api/projekt/{projektId}/zusatzdaten/{zusatzdatentypId}
> Zusatzdaten aktualisieren PUT api/projekt/{projektId}/zusatzdaten/{zusatzdatentypId}
> Zusatzdaten löschen DELETE api/projekt/{projektId}/zusatzdaten/{zusatzdatentypId}
> Alle Kommentare auslesen GET api/projekt/{projektId}/kommentare/
> Kommentar auslesen GET api/projekt/{projektId}/kommentar/{kommentarId}
> Kommentar anlegen POST api/projekt/{projektId}/kommentar/
> Kommentar bearbeiten PUT api/projekt/{projektId}/kommentar/{kommentarId}
> Kommentar löschen DELETE api/projekt/{projektId}/kommentar/{kommentarId}
api/changedjobs/ 

Bietet Zugriff auf eine Liste mit in einem bestimmten Zeitraum geänderten Jobs

> Jobs auslesen POST api/changedjobs/

Arbeitszeiten & Urlaub 

api/arbeitszeit/ 

Bietet Zugriff auf Arbeitszeiten und deren Informationen

> Arbeitszeit auslesen GET api/arbeitszeit/{zeitId}
> Arbeitszeit anlegen POST api/arbeitszeit/
> Arbeitszeit aktualisieren PUT api/arbeitszeit/{zeitId}
> Arbeitszeit löschen DELETE api/arbeitszeit/{zeitId}
> Arbeitszeiten durchsuchen POST api/arbeitszeit/suche
api/urlaub/ 

Bietet Zugriff auf Urlaube und Krankmeldungen und deren Informationen

> Urlaub / Krankmeldung auslesen GET api/urlaub/{urlaubId}
> Urlaub / Krankmeldung anlegen POST api/urlaub/
> Urlaub / Krankmeldung aktualisieren PUT api/urlaub/{urlaubId}
> Urlaub / Krankmeldung löschen DELETE api/urlaub/{urlaubId}
> Urlaube / Krankmeldungen durchsuchen POST api/urlaub/suche

Fahrtenbuch 

api/driverslog/ 

Bietet Zugriff auf Fahrtenbuch-Einträge und deren Informationen

> Fahrtenbuch-Eintrag auslesen GET api/driverslog/{driverslogId}
> Fahrtenbuch-Eintrag anlegen POST api/driverslog/
> Fahrtenbuch-Eintrag aktualisieren PUT api/driverslog/{driverslogId}
> Fahrtenbuch-Eintrag löschen DELETE api/driverslog/{driverslogId}
> Fahrtenbuch durchsuchen POST api/driverslog/suche

Aufgaben 

api/task/ 

Bietet Zugriff auf Aufgaben und deren Informationen

> Aufgabe auslesen GET api/task/{taskId}
> Aufgabe anlegen POST api/task/
> Aufgabe aktualisieren PUT api/task/{taskId}
> Aufgabe löschen DELETE api/task/{taskId}
> Aufgaben durchsuchen POST api/task/suche
> Aufgabenbearbeiter auslesen GET api/task/{taskId}/responsible/{responsibleId}
> Aufgabenbearbeiter anlegen POST api/task/{taskId}/responsible/
> Aufgabenbearbeiter aktualisieren PUT api/task/{taskId}/responsible/{responsibleId}
> Aufgabenbearbeiter löschen DELETE api/task/{taskId}/responsible/{responsibleId}
> Alle Dokumente auslesen GET api/task/{taskId}/dokumente/
> Dokument auslesen GET api/task/{taskId}/dokument/{docId}
> Dokument speichern POST api/task/{taskId}/dokument/
> Dokument aktualisieren PUT api/task/{taskId}/dokument/{docId}
> Dokument löschen DELETE api/task/{taskId}/dokument/{docId}
> Alle Kommentare auslesen GET api/task/{taskId}/comments/
> Kommentar auslesen GET api/task/{taskId}/comment/{commentId}
> Kommentar anlegen POST api/task/{taskId}/comment/
> Kommentar bearbeiten PUT api/task/{taskId}/comment/{commentId}
> Kommentar löschen DELETE api/task/{taskId}/comment/{commentId}
api/tasklist/ 

Bietet Zugriff auf Aufgabenlisten und deren Informationen

> Liste auslesen GET api/tasklist/{tasklistId}
> Liste anlegen POST api/tasklist/
> Liste aktualisieren PUT api/tasklist/{tasklistId}
> Liste löschen DELETE api/tasklist/{tasklistId}
> Alle Aufgaben der Liste auslesen POST api/tasklist/{tasklistId}/tasks/
> Teilnehmer auslesen GET api/tasklist/{tasklistId}/participant/{participantId}
> Teilnehmer anlegen POST api/tasklist/{tasklistId}/participant/
> Teilnehmer aktualisieren PUT api/tasklist/{tasklistId}/participant/{participantId}
> Teilnehmer löschen DELETE api/tasklist/{tasklistId}/participant/{participantId}
api/tasklistfolder/ 

Bietet Zugriff auf Ordner für Aufgabenlisten und deren Informationen

> Ordner auslesen GET api/tasklistfolder/{folderId}
> Ordner anlegen POST api/tasklistfolder/
> Ordner aktualisieren PUT api/tasklistfolder/{folderId}
> Ordner löschen DELETE api/tasklistfolder/{folderId}
api/tasklistfolders/ 

Erzeugt eine Liste aller Aufgabenlisten und Ordner des Benutzers.

> Alle Ordner / Listen auslesen GET api/tasklistfolders/

Account 

api/account/ 

Bietet Zugriff auf die Daten des aktuell angemeldeten Benutzers

> Benutzer auslesen GET api/account/
> Benutzer aktualisieren PUT api/account/
> Profilbild auslesen GET api/account/image
> Profilbild speichern POST api/account/image
> Profilbild aktualisieren PUT api/account/image
> Profilbild löschen DELETE api/account/image
> Ansprechpartner auslesen GET api/account/ansprechpartner/{ansprechpartnerId}
> Ansprechpartner anlegen POST api/account/ansprechpartner/
> Ansprechpartner aktualisieren PUT api/account/ansprechpartner/{ansprechpartnerId}
> Ansprechpartner löschen DELETE api/account/ansprechpartner/{ansprechpartnerId}
> Alle Ansprechpartner auslesen GET api/account/ansprechpartners
> AccountDokument auslesen GET api/account/dokument/{empDocId}
> AccountDokument anlegen POST api/account/dokument/
> AccountDokumente auslesen GET api/account/dokumente
> AccountDokumente durchsuchen POST api/account/dokumente/suche

Filterfavoriten 

Zertifikate 

api/zertifikat/ 

Bietet Zugriff auf die für Mitarbeiter, Freelancer und Dienstleister hinterlegten Zertifikate.

> Zertifikat auslesen GET api/zertifikat/{certificateId}
> Zertifikat anlegen POST api/zertifikat/
> Zertifikat bearbeiten PUT api/zertifikat/{certificateId}
> Zertifikat löschen DELETE api/zertifikat/{certificateId}
> Zertifikate durchsuchen POST api/zertifikat/suche

Reisekosten 

Arbeitsunfälle / Einträge im elektr. Verbandbuch 

api/workaccident/ 

Bietet Zugriff auf die im elektronischen Verbandbuch gespeicherten Arbeitsunfälle.

> Arbeitsunfall auslesen GET api/workaccident/{accidentId}
> Arbeitsunfall anlegen POST api/workaccident/
> Arbeitsunfall bearbeiten PUT api/workaccident/{accidentId}
> Arbeitsunfall löschen DELETE api/workaccident/{accidentId}
> Arbeitsunfälle durchsuchen POST api/workaccident/suche

Dienstanweisungen / Bestätigungen 

api/workinstruction/ 

Bietet Zugriff auf die im System hinterlegten Dienstanweisungen und Bestätigungen.

> Dienstanweisung auslesen GET api/workinstruction/{instructionId}
> Dienstanweisungen durchsuchen POST api/workinstruction/suche
> Zustimmung zu einer Dienstanweisung auslesen GET api/workinstruction/{instructionId}/acceptance
> Zustimmung zu einer Dienstanweisung anlegen POST api/workinstruction/{instructionId}/acceptance

Covid-19 Tests 

Werkvertrag 

Stammdaten 

api/stammdaten/mitarbeiter/ 

Bietet Zugriff auf Mitarbeiter und deren Informationen

> Mitarbeiter auslesen GET api/stammdaten/mitarbeiter/{mitarbeiterId}
> Mitarbeiter anlegen POST api/stammdaten/mitarbeiter/
> Mitarbeiter aktualisieren PUT api/stammdaten/mitarbeiter/{mitarbeiterId}
> Mitarbeiter löschen DELETE api/stammdaten/mitarbeiter/{mitarbeiterId}
> Mitarbeiter durchsuchen POST api/stammdaten/mitarbeiter/suche
> Benutzergruppe zuweisen POST api/stammdaten/mitarbeiter/{mitarbeiterId}/benutzergruppe
> Benutzergruppe löschen DELETE api/stammdaten/mitarbeiter/{mitarbeiterId}/benutzergruppe/{benutzergruppenId}
> Kategorie auslesen GET api/stammdaten/mitarbeiter/{mitarbeiterId}/kategorie/{kategorieId}
> Kategorie zuweisen POST api/stammdaten/mitarbeiter/{mitarbeiterId}/kategorie
> Kategorie aktualisieren PUT api/stammdaten/mitarbeiter/{mitarbeiterId}/kategorie/{kategorieId}
> Kategorie löschen DELETE api/stammdaten/mitarbeiter/{mitarbeiterId}/kategorie/{kategorieId}
> Zusatzdaten auslesen GET api/stammdaten/mitarbeiter/{mitarbeiterId}/zusatzdaten/{zusatzdatentypId}
> Zusatzdaten aktualisieren PUT api/stammdaten/mitarbeiter/{mitarbeiterId}/zusatzdaten/{zusatzdatentypId}
> Zusatzdaten löschen DELETE api/stammdaten/mitarbeiter/{mitarbeiterId}/zusatzdaten/{zusatzdatentypId}
> MitarbeiterDokument auslesen GET api/stammdaten/mitarbeiter/{mitarbeiterId}/dokument/{empDocId}
> MitarbeiterDokument anlegen POST api/stammdaten/mitarbeiter/{mitarbeiterId}/dokument/
> MitarbeiterDokumente auslesen GET api/stammdaten/mitarbeiter/{mitarbeiterId}/dokumente
> MitarbeiterDokumente durchsuchen POST api/stammdaten/mitarbeiter/{mitarbeiterId}/dokumente/suche
api/stammdaten/freelancer/ 

Bietet Zugriff auf Freelancer und deren Informationen

> Freelancer auslesen GET api/stammdaten/freelancer/{freelancerId}
> Freelancer anlegen POST api/stammdaten/freelancer/
> Freelancer aktualisieren PUT api/stammdaten/freelancer/{freelancerId}
> Freelancer löschen DELETE api/stammdaten/freelancer/{freelancerId}
> Freelancer durchsuchen POST api/stammdaten/freelancer/suche
> Benutzergruppe zuweisen POST api/stammdaten/freelancer/{freelancerId}/benutzergruppe
> Benutzergruppe löschen DELETE api/stammdaten/freelancer/{freelancerId}/benutzergruppe/{benutzergruppenId}
> Kategorie auslesen GET api/stammdaten/freelancer/{freelancerId}/kategorie/{kategorieId}
> Kategorie zuweisen POST api/stammdaten/freelancer/{freelancerId}/kategorie
> Kategorie aktualisieren PUT api/stammdaten/freelancer/{freelancerId}/kategorie/{kategorieId}
> Kategorie löschen DELETE api/stammdaten/freelancer/{freelancerId}/kategorie/{kategorieId}
> Zusatzdaten auslesen GET api/stammdaten/freelancer/{freelancerId}/zusatzdaten/{zusatzdatentypId}
> Zusatzdaten aktualisieren PUT api/stammdaten/freelancer/{freelancerId}/zusatzdaten/{zusatzdatentypId}