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 — included on every paid plan (Lite, Pro, and Business).

Authentication

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

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. A missing scope returns 403 with error.type = "scope" naming the required scope.

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

Rate limits

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

Plan Requests / minute
Lite 60
Pro 60
Business 300

Conventions

  • Single resources are wrapped in { "data": ... }; paginated lists add Laravel-style links and meta objects.

  • Errors look like { "message": "...", "error": { "type": "..." } }:

    error.type Status Meaning
    scope 403 Token is missing a required scope.
    plan 403 Feature isn’t on your plan.
    state 409 Invalid state transition (e.g. enabling an active link).
    entitlement 422 A plan limit was reached (e.g. monthly links).
    account 403 Account is 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 — resource existence is never leaked.

Reference

Navigation

Type to search…

↑↓ navigate↵ selectEsc close