Create a key.
Admins mint keys under API keys. The token shows once, then only its prefix. We store a hash, never the key.
Create, update, and delete links from your own code. Clean JSON, one Bearer key, and an OpenAPI spec you can run in the browser.
Create a key, send a request, get a link. It shows up in your dashboard the moment you do.
Admins mint keys under API keys. The token shows once, then only its prefix. We store a hash, never the key.
Pass the key as a Bearer token and POST JSON to /api/v1/links. Any HTTP client works.
The response is the whole link, short URL included. Live at once, with the same analytics, routing, and protection as the rest.
No GraphQL, no SDK, no webhooks to wire up. Standard verbs, standard JSON, real status codes.
Create, list, fetch, update, and delete, on the verbs you expect. Everything lives under /api/v1/links.
A pk_ token in the header. Shown once, stored only as a hash, up to five per workspace. Revoke one without touching the rest.
One payload: destination, domain, slug, title, tags, notes, routing rules, and a password. Skip the slug and we make one.
Page through every link and filter by tag or domain. Each response carries its own pagination.
One error shape, the right code behind it. 401, 404, 409, 422, 429.
A key sees its own account's links. Nothing else, ever.
What teams build once making links by hand stops scaling.
Loop a spreadsheet and POST a link per row. A thousand campaign URLs in one run.
Mint a link with every new order or invoice, and store the short URL back on the record.
Wire it into your CMS so every post ships with a branded short link.
List by tag from a cron job and DELETE the stale ones.
Grab a key, open the docs, and POST. That's the whole setup.