API v2 + TypeScript-SDK

Revolink API und SDK
Verwalte deine Links per Code

Erstelle Links mit Routing-Regeln, verwalte Tags und eigene Domains und lies Klick-Statistiken über eine REST-API mit OpenAPI-3.1-Spezifikation oder das typisierte TypeScript-SDK ohne Abhängigkeiten.

Schlüssel unter Profil → API erstellen

Zuletzt aktualisiert: November 2026

Terminal
npm install revolink

Installation in einer Zeile

Läuft in Node.js 18+ und jeder Umgebung mit globalem fetch. Keine Abhängigkeiten, vollständige TypeScript-Typen, aus der API-Spezifikation generiert.

Schnellstart

In drei Schritten vom Nichts zum ersten Kurzlink.

1

API-Schlüssel erstellen

Öffne in Revolink Profil → API und erstelle einen Schlüssel. Wähle nur die Berechtigungen, die er braucht.

2

Workspace-ID kopieren

Die Workspace-ID wird bei jeder Anfrage mitgesendet, sodass der Schlüssel immer in einem Workspace handelt.

3

Link erstellen

Initialisiere den Client mit Schlüssel und Workspace-ID und rufe links.create auf.

Bewahre den Schlüssel auf deinem Server auf. Wer ihn hat, kann im Rahmen seiner Berechtigungen in deinem Workspace handeln.

Nahtlos in dein Projekt integrieren

Mit dem Revolink-SDK erstellst du Kurzlinks mit Routing-Regeln in wenigen Zeilen Code.

index.ts
import {Revolink} from 'revolink';

const revolink = new Revolink({
  apiKey: process.env.REVOLINK_API_KEY!,
  workspaceId: process.env.REVOLINK_WORKSPACE_ID!,
});

const {shortLink} = await revolink.links.create({
  url: 'https://example.com',
});
console.log(shortLink); // https://rvlnk.link/k3x9a

API-Endpunkte entdecken

Anfrage

TypeScript
await revolink.links.create({
  url: 'https://example.com',
});

Antwort

JSON
{
  id: "65f1c0a2e4b0a1d2c3b4a5f6",
  name: "example.com",
  domain: "rvlnk.link",
  slug: "k3x9a",
  shortLink: "https://rvlnk.link/k3x9a",
  url: "https://example.com",
  active: true,
  clicks: 0,
  ...
}

Was das SDK abdeckt

Vier Ressourcen und ein me-Aufruf. Jede Methode entspricht einem REST-Endpunkt.

RessourceMethodenWas sie tut
revolink.links
createupsertgetlistiterateupdatedeletecreateManyupdateManydeleteMany
Links erstellen, lesen, aktualisieren und löschen, Upsert per Slug, filtern und paginieren, alle Seiten durchlaufen und Massenoperationen (bis zu 100 pro Aufruf).
revolink.tags
listgetcreateupdatedelete
Tags erstellen, auflisten, umbenennen und löschen.
revolink.domains
listgetcreatedelete
Eine eigene Domain hinzufügen, ihren Verifizierungsstatus prüfen und sie entfernen.
revolink.analytics
linkworkspace
Klick-Statistiken für einen Link oder den ganzen Workspace in einem Datumsbereich.
revolink.me()
Wer mit dem Schlüssel handelt, der Workspace und die Berechtigungen des Schlüssels.

Intelligentes Routing per Code

Schicke verschiedene Besucher an verschiedene Ziele. Genau eine Regel ist der Standard; die anderen greifen nach Land, Gerät, Betriebssystem und weiteren Bedingungen.

routing.ts
await revolink.links.create({
  name: 'App download',
  rules: [
    {isDefault: true, targetUrl: 'https://example.com/download'},
    {
      isDefault: false,
      targetUrl: 'https://apps.apple.com/app/id1',
      device: ['mobile'],
      os: ['iOS'],
    },
  ],
});

API-Schlüssel und Berechtigungen

Jeder Schlüssel trägt Scopes. Ein Endpunkt antwortet mit 403, wenn der nötige Scope fehlt - gib jeder Integration also nur, was sie nutzt.

Authentifizierungs-Header

Authorization: Bearer <key>

Sende den Schlüssel als Bearer-Token.

X-Api-Key

Oder sende den Schlüssel in diesem Header.

X-Workspace-Id

Erforderlich. Der Workspace, in dem die Anfrage handelt. Der Schlüsselinhaber muss Mitglied sein.

Scopes

ScopeErlaubt
links:readLinks auflisten und lesen
links:writeLinks erstellen, per Upsert anlegen und aktualisieren
links:deleteLinks löschen
links:bulkMassenweise erstellen, aktualisieren und löschen (bis zu 100 Links pro Anfrage)
analytics:readKlick-Statistiken lesen
tags:readTags auflisten und lesen
tags:writeTags erstellen und aktualisieren
tags:deleteTags löschen
domains:readEigene Domains auflisten und lesen
domains:writeEigene Domains hinzufügen
domains:deleteEigene Domains löschen

API-Aufrufe zählen auf das monatliche API-Kontingent des Tarifs des Workspace-Inhabers. Stoppt ein Tariflimit eine Anfrage, lautet der Fehlercode license_limit_reached.

Fehler und Wiederholungen

Jede fehlgeschlagene Anfrage wirft einen RevolinkError mit HTTP-Status, maschinenlesbarem Code und einer Meldung, was zu korrigieren ist.

errors.ts
import {RevolinkError} from 'revolink';

try {
  await revolink.links.create({url: 'https://example.com', slug: 'taken'});
} catch (error) {
  if (error instanceof RevolinkError) {
    error.status;              // 409
    error.code;                // 'conflict'
    error.licenseLimitReached; // true when the plan's limit stopped the request
    error.requiredPermission;  // e.g. 'tags:write' when the key lacks a scope
    error.retryAfter;          // seconds, on 429
  }
}

Wiederholungen, die nie einen Link doppelt anlegen

Ein 429 wird immer nach der Wartezeit aus Retry-After wiederholt. Netzwerkfehler und 5xx-Antworten werden nur bei GET, PUT und DELETE wiederholt. Ein POST oder PATCH, der schon verarbeitet worden sein könnte, wird nie wiederholt, sodass kein Link doppelt entsteht. Standard: 30 Sekunden Timeout pro Versuch und 2 Wiederholungen; maxRetries auf 0 schaltet Wiederholungen ab.

CodeBedeutung
invalid_requestDie Anfrage ist fehlerhaft (400). Die Meldung nennt den Grund.
unauthorizedKein Schlüssel oder ein ungültiger bzw. abgelaufener Schlüssel (401).
forbiddenDem Schlüssel fehlt eine Berechtigung oder deine Rolle darf das nicht (403).
license_limit_reachedDas Tariflimit ist erreicht: Links, Tags, Domains oder API-Aufrufe (403).
not_foundDieses Element gibt es in diesem Workspace nicht (404).
conflictExistiert bereits, z. B. ein vergebener Slug oder Tag-Name (409).
rate_limitedMehr als 300 Anfragen pro Minute für den Schlüssel (429).
network_errorKeine Antwort: Netzwerkfehler oder Timeout (der Status ist 0).

Häufige Fragen

Muss ich das SDK verwenden?

Nein. Das SDK ist ein dünner, typisierter Wrapper um die REST-API. Du kannst https://api.revolink.link/apiv2 aus jeder Sprache direkt mit einem API-Schlüssel und dem Header X-Workspace-Id aufrufen oder einen Client aus der OpenAPI-3.1-Spezifikation generieren.

Welche Laufzeitumgebungen unterstützt das SDK?

Node.js 18 oder neuer und jede Umgebung mit globalem fetch. Es hat keine Abhängigkeiten und liefert ESM- und CommonJS-Builds mit TypeScript-Typen aus der API-Spezifikation.

Welche Rate Limits gibt es?

Anfragen sind auf 300 pro Minute und API-Schlüssel begrenzt. Darüber antwortet die API mit 429 und einem Retry-After-Header, und das SDK wartet und wiederholt selbstständig. Unabhängig davon zählen API-Aufrufe auf das monatliche Kontingent des Tarifs des Workspace-Inhabers.

Was passiert mit API v1?

API v1 ist eingefroren, ihre Antworten tragen Deprecation-Header. Neue Integrationen sollten API v2 nutzen.

Kann das SDK bei einer Wiederholung doppelte Links erzeugen?

Nein. Ein POST oder PATCH, der verarbeitet worden sein könnte, wird nie wiederholt. Nur 429-Antworten und idempotente Anfragen (GET, PUT, DELETE) werden wiederholt.

Kann ich Revolink auch aus einem KI-Agenten nutzen?

Ja. Der Revolink-MCP-Server lässt Claude, Cursor und andere MCP-Clients Links in natürlicher Sprache verwalten. Das SDK ist die Wahl für deinen eigenen Code und deine Skripte.

Bereit, mit Revolink zu starten?

Schließen Sie sich Teams und Kreativen an, die jeden Klick mit intelligentem Routing kontrollieren. Starten Sie smartere Kampagnen, optimieren Sie Traffic in Echtzeit und wachsen Sie ohne Grenzen.

Kostenlos starten

Kostenloser Plan · Keine Kreditkarte · Jederzeit kündigen

Sie haben bereits Links? Importieren Sie sie