Skip to main content
Documentation
API Reference

API Overview

Reference for the WarpLink REST API: authentication, rate limiting, error handling, and the endpoints for links, apps, and attribution.

The WarpLink REST API manages links, apps, API keys, custom domains, and install attribution. All endpoints live under https://api.warplink.app/v1, authenticate with Bearer API keys, and share a flat rate limit of 60 requests per minute on every plan. Errors return a consistent JSON envelope.

Base URL

All API requests use the following base URL:

Authentication

Authenticate requests using a Bearer token in the Authorization header:

API keys are created under Keys > API keys in the WarpLink dashboard. The full key is only shown once at creation time. Store it securely.

The dashboard issues two credential types and both use the wl_live_ prefix followed by 32 alphanumeric characters, so they are indistinguishable by sight. API keys carry the scopes you choose and are meant for backend scripts, CI, and AI agents. SDK keys are pre-scoped for the mobile SDKs and are the only credential that can record install attribution. An SDK key can call only the three SDK endpoints (/v1/sdk/validate, /v1/links/resolve/{slug} and /v1/attribution/match); every other endpoint answers it with 403 SDK_KEY_ROUTE_FORBIDDEN. See Authentication for the full comparison.

Required Scopes

Each endpoint requires specific scopes on the API key:

ScopeDescription
links:readRead link data
links:writeCreate, update, and delete links
apps:readRead app configuration
apps:writeCreate, update, and delete apps
analytics:readRead click analytics, install records, and attribution attempts
keys:readRead API key metadata
keys:writeCreate and revoke API keys
domains:readRead custom domain configuration
domains:writeCreate, verify, and delete custom domains
org:readRead organization details
org:deleteDelete an organization
team:readRead team members and invitations
team:writeInvite, remove, and manage team members

Attribution match requests (POST /v1/attribution/match) require an SDK key, not an API key. SDK keys are auto-granted links:read and attribution:write. attribution:write cannot be requested on an API key, so an API key on this endpoint always returns 403 FORBIDDEN.

Rate Limiting

API keys are rate limited to 60 requests per minute per key. The SDK routes (GET /v1/sdk/validate, GET /v1/links/resolve/{slug} and POST /v1/attribution/match) are limited to 60 requests per minute per key per client IP address. Devices on different IP addresses get separate allowances. Devices behind one public IP address, such as an office or carrier network, share one.

Rate limit headers are included on every response:

HeaderDescription
X-RateLimit-LimitMax requests per window
X-RateLimit-RemainingRequests remaining
X-RateLimit-ResetSeconds until window resets

When the rate limit is exceeded, the API returns 429 Too Many Requests with a Retry-After header. See the full rate limiting reference for backoff strategies and best practices.

Error Format

All errors return a consistent JSON structure:

Error Codes

HTTP StatusCodeDescription
400VALIDATION_ERRORRequest body or query params failed validation
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENKey lacks required scope, or an API key was used where an SDK key is required
403SDK_KEY_ROUTE_FORBIDDENAn SDK key was used on an endpoint that is not an SDK endpoint. Use an API key for this request
403PASSWORD_REQUIREDThe link is password protected and cannot be resolved
404NOT_FOUNDResource not found
409SLUG_TAKEN / DUPLICATE_APP / APP_HANDLE_TAKENResource already exists
409RENAME_PERIOD_OPEN / RENAME_PERIOD_NOT_OPEN / RENAME_EXTENSION_LIMIT / CONFIRMATION_REQUIRED / LINK_MOVE_NOT_PENDINGThe app or link is not in the state the request needs
410GONEResource has expired
422INVALID_DOMAINThe domain is not allowed for the link
429RATE_LIMIT_EXCEEDEDToo many requests
500INTERNAL_ERRORServer error

See the full errors reference for troubleshooting guidance on each code.

Pagination

List endpoints return paginated results:

Use limit (1–100, default 20) and offset (default 0) query parameters to page through results.

Endpoints

  • Links: Create, list, retrieve, update, delete, and resolve deep links, including destinations, fallbacks, and UTM parameters
  • Apps: Register and manage the mobile apps used for deep linking, including iOS and Android platform configuration
  • Organizations: Read an organization and delete it
  • Keys: Create, list, and revoke the SDK keys and API keys used to authenticate requests
  • Custom Domains: Register, verify, and manage the custom domains that serve your short links
  • Analytics: Query an overview, one link's detail, a filtered breakdown with period comparison, or a comparison of several links
  • Exports: Start a click export for an organization or one link, poll its status, and download the CSV file
  • Invitations: Invite team members by email, list pending invitations, and revoke access
  • Attribution: Match an app install to the link click that drove it, using device signals, probabilistic matching, or referrers
  • Installs: List every install record and every attribution attempt, matched or not, with stable IDs and match details
  • SDK endpoints: Authentication endpoint used by the mobile SDKs to validate SDK keys