Skip to main content
LLMs.md

API & Exports

There are two ways to bring data from LiteLog into other systems:

  1. REST API v1 — for third-party systems talking to LiteLog automatically: e.g. a property management system (PMS) creating a cleaning task on guest checkout, or middleware synchronizing property master data.
  2. CSV and PDF exports — for payroll, reporting, and dispatch to clients, without writing a line of code. See Export & Dispatch.

REST API v1

Creating an API key

API keys are managed in the portal under Settings → Integrations on the REST API card:

  1. Click Create key and assign a name (e.g. "PMS vacation rentals").
  2. Select the permissions (scopes) the key should receive — only as much as needed.
  3. The raw key (ll_live_…) is displayed exactly once. Copy it and store it safely — afterwards only the beginning of the key remains visible.

Integrations

A key is bound to your tenant and one account — it sees exactly the properties that account sees. Revocation takes effect immediately; for a zero-downtime rotation, create the new key first, switch the third-party system over, then revoke the old one.

Authentication

Every request carries the key in a header — either as X-Api-Key or as a bearer token:

curl -H "X-Api-Key: ll_live_..." https://api.litelog.de/api/v1/me
# or
curl -H "Authorization: Bearer ll_live_..." https://api.litelog.de/api/v1/me

GET /v1/me is a good first test: the endpoint returns the key's own context (tenant, scopes) without requiring further permissions.

Endpoints

Method & pathPurposeRequired scope
GET /api/v1/meTest the key: own context (tenant, scopes)
GET /api/v1/propertiesList propertiesproperties:read
POST /api/v1/propertiesCreate a propertyproperties:write
PATCH /api/v1/properties/:idUpdate a propertyproperties:write
GET /api/v1/tasksList taskstasks:read
POST /api/v1/tasksCreate a task (idempotent via a supplied uuid)tasks:write
POST /api/v1/incidentsCreate an incident (defect report)incidents:write
GET /api/v1/form-responsesQuery submitted form responses (polling)form_responses:read
GET /api/v1/form-responses/:idForm response in detail, incl. answers and photo linksform_responses:read

:::tip Idempotency Supply your own uuid when creating tasks — repeated deliveries of the same event (e.g. a webhook redelivery from your PMS) will then never create two tasks. :::

Example: "Guest checks out → cleaning task"

# Checkout event → cleaning task
curl -X POST https://api.litelog.de/api/v1/tasks \
-H "X-Api-Key: $KEY" -H "Content-Type: application/json" \
-d '{"uuid":"7c9e6679-7425-40de-944b-e07fc1f90ae7","title":"Final cleaning apartment 3","property_id":123,"due_date":"2026-08-01"}'

# Query completed cleaning checklists (polling)
curl "https://api.litelog.de/api/v1/form-responses?property_id=123&status=submitted&pageSize=10" \
-H "X-Api-Key: $KEY"

Limits & behavior

  • Rate limit: 120 requests per minute per key (HTTP 429 when exceeded).
  • No license seat: API traffic does not occupy a license seat. An expired license blocks write access (reading remains possible, HTTP 402 on writes).
  • Error format: 401 (key missing/invalid/revoked), 403 (missing scope or property access), 404 (resource not found), 409 (conflict/duplicate), 400/422 (validation error — unknown fields are rejected).
  • Not included yet: outbound webhooks (planned — until then, poll via GET /api/v1/form-responses?status=submitted), OAuth2, writing time tracking or form responses, file uploads, and DELETE endpoints.

CSV & PDF exports

For payroll and reporting you do not need an API — the built-in exports cover the most common cases:

  • Working times as CSV — e.g. the daily attendance matrix per person for payroll.
  • Reports as PDF — patrol, incident, and form reports, on request in your own branding.
  • Recurring e-mail dispatch — send reports automatically, e.g. weekly to clients.

All details: Export & Dispatch and Property — Dispatch.

Permissions

:::info Permission To create and revoke API keys you need the Edit settings permission. What a key can see and change is additionally limited by its scopes and the account it is bound to. :::