Run LIVCK from code
Anything you click in the console also works through the REST API, with Terraform and from your AI assistant. 102 API endpoints and 122 MCP tools, all bound by the same permissions as the console.
Four ways in
Pick the one that fits the job. All four talk to the same organization and respect the same roles and permissions.
REST API
JSON over HTTPS for scripts, CI/CD, chat bots and your own dashboards. 102 endpoints, described in OpenAPI.
Terraform and OpenTofu
Services, status pages, components, maintenance windows and custom domains as code. With plan, review and import of what already exists.
MCP server for AI assistants
Claude Code, Cursor, VS Code, Codex and many other clients work with LIVCK directly. Anything that reaches the outside world waits for your confirmation.
SDKs for PHP and Laravel
Ready-made clients instead of raw HTTP. The Laravel package adds a facade, multiple connections and a fake for your test suite.
What can the API do?
Each area in two sentences. Below each one is the full list of endpoints, generated from the API description, so it always matches the product.
Services
15 endpointsCreate, change, pause, resume and delete monitors. Read recent checks, daily uptime and response times, and set a manual status when you have something to report yourself.
Show endpoints
GET/services
List services (paginated)
POST/services
Create a service
DELETE/services/{service}
Delete a service
GET/services/{service}
Get a service
PUT/services/{service}
Update a service
GET/services/{service}/checks
List check results (cursor-paginated)
GET/services/{service}/incidents
List a service's incidents (paginated)
GET/services/{service}/maintenances
List a service's maintenances (paginated)
GET/services/{service}/metrics
Aggregated stats for a range: uptime as a percentage (0-100), latency percentiles in ms, check counts
POST/services/{service}/pause
Pause a service
GET/services/{service}/response-times
Response-time trend (time-series) for a range
POST/services/{service}/resume
Resume a paused service
DELETE/services/{service}/status-override
Remove the manual status override
POST/services/{service}/status-override
Apply a manual status override
GET/services/{service}/uptime
Per-day uptime for the last N days (default 30, max 90). `uptime_percent` is 0-100
Incidents
7 endpointsOpen incidents, post updates and resolve them. Texts carry every language of your status pages, and subscribers are notified if you want them to be.
Show endpoints
GET/incidents
List incidents (paginated)
POST/incidents
Create an incident
DELETE/incidents/{incident}
Delete an incident
GET/incidents/{incident}
Get an incident (with its updates and affected services)
PUT/incidents/{incident}
Update an incident
POST/incidents/{incident}/resolve
Resolve an incident
POST/incidents/{incident}/updates
Post an update to an incident
Maintenance
9 endpointsSchedule maintenance windows, start them early, extend, complete or cancel them. While a window runs, the affected services open no incidents.
Show endpoints
GET/maintenances
List scheduled maintenances (paginated)
POST/maintenances
Schedule a maintenance
DELETE/maintenances/{maintenance}
Delete a maintenance
GET/maintenances/{maintenance}
Get a maintenance (with its updates and affected services)
PUT/maintenances/{maintenance}
Update a maintenance
POST/maintenances/{maintenance}/cancel
Cancel a scheduled maintenance
POST/maintenances/{maintenance}/complete
Complete a running maintenance window
POST/maintenances/{maintenance}/extend
Extend a running or already-completed maintenance window
POST/maintenances/{maintenance}/start
Start a maintenance window now
Status pages
30 endpointsCreate, design and publish status pages. Components, groups, charts, logos and custom domains with verification are all part of it.
Show endpoints
GET/statuspages
List status pages (paginated)
POST/statuspages
Create a status page
DELETE/statuspages/{statuspage}
Delete a status page
GET/statuspages/{statuspage}
Get a status page, including its component tree
PUT/statuspages/{statuspage}
Update a status page
DELETE/statuspages/{statuspage}/assets/{asset}
Remove a status page asset
POST/statuspages/{statuspage}/assets/{asset}
Upload (replace) a status page asset
GET/statuspages/{statuspage}/components
List a status page's components
POST/statuspages/{statuspage}/components
Create a component
DELETE/statuspages/{statuspage}/components/{component}
Delete a component
GET/statuspages/{statuspage}/components/{component}
Get a component
PUT/statuspages/{statuspage}/components/{component}
Update a component
GET/statuspages/{statuspage}/custom-domains
List a status page's custom domains
POST/statuspages/{statuspage}/custom-domains
Attach a custom domain
DELETE/statuspages/{statuspage}/custom-domains/{domain}
Detach a custom domain
GET/statuspages/{statuspage}/custom-domains/{domain}
Get a custom domain
POST/statuspages/{statuspage}/custom-domains/{domain}/verify
Trigger an immediate verification re-check
GET/statuspages/{statuspage}/layout
Get a status page's layout
PUT/statuspages/{statuspage}/layout
Replace a status page's layout
GET/statuspages/{statuspage}/metrics
List a status page's metric charts (with their series)
POST/statuspages/{statuspage}/metrics
Create a metric chart
DELETE/statuspages/{statuspage}/metrics/{metric}
Delete a metric chart and its series
GET/statuspages/{statuspage}/metrics/{metric}
Get a metric chart
PUT/statuspages/{statuspage}/metrics/{metric}
Update a metric chart
POST/statuspages/{statuspage}/metrics/{metric}/series
Add a series to a metric chart
DELETE/statuspages/{statuspage}/metrics/{metric}/series/{series}
Delete a series
GET/statuspages/{statuspage}/metrics/{metric}/series/{series}
Get a series
PUT/statuspages/{statuspage}/metrics/{metric}/series/{series}
Update a series
POST/statuspages/{statuspage}/publish
Publish a status page
POST/statuspages/{statuspage}/unpublish
Unpublish a status page (emergency takedown)
On-call
20 endpointsManage schedules, shifts, overrides and absences. One request tells you who is on call right now.
Show endpoints
GET/oncall/absences
List the organization's absences
POST/oncall/absences
Record an absence for a member
DELETE/oncall/absences/{absence}
Delete an absence. Future shifts revert to the base rotation
DELETE/oncall/cover-requests/{coverRequest}
Cancel an open cover request
POST/oncall/cover-requests/{coverRequest}/accept
Accept a cover request
POST/oncall/cover-requests/{coverRequest}/decline
Decline a cover request sent to you
GET/oncall/on-call
Who is on call in a time window
GET/oncall/schedules
List on-call schedules (paginated)
POST/oncall/schedules
Create an on-call schedule
DELETE/oncall/schedules/{schedule}
Delete an on-call schedule
GET/oncall/schedules/{schedule}
Get an on-call schedule
PUT/oncall/schedules/{schedule}
Update an on-call schedule (partial)
GET/oncall/schedules/{schedule}/cover-requests
List a schedule's cover requests
POST/oncall/schedules/{schedule}/cover-requests
Request cover for a shift
GET/oncall/schedules/{schedule}/on-call
Who is on call now for one schedule
GET/oncall/schedules/{schedule}/overrides
List a schedule's overrides
POST/oncall/schedules/{schedule}/overrides
Create an override
DELETE/oncall/schedules/{schedule}/overrides/{override}
Delete an override
POST/oncall/schedules/{schedule}/shifts
Add a shift to a manual schedule
POST/oncall/schedules/{schedule}/shifts/preview
Preview a schedule's rotation
Server agent
12 endpointsCreate keys to enroll new servers, read a server's current figures and history, fetch its events and set alert thresholds.
Show endpoints
GET/enrollment-keys
List enrollment keys (paginated), newest first
POST/enrollment-keys
Create an enrollment key
DELETE/enrollment-keys/{key}
Revoke an enrollment key
GET/enrollment-keys/{key}
Get an enrollment key, with the servers enrolled with it
GET/services/{service}/agent-events
List agent lifecycle events (paginated)
GET/services/{service}/agent-metrics
Current figures of a server
GET/services/{service}/agent-metrics/history
History of a server's figures
GET/services/{service}/conditions
List a server's threshold conditions
POST/services/{service}/conditions
Create a threshold condition
DELETE/services/{service}/conditions/{condition}
Delete a threshold condition
GET/services/{service}/conditions/{condition}
Get a threshold condition
PUT/services/{service}/conditions/{condition}
Update a threshold condition
Tags
6 endpointsCreate, rename and recolor tags. One call finds a tag or creates it, which keeps scripts safe to rerun.
Show endpoints
GET/tags
List tags (paginated)
POST/tags
Create a tag
POST/tags/ensure
Find or create a tag
DELETE/tags/{tag}
Delete a tag
GET/tags/{tag}
Get a tag
PUT/tags/{tag}
Update a tag (rename and/or recolor)
Reference data
3 endpointsThe active monitoring locations, every field per check type and the calling token. Build valid requests without guessing.
Show endpoints
GET/me
Get the calling token
GET/meta/check-types
Get the check-type configuration catalog
GET/probes
List monitoring locations (probes)
Endpoint summaries are taken from the API reference.
An incident straight from your deployment
Your rollout goes wrong and the pipeline knows first. One call opens the incident, shows it on the status page and notifies subscribers.
The essentials
- Base URL
- https://api.livck.cloud/v1
- Authentication
- Bearer token in the header, prefix lvk_
- Rate limit
- 120 requests per minute per token
- Format
- JSON, paginated lists, errors with message and errors
- Plan
- API from Team, MCP read on every plan, write from Solo
curl -X POST https://api.livck.cloud/v1/incidents \
-H "Authorization: Bearer $LIVCK_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": {
"de": "Störung beim Bezahlvorgang",
"en": "Payment issues at checkout"
},
"message": {
"de": "Wir untersuchen das Problem.",
"en": "We are investigating."
},
"severity": "major",
"status": "investigating",
"service_ids": ["V1StGXR8Z5jdHi6BmyTq2"],
"is_published": true,
"notify_subscribers": true
}'Send is_published as false and the incident stays an internal draft. Publish it later with PUT or from the console.
Events going out
Not everything has to be polled. LIVCK reaches out by itself too.
Signed webhooks
Every webhook carries a signature following the Standard Webhooks spec. Any library for that spec verifies it, so there is nothing to build yourself.
Status page feeds
Every public status page serves its history as RSS and Atom and its current state as status.json. No token needed, ready for wikis, dashboards and your own tooling.
Chat channels
Slack, Microsoft Teams, Discord and Telegram receive alerts and status updates right in the channel. On every plan.
How safe is access from code?
A token can never do more than the person who created it.
Tokens belong to the organization
API tokens are service accounts of the organization. They are not tied to a person and survive changes in your team.
Only the rights you have
A new token gets at most your own permissions. Grant only what the script actually needs.
A separate token for AI assistants
MCP tokens start with lvkm_ and only work for the MCP server, never for the regular API.
Preview first, effect second
Anything that reaches customers, wakes someone, turns alerting off or deletes comes back from the MCP server as a preview first. It runs after you confirm.
API FAQ
The REST API is included in Team at €49 and in Business at €119 per month, excluding VAT. There is no separate API subscription. Each token may send 120 requests per minute. Free and Solo have no API access. The MCP server can still read there, and from Solo it can write too.
With an API token in the Authorization: Bearer header. Tokens start with lvk_ and belong to the organization, not to a person. You create them in the console under Settings, API tokens, and give them at most the rights you have yourself.
Yes. All 102 endpoints are described in OpenAPI, and the reference lives at api.livck.cloud/docs/api. The endpoint list on this page is generated from the same description, so it always matches the product.
Yes. Your organization's webhooks are signed according to Standard Webhooks and can be verified with any library for it. Every public status page also serves status.json plus RSS and Atom feeds without a token. Slack, Microsoft Teams, Discord and Telegram receive alerts straight in the channel.
Yes, for PHP and Laravel. The PHP SDK is livck/cloud-php, the Laravel package is livck/cloud-laravel. The Laravel package adds a facade, multiple connections and a test fake. For infrastructure as code there is the Terraform provider.
See the Terraform providerGet going with one token
Create an account, create a token, make your first call. The docs walk you through it in five minutes.