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
/accountAccount/usageUsage and limits/servicesAll services/orders/{id}OrdersDomains, hosting, and email
/domainsList domains/domains/checkAvailability and offers/domains/ordersStart domain purchase/hosting/sitesList or deploy websites/domains/{id}/dnsManage DNS records/domains/{id}/dns/{record}Change or delete DNS record/domains/{id}/mailboxesManage mailboxes/domains/{id}/mailboxes/{mailbox}Change or delete mailboxAI, Maker, and events
/chat/completionsAI chat, optionally as SSE stream/translationsTranslate text/maker/projectsMaker projects/webhooksConfigure signed eventsParameters, 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.