Quick start
Get up and running with a no-bullshit API. All you need is an API key - grab one from the dashboard.
Replace ws_abc123 with your workspace ID and your_no_bs_key with your API key in the examples below.
Create a link
curl -X POST https://nobsredir.com/api/workspaces/ws_abc123/links \ -H "X-API-Key: your_no_bs_key" \ -H "Content-Type: application/json" \ -d '{"target": "https://example.com/my-long-page"}'const res = await fetch( "https://nobsredir.com/api/workspaces/ws_abc123/links", { method: "POST", headers: { "X-API-Key": "your_no_bs_key", "Content-Type": "application/json", }, body: JSON.stringify({ target: "https://example.com/my-long-page" }), });const link = await res.json();console.log(link.short_url);import requests
res = requests.post( "https://nobsredir.com/api/workspaces/ws_abc123/links", headers={"X-API-Key": "your_no_bs_key"}, json={"target": "https://example.com/my-long-page"},)link = res.json()print(link["short_url"]){ "id": "lnk_xyz789", "domain": "fnl.sh", "slug": "a1b2c3", "target": "https://example.com/my-long-page", "short_url": "https://fnl.sh/a1b2c3"}See Links for all link options (custom slugs, UTM params, expiration, routing rules, OG overrides).
List links
curl https://nobsredir.com/api/workspaces/ws_abc123/links \ -H "X-API-Key: your_no_bs_key"const res = await fetch( "https://nobsredir.com/api/workspaces/ws_abc123/links", { headers: { "X-API-Key": "your_no_bs_key" } });const { links, total } = await res.json();console.log(`${total} links`);import requests
res = requests.get( "https://nobsredir.com/api/workspaces/ws_abc123/links", headers={"X-API-Key": "your_no_bs_key"},)data = res.json()print(f"{data['total']} links"){ "links": [ { "id": "lnk_xyz789", "domain": "fnl.sh", "slug": "a1b2c3", "target": "https://example.com/my-long-page", "click_count": 42, "created_at": "2025-01-15T10:30:00Z" } ], "total": 1, "page": 1, "limit": 20}Use ?page=2&limit=50 for pagination, ?prefix=blog to filter by prefix. Full details in Links.
Get click stats
Requires a Pro plan or higher.
curl https://nobsredir.com/api/workspaces/ws_abc123/stats/summary \ -H "X-API-Key: your_no_bs_key"const res = await fetch( "https://nobsredir.com/api/workspaces/ws_abc123/stats/summary", { headers: { "X-API-Key": "your_no_bs_key" } });const stats = await res.json();console.log(`${stats.total_clicks} total clicks`);import requests
res = requests.get( "https://nobsredir.com/api/workspaces/ws_abc123/stats/summary", headers={"X-API-Key": "your_no_bs_key"},)stats = res.json()print(f"{stats['total_clicks']} total clicks"){ "total_links": 12, "total_clicks": 4832, "total_countries": 28, "today_clicks": 156}Daily breakdowns, country stats, referrers, and per-link analytics are all available. See Stats.
Next steps
- Authentication - API key details and security
- Links - full endpoint reference for links
- OpenAPI spec - import into Postman, Insomnia, or your codegen tool