Licence API
The licence server addresses under /v1/licence that paid-edition servers use to check in, start trials, report installs and download releases.
The licence server is part of the publisher's own HF Panel only, at https://api.hostfog.io:2087/v1/licence/….
Paid-edition servers use it on their own: to check their licence, start a trial, report installs and updates, and
fetch the newest release. You do not need to call it yourself.
Note: on every other server these addresses answer 404
Not found. They are described here so that you know what a licensed server sends, for example when you set up a firewall.
These addresses need no session and no API token. They answer plain JSON, not the token API's {ok, data} format.
The old addresses on https://panel.hostfog.io/licence/… give the same answers; licensed servers try the new
address first.
| Method | Path | Old path | What it does |
|---|---|---|---|
| POST | /v1/licence/check |
/licence/api/check |
a licensed server checks in: {"key","hostname","version","accounts","ips"}. The answer is signed (payload, sig) |
| POST | /v1/licence/trial |
/licence/api/trial |
starts a trial for the calling server's IP address: {"email"}. Answers {"key","days","trial_ends"}, or 409 with the reason (for example, a trial already used) |
| POST | /v1/licence/event |
/licence/api/event |
an install, update or uninstall report from a paid-edition server |
| GET | /v1/licence/pubkey |
/licence/pubkey |
the public key that signs every answer, as base64 text |
| GET | /v1/licence/release |
/licence/release |
the signed note of the newest paid-edition release: version, notes, SHA-256, size and date |
| GET | /v1/licence/download?key=… |
/licence/download?key=… |
the paid installer for a licence key; 403 for an unknown key |
Check-in
ips is optional: the server's own addresses, at most 32 are read. A licence for a public IPv4 address must check in
from that address. A licence for a private, loopback, link-local, CGNAT or IPv6 address (a server behind NAT) passes
when that address is one of ips.
Install reports
The paid edition's installer, updater and uninstaller send a report when the server has a licence key:
curl -fsS -H 'Content-Type: application/json' https://api.hostfog.io:2087/v1/licence/event \
-d '{"key":"HFL-ABCDE-FGHJK-MNPQR-STUVW","event":"install_finished","version":"1.0.0","os_name":"Ubuntu","os_version":"24.04","cpus":4,"ram_mb":8192,"disk_gb":80,"domain":"yourdomain.com"}'
| Field | What it holds |
|---|---|
key |
the licence key, required |
event |
required: install_started, install_finished, install_failed, update_finished, update_failed or uninstalled |
version, hostname, os_name, os_version |
about the server |
cpus, ram_mb, disk_gb |
the server's size |
step, error |
failures only: the step that stopped and a short error |
domain, company |
the server's own domain and company name |
| Status | Body |
|---|---|
| 200 | {"ok":true,"known":true} ("known":false for a key that is not a licence) |
| 400 | {"error":"invalid JSON"}, {"error":"invalid licence key"} or {"error":"unknown event"} |
| 405 | {"error":"POST only"} |
| 429 | {"error":"too many attempts"} |
Rate limits
Each address limits how often one IP address may call it, for example 120 check-ins and 5 trial requests an hour. Over the limit, it answers 429.