Skip to content
LIVCK Cloud
All entries

2026.09.2

Official clients for PHP and Laravel

If you drive LIVCK from PHP or Laravel, you no longer have to build requests, retries and error handling yourself. The API also accepts tags by name, finds status pages by their slug and checks token permissions more closely.

Security

  • Stricter permission checks for API tokens

    API#

    A token that deletes a service with delete_orphaned_incidents or delete_orphaned_maintenances now also needs Delete Incidents or Delete Maintenances respectively, otherwise the API answers 403. A token whose creator is limited to access areas now links incidents and maintenance only to services and status pages inside those areas. If your script uses either parameter, give its token the matching permission.

New

  • PHP SDK and Laravel package

    API#

    With livck/cloud-php you drive LIVCK Cloud from PHP without building JSON by hand. Services come from a typed builder, every error arrives as an exception of its own, and the client pages through lists itself. If a connection drops, it repeats the request with the same Idempotency-Key, and nothing is created twice. livck/cloud-laravel adds configuration, a facade, several connections and a fake for tests. Both packages are MIT-licensed.

    • composer require livck/cloud-php
    • composer require livck/cloud-laravel

    Guides: PHP SDK and Laravel

  • Assign tags by name

    API#

    A service's tags field now takes names or ids, in any mix: tags: ["customer:4711", "env=prod"]. The API creates a new name along with the service. Only an entry that looks like a tag id (21 characters with at least one uppercase letter) has to be an existing tag.

  • Find a status page by slug

    API#

    GET /v1/statuspages?slug=customer-4711 returns exactly that page or an empty list. Every status page now gives its public address in url, and every component the status visitors see in effective_status.

Improved

  • Recognisable plan limits

    API#

    When a service or a custom domain hits a limit of your plan, the 403 response now carries upsell with the limit concerned, plus limit and usage. A script can tell a full quota from missing permissions that way.

  • Error messages always in English

    API#

    The API's error messages are now always in English, also for organisations with German content. Accept-Language only decides the language of content, such as incident titles.

  • Empty tag filter matches nothing

    API#

    GET /v1/services?tag= with an empty value now returns an empty list instead of every service. A script whose variable came out empty never gets all services by accident.

Fixed

  • Status page of a custom domain

    API#

    statuspage_id was empty on custom domains. It now names the domain's status page.

  • Empty email whitelist when editing

    API#

    Editing a status page with email_whitelist: null ended in a 500. null now counts as an empty list.

  • Oversized requests

    API#

    An oversized request got an HTML page back. The API now answers 413 with an error message in JSON.