The CrewBrain REST API allows you to access the system data from outside and create new data or modify existing data. Many different functions are available for this, with which you can access base data (employees, freelancers, categories, etc.) as well as transaction data (jobs, etc.).
Communication with CrewBrain is only possible via encrypted SSL connections. CrewBrain provides two variants for authentication: HTTP basic authentication and an access token. The latter should be used preferably so that no password has to be stored in the API implementation.
HTTP basic authentication is the simplest login method. For this, you simply provide a valid username and associated password with each call to the REST API.
By using an access or API token, the user"s password only needs to be requested once for initial authentication; the access token is used for further communication. These tokens have a validity of 14 days after the last use in CrewBrain and can be managed by each user under "My Account" > "Active Sessions".
All access tokens in CrewBrain are bound to a user and entitle to the same functions as the user is entitled to. To get an access token, the following GET request must be executed with Basic Authentication (username & password):
The response to this request is a JSON object that contains a valid access token. This can be used for further requests instead of the basic authentication. For this purpose the token is passed in the X-API-KEY header.
The CrewBrain REST API allows access to resources (data types) via URI paths. To use the REST API, your application must make an HTTP request and evaluate the response. The CrewBrain API uses the JSON format and HTTP status codes as the return format as well as the HTTP methods such as GET, POST, PUT and DELETE. URIs for the CrewBrain REST API have the following structure:
Each object is stored in the database of CrewBrain with a unique ID. This ID is stored in the ID field of the same name in each object and also serves to identify the objects in the API (e.g. as jobID, docID, etc.). Parallel to this the field FremdID exists in all base data objects, which can contain an ID of a foreign system with up to 32 characters. You can store the technical ID of external systems in this field. The corresponding objects can then also be selected directly in the API using the external ID:
The interface is based on the format ISO 8601 as the basis for the date values. A date is issued by the API in the form 2019-01-01, a date with a time in the form 20190101T235959Z. When you send data to the API, the interface also accepts the formats 20119-01-01T23:59:59Z and 2019-01-01T23:59:59+00:00 in addition to these formats. The values are automatically converted by the interface into the time zone stored in CrewBrain.
The encoding for all calls is UTF-8, both for the JSON object sent to the REST API and for the responses returned to the client.
The following rate limitations apply to the use of our API::
Provides access to a calendar view
Returns all relevant fields for a calendar entry (title, assignment, categories, etc.). All entries are grouped by days.
RequestProvides access to the jobs of the currently logged in user
Returns the jobs to which the currently logged in user is requested or booked.
ResultsProvides access to jobs and their information
Returns the job requested by the jobId. As jobId you can specify both the technical ID and the JobID or JobIDManuell.
The returned object contains not only the actual job information but also direct information about many sub-elements. For example, the sub jobs as well as requested or booked employees are included in the returned object.
ResultsCreates a job or subjob based on a JSON object. The structure of the JSON object here is largely identical to the JSON object returned by the API when GET is called, but the subobjects (subjobs, scheduled employees, etc.) are not considered. In order to create a project with subjobs, a call with the data for the project is necessary first. Afterwards the subordinate jobs can be created for the returned technical ID.
Creating a sub-job works in the same way as creating a job, but the variable ParentID must be specified here. Please note that here the technical ID of the job / project must be specified and not the JobID or JobIDManuell.
There are several possibilities to specify the job type, client, or location for the job in this call: the Typ, KundenID, Kunde, LocationID, and Location you can pass the technical ID of the corresponding resource. Alternatively, it is also possible to use the fields Typ, Kunde or Location to pass the name or the name of the resource, if it is unique in the system.
RequestUpdates the job or subjob identified by the jobId with the passed values. The structure of the JSON object here is largely identical to the JSON object returned by the API when GET is called, but the subobjects (subjobs, scheduled employees, etc.) are not considered. Basically, all values are optional, so you can either manipulate a job called by GET or create and submit a new object with only individual values.
There are several possibilities to specify the job type, client, or location for the job in this call: the Typ, KundenID, Kunde, LocationID, and Location you can pass the technical ID of the corresponding resource. Alternatively, it is also possible to use the fields Typ, Kunde or Location to pass the name or the name of the resource, if it is unique in the system.
RequestDeletes the job or subjob identified by the jobId from the system. No further parameters or extended JSON request are necessary for this.
ResultsSearches the job database for jobs with the search term Suchtext.
The Limit and Start parameters control the maximum number and the paging of the records. The maximum value is 100 records. If no records were found, an empty JSON array is returned. The optional parameter NurKuenftige allows you to limit the search to jobs in the future (default) or to search past jobs. You can define a period with the also optional parameters DatumVon and DatumBis, with the parameter MitarbeiterID the result can be restricted to jobs in which the employee with the relevant ID is requested or booked.
RequestReturns all documents of the respective object. However, only the general information such as file name and type is returned, so calling the document yourself requires an independent REST call (see api/job/{jobId}/dokument or api/projekt/{projektId}/dokument).
ResultsReturns the document specified by the docId. In addition to the information such as file name and type, the file is also supplied as a base64-coded string.
ResultsStores a document passed as a base64-encoded string to the named job or project. The JSON record contains only three attributes: Dateiname, Dateiendung, and Datei.
RequestUpdates the document defined by the docId. The JSON record, like the POST request, contains only three attributes, all of which are optional. So if you only want to change the file name or just the file content, you do not have to fill in the other attributes.
RequestDeletes the document identified by the {docId}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the employee or vehicle categories to a job. Each entry contains a reference to an employee or vehicle category (see api/stammdaten/kategorie or api/stammdaten/fahrzeugkategorie) and the number of ressources required in this category.
ResultsReturns the category of the job specified by the kategorieId. The category contains a reference to an employee or vehicle category in the KategorieID attribute (see api/stammdaten/kategorie or api/stammdaten/fahrzeugkategorie).
ResultsAssociates the named job with an employee or vehicle category. In addition to the KategorieID (the technical ID of a category, see api/stammdaten/kategorie or api/stammdaten/fahrzeugkategorie), the number of required ressources can also be specified here.
RequestUpdates the category defined by the kategorieId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the link between job and category identified by the {kategorieId}. No further parameters or extended JSON request are necessary for this. When deleting this link, all employee requests or bookings in this category will be automatically deleted or canceled.
ResultsReturns the employee specified by the terminMitarbeiterId of the job. It should be noted that this is not the actual employee, but the request or booking record of an employee. Similarly, the terminMitarbeiterId differs from the IDs of the employees. The reference to the actual employee can be found in the record in the fields Zugehoerigkeit (values M for employees and D for subcontractors) and ZugehoerigkeitID.
ResultsAssociates the named job with an employee. In addition to the ZugehoerigkeitID (an employee"s technical ID, see api/stammdaten/mitarbeiter) and Zugehoerigkeit (M for employees and freelancers, D for subcontractors - will be set automatically by the system) you can define whether the employee is available or should be marked as booked.
RequestUpdates the employee or request defined by the terminMitarbeiterId. All attributes are optional, so you only need to submit the ones you like to modify. For technical reasons it is not possible to change the affiliation (and the ZugehoerigkeitID). If an employee is to be replaced, he must be deleted and added again.
RequestDeletes the link between the job and the employee identified by the {terminMitarbeiterId}. No further parameters or extended JSON request are necessary for this. When deleting this link, the underlying booking is automatically deleted or canceled.
ResultsUpdates multiple employees or requests based on a submitted JSON array. All attributes are optional, so you only need to submit them for modifying individual attributes. To identify the individual objects, the attribute ID must be passed for each object of the array. For technical reasons it is not possible to change the affiliation (and the ZugehoerigkeitID). If an employee is to be replaced, he must be deleted and created again.
RequestReturns the vehicle specified by the terminFahrzeugId of the job. It should be noted that this is not the actual vehicle, but the request or booking record of a vehicle. Similarly, the terminFahrzeugId differs from the IDs of the vehicles. The reference to the actual vehicle can be found in the record in the field ZugehoerigkeitID.
ResultsAssociates the named job with a vehicle. In addition to the ZugehoerigkeitID (an vehicle"s technical ID, see api/stammdaten/fahrzeug) and Zugehoerigkeit (F for vehicles - will be set automatically by the system) you can define whether the vehicle is available or should be marked as booked.
RequestUpdates the vehicle or request defined by the terminFahrzeugId. All attributes are optional, so you only need to submit the ones you like to modify. For technical reasons it is not possible to change the affiliation (and the ZugehoerigkeitID). If a vehicle is to be replaced, it must be deleted and added again.
RequestDeletes the link between the job and the vehicle identified by the {terminFahrzeugId}. No further parameters or extended JSON request are necessary for this. When deleting this link, the underlying booking is automatically deleted or canceled.
ResultsUpdates multiple vehicles or requests based on a submitted JSON array. All attributes are optional, so you only need to submit them for modifying individual attributes. To identify the individual objects, the attribute ID must be passed for each object of the array. For technical reasons it is not possible to change the affiliation (and the ZugehoerigkeitID). If a vehicle is to be replaced, it must be deleted and created again.
RequestReturns the room specified by the terminRaumId of the job. It should be noted that this is not the actual room, but the request or booking record of a room. Similarly, the terminRaumId differs from the IDs of the rooms. The reference to the actual room can be found in the record in the field ZugehoerigkeitID.
ResultsAssociates the named job with a room. In addition to the ZugehoerigkeitID (an room"s technical ID, see api/stammdaten/room) and Zugehoerigkeit (RO for rooms - will be set automatically by the system) you can define whether the room is available or should be marked as booked.
RequestUpdates the room or request defined by the terminRaumId. All attributes are optional, so you only need to submit the ones you like to modify. For technical reasons it is not possible to change the affiliation (and the ZugehoerigkeitID). If a roomm is to be replaced, it must be deleted and added again.
RequestDeletes the link between the job and the room identified by the {terminRaumId}. No further parameters or extended JSON request are necessary for this. When deleting this link, the underlying booking is automatically deleted or canceled.
ResultsUpdates multiple rooms or requests based on a submitted JSON array. All attributes are optional, so you only need to submit them for modifying individual attributes. To identify the individual objects, the attribute ID must be passed for each object of the array. For technical reasons it is not possible to change the affiliation (and the ZugehoerigkeitID). If a room is to be replaced, it must be deleted and created again.
RequestReturns the scheduler specified by the disponentenID of the job or the project. It should be noted that this is not the actual employee, but the scheduler record of an employee. Similarly, the disponentenID differs from the IDs of the employees. The reference to the actual employee can be found in the record in the field MitarbeiterID.
ResultsAssociates the named job or project with an employee as scheduler. Here only the MitarbeiterID (an employee"s technical ID, see api/stammdaten/mitarbeiter) has to be defined. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestUpdates the scheduler defined by the disponentenID. All attributes are optional, so you only need to submit the ones you like to modify. For technical reasonst it is not possible to change the TerminID or ProjektID. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestDeletes the link between the job / project and the scheduler identified by the {disponentenID}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the project manager specified by the projektleiterID of the job or the project. It should be noted that this is not the actual employee, but the project manager record of an employee. Similarly, the projektleiterID differs from the IDs of the employees. The reference to the actual employee can be found in the record in the field MitarbeiterID.
ResultsAssociates the named job or project with an employee as project manager. Here only the MitarbeiterID (an employee"s technical ID, see api/stammdaten/mitarbeiter) has to be defined. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestUpdates the project manager defined by the projektleiterID. All attributes are optional, so you only need to submit the ones you like to modify. For technical reasonst it is not possible to change the TerminID or ProjektID. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestDeletes the link between the job / project and the project manager identified by the {projektleiterID}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the contact person specified by the ansprechpartnerID of the job or the project. It should be noted that this is not the actual contact person, but the link record of a contact person. Similarly, the ansprechpartnerID differs from the IDs of the contact person. The reference to the actual contact person can be found in the record in the field AnsprechpartnerID.
ResultsAssociates the named job or project with an contact person of the client. Here only the AnsprechpartnerID (an contact person"s technical ID, see api/stammdaten/kunde) has to be defined. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestUpdates the contact person defined by the ansprechpartnerID. All attributes are optional, so you only need to submit the ones you like to modify. For technical reasonst it is not possible to change the TerminID or ProjektID. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestDeletes the link between the job or the project and the contact person identified by the {ansprechpartnerID}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the contact person specified by the ansprechpartnerID of the job. It should be noted that this is not the actual contact person, but the link record of a contact person. Similarly, the ansprechpartnerID differs from the IDs of the contact person. The reference to the actual contact person can be found in the record in the field AnsprechpartnerID.
ResultsAssociates the named job with an contact person of the location. Here only the AnsprechpartnerID (an contact person"s technical ID, see api/stammdaten/location) has to be defined. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestUpdates the contact person defined by the ansprechpartnerID. All attributes are optional, so you only need to submit the ones you like to modify. For technical reasonst it is not possible to change the TerminID. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestDeletes the link between the job and the contact person identified by the {ansprechpartnerID}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the additional data of the type zusatzdatentypID for the main object.
ResultsUpdates the additional data of the type zusatzdatentypID for the main object. All attributes are optional, so you only need to submit the ones you like to modify.
RequestDeletes the additional data of the type {zusatzdatentypID} for the main object. No further parameters or extended JSON request are necessary for this.
ResultsReturns the comments for a job or project.
ResultsReturns the comment with the ID kommentarId for the parent dataset.
ResultsCreates a comment in the parent dataset. If the comment is a response to another comment, the ID of the original comment can be passed in the ParentID field. Optionally, an attachment for the comment can be passed in the Dokument field.
RequestUpdates a comment in the parent dataset with the given values.
RequestDeletes the comment with the ID {kommentarId} from the parent dataset. No additional parameters or extended JSON request are required for this.
ResultsProvides access to projects and their information
Returns the project requested by the projektId. As projektId you can specify both the technical ID and the ProjektID or ProjektIDManuell.
The returned object contains not only the actual job information but also direct information about many sub-elements. For example, the jobs as well as subjobs are included in the returned object.
ResultsCreates a project based on a JSON object. The structure of the JSON object here is largely identical to the JSON object returned by the API when GET is called, but the subobjects (jobs, subjobs, etc.) are not considered. In order to create a project with jobs and subjobs, a call with the data for the project is necessary first. Afterwards the subordinate jobs can be created for the returned technical ID.
There are several possibilities to specify the project type, or client for the project in this call: the Typ, KundenID and Kunde you can pass the technical ID of the corresponding resource. Alternatively, it is also possible to use the fields Typ or Kunde to pass the name or the name of the resource, if it is unique in the system.
RequestUpdates the project identified by the projektId with the passed values. The structure of the JSON object here is largely identical to the JSON object returned by the API when GET is called, but the subobjects (jobs, subjobs, etc.) are not considered. Basically, all values are optional, so you can either manipulate a project called by GET or create and submit a new object with only individual values.
There are several possibilities to specify the project type, or client for the project in this call: the Typ, KundenID and Kunde you can pass the technical ID of the corresponding resource. Alternatively, it is also possible to use the fields Typ or Kunde to pass the name or the name of the resource, if it is unique in the system.
RequestDeletes the project identified by the projektId from the system. No further parameters or extended JSON request are necessary for this.
ResultsSearches the project database for projects with the search term Suchtext.
The Limit and Start parameters control the maximum number and the paging of the records. The maximum value is 100 records. If no records were found, an empty JSON array is returned. The optional parameter NurKuenftige allows you to limit the search to projects in the future (default) or to search past projects. You can define a period with the also optional parameters DatumVon and DatumBis.
RequestReturns all documents of the respective object. However, only the general information such as file name and type is returned, so calling the document yourself requires an independent REST call (see api/job/{jobId}/dokument or api/projekt/{projektId}/dokument).
ResultsReturns the document specified by the docId. In addition to the information such as file name and type, the file is also supplied as a base64-coded string.
ResultsStores a document passed as a base64-encoded string to the named job or project. The JSON record contains only three attributes: Dateiname, Dateiendung, and Datei.
RequestUpdates the document defined by the docId. The JSON record, like the POST request, contains only three attributes, all of which are optional. So if you only want to change the file name or just the file content, you do not have to fill in the other attributes.
RequestDeletes the document identified by the {docId}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the scheduler specified by the disponentenID of the job or the project. It should be noted that this is not the actual employee, but the scheduler record of an employee. Similarly, the disponentenID differs from the IDs of the employees. The reference to the actual employee can be found in the record in the field MitarbeiterID.
ResultsAssociates the named job or project with an employee as scheduler. Here only the MitarbeiterID (an employee"s technical ID, see api/stammdaten/mitarbeiter) has to be defined. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestUpdates the scheduler defined by the disponentenID. All attributes are optional, so you only need to submit the ones you like to modify. For technical reasonst it is not possible to change the TerminID or ProjektID. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestDeletes the link between the job / project and the scheduler identified by the {disponentenID}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the project manager specified by the projektleiterID of the job or the project. It should be noted that this is not the actual employee, but the project manager record of an employee. Similarly, the projektleiterID differs from the IDs of the employees. The reference to the actual employee can be found in the record in the field MitarbeiterID.
ResultsAssociates the named job or project with an employee as project manager. Here only the MitarbeiterID (an employee"s technical ID, see api/stammdaten/mitarbeiter) has to be defined. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestUpdates the project manager defined by the projektleiterID. All attributes are optional, so you only need to submit the ones you like to modify. For technical reasonst it is not possible to change the TerminID or ProjektID. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestDeletes the link between the job / project and the project manager identified by the {projektleiterID}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the contact person specified by the ansprechpartnerID of the job or the project. It should be noted that this is not the actual contact person, but the link record of a contact person. Similarly, the ansprechpartnerID differs from the IDs of the contact person. The reference to the actual contact person can be found in the record in the field AnsprechpartnerID.
ResultsAssociates the named job or project with an contact person of the client. Here only the AnsprechpartnerID (an contact person"s technical ID, see api/stammdaten/kunde) has to be defined. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestUpdates the contact person defined by the ansprechpartnerID. All attributes are optional, so you only need to submit the ones you like to modify. For technical reasonst it is not possible to change the TerminID or ProjektID. The fields Nachname, Vorname and Telefon from the answer can not be specified here, they are only enriched in the answer for quicker access.
RequestDeletes the link between the job or the project and the contact person identified by the {ansprechpartnerID}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the additional data of the type zusatzdatentypID for the main object.
ResultsUpdates the additional data of the type zusatzdatentypID for the main object. All attributes are optional, so you only need to submit the ones you like to modify.
RequestDeletes the additional data of the type {zusatzdatentypID} for the main object. No further parameters or extended JSON request are necessary for this.
ResultsReturns the comments for a job or project.
ResultsReturns the comment with the ID kommentarId for the parent dataset.
ResultsCreates a comment in the parent dataset. If the comment is a response to another comment, the ID of the original comment can be passed in the ParentID field. Optionally, an attachment for the comment can be passed in the Dokument field.
RequestUpdates a comment in the parent dataset with the given values.
RequestDeletes the comment with the ID {kommentarId} from the parent dataset. No additional parameters or extended JSON request are required for this.
ResultsProvides access to a list of jobs changed in a given time period
Returns the IDs to changed records. These can then be retrieved in full via the respective endpoint.
RequestProvides access to working hours and their information
Returns the working hour requested by the zeitId.
ResultsCreates a working hour based on a JSON object.
RequestUpdates the working hour identified by the zeitId with the transferred values.
RequestDeletes the working hour identified by the zeitId from the system. No further parameters or extended JSON requests are required.
ResultsSearches the database for working hours that have changed since AenderungenSeit. Alternatively is is possible to read the working hours recorded for a given period (for example, a month) by using DatumVon and DatumBis.
The parameter MitarbetierID can be used to limit the request to one employee. In addition, Typ can be used to define whether target or actual times are to be searched.
RequestProvides access to holidays and sick notes and their information
Returns the holiday requested by the urlaubId.
ResultsCreates a holiday or a sick note based on a JSON object. To divide between a holiday or a sick note you have to use KategorieID (see api/stammdaten/urlaubskategorien/).
RequestUpdates the holiday identified by the urlaubId with the transferred values.
RequestDeletes the holiday identified by the urlaubId from the system. No further parameters or extended JSON requests are required.
ResultsSearches the database for holidays that have changed since AenderungenSeit. Alternatively is is possible to read the holidays recorded for a given period (for example, a month) by using DatumVon and DatumBis.
The parameter MitarbetierID can be used to limit the request to one employee.
RequestProvides access to driverslogs entries and their information
Return the driver log entry requested by the driverslogId.
ResultsCreates a driverslog entry based on a JSON object.
RequestUpdates the driverslog entry identified by the driverslogId with the given values.
RequestDeletes the driverslog entry identified by the driverslogId from the system. No further parameters or extended JSON request are required for this.
ResultsSearches the database for drivers log entries. Various parameters can be passed for the search.
The parameters DriverID and VehicleID allow filtering by driver and vehicle. With DateFrom and DateUntil the time period can be limited and with Limit and Start the number of records and the start offset can be controlled.
RequestProvides access to tasks and their information
Returns the task requested by the taskId.
ResultsCreates a task based on a JSON object. The fields Zugehoerigkeit and ZugehoerigkeitID can be used to control, to which parent object the task should be assigned. Possible values are: A for tasks, TL for tasklists, T for jobs and PR for projects. If Zugehoerigkeit is empty, the task is created in the list "new tasks".
RequestUpdates the task identified by the taskId with the transferred values.
RequestDeletes the task identified by the taskId from the system. No further parameters or extended JSON request are required for this.
ResultsSearches the tasks according to the specified search criteria.
Various parameters can be specified in the request. The parameters zugehoerigkeit and zugehoerigkeitid can be used to restrict the search to a task list, a job or project, or a main task. If no zugehoerigkeit is specified, the end point returns only those tasks that are not assigned to any other object.
The search can be refined by further parameters: finished, dueToday, duePast, dueFuture and noDueDate are boolean values. If they are specified in the request, the list is restricted accordingly. With the parameters limit and start you can control how many tasks should be output and at which task the output starts (paging).
With creator and responsible the search can be limited to one creator or responsible person. A numerical value or a list of numerical values is possible if several persons are to be searched. The ID is always the technical ID of an employee.
RequestReturns the responsible of the task specified by the responsibleId. Returns the responsible of the task specified by the responsibleId. Note that this is not the actual employee record but the responsible record of an employee. Accordingly the responsibleId differs from the IDs of the employees. The reference to the actual employee can be found in the record in the field BearbeiterID.
ResultsAssociates the named task with an employee as the responsible. Here only the BearbeiterID (the technical ID of an employee, see api/stammdaten/mitarbeiter}) must be specified. The fields Nachname, Vorname and Name from the response must not be specified here, they are only enriched in the response to allow quick access.
RequestUpdates the responsible defined by the responsibleId. Here, all attributes are optional, so that you only have to pass them if you want to change individual attributes. For technical reasons it is not possible to change the AufgabenID. The fields Nachname, Vorname and Name from the response must not be specified here, they are only enriched in the response to allow quick access.
RequestDeletes the link between task and employee identified by the {responsibleId}. No further parameters or extended JSON request are required for this.
ResultsReturns all documents of the respective object. However, only the general information such as file name and type is returned, so calling the document yourself requires an independent REST call (see api/job/{jobId}/dokument or api/projekt/{projektId}/dokument).
ResultsReturns the document specified by the docId. In addition to the information such as file name and type, the file is also supplied as a base64-coded string.
ResultsStores a document passed as a base64-encoded string to the named job or project. The JSON record contains only three attributes: Dateiname, Dateiendung, and Datei.
RequestUpdates the document defined by the docId. The JSON record, like the POST request, contains only three attributes, all of which are optional. So if you only want to change the file name or just the file content, you do not have to fill in the other attributes.
RequestDeletes the document identified by the {docId}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the comments for a job or project.
ResultsReturns the comment with the ID kommentarId for the parent dataset.
ResultsCreates a comment in the parent dataset. If the comment is a response to another comment, the ID of the original comment can be passed in the ParentID field. Optionally, an attachment for the comment can be passed in the Dokument field.
RequestUpdates a comment in the parent dataset with the given values.
RequestDeletes the comment with the ID {kommentarId} from the parent dataset. No additional parameters or extended JSON request are required for this.
ResultsProvides access to task lists and their information
Returns the list requested by the tasklistId.
ResultsCreates a list based on a JSON object. The fields FolderID and Position can be used to control where the list should be placed.
RequestUpdates the list identified by the tasklistId with the passed values.
RequestDeletes the list identified by tasklistId from the system. No additional parameters or extended JSON request are required for this.
ResultsReturns all tasks for this list. You can restrict the list to various criteria by using the request json data (see /api/task/search for details on the criteria).
RequestReturns the task list participant specified by the participantId. Please note that this is not the actual employee record but the participant record of an employee. Accordingly, the participantId differs from the IDs of the employees. The reference to the actual employee can be found in the record in the field ParticipantID}. The field ParticipantType can also be used to specify a user group (G) or a department (DP) instead of an employee.
ResultsAssociates the specified task list with an employee (alternatively: user group or department) as a participant. Only the ParticipantID (the technical ID of an employee, see api/stammdaten/mitarbeiter) as well as the ParticipantType must be entered here. The field Name from the answer must not be specified here, it is only enriched in the answer to enable quick access.
RequestUpdates the participant defined by the participantId. All attributes are optional, so if you want to change individual attributes, you only need to pass them. For technical reasons, it is not possible to change the TasklistID. The field Name from the response must not be specified here, it is only enriched in the response to enable quick access.
RequestDeletes the link between tasklist and participant identified by the {participantId}. No further parameters or extended JSON request are required for this.
ResultsProvides access to folders for task lists and their information
Returns the folder requested by the folderId.
ResultsCreates a folder based on a JSON object. The fields ParentID and Position can be used to control where the folder should be placed.
RequestUpdates the folder identified by the folderId with the transferred values.
RequestDeletes the folder identified by folderId from this machine. No additional parameters or extended JSON request are required for this.
ResultsCreates a list of all task lists and folders of the user.
Return a list of all folders and task lists. For each folder, the child folders Folders and task lists Tasklists are also returned.
ResultsProvides access to the data of the currently logged in user
Returns the currently logged in user.
ResultsUpdates the currently logged in user. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestReturns the profile picture for this resource as url.
ResultsSaves a profile picture passed as a base64-coded string to the corresponding resource. The JSON dataset contains only one attribute: Image.
RequestUpdates the profile picture of the resource. The JSON record, like the POST request, contains only one attribute.
RequestDeletes the profile picture for this resource. No additional parameters or extended JSON requests are required.
ResultsReturns the contact person requested by the ansprechpartnerID.
ResultsCreates the contact person defined by the JSON object.
RequestUpdates the contact person defined by the ansprechpartnerID. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the contact person defined by the {ansprechpartnerID}. No further parameters or extended JSON request are necessary for this.
ResultsReturns all stored contact persons.
ResultsReturns an employee document.
ResultsCreates an employee document.
RequestReturns a list of all available employee documents.
ResultsSearches the database for employee documents with specific search criteria.
RequestProvides access to certificates stored for employees, freelancers and subcontractors.
Returns the certificate with the ID certificateId.
ResultsCreates a certificate. Either a valid certificate category (see api/stammdaten/zertifikatkategorie) or alternatively -1 must be stored in the KategorieID field. If -1 is stored, the Bezeichnung field must be filled. Optionally, an attachment for the certificate can also be transferred in the Document field.
RequestUpdates a certificate with the specified values.
RequestDeletes the certificate with the ID {certificateId}. No further parameters or an extended JSON request are required for this.
ResultsSearches the database for certificates with specific search criteria.
RequestProvides access to work accidents stored in the electronic first-aid book.
Returns the work accident with the ID accidentId.
ResultsCreates a work accident.
RequestUpdates a work accident with the specified values.
RequestDeletes the work accident with the ID {accidentId}. No further parameters or extended JSON request are necessary for this.
ResultsSearches the database for work accidents with specific search criteria.
RequestProvides access to the work instructions and confirmations stored in the system.
Returns the work instruction with the ID instructionId.
ResultsSearches the database for work instructions with specific search criteria. The searchAll parameter can be used to specify whether all instructions or only those relevant to the logged-in user should be searched. ATTENTION: depending on this parameter the return object of the endpoint changes.
RequestReturns the approval or disapproval of the work instruction for the currently logged in user.
ResultsCreates an approval or disapproval to the work instruction.
RequestProvides access to employees and their information
Return the employee requested by the mitarbeiterId.
ResultsCreates the employee defined by the JSON object. If required, the attribute Passwort can also be entered, in which case the new user is directly available for login.
RequestUpdates the employee defined by the mitarbeiterId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the employee defined by the mitarbeiterId. No further parameters or extended JSON request are necessary for this.
ResultsSearches the employee database for records with the search term Suchtext. The value Suchfelder can be used to specify which fields of the records should be searched (default: Vorname, Nachname, Name).
The Limit and Start parameters control the maximum number and the paging of the records. The maximum value is 100 records. If no records were found, an empty JSON array is returned.
RequestAssigns the user group defined by ID or Name to the user.
RequestRemoves the user group identified by the benutzergruppenId from the user in question.
ResultsReturns the category defined by the kategorieId. The category contains a reference to an employee category in the KategorieID attribute (see api/stammdaten/kategorie).
ResultsAssigns the category defined by ID or Bezeichnung to the user.
RequestUpdates the category defined by kategorieId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestRemoves the category indentified by the categoryId from the user in question
ResultsReturns the additional data of the type zusatzdatentypID for the main object.
ResultsUpdates the additional data of the type zusatzdatentypID for the main object. All attributes are optional, so you only need to submit the ones you like to modify.
RequestDeletes the additional data of the type {zusatzdatentypID} for the main object. No further parameters or extended JSON request are necessary for this.
ResultsReturns an employee document.
ResultsCreates an employee document.
RequestReturns a list of all available employee documents.
ResultsSearches the database for employee documents with specific search criteria.
RequestProvides access to freelancers and their information
Return the freelancer requested by the freelancerId.
ResultsCreates the freelancer defined by the JSON object. If required, the attribute Passwort can also be entered, in which case the new user is directly available for login.
RequestUpdates the freelancer defined by the freelancerId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the freelancer defined by the freelancerId. No further parameters or extended JSON request are necessary for this.
ResultsSearches the freelancer database for records with the search term Suchtext. The value Suchfelder can be used to specify which fields of the records should be searched (default: Vorname, Nachname, Name).
The Limit and Start parameters control the maximum number and the paging of the records. The maximum value is 100 records. If no records were found, an empty JSON array is returned.
RequestAssigns the user group defined by ID or Name to the user.
RequestRemoves the user group identified by the benutzergruppenId from the user in question.
ResultsReturns the category defined by the kategorieId. The category contains a reference to an employee category in the KategorieID attribute (see api/stammdaten/kategorie).
ResultsAssigns the category defined by ID or Bezeichnung to the user.
RequestUpdates the category defined by kategorieId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestRemoves the category indentified by the categoryId from the user in question
ResultsReturns the additional data of the type zusatzdatentypID for the main object.
ResultsUpdates the additional data of the type zusatzdatentypID for the main object. All attributes are optional, so you only need to submit the ones you like to modify.
RequestDeletes the additional data of the type {zusatzdatentypID} for the main object. No further parameters or extended JSON request are necessary for this.
ResultsReturns an employee document.
ResultsCreates an employee document.
RequestReturns a list of all available employee documents.
ResultsSearches the database for employee documents with specific search criteria.
RequestProvides access to subcontractors and their information
Return the subcontractor requested by the dienstleisterId.
ResultsCreates the subcontractor defined by the JSON object. If required, the attribute Passwort can also be entered, in which case the new user is directly available for login.
RequestUpdates the subcontractor defined by the dienstleisterId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the subcontractor defined by the dienstleisterId. No further parameters or extended JSON request are necessary for this.
ResultsSearches the subcontractor database for records with the search term Suchtext.The value Suchfelder can be used to specify which fields of the records should be searched (default: Vorname, Nachname, Name).
The Limit and Start parameters control the maximum number and the paging of the records. The maximum value is 100 records. If no records were found, an empty JSON array is returned.
RequestAssigns the user group defined by ID or Name to the user.
RequestRemoves the user group identified by the benutzergruppenId from the user in question.
ResultsReturns the category defined by the kategorieId. The category contains a reference to an employee category in the KategorieID attribute (see api/stammdaten/kategorie).
ResultsAssigns the category defined by ID or Bezeichnung to the user.
RequestUpdates the category defined by kategorieId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestRemoves the category indentified by the categoryId from the user in question
ResultsReturns the contact person requested by the ansprechpartnerID.
ResultsCreates the contact person defined by the JSON object.
RequestUpdates the contact person defined by the ansprechpartnerID. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the contact person defined by the {ansprechpartnerID}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the additional data of the type zusatzdatentypID for the main object.
ResultsUpdates the additional data of the type zusatzdatentypID for the main object. All attributes are optional, so you only need to submit the ones you like to modify.
RequestDeletes the additional data of the type {zusatzdatentypID} for the main object. No further parameters or extended JSON request are necessary for this.
ResultsReturns an employee document.
ResultsCreates an employee document.
RequestReturns a list of all available employee documents.
ResultsSearches the database for employee documents with specific search criteria.
RequestThis endpoint enables the determination of the employee type for a user record
Returns the type of the user defined by the employeeId. Subsequently, if needed, the entire record can be accessed through one of the endpoints api/stammdaten/mitarbeiter (type: M), api/stammdaten/freelancer (type: E) or api/stammdaten/dienstleister (type: D) can be retrieved.
ResultsProvides access to the list of all categories for employees, freelancers and subcontractors
Return a list of all categories.
ResultsProvides access to categories for employees, freelancers, and subcontractors
Return the category requested by the kategorieId.
ResultsCreates the category defined by the JSON object.
RequestUpdates the category defined by the kategorieId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the category defined by the kategorieId. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to user groups and their information
Return a list of all user groups. For each user group, only the attributes ID, Name and Beschreibung are returned.
ResultsProvides access to vehicles and their information
Returns the vehicle requested by the fahrzeugId.
ResultsCreates the vehicle defined by the JSON object.
RequestUpdates the vehicle defined by fahrzeugId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the vehicle defined by fahrzeugId. No further parameters or extended JSON request are necessary for this.
ResultsSearches the vehicles database for customers with the search term Suchtext. The value Suchfelder can be used to specify which fields of the records should be searched (default: Bezeichnung, Kennzeichen).
The Limit and Start parameters control the maximum number and the paging of the records. The maximum value is 100 records. If no records were found, an empty JSON array is returned.
RequestReturns the category defined by the kategorieId. The category contains a reference to an employee category in the KategorieID attribute (see api/stammdaten/kategorie).
ResultsAssigns the category defined by ID or Bezeichnung to the user.
RequestRemoves the category indentified by the categoryId from the user in question
ResultsReturns the additional data of the type zusatzdatentypID for the main object.
ResultsUpdates the additional data of the type zusatzdatentypID for the main object. All attributes are optional, so you only need to submit the ones you like to modify.
RequestDeletes the additional data of the type {zusatzdatentypID} for the main object. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to the list of all categories for vehicles
Return a list of all vehicle categories.
ResultsProvides access to categories for vehicles
Return the vehicle category requested by the kategorieId.
ResultsCreates the vehicle category defined by the JSON object.
RequestUpdates the vehicle category defined by the kategorieId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the vehicle category defined by the kategorieId. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to clients and their information
Returns the client requested by the kundenId.
ResultsCreates the client defined by the JSON object.
RequestUpdates the client defined by kundenId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the client defined by kundenId. No further parameters or extended JSON request are necessary for this.
ResultsSearches the client database for customers with the search term Suchtext. Here it is also possible to search for components of the address. The value Suchfelder can be used to specify which fields of the records should be searched (default: Name, Kundennummer).
The Limit and Start parameters control the maximum number and the paging of the records. The maximum value is 100 records. If no records were found, an empty JSON array is returned.
RequestReturns the contact person requested by the ansprechpartnerID.
ResultsCreates the contact person defined by the JSON object.
RequestUpdates the contact person defined by the ansprechpartnerID. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the contact person defined by the {ansprechpartnerID}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the additional data of the type zusatzdatentypID for the main object.
ResultsUpdates the additional data of the type zusatzdatentypID for the main object. All attributes are optional, so you only need to submit the ones you like to modify.
RequestDeletes the additional data of the type {zusatzdatentypID} for the main object. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to locations and their information
Returns the location requested by the locationId.
ResultsCreates the location defined by the JSON object.
RequestUpdates the location defined by the locationId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the location defined by the locationId. No further parameters or extended JSON request are necessary for this.
ResultsSearch the location database for locations using the search term Suchtext. Here it is also possible to search for components of the address. The value Suchfelder can be used to specify which fields of the records should be searched (default: Bezeichnung, Ort).
The Limit and Start parameters control the maximum number and the paging of the records. The maximum value is 100 records. If no records were found, an empty JSON array is returned.
RequestReturns the contact person requested by the ansprechpartnerID.
ResultsCreates the contact person defined by the JSON object.
RequestUpdates the contact person defined by the ansprechpartnerID. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the contact person defined by the {ansprechpartnerID}. No further parameters or extended JSON request are necessary for this.
ResultsReturns the vehicle requested by the roomId.
ResultsCreates the room defined by the JSON object.
RequestUpdates the room defined by roomId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the room defined by roomId. No further parameters or extended JSON request are necessary for this.
ResultsReturns the additional data of the type zusatzdatentypID for the main object.
ResultsUpdates the additional data of the type zusatzdatentypID for the main object. All attributes are optional, so you only need to submit the ones you like to modify.
RequestDeletes the additional data of the type {zusatzdatentypID} for the main object. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to the list of all job types including subdivisions.
Return a list of all job types and subdivisions. Each job type can itself be either a subdivision or a type. The distinction is made using the Typ attribute, which contains the value U for subdivisions and the value K for types. If a type belongs to a subdivision, the technical ID of the subdivision can be found in the attribute ParentID.
ResultsProvides access to job types and subdivisions
Return the job type or subdivision requested by the jobtypId.
ResultsCreates the job type defined by the JSON object or the subdivision defined by the JSON object.
To create a job type, set Typ to K (default is set automatically if the attribute is not specified). To create a subdivision, the attribute Typ must be set to the value U.
In order to assign a job type to a subdivision, the value ParentID must be filled with the technical ID of the subdivision. Subdivisions themselves, however, can not be assigned to other subdivisions.
RequestUpdates the job type defined by jobtypId or the subdivision defined by jobtypId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the job type or subdivision defined by the jobtypId. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to the list of all project types including subdivisions.
Return a list of all project types and subdivisions. Each project type can itself be either a subdivision or a type. The distinction is made using the Typ attribute, which contains the value U for subdivisions and the value K for types. If a type belongs to a subdivision, the technical ID of the subdivision can be found in the attribute ParentID.
ResultsProvides access to project types and subdivisions
Return the project type or subdivision requested by the projekttypId.
ResultsCreates the job project defined by the JSON object or the subdivision defined by the JSON object.
To create a job project, set Typ to K (default is set automatically if the attribute is not specified). To create a subdivision, the attribute Typ must be set to the value U.
In order to assign a project type to a subdivision, the value ParentID must be filled with the technical ID of the subdivision. Subdivisions themselves, however, can not be assigned to other subdivisions.
RequestUpdates the project type defined by projekttypId or the subdivision defined by projekttypId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the project type or subdivision defined by the projekttypId. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to the list of all categories for working hours
Return a list of all working hour categories.
ResultsProvides access to categories for working hours
Return the working hour category requested by the kategorieId.
ResultsCreates the working hour category defined by the JSON object.
RequestUpdates the working hour category defined by the kategorieId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the working hour category defined by the kategorieId. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to the list of all categories for holidays
Return a list of all holiday categories.
ResultsProvides access to categories for holidays
Return the holiday category requested by the kategorieId.
ResultsCreates the holiday category defined by the JSON object.
RequestUpdates the holiday category defined by the kategorieId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the holiday category defined by the kategorieId. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to the list of all categories for certificates
Return a list of all certificate categories.
ResultsProvides access to categories for certificates
Return the certificate category requested by the kategorieId.
ResultsCreates the certificate category defined by the JSON object.
RequestUpdates the certificate category defined by the kategorieId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the certificate category defined by the kategorieId. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to the list of all categories for employee documents.
Return a list of all employee document categories.
ResultsProvides access to categories for employee documents.
Return the employee document category requested by the kategorieId.
ResultsCreates the employee document category defined by the JSON object.
RequestUpdates the employee document category defined by the kategorieId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the employee document category defined by the kategorieId. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to the list of all departments.
Return a list of all departments. Since departments can be nested, each department can contain a list of subdepartments.
ResultsProvides access to departments
Return the department requested by the departmentId.
ResultsCreates the department defined by the JSON object.
RequestUpdates the department defined by departmentId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the department defined by the departmentId. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to the list of all branches.
Return a list of all branches.
ResultsProvides access to branches
Return the branch requested by the branchId.
ResultsCreates the branch defined by the JSON object.
RequestUpdates the branch defined by branchId. All attributes are optional, so you only need to submit them for modifying individual attributes.
RequestDeletes the branch defined by the branchId. No further parameters or extended JSON request are necessary for this.
ResultsProvides access to a list of different enumerations used in the data fields (for example, Zugehoerigkeit). In this way it is possible to check the meaning behind the individual values.
Returns a list of all enums.
ResultsProcides access to a list of countries used in the data fields (for example Land).
Returns a list of all countries
ResultsReturns a list of all possible types of additional data for the different objects.
Returns all possible types of additional data. The ID can be used to add additional data for jobs or employees.
The field Typ defines the type of the additional data:
Using the field Zugehoerigkeit you can see, for which data type the entry can be used. For example, T stands for jobs, M for employees. The api/enums endpoint can be used to retrieve a complete list of affiliations.
ResultsProvides access to WebHooks and their information
Return the webhook requested by the webhookId.
ResultsCreates a webhook based on a JSON object
RequestUpdates the webhook identified by the webhookId with the passed values.
RequestDeletes the WebHook identified by the webhookId from the system. No additional parameters or extended JSON request are required for this.
ResultsSearches the database for WebHooks. With the parameters Name and Active the result list can be influenced. If no parameter (or an empty JSON object) is submitted as a request, all WebHooks are returned.
RequestCrewBrain can send so called WebHooks if certain data is changed. WebHooks are notifications that are sent to other systems (e.g. Zapier or Microsoft Power Automate) and are processed there. In this way it is possible to automatically trigger actions in another system, for example when a project is created in CrewBrain.
WebHooks can be created in CrewBrain either via the API (/api/webhook/) or via the administration (Administration > WebHooks). If the corresponding event occurs in CrewBrain, the stored URL is called in the background. CrewBrain also sends the respective object as JSON payload to the URL.
Event | Description | Object |
---|---|---|
project-created | Project created | Projekt |
project-changed | Project changed | Projekt |
project-deleted | Project deleted | Projekt |
job-created | Event created | Job |
job-changed | Event changed | Job |
job-deleted | Event deleted | Job |
employee-created | Employee created | Mitarbeiter |
employee-changed | Employee changed | Mitarbeiter |
employee-deactivated | Employee deactivated | Mitarbeiter |
freelancer-created | Freelancer created | Freelancer |
freelancer-changed | Freelancer changed | Freelancer |
freelancer-deactivated | Freelancer deactivated | Freelancer |
subcontractor-created | Subcontractors created | Dienstleister |
subcontractor-changed | Subcontractors changed | Dienstleister |
subcontractor-deactivated | Subcontractors deactivated | Dienstleister |
location-created | Location created | Location |
location-changed | Location changed | Location |
location-deleted | Location deleted | Location |
client-created | Client created | Kunde |
client-changed | Client changed | Kunde |
client-deleted | Client deleted | Kunde |