Console
Taqlyn Docs/REST APIs/REST API Overview
API v1.43 min read

REST API Overview

Architecture, base URLs, authentication schemes, and conventions for the Taqlyn REST API.

LIVE SPECIMEN
Universal & Deferred Link Simulator
URLhttps://taqlyn.com/shop/checkout?cartId=cart_9841&promo=WELCOME20&aff=partner_8
Route: /shop/checkoutMode: Deferred Install

The Taqlyn REST API provides programmatic access to link creation, mobile deferred deep link matching, app registration, edge domain routing, and telemetry ingestion.

Try it: Open the Interactive API Reference from the docs, or use Try API in the dashboard (sandbox only). The console covers server SDK (Ed25519-signed) routes; paste your sandbox private PEM once per tab.

#Base URLs & Environments

All API endpoints require HTTPS and operate across two isolated environments:

EnvironmentBase URLClient ID PrefixPurpose
Sandbox / Testhttps://api.taqlyn.comapp_test_*Development, CI/CD testing, staging simulator runs.
Production / Livehttps://api.taqlyn.comapp_live_*Production mobile apps and live customer traffic.

The target environment is determined cryptographically by the clientId used during authentication.

#Authentication Schemes

Taqlyn uses three distinct authentication tiers depending on the caller and sensitivity:

CODE
┌─────────────────────────┬───────────────────────────────┬──────────────────────────────────────────┐
│ Caller                  │ Auth Mechanism                │ Permitted Operations                     │
├─────────────────────────┼───────────────────────────────┼──────────────────────────────────────────┤
│ Backend Servers / SDKs  │ Ed25519 Request Signing       │ Create short links, patch, delete, bind  │
│ Mobile Applications     │ Public Key ID (Unsigned)      │ Resolve, expand, trackOpen, logEvent     │
│ Dashboard Console       │ Bearer Session Cookie / Token │ Org management, billing, credentials     │
└─────────────────────────┴───────────────────────────────┴──────────────────────────────────────────┘

#1. Server Ed25519 Request Signing

Privileged endpoints (POST /v1/short-links, PATCH /v1/short-links/{id}, POST /v1/apps) require three cryptographic headers generated using your private key:

  • X-Taqlyn-Client-Id: Your app identifier (app_test_* or app_live_*).
  • X-Taqlyn-Timestamp: Unix epoch in seconds.
  • X-Taqlyn-Signature: Base64-encoded Ed25519 digital signature of the canonical request.

See Signed Requests for the step-by-step canonical format.

#2. Mobile Public Resolution

Mobile clients call these endpoints with only public credentials:

  • POST /v1/resolve — deferred Match after install
  • POST /v1/links/expand — warm short-code → in-app path (Expand API)
  • POST /v1/events/open / POST /v1/events/sdk — analytics

Credentials:

  • clientId: Identifies your app.
  • publicKeyId: Identifies the active credential (pk_test_* or pk_live_*).

The private key is never embedded in mobile client binaries.

#3. Console Session

Dashboard users authenticate via email/password, TOTP, or WebAuthn Passkeys, receiving an HTTP-only session cookie for session endpoints.

#Standard JSON Error Envelope

All error responses return standard HTTP status codes accompanied by a structured JSON payload:

JSON
{
  "error": "links.invalid_destination",
  "message": "destinationWeb must be an absolute HTTPS URL"
}

#Common HTTP Status Codes

CodeMeaningTypical Scenario
200 OKSuccessRetrieved resource or successful deferred match.
201 CreatedResource CreatedShort link or app successfully created.
400 Bad RequestValidation ErrorMissing parameters, malformed JSON, or invalid schema.
401 UnauthorizedAuth FailureInvalid Ed25519 signature, expired timestamp, or bad publicKeyId.
403 ForbiddenAccess DeniedOrganization plan cap reached or resource belongs to another org.
404 Not FoundResource MissingLink ID does not exist or has expired.
429 Too Many RequestsRate LimitedExceeded API rate limits (100 req/sec standard burst).
500 Server ErrorInternal FailureContact support or retry with exponential backoff.

#Content Types & Character Encoding

  • Always send Content-Type: application/json; charset=utf-8 on requests with JSON bodies.
  • API responses are returned as application/json; charset=utf-8.