Skillhost hosts static websites (HTML, CSS, JavaScript and images). It is a small test service run by VectrForce for checking its deploy tooling. Each deploy is a release: you upload a ZIP, check it, then publish it. Publishing an earlier release puts that version back live.
Base URL: https://skillhost.vectrforce.ai/api/v1
Every call needs your API token in the Authorization header as a bearer token:
Authorization: Bearer <your token>
A missing or wrong token answers 401. Errors are JSON: {"error": "message", "code": "short_code"}.
GET /api/v1/me
200 {"account": {"name": "vf-smoke", "plan": "test"}}
GET /api/v1/sites/{site_id}
200 {"site": {"id": "vf-smoke", "name": "VF smoke site",
"domains": ["skillsite.vectrforce.ai"],
"live_release": "rel_3f9a1c0b7d2e"}}
live_release is the id of the release visitors see, or null before the first publish.
domains lists the addresses the site is served on.
Send the whole site as one ZIP in the request body. Files go at the root of the archive
(index.html at the top level is what visitors get at /). Uploading does not change the live
site.
POST /api/v1/sites/{site_id}/releases
Content-Type: application/zip
<zip bytes>
201 {"release": {"id": "rel_3f9a1c0b7d2e", "state": "ready"}}
Limits: 50 MB archive, 2,000 entries, 200 MB unpacked. Absolute paths, .. and links in the archive are
refused with 400.
GET /api/v1/sites/{site_id}/releases/{release_id}
200 {"release": {"id": "rel_3f9a1c0b7d2e", "state": "ready", "message": "Unpacked and ready to publish."}}
state is ready (uploaded, not live) or live. An unknown id answers 404.
POST /api/v1/sites/{site_id}/releases/{release_id}/publish
200 {"release": {"id": "rel_3f9a1c0b7d2e", "state": "live"}}
Publishing switches the site to that release at once. To go back, publish the earlier release's id: every release you uploaded stays available. No body is needed.
GET /api/v1/sites/{site_id}/releases
200 {"releases": [{"id": "rel_3f9a1c0b7d2e", "state": "live"}, {"id": "rel_8c21d4e5f6a7", "state": "ready"}]}
https://skillsite.vectrforce.ai/ serves the live release with
Cache-Control: no-store, so a publish shows at once.