Developer API

Two public JSON endpoints, no API key and no account. Every link you create over the API behaves exactly like one created in the UI — including password and security modes.

POST/api/public/v1/links

Creates a short link. Returns 201 with the slug, the full short_url and a manage_token — store the token, it is the only way to repoint the link later.

Request

curl -X POST https://trysolara.art/api/public/v1/links \
  -H "Content-Type: application/json" \
  -d '{"destination":"https://example.com/a/very/long/path","mode":"normal"}'
PATCH/api/public/v1/links/{slug}/destination

Repoints an existing link to a new destination. Send the manage_token in the body or as an x-manage-token header. POST and PUT work identically.

Request

curl -X PATCH https://trysolara.art/api/public/v1/links/your-slug/destination \
  -H "Content-Type: application/json" \
  -d '{"manage_token":"","destination":"https://example.com/new-target"}'

Errors

Errors always return { error, message } with a matching HTTP status.

  • 400 invalid_url — destination is not an absolute http(s) URL.
  • 400 invalid_slug — slug must be 3–32 characters of a–z, 0–9, - and _.
  • 400 password_required — mode password needs a password of 3+ characters.
  • 401 unauthorized — wrong manage token.
  • 404 not_found — no link with that slug.
  • 409 slug_taken — the custom slug is already in use.