OpenAPI 3.1
API reference
The complete contract for customers, projects, tasks, documents, forms, members and webhook subscriptions.
Download OpenAPI JSON · Plain-text guide for AI tools
Endpoint list (works without JavaScript)
Payments
GET /api/v1/retentionsList open retentions
POST /api/v1/retentions/{retentionId}/releaseRelease a retention
POST /api/v1/retentions/{retentionId}/revokeTake back the release of a retention
POST /api/v1/retentions/{retentionId}/forfeitClose a retention the customer keeps for good
POST /api/v1/retentions/{retentionId}/forfeit/revokeTake back closing a kept retention
Account
GET /api/v1/meGet the authenticated API user and its organizations
Properties
GET /api/v1/propertiesList properties (Objekte), newest first
POST /api/v1/propertiesCreate a property (Objekt)
GET /api/v1/properties/{propertyId}Get a property with its customers, parties and projects
PATCH /api/v1/properties/{propertyId}Update a property and its default parties
DELETE /api/v1/properties/{propertyId}Delete a property (deletion mark, can be restored)
POST /api/v1/properties/{propertyId}/restoreRestore a deleted property
GET /api/v1/partiesList parties of properties
POST /api/v1/partiesAttach a customer to a property as party
GET /api/v1/parties/{partyId}Get a party with its customer and default roles
PATCH /api/v1/parties/{partyId}Update a party
DELETE /api/v1/parties/{partyId}Archive a party
Maintenance
GET /api/v1/maintenance-contractsList maintenance contracts with equipment and next due date
POST /api/v1/maintenance-contractsCreate a maintenance contract, optionally from a maintenance type
GET /api/v1/maintenance-contracts/{contractId}Get a maintenance contract with equipment, interval, next due date and property
PATCH /api/v1/maintenance-contracts/{contractId}Change a maintenance contract
GET /api/v1/maintenance-visitsList maintenance visits whose target month lies in a date range
GET /api/v1/maintenance-visits/{visitId}Get a maintenance visit with result, extras and invoice draft
POST /api/v1/maintenance-contracts/{contractId}/statusSet the status of a maintenance contract
POST /api/v1/maintenance-contracts/{contractId}/archiveArchive a maintenance contract
POST /api/v1/maintenance-contracts/{contractId}/restoreRestore a maintenance contract from the archive
GET /api/v1/maintenance-templatesList the maintenance types and templates of the organization
POST /api/v1/maintenance-contracts/{contractId}/schedule-visitsSchedule the next visit of a maintenance contract
POST /api/v1/maintenance-visits/{visitId}/completeComplete a maintenance visit with its result
Members
GET /api/v1/membersList active members that can be assigned to tasks
Positions
GET /api/v1/positionsList or search the position library
POST /api/v1/positionsCreate an entry of the position library
GET /api/v1/positions/{positionId}Get a position of the library
PATCH /api/v1/positions/{positionId}Change an entry of the position library
Absences
GET /api/v1/absencesList absences of members in a date range
POST /api/v1/absencesRequest an absence, or enter one for another member
PATCH /api/v1/absences/{absenceId}Change an absence by the same rule as the app
DELETE /api/v1/absences/{absenceId}Delete an absence by the same rule as the app
POST /api/v1/absences/{absenceId}/approveApprove an absence
POST /api/v1/absences/{absenceId}/rejectReject an absence
GET /api/v1/company-vacationsList company vacations in a date range
GET /api/v1/holidaysList public holidays of the organization in a date range
Sandbox
GET /api/v1/sandbox/resetRead the state of the latest sandbox reset
POST /api/v1/sandbox/resetReset the practice account to its sample data
Schedule
GET /api/v1/schedule-entriesList assignments of the planning board in a date range
POST /api/v1/schedule-entriesPlan members or a team on a project for one or several days
GET /api/v1/schedule-entries/{entryId}Get an assignment with members, crew, project, notes and status
PATCH /api/v1/schedule-entries/{entryId}Move an assignment, change its members, notes or status
DELETE /api/v1/schedule-entries/{entryId}Delete an assignment or a single date of a recurring assignment
Tasks
GET /api/v1/tasksList tasks and activities, newest first
POST /api/v1/tasksCreate a task or another activity type
GET /api/v1/tasks/{taskId}Get a task or activity
PATCH /api/v1/tasks/{taskId}Update a task or mark it open or completed
DELETE /api/v1/tasks/{taskId}Delete a task
GET /api/v1/tasks/{taskId}/commentsList the comments of a task, oldest first
POST /api/v1/tasks/{taskId}/commentsAdd a comment to a task
POST /api/v1/tasks/{taskId}/filesAttach an uploaded file to a task
Teams
GET /api/v1/teamsList active crews with their members
GET /api/v1/teams/{teamId}Get a crew with its members
Time entries
GET /api/v1/time-entry-categoriesList active time entry categories
GET /api/v1/time-entriesList time entries, newest first
POST /api/v1/time-entriesCreate a completed time entry for a member
PATCH /api/v1/time-entries/{entryId}Change times, break, category, project or note of a time entry
DELETE /api/v1/time-entries/{entryId}Delete a draft time entry
Customers
GET /api/v1/customersList customers, newest first
POST /api/v1/customersCreate a customer
GET /api/v1/customers/{customerId}Get a customer
PATCH /api/v1/customers/{customerId}Update a customer
PUT /api/v1/customers/external/{externalId}Create or update a customer by external ID
Customer requests
GET /api/v1/customer-request-columnsList the columns new customer requests can be placed in
GET /api/v1/customer-requestsList customer requests, newest first
POST /api/v1/customer-requestsCreate a customer request
GET /api/v1/customer-requests/{customerRequestId}Get a customer request
PATCH /api/v1/customer-requests/{customerRequestId}Update a customer request
DELETE /api/v1/customer-requests/{customerRequestId}Archive a customer request
POST /api/v1/customer-requests/{customerRequestId}/offersCreate a draft quote for a customer request
POST /api/v1/customer-requests/{customerRequestId}/convertConvert a customer request into a project or order
POST /api/v1/customer-requests/{customerRequestId}/filesAttach an uploaded file to a customer request
Projects
GET /api/v1/project-statusesList the project statuses of the organization
GET /api/v1/projectsList projects and orders, newest first
POST /api/v1/projectsCreate a project or order
GET /api/v1/projects/{projectId}Get a project or order
PATCH /api/v1/projects/{projectId}Update a project or order
PUT /api/v1/projects/external/{externalId}Create or update a project by external ID
POST /api/v1/projects/{projectId}/membersAdd a member to a project
Documents
GET /api/v1/quotesList quotes, newest first
POST /api/v1/quotesCreate a draft quote in a project
GET /api/v1/quotes/{quoteId}Get a quote including its positions
PATCH /api/v1/quotes/{quoteId}Change a draft quote
POST /api/v1/quotes/{quoteId}/finalizeFinalize a draft quote
POST /api/v1/quotes/{quoteId}/sendEmail a finalized quote to the customer
POST /api/v1/quotes/{quoteId}/acceptMark a sent quote as accepted by the customer
POST /api/v1/quotes/{quoteId}/rejectMark a quote as rejected by the customer
POST /api/v1/quotes/{quoteId}/order-confirmationCreate an order confirmation draft from a quote
GET /api/v1/cost-estimatesList cost estimates, newest first
GET /api/v1/cost-estimates/{costEstimateId}Get a cost estimate including its positions
POST /api/v1/cost-estimates/{costEstimateId}/finalizeFinalize a draft cost estimate
POST /api/v1/cost-estimates/{costEstimateId}/sendEmail a finalized cost estimate to the customer
POST /api/v1/cost-estimates/{costEstimateId}/acceptMark a sent cost estimate as accepted by the customer
POST /api/v1/cost-estimates/{costEstimateId}/rejectMark a cost estimate as rejected by the customer
GET /api/v1/order-confirmationsList order confirmations, newest first
GET /api/v1/order-confirmations/{orderConfirmationId}Get an order confirmation including its positions
POST /api/v1/order-confirmations/{orderConfirmationId}/finalizeFinalize a draft order confirmation
POST /api/v1/order-confirmations/{orderConfirmationId}/sendEmail a finalized order confirmation to the customer
GET /api/v1/delivery-notesList delivery notes, newest first
GET /api/v1/delivery-notes/{deliveryNoteId}Get a delivery note including its positions
POST /api/v1/delivery-notes/{deliveryNoteId}/finalizeFinalize a draft delivery note
POST /api/v1/delivery-notes/{deliveryNoteId}/sendEmail a finalized delivery note to the customer
GET /api/v1/invoicesList invoices, credit notes, and down payments, newest first
POST /api/v1/invoicesCreate an invoice or partial invoice draft from a quote, order confirmation, maintenance visit or project
GET /api/v1/invoices/{invoiceId}Get an invoice including positions and payments
PATCH /api/v1/invoices/{invoiceId}Change a draft standard invoice
POST /api/v1/invoices/{invoiceId}/finalizeFinalize a draft invoice
POST /api/v1/invoices/{invoiceId}/cancelCancel a finalized invoice with a cancellation invoice
POST /api/v1/invoices/{invoiceId}/sendEmail a finalized invoice to the customer
GET /api/v1/invoices/{invoiceId}/paymentsList the payments of an invoice
POST /api/v1/invoices/{invoiceId}/paymentsRecord a payment on an invoice
POST /api/v1/invoices/{invoiceId}/payments/correctionsCorrect a payment with a reversing entry
Files
POST /api/v1/filesUpload a file for later use
Forms
GET /api/v1/formsList active external forms and their public field definitions
GET /api/v1/form-submissionsList non-spam form submissions, newest first
POST /api/v1/form-submissionsSubmit an active external form
GET /api/v1/form-templatesList active internal form templates and their field definitions
GET /api/v1/form-instancesList internal form instances, newest first
POST /api/v1/form-instancesCreate a customer-access form instance and share URL
GET /api/v1/form-instance-submissionsList internal form submissions as answer arrays
POST /api/v1/form-instance-submissionsSubmit answers to an open internal form instance
Webhooks
GET /api/v1/webhooksList the webhook endpoints created through this API
POST /api/v1/webhooksCreate a webhook endpoint
GET /api/v1/webhooks/{webhookId}Get a webhook endpoint
PATCH /api/v1/webhooks/{webhookId}Update target, subscription or active state
DELETE /api/v1/webhooks/{webhookId}Delete a webhook endpoint
POST /api/v1/webhooks/{webhookId}/rotate-secretReplace the signing secret
POST /api/v1/webhooks/{webhookId}/testSend a test delivery