Skip to content

API overview

Authentication, scopes, rate limits, and conventions for the INBIO REST API.

Updated View as Markdown

The REST API lives at https://in.bio/api/v1 and covers links, QR codes, analytics, folders, tags, and account usage. API access is a plan feature (Pro and Business).

Authentication

Create a token under Settings → API tokens — the plaintext token is shown once. Send it as a bearer token:

curl https://in.bio/api/v1/links \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json"

Scopes

A token only has the scopes selected at creation:

Scope Grants
links:read List/read links, QR codes, folders, tags
links:write Create, update, delete, enable/disable, bulk create
analytics:read Per-link analytics

A missing scope returns 403 with error.type = "scope" and the required scope named.

Rate limits

Plan Requests / minute
Pro 60
Business 300

Standard X-RateLimit-Limit / X-RateLimit-Remaining headers are returned; exceeding the limit returns 429 with Retry-After.

Conventions

  • Resources are wrapped in {"data": ...}; paginated lists add Laravel-style links and meta objects.
  • Errors: {"message": "...", "error": {"type": "..."}} — types are plan (feature not on your plan, 403), scope (missing token scope, 403), state (invalid state transition, 409), entitlement (plan limit, 422), account (suspended).
  • Validation failures are standard 422 with an errors object per field.
  • Timestamps are ISO 8601; dates are YYYY-MM-DD.
  • Requesting a link you don’t own returns 404, never 403.
Navigation

Type to search…

↑↓ navigate↵ selectEsc close