OpenAPI 3.1

API reference

The complete contract for customers, projects, tasks, documents, forms, members and webhook subscriptions.

Live requests are disabled in this public reference. Copy an example and run it from your backend or terminal so API keys never have to be entered into a public browser page.

Download OpenAPI JSON · Plain-text guide for AI tools

Endpoint list (works without JavaScript)

Payments

  • GET /api/v1/retentions

    List open retentions

  • POST /api/v1/retentions/{retentionId}/release

    Release a retention

  • POST /api/v1/retentions/{retentionId}/revoke

    Take back the release of a retention

  • POST /api/v1/retentions/{retentionId}/forfeit

    Close a retention the customer keeps for good

  • POST /api/v1/retentions/{retentionId}/forfeit/revoke

    Take back closing a kept retention

Account

  • GET /api/v1/me

    Get the authenticated API user and its organizations

Properties

  • GET /api/v1/properties

    List properties (Objekte), newest first

  • POST /api/v1/properties

    Create 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}/restore

    Restore a deleted property

  • GET /api/v1/parties

    List parties of properties

  • POST /api/v1/parties

    Attach 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-contracts

    List maintenance contracts with equipment and next due date

  • POST /api/v1/maintenance-contracts

    Create 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-visits

    List 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}/status

    Set the status of a maintenance contract

  • POST /api/v1/maintenance-contracts/{contractId}/archive

    Archive a maintenance contract

  • POST /api/v1/maintenance-contracts/{contractId}/restore

    Restore a maintenance contract from the archive

  • GET /api/v1/maintenance-templates

    List the maintenance types and templates of the organization

  • POST /api/v1/maintenance-contracts/{contractId}/schedule-visits

    Schedule the next visit of a maintenance contract

  • POST /api/v1/maintenance-visits/{visitId}/complete

    Complete a maintenance visit with its result

Members

  • GET /api/v1/members

    List active members that can be assigned to tasks

Positions

  • GET /api/v1/positions

    List or search the position library

  • POST /api/v1/positions

    Create 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/absences

    List absences of members in a date range

  • POST /api/v1/absences

    Request 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}/approve

    Approve an absence

  • POST /api/v1/absences/{absenceId}/reject

    Reject an absence

  • GET /api/v1/company-vacations

    List company vacations in a date range

  • GET /api/v1/holidays

    List public holidays of the organization in a date range

Sandbox

  • GET /api/v1/sandbox/reset

    Read the state of the latest sandbox reset

  • POST /api/v1/sandbox/reset

    Reset the practice account to its sample data

Schedule

  • GET /api/v1/schedule-entries

    List assignments of the planning board in a date range

  • POST /api/v1/schedule-entries

    Plan 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/tasks

    List tasks and activities, newest first

  • POST /api/v1/tasks

    Create 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}/comments

    List the comments of a task, oldest first

  • POST /api/v1/tasks/{taskId}/comments

    Add a comment to a task

  • POST /api/v1/tasks/{taskId}/files

    Attach an uploaded file to a task

Teams

  • GET /api/v1/teams

    List active crews with their members

  • GET /api/v1/teams/{teamId}

    Get a crew with its members

Time entries

  • GET /api/v1/time-entry-categories

    List active time entry categories

  • GET /api/v1/time-entries

    List time entries, newest first

  • POST /api/v1/time-entries

    Create 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/customers

    List customers, newest first

  • POST /api/v1/customers

    Create 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-columns

    List the columns new customer requests can be placed in

  • GET /api/v1/customer-requests

    List customer requests, newest first

  • POST /api/v1/customer-requests

    Create 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}/offers

    Create a draft quote for a customer request

  • POST /api/v1/customer-requests/{customerRequestId}/convert

    Convert a customer request into a project or order

  • POST /api/v1/customer-requests/{customerRequestId}/files

    Attach an uploaded file to a customer request

Projects

  • GET /api/v1/project-statuses

    List the project statuses of the organization

  • GET /api/v1/projects

    List projects and orders, newest first

  • POST /api/v1/projects

    Create 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}/members

    Add a member to a project

Documents

  • GET /api/v1/quotes

    List quotes, newest first

  • POST /api/v1/quotes

    Create 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}/finalize

    Finalize a draft quote

  • POST /api/v1/quotes/{quoteId}/send

    Email a finalized quote to the customer

  • POST /api/v1/quotes/{quoteId}/accept

    Mark a sent quote as accepted by the customer

  • POST /api/v1/quotes/{quoteId}/reject

    Mark a quote as rejected by the customer

  • POST /api/v1/quotes/{quoteId}/order-confirmation

    Create an order confirmation draft from a quote

  • GET /api/v1/cost-estimates

    List cost estimates, newest first

  • GET /api/v1/cost-estimates/{costEstimateId}

    Get a cost estimate including its positions

  • POST /api/v1/cost-estimates/{costEstimateId}/finalize

    Finalize a draft cost estimate

  • POST /api/v1/cost-estimates/{costEstimateId}/send

    Email a finalized cost estimate to the customer

  • POST /api/v1/cost-estimates/{costEstimateId}/accept

    Mark a sent cost estimate as accepted by the customer

  • POST /api/v1/cost-estimates/{costEstimateId}/reject

    Mark a cost estimate as rejected by the customer

  • GET /api/v1/order-confirmations

    List order confirmations, newest first

  • GET /api/v1/order-confirmations/{orderConfirmationId}

    Get an order confirmation including its positions

  • POST /api/v1/order-confirmations/{orderConfirmationId}/finalize

    Finalize a draft order confirmation

  • POST /api/v1/order-confirmations/{orderConfirmationId}/send

    Email a finalized order confirmation to the customer

  • GET /api/v1/delivery-notes

    List delivery notes, newest first

  • GET /api/v1/delivery-notes/{deliveryNoteId}

    Get a delivery note including its positions

  • POST /api/v1/delivery-notes/{deliveryNoteId}/finalize

    Finalize a draft delivery note

  • POST /api/v1/delivery-notes/{deliveryNoteId}/send

    Email a finalized delivery note to the customer

  • GET /api/v1/invoices

    List invoices, credit notes, and down payments, newest first

  • POST /api/v1/invoices

    Create 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}/finalize

    Finalize a draft invoice

  • POST /api/v1/invoices/{invoiceId}/cancel

    Cancel a finalized invoice with a cancellation invoice

  • POST /api/v1/invoices/{invoiceId}/send

    Email a finalized invoice to the customer

  • GET /api/v1/invoices/{invoiceId}/payments

    List the payments of an invoice

  • POST /api/v1/invoices/{invoiceId}/payments

    Record a payment on an invoice

  • POST /api/v1/invoices/{invoiceId}/payments/corrections

    Correct a payment with a reversing entry

Files

  • POST /api/v1/files

    Upload a file for later use

Forms

  • GET /api/v1/forms

    List active external forms and their public field definitions

  • GET /api/v1/form-submissions

    List non-spam form submissions, newest first

  • POST /api/v1/form-submissions

    Submit an active external form

  • GET /api/v1/form-templates

    List active internal form templates and their field definitions

  • GET /api/v1/form-instances

    List internal form instances, newest first

  • POST /api/v1/form-instances

    Create a customer-access form instance and share URL

  • GET /api/v1/form-instance-submissions

    List internal form submissions as answer arrays

  • POST /api/v1/form-instance-submissions

    Submit answers to an open internal form instance

Webhooks

  • GET /api/v1/webhooks

    List the webhook endpoints created through this API

  • POST /api/v1/webhooks

    Create 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-secret

    Replace the signing secret

  • POST /api/v1/webhooks/{webhookId}/test

    Send a test delivery

Loading API reference …