REST API v1

One API for your LXI services.

Base URL https://lxi.be/api/v1. Responses are JSON and include a request ID on errors.

Authentication

Bearer token with matching permissions

Create your token in the customer center or sign in the CLI via browser. Send the token in the Authorization header; it is shown in full only when created.

Authorization: Bearer lxi_live_…

Available are read, domains, hosting, billing, ai, maker, maker_git and webhooks. The read permission read is included in every token. Details are in the Authentication guide.

Endpoints

API v1 overview

Account and billing

GET/accountAccount
GET/usageUsage and limits
GET/servicesAll services
GET/orders/{id}Orders

Domains, hosting, and email

GET/domainsList domains
POST/domains/checkAvailability and offers
POST/domains/ordersStart domain purchase
GET · POST/hosting/sitesList or deploy websites
GET · POST/domains/{id}/dnsManage DNS records
PATCH · DELETE/domains/{id}/dns/{record}Change or delete DNS record
GET · POST/domains/{id}/mailboxesManage mailboxes
PATCH · DELETE/domains/{id}/mailboxes/{mailbox}Change or delete mailbox

AI, Maker, and events

POST/chat/completionsAI chat, optionally as SSE stream
POST/translationsTranslate text
GET · POST/maker/projectsMaker projects
GET · POST/webhooksConfigure signed events

Parameters, request schemas, response formats, and all status codes are fully listed in the OpenAPI 3.1 Specification.

Asynchronous changes

Track provisioning via jobs

Hosting, DNS, and mailbox changes respond with 202 Accepted and a job object. Query GET /hosting/jobs/{job_id} until the status completed or failed is reached. Alternatively, stay informed via webhook.

{
  "job": {"id": 1842, "type": "sync_dns_records", "status": "queued"}
}

Server-Sent Events

Stream chat responses

Set stream to true. The API provides text/event-stream with chat.completion.chunk-objects and ends the stream with [DONE].

curl -N https://lxi.be/api/v1/chat/completions \
  -H "Authorization: Bearer $LXI_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"stream":true,"messages":[{"role":"user","content":"Hallo"}]}'

Support and error reports

Read your own tickets with GET /api/v1/support/tickets and their history with GET /api/v1/support/tickets/ID. Administrators gain access to all accounts and internal notes with ?all=1 access to all accounts and internal notes. Filter: bugs=1, status, project and error. Additional pages are available via next_before and before ready.

With the scope support created POST /api/v1/support/tickets trigger an error report subject and message. For existing Maker errors: POST /api/v1/maker/projects/PROJECT_UUID/error-reports with message_id and the scope maker.

Reliability

Idempotency, limits, and request IDs

For paid purchases, Idempotency-Key is required. Repeated requests with the same key return the same order. Rate limits respond with 429. Every response includes X-Request-Id; include this ID in support requests.

API tokens should be separate per environment and only granted the scopes read, domains, hosting, billing, ai, maker, support or webhooks that are actually needed.

curl examples

Try now

Check domain

curl https://lxi.be/api/v1/domains/check \
  -H "Authorization: Bearer $LXI_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain":"beispiel.de"}'

Chat

curl https://lxi.be/api/v1/chat/completions \
  -H "Authorization: Bearer $LXI_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"messages":[{"role":"user","content":"Erkläre DNS kurz."}]}'

Translate

curl https://lxi.be/api/v1/translations \
  -H "Authorization: Bearer $LXI_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"Guten Morgen","source_language":"de","target_language":"en"}'

Error format

Handle predictably

{
  "error": {
    "code": "invalid_token",
    "message": "…",
    "request_id": "req_…"
  }
}

The API uses 400 for invalid JSON or expired grants, 401 for authentication, 403 for missing permissions, 404 for foreign or unknown resources, 409 for state conflicts, 422 for invalid input, 428 for pending device approvals, 429 for rate limits, and 5xx for temporary service errors.