API reference
This is the full API reference. No SDK - just HTTP. Every endpoint documented with curl examples you can copy-paste. If something’s unclear, it’s a bug in the docs.
Want to import endpoints into Postman or Insomnia? Grab the OpenAPI spec.
Base URL
https://nobsredir.com/apiAll responses are bullshit-free JSON unless otherwise noted (CSV exports).
Authentication
Pass your API key in the X-API-Key header:
X-API-Key: nobs_abc123...API keys are workspace-scoped and created via the dashboard or the API Keys endpoint. The full key is only shown once at creation.
See Authentication for full details.
Error format
Every error returns JSON with an error field and an appropriate HTTP status code:
{"error": "Human readable message"}Common status codes:
| Status | Meaning |
|---|---|
400 | Bad request - missing or invalid fields |
401 | Unauthorized - missing or invalid auth |
402 | Payment required - plan limit reached |
403 | Forbidden - insufficient role |
404 | Not found |
409 | Conflict - duplicate resource |
410 | Gone - expired resource |
500 | Server error |
Rate limits
| Endpoint | Limit |
|---|---|
| Link creation | 30 requests per 10 seconds per workspace |
| Bulk link creation | 5 requests per 10 seconds per workspace |
| Domain verification | 1 request per 10 seconds per domain |
| Monitoring check | 1 per workspace per hour |
Content type
Send Content-Type: application/json for all POST/PATCH/DELETE requests with a body.
Getting started
New here? The Quick start guide has copy-paste examples in curl, JavaScript, and Python.
Quick example
# Create a short linkcurl -X POST https://nobsredir.com/api/workspaces/ws_abc123/links \ -H "X-API-Key: nobs_your_key_here" \ -H "Content-Type: application/json" \ -d '{"target": "https://example.com/long-page"}'{ "id": "lnk_xyz789", "domain": "fnl.sh", "slug": "a1b2c3", "target": "https://example.com/long-page", "short_url": "https://fnl.sh/a1b2c3"}