A simple REST API to create and manage short links and read analytics. Authenticate with a personal API key. Every key is scoped to your own account only.
https://visitly.store/api
Generate a key in your dashboard under API keys. Send it as a Bearer token:
Authorization: Bearer vsk_live_xxxxxxxxxxxxxxxxxxxx
Keys carry scopes (links:read, links:write, stats:read) and only ever access the resources of the account that created them. Keys are shown once and stored hashed.
| Method | Path | Description |
|---|---|---|
| GET | /api/me | Current account |
| POST | /api/links | Create a link { destination_url, slug?, title? } |
| GET | /api/links | List your links (q, sort, page) |
| GET | /api/links/:id | Get one link |
| PATCH | /api/links/:id | Edit { destination_url?, slug?, title?, is_active? } |
| DELETE | /api/links/:id | Delete a link |
| GET | /api/links/:id/stats | Analytics (range=7d|30d|90d) |
| GET | /api/stats/overview | Account totals |
curl -X POST https://visitly.store/api/links \
-H "Authorization: Bearer vsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"destination_url":"https://example.com/a/very/long/url","slug":"launch"}'
{
"id": "…",
"slug": "launch",
"short_url": "https://visitly.store/launch",
"destination_url": "https://example.com/a/very/long/url",
"click_count": 0
}
curl -X PATCH https://visitly.store/api/links/LINK_ID \
-H "Authorization: Bearer vsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"destination_url":"https://example.com/new-target"}'
When you create an API key, Visitly also generates a downloadable skill file describing these endpoints with your key embedded. Hand it to any AI model and it can manage your links and read your analytics — and nothing else, because the key is scoped to your account.
Standard HTTP status codes. 401 (no/invalid auth), 403 (scope/forbidden), 404 (not found), 409 (slug taken), 429 (rate limited). Validation errors return 400 with an error message.