Link-API
Die API legt anonyme Kurzlinks an, liefert ihre Klickstatistik, ändert ihre Einstellungen und löscht sie. Anfragen und Antworten verwenden JSON. CORS ist aktiviert, Aufrufe funktionieren daher auch aus Browser-Code.
Basisadresse:
http://anonym.es/api/v1
Schnellstart
Um einen Kurzlink anzulegen, senden Sie die Zieladresse:
curl -X POST http://anonym.es/api/v1/links \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/article"}'
Für diesen Aufruf ist kein Token nötig. Ohne Token wird der Link als Gastlink innerhalb der Free-Quote Ihrer IP-Adresse angelegt.
Mit einem Kontotoken legt derselbe Aufruf den Link in Ihrem Dashboard ab und zählt ihn auf Ihren Tarif:
curl -X POST http://anonym.es/api/v1/links \
-H "Authorization: Bearer anon_YOUR_ACCOUNT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/article"}'
Die Antwort enthält die Kurzadresse, die Link-ID und das Token, das diesen Link verwaltet. Bewahren Sie das Token auf: Es wird gebraucht, um den Link später zu lesen oder zu löschen.
{
"ok": true,
"link": {
"id": 4821,
"short": "http://anonym.es/k7m2q",
"url": "https://example.com/article",
"status": "active",
"password": false,
"created_at": "2026-09-05T14:02:11Z",
"expires_at": null,
"max_hits": null,
"self_destruct": false,
"delay": null,
"no_countdown": false,
"adult": false,
"note": null,
"tags": [],
"clicks": 0,
"uniques": 0
},
"token": "3f9c1b7e2d4a4c0e9b8f7a6d5c4b3a21",
"left": 4
}
Felder des Link-Objekts
Alle Endpunkte, die einen Link zurückgeben, verwenden diese Struktur. Zeitstempel sind ISO 8601 in UTC. Die Zähler clicks und uniques umfassen die gesamte Lebensdauer des Links.
| Feld | Typ | Was er tut |
|---|---|---|
id | integer | Numerische ID des Links, von den übrigen Aufrufen verwendet. |
short | string | Die Kurzadresse zum Teilen. |
url | string | null | Das Ziel, null bei einem reinen Notizlink. |
status | string | active | expired | exhausted (Besuchslimit erreicht) | flagged (Ziel auf einer Sicherheitsliste) | banned. |
password | boolean | Besucher müssen ein Passwort eingeben. |
created_at | string | ISO 8601, UTC. |
expires_at | string | null | Wann der Link abläuft, null = kein Ablauf. |
max_hits | integer | null | Besuchslimit, null = kein Limit. |
self_destruct | boolean | Der Link löscht sich endgültig selbst, wenn Limit oder Lebensdauer erreicht ist. |
delay | integer | null | Sekunden auf der Weiterleitungsseite, null = Tarifstandard, 0 = sofort. |
no_countdown | boolean | Die Weiterleitungsseite zeigt keinen Countdown und wartet auf einen Klick auf die Adresse. |
adult | boolean | Visitors confirm being 18 or older before the forwarding page. |
note | string | null | Die Notiz auf der Weiterleitungsseite. |
tags | string[] | Tags, in Kleinbuchstaben. |
clicks | integer | Besuche über die gesamte Lebensdauer des Links. |
uniques | integer | Eindeutige Besucher (einer pro Adresse und Tag) über die gesamte Lebensdauer des Links. |
Autorisierung
Autorisierte Anfragen tragen das Token im Authorization-Header. Alternativ wird der Header X-API-Key akzeptiert. Tokens werden nie im Query-String übergeben.
Authorization: Bearer YOUR_TOKEN
| Token | Woher | Wofür |
|---|---|---|
| Kontotoken | Im Konto | Alle Links des Kontos mit den Rechten des Tarifs |
| Link-Token | Wird beim Anlegen eines Links zurückgegeben | Ein bestimmter Link mit den Rechten des Free-Tarifs |
Ein Kontotoken beginnt mit anon_. Ein Link-Token besteht aus 32 Zeichen. Ein neu erzeugtes Kontotoken macht das vorherige ungültig.
Beispiel:
curl http://anonym.es/api/v1/me \ -H "Authorization: Bearer anon_YOUR_ACCOUNT_TOKEN"
Endpunkte
Der Request-Body kann als application/json oder als application/x-www-form-urlencoded gesendet werden. Parameternamen und Fehlercodes sind bei allen Endpunkten identisch.
| Methode | Pfad | Token | Kosten | Was er tut |
|---|---|---|---|---|
GET | /api/v1 | optional | 1 | Über diese API: Version, Adressen der Dokumentation und des Schemas. |
POST | /api/v1/links | optional | 5 + 1/url | Einen Link anlegen, oder bis zu 50 auf einmal. Ohne Token: als Gast, auf die Free-Quote. Liefert den Link mit seinem Token. |
GET | /api/v1/names/check | optional | 2 | Ist dieser eigene Name frei? Vorschläge, wenn er vergeben ist. |
GET | /api/v1/links | Konto | 2 | Die Links des Kontos, neueste zuerst. |
GET | /api/v1/links/lookup | Link oder Konto | 1 | Einen eigenen Link über seine Kurzadresse finden. |
GET | /api/v1/links/{id} | Link oder Konto | 1 | Ein Link: Einstellungen, Status, Klicks und eindeutige Besucher über die gesamte Lebensdauer. Kontotoken können einen Statistikbericht anfügen. |
PATCH | /api/v1/links/{id} | Link oder Konto | 3 | Einstellungen ändern. Nur gesendete Felder ändern sich. Bezahlte Tarife (ein Link-Token hat Free-Rechte und kann nicht bearbeiten). |
DELETE | /api/v1/links/{id} | Link oder Konto | 2 | Den Link löschen. Der Name wird wieder frei. |
GET | /api/v1/links/{id}/qr | Link oder Konto | 3 | Der QR-Code der Kurzadresse als Bild (PNG oder SVG). Braucht ein Token und eignet sich daher für Servercode. |
GET | /api/v1/qr | optional | 3 | Der QR-Code einer Kurzadresse als Bild ohne Token: Die Adresse selbst ist der Schlüssel. Gemacht für <img>-Tags. |
GET | /api/v1/me | Konto | 1 | Das Konto: Tarif, Limits, verbleibende Quote, weitere Domains, erlaubte Einstellungen. |
GET | /api/v1/openapi.json | optional | 1 | Diese API als OpenAPI-3.1-Dokument. |
Die Kosten sind in Einheiten des Ratenlimits angegeben, siehe Ratenlimits.
Einen Link anlegen
POST /api/v1/links
Die minimale Anfrage enthält nur das Feld url:
curl -X POST http://anonym.es/api/v1/links \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/article"}'
Mit einem Kontotoken gehört der Link zum Konto und zählt auf dessen Tarif. Ohne Token ist er ein Gastlink auf die IP-Quote:
curl -X POST http://anonym.es/api/v1/links \
-H "Authorization: Bearer anon_YOUR_ACCOUNT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/article"}'
Eine erfolgreiche Anfrage liefert Status 201 mit dem Link, seinem Token und der Anzahl der im aktuellen Quotenzeitraum verbleibenden Links.
Felder der Antwort:
| Feld | Typ | Was er tut |
|---|---|---|
link | object | Der angelegte Link. |
token | string | Das Link-Token (32 Zeichen), verwaltet diesen Link. |
left | integer | null | Im aktuellen Quotenzeitraum verbleibende Links, null bei einem Tarif ohne Limit. |
qr | object | Der QR-Code, vorhanden, wenn qr=true gesendet wurde. |
batch | boolean | true, wenn mehrere Adressen gesendet wurden. |
results | array | Ein Eintrag pro Adresse in gesendeter Reihenfolge: {ok: true, link, token, qr} oder {ok: false, url, error, message, field}. |
Link mit eigenem Namen
Die Kurzadresse erhält den Namen my-article, wenn er frei ist und den Regeln unten entspricht.
curl -X POST http://anonym.es/api/v1/links \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/article","name":"my-article"}'
Namensregeln:
- Lateinische Buchstaben, Ziffern, Bindestrich und Unterstrich. Ab 5 Zeichen im Free-Tarif und ab 3 in bezahlten Tarifen, höchstens 32. Groß- und Kleinschreibung spielt keine Rolle: Promo und promo sind derselbe Link.
- Seitennamen, Sprachcodes und Dienstwörter sind reserviert.
- Markennamen und anstößige Wörter werden abgelehnt. Namen durchlaufen eine Wortliste und eine automatische Prüfung. Die Zahl eigener Namen pro Stunde ist je Tarif begrenzt.
- Ein vergebener Name liefert Status 409 mit freien Alternativen in suggest.
- Ein Subdomain-Name (sub: true, Tarif Max) ist ein DNS-Label: Buchstaben, Ziffern und Bindestriche, kein Bindestrich am Rand, kein Unterstrich. Namen wie www, mail oder ns1 sind reserviert.
Ein Name lässt sich vor dem Anlegen prüfen:
curl "http://anonym.es/api/v1/names/check?name=my-article"
Felder der Prüfantwort:
| Feld | Typ | Was er tut |
|---|---|---|
available | boolean | true, wenn der Name verwendet werden kann. |
name | string | Der geprüfte Name. |
error | string | Warum der Name nicht verfügbar ist: taken, reserved, too_short und die übrigen Namensfehler. |
message | string | Der Grund in Worten. |
field | string | Immer name. |
suggest | array | Freie Alternativen, wenn der Name vergeben ist. |
Mehrere Links auf einmal
Das Feld urls nimmt bis zu 50 Adressen an, als JSON-Array oder als Text mit einer Adresse pro Zeile. Jede Adresse wird ein eigener Link mit eigenem Token, die übrigen Felder gelten für alle. Ein eigener Name ist im Stapel nicht verfügbar.
curl -X POST http://anonym.es/api/v1/links \
-H "Content-Type: application/json" \
-d '{"urls":["https://example.com/a","https://example.com/b","https://example.com/c"]}'
Die Antwort enthält batch: true und ein Array results mit einem Eintrag pro Adresse in der gesendeten Reihenfolge. Eine fehlerhafte Adresse ergibt einen Eintrag mit ok: false und dem Fehlercode, ohne die übrigen zu stoppen.
Weitere Einstellungen
curl -X POST http://anonym.es/api/v1/links \
-H "Authorization: Bearer anon_YOUR_ACCOUNT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/article",
"name": "my-article",
"expires_days": 30,
"max_hits": 1000,
"self_destruct": true,
"password": "secret",
"note": "Available until the end of the month",
"delay": 5,
"tags": "blog,promo",
"qr": true,
"qr_size": 300,
"qr_format": "png"
}'
Als kostenpflichtig markierte Optionen werden für Gäste und im Free-Tarif ignoriert. Die Antwort gibt die Einstellungen wieder, die der Link tatsächlich erhalten hat.
| Feld | Typ | Was er tut |
|---|---|---|
url | string, erforderlich | Die Zieladresse. Oder urls: mehrere Adressen, eine pro Zeile oder als JSON-Array (bis 50), jede wird ein eigener Link. |
name | string | Eigener Name für einen einzelnen Link (geprüft gegen die Regeln und den Namensfilter). |
domain | string | One of the alias domains, random, or random-alias (random among the alias domains only). Paid plans; default is random: links never sit on the main domain. Free and guests: anonymes.click. |
sub | boolean | name.alias statt alias/name. Tarif Max, nur auf den weiteren Domains. |
expires_days | integer | Lebensdauer in Tagen. Bezahlte Tarife. |
max_hits | integer | Besuchslimit. Bezahlte Tarife. |
self_destruct | boolean | Den Link endgültig löschen, wenn das Besuchslimit oder die Lebensdauer erreicht ist (braucht max_hits oder expires_days). |
password | string | Passwort, das Besucher eingeben müssen. Bezahlte Tarife. |
note | string | Text auf der Weiterleitungsseite. Bezahlte Tarife, Länge je Tarif. |
note_only | boolean | Der Link öffnet die Notiz selbst, kein Ziel. Ab Pro+. |
delay | integer | Sekunden auf der Weiterleitungsseite, 0 = sofort. Bezahlte Tarife. |
no_countdown | boolean | Kein Countdown auf der Weiterleitungsseite: kein Timer, keine automatische Weiterleitung, der Besucher klickt die Adresse an. Bezahlte Tarife. |
adult | boolean | Adult content (18+): visitors confirm their age on a page of its own before anything else is shown. Every plan. |
tags | string | Tags durch Komma getrennt (bis 5, je 24 Zeichen). Kontotoken in bezahlten Tarifen. |
qr | boolean | Den QR-Code der Kurzadresse (base64) in die Antwort aufnehmen. |
qr_size | integer | Seite des QR-Bilds in Pixeln, 100–1000 (Standard 300, PNG rundet auf ganze Module ab). |
qr_format | string | png (Standard) oder svg. |
qr_logo | boolean | false = Code ohne Logo. Nur bezahlte Tarife, sonst ignoriert. |
Links auflisten
GET /api/v1/links
Erfordert ein Kontotoken.
Erfordert ein Kontotoken. Links werden neueste zuerst zurückgegeben.
curl "http://anonym.es/api/v1/links?page=1&per=50" \ -H "Authorization: Bearer anon_YOUR_ACCOUNT_TOKEN"
| Feld | Typ | Was er tut |
|---|---|---|
page | integer | Seitennummer (Standard 1). |
per | integer | Links pro Seite, 1–100 (Standard 50). |
q | string | Suche in Kurzname, Domain und Ziel (eine flache Liste, bis 50). |
tag | string | Nur Links mit diesem Tag. |
Suche und Tag-Filter lassen sich kombinieren:
curl "http://anonym.es/api/v1/links?q=example&tag=promo" \ -H "Authorization: Bearer anon_YOUR_ACCOUNT_TOKEN"
Felder der Antwort:
| Feld | Typ | Was er tut |
|---|---|---|
page | integer | Aktuelle Seite. |
per | integer | Links pro Seite. |
total | integer | Zahl der gefundenen Links. |
pages | integer | Zahl der Seiten. |
links | array | Link-Objekte, neueste zuerst. |
Einen Link über die Kurzadresse finden
Ein Link wird über seine numerische ID angesprochen (Feld id, zum Beispiel 4821), nicht über den Namen in der Kurzadresse. Ist nur die Kurzadresse bekannt, lässt sich die ID mit jedem Token ermitteln, das diesen Link verwaltet:
curl --get http://anonym.es/api/v1/links/lookup \ -H "Authorization: Bearer YOUR_TOKEN" \ --data-urlencode "short=http://anonym.es/k7m2q"
Linkdetails und Statistik
GET /api/v1/links/{id}
Liefert die Einstellungen des Links, seinen Status, die Zahl der Besuche und der eindeutigen Besucher über seine gesamte Lebensdauer:
curl http://anonym.es/api/v1/links/4821 \ -H "Authorization: Bearer YOUR_TOKEN"
Mit einem Kontotoken fügt der Parameter stats einen Besuchsbericht hinzu:
curl "http://anonym.es/api/v1/links/4821?stats=day" \ -H "Authorization: Bearer anon_YOUR_ACCOUNT_TOKEN"
| Wert | Berichtszeitraum |
|---|---|
day | Letzte 30 Tage, nach Tagen |
week | Letzte 26 Wochen, nach ISO-Wochen |
month | Letzte 24 Monate, nach Monaten |
Felder der Antwort: stats
| Feld | Typ | Was er tut |
|---|---|---|
mode | string | day, week oder month. |
from | string | Erster Tag des Berichts, JJJJ-MM-TT. |
to | string | Letzter Tag des Berichts. |
series | array | Ein Eintrag pro Zeitraum, älteste zuerst: [from, to, visits, uniques]. |
summary | object | cur (aktueller Zeitraum), prev (der vorherige), avg (Durchschnitt der Zeiträume vor dem aktuellen), jeweils mit hits und uniq. |
dims | object | Aufschlüsselung für den Bereich: ref, country, device, os, browser, hour, jeweils eine Liste [Wert, Besuche]. |
Einen Link ändern
PATCH /api/v1/links/{id}
Nur die gesendeten Felder ändern sich:
curl -X PATCH http://anonym.es/api/v1/links/4821 \
-H "Authorization: Bearer anon_YOUR_ACCOUNT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"max_hits": 2000, "delay": 3, "tags": "blog,updated"}'
Änderungen erfordern einen bezahlten Tarif. Ein Link-Token hat die Rechte des Free-Tarifs und kann keine Einstellungen ändern.
| Feld | Typ | Was er tut |
|---|---|---|
url | string | Neues Ziel. Ab Pro+. |
name | string | Neuer Name (gleiche Regeln wie ein eigener Name). |
expires_days | integer | Neue Lebensdauer in Tagen, leer = kein Ablauf. |
max_hits | integer | Neues Besuchslimit, leer = kein Limit. |
self_destruct | boolean | Endgültig löschen, wenn Limit oder Lebensdauer erreicht ist, false schaltet es ab. |
password | string | Neues Passwort, ein leerer String entfernt das Passwort. |
note | string | Neue Notiz, leer entfernt sie (ein reiner Notizlink braucht weiterhin eine). |
delay | integer | Sekunden auf der Weiterleitungsseite, leer = Tarifstandard. |
no_countdown | boolean | true = kein Countdown auf der Weiterleitungsseite, false schaltet den Countdown wieder ein. |
adult | boolean | true = age confirmation (18+) before the forwarding page; false removes it. |
tags | string | Neue Tagliste durch Komma getrennt, leer entfernt alle Tags. |
Einen Wert löschen
- password, note und tags: ein leerer String entfernt den Wert.
- expires_days und max_hits: null, ein leerer String oder 0 hebt das Limit auf. self_destruct erlischt, wenn weder Limit noch Lebensdauer bleibt.
- delay: null oder ein leerer String stellt den Tarifstandard wieder her. 0 bedeutet sofortige Weiterleitung.
- url kann nicht geleert werden, und ein reiner Notizlink braucht weiterhin eine Notiz.
curl -X PATCH http://anonym.es/api/v1/links/4821 \
-H "Authorization: Bearer anon_YOUR_ACCOUNT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"password": "", "note": "", "expires_days": null, "max_hits": null, "delay": 0}'
Einen Link löschen
DELETE /api/v1/links/{id}
curl -X DELETE http://anonym.es/api/v1/links/4821 \ -H "Authorization: Bearer YOUR_TOKEN"
Nach dem Löschen ist der eigene Name wieder frei. Die Statistik wird mit dem Link gelöscht.
Felder der Antwort:
| Feld | Typ | Was er tut |
|---|---|---|
deleted | integer | Die ID des gelöschten Links. |
QR-Code
Für ein HTML-img-Tag fordern Sie den Code über die Kurzadresse an. Dieser Endpunkt braucht kein Token: Die Kurzadresse selbst ist der Schlüssel, und jeder, der sie kennt, kann denselben Code erzeugen.
<img src="http://anonym.es/api/v1/qr?short=http%3A%2F%2Fanonym.es%2Fk7m2q&qr_size=400" alt="QR code" >
Serverseitiger Code kann das Bild auch per ID mit Token anfordern oder es base64-codiert in JSON erhalten, indem qr=true an den Aufruf zum Anlegen oder zu den Details angehängt wird:
curl "http://anonym.es/api/v1/links/4821/qr?qr_size=400&qr_format=svg" \ -H "Authorization: Bearer YOUR_TOKEN" -o qr.svg
Parameter beider Bild-Endpunkte:
| Feld | Typ | Was er tut |
|---|---|---|
short | string, erforderlich | Die Kurzadresse, zum Beispiel https://anonym.es/abc12. |
qr_size | integer | Seite des QR-Bilds in Pixeln, 100–1000 (Standard 300, PNG rundet auf ganze Module ab). |
qr_format | string | png (Standard) oder svg. |
qr_logo | boolean | false = Code ohne Logo. Nur bezahlte Tarife, sonst ignoriert. |
Das Feld qr in JSON-Antworten:
| Feld | Typ | Was er tut |
|---|---|---|
format | string | png oder svg. |
mime | string | image/png oder image/svg+xml. |
size | integer | Angeforderte Seitenlänge in Pixeln. |
logo | boolean | Ob das Logo in der Mitte gezeichnet ist. |
base64 | string | Das Bild, base64-codiert. |
Kontodetails
GET /api/v1/me
Erfordert ein Kontotoken. Liefert den Tarif, seine Limits und die verbleibende Quote:
curl http://anonym.es/api/v1/me \ -H "Authorization: Bearer anon_YOUR_ACCOUNT_TOKEN"
| Feld | Typ | Was er tut |
|---|---|---|
login | string | Der Login des Kontos. |
plan | string | Tarifschlüssel: free, pro, pro_plus, max oder enterprise. |
plan_label | string | Der Tarifname, wie auf der Website gezeigt. |
until | string | null | Wann der bezahlte Tarif endet, ISO 8601. null bei Free oder ohne Enddatum. |
limits | object | links (pro Zeitraum), per (day oder month), ai_hourly (eigene Namen pro Stunde), name_min (kürzester eigener Name), note_max (Notizlänge), api_units (API-Budget pro Minute). |
left | integer | null | Im aktuellen Quotenzeitraum verbleibende Links, null ohne Limit. |
aliases | array | Die weiteren Domains, die der Tarif nutzen darf. |
can | object | Ein Boolescher Wert pro Option: password, ttl, edit, edit_url, tags, note, note_only, alias, sub, instant, qr_no_logo. |
Fehler
Fehler werden in einem einheitlichen JSON-Format zurückgegeben:
{
"ok": false,
"error": "taken",
"message": "This name is already taken.",
"field": "name",
"suggest": ["my-article-26", "my-my-article", "my-article-link"]
}
field enthält den Namen des fehlerhaften Parameters oder null, wenn der Fehler kein bestimmtes Feld betrifft. Ein vergebener Name ergänzt suggest, eine kostenpflichtige Option upgrade, Quoten und Ratenlimits den Header Retry-After.
| HTTP | Bedeutung |
|---|---|
400 | Fehler in den Anfrageparametern |
401 | Token fehlt oder ist ungültig |
403 | Tarif oder Tokentyp erlauben diesen Aufruf nicht |
404 | Der Link existiert nicht oder gehört jemand anderem |
405 | Methode für diesen Pfad nicht erlaubt |
409 | Der eigene Name ist vergeben |
429 | Ratenlimit oder Quote erschöpft, siehe Retry-After |
501 | PNG ist auf diesem Server nicht verfügbar, fordern Sie svg an |
Alle Fehlercodes
| Code | HTTP | Feld | Was er tut |
|---|---|---|---|
bad_request | 400 | Fehlerhafte Anfrage. | |
bad_url | 400 | url | Die Adresse fehlt oder ist keine gültige http(s)-URL. |
blocked | 400 | url | Auf dieses Ziel kann nicht verlinkt werden. |
bad_name | 400 | name | Dieser Name ist nicht erlaubt. |
dirty | 400 | name | Dieser Name ist nicht erlaubt. |
brand | 400 | name | Dieser Name sieht wie ein Markenname aus und kann nicht verwendet werden. |
reserved | 400 | name | Dieser Name ist reserviert. |
too_short | 400 | name | Der Name ist für Ihren Tarif zu kurz. |
sub_format | 400 | name | Ein Subdomain-Name besteht aus 3 bis 32 Buchstaben, Ziffern oder Bindestrichen. |
sub_main | 400 | domain | Subdomain-Links gibt es nur auf den weiteren Domains. |
name_batch | 400 | name | Ein eigener Name gilt für eine einzelne Adresse, nicht für einen Stapel. |
taken | 409 | name | Dieser Name ist bereits vergeben. |
note_long | 400 | note | Die Notiz ist länger, als Ihr Tarif erlaubt. |
note_required | 400 | note | Ein reiner Notizlink braucht eine Notiz. |
bad_tag | 400 | tags | Tags: bis zu 5, je bis zu 24 Zeichen. |
pro_only | 403 | Diese Option erfordert einen bezahlten Tarif. | |
max_only | 403 | Subdomain-Links erfordern den Tarif Max. | |
account_only | 403 | Dieser Aufruf erfordert ein Kontotoken. | |
limit | 429 | Die Linkquote für diesen Zeitraum ist aufgebraucht. | |
domain_limit | 429 | url | Das Tageslimit für Links zu dieser Website ohne Konto ist aufgebraucht. |
ai_limit | 429 | name | Zu viele eigene Namen in dieser Stunde, versuchen Sie es später erneut. |
rate_limited | 429 | Zu viele Anfragen, bitte langsamer. | |
busy | 429 | Zu viele Links werden gleichzeitig angelegt, versuchen Sie es gleich erneut. | |
auth | 401 | Token fehlt oder ist ungültig. | |
not_found | 404 | Kein solcher Link. | |
no_route | 404 | Kein solcher Endpunkt. | |
method | 405 | Methode nicht erlaubt. | |
fetch | 500 | Der Link konnte nicht angelegt werden, versuchen Sie es erneut. | |
qr_unavailable | 501 | qr_format | PNG-QR-Codes sind auf diesem Server nicht verfügbar, fordern Sie svg an. |
Ratenlimits
Jeder Aufruf kostet Einheiten, und jeder Tarif hat ein Budget an Einheiten pro Minute (siehe Tarife und Limits). Ein Lesezugriff kostet 1 Einheit, eine Listenseite 2, ein QR-Code 3, eine Änderung 3, ein Löschen 2, ein Anlegen 5 plus 1 pro Adresse. Jede Antwort trägt diese Header:
| Header | Wert |
|---|---|
X-RateLimit-Limit | Budget an Einheiten pro Minute |
X-RateLimit-Remaining | Verbleibende Einheiten in der aktuellen Minute |
X-RateLimit-Reset | Sekunden bis zur Erneuerung des Budgets |
Retry-After | Bei 429: Sekunden bis zum nächsten Versuch |
Innerhalb eines beliebigen Zeitfensters von 10 Sekunden kann höchstens ein Viertel des Minutenbudgets ausgegeben werden, mindestens jedoch 20 Einheiten. Ist das Budget erschöpft, antwortet die API mit Status 429.
Tarife und Limits
Die genauen Limits jedes Tarifs. Links zählen im Free-Tarif pro Tag und IP-Adresse, in bezahlten Tarifen pro Monat und Konto. Die letzte Spalte nennt die Einstellungen, die ein Tarif nutzen kann.
| Tarif | Links | Eigene Namen pro Stunde | Kürzester Name | Notizlänge | Einheiten pro Minute | Einstellungen |
|---|---|---|---|---|---|---|
| Free | 5 pro Tag und IP-Adresse | 5 | 5 | 0 | 60 | keine |
| Pro | 500 pro Monat | 10 | 3 | 300 | 150 | password, expires_days, max_hits, edit, tags, note, domain, delay, qr_logo |
| Pro+ | 2,000 pro Monat | 50 | 3 | 2,000 | 400 | password, expires_days, max_hits, edit, edit url, tags, note, note_only, domain, delay, qr_logo |
| Max | 50,000 pro Monat | 200 | 3 | 5,000 | 1,000 | password, expires_days, max_hits, edit, edit url, tags, note, note_only, domain, sub, delay, qr_logo |
| Enterprise | unbegrenzt | unbegrenzt | 3 | 5,000 | 2,500 | password, expires_days, max_hits, edit, edit url, tags, note, note_only, domain, sub, delay, qr_logo |
Ohne Kontotoken zählt das Anlegen auf die Free-Quote der IP-Adresse: 5 Links pro Tag. Links auf eine Zieldomain, die vor weniger als einem Jahr registriert wurde, teilen sich ein Gastlimit von 5 pro Tag, wer auch immer sie anlegt. Pro Aufrufer können höchstens 2 Links gleichzeitig angelegt werden.
OpenAPI-Spezifikation
Die vollständige technische Beschreibung als OpenAPI-3.1-Dokument: http://anonym.es/api/v1/openapi.json
Es enthält Schemata und Beispiele aller Anfragen und Antworten, die Tariflimits, die Namensregeln und die Fehlercodes. Es eignet sich für Swagger UI, Postman, Insomnia und Client-Generatoren.