TWINS ON ICE
REST API v1 Documentation

twinsonice.link API

Offizielle Entwickler-Dokumentation für alle REST Endpunkte von twinsonice.link. Dynamisch generiert mit konkreten Request- & Response-Beispielen.

Base URL: https://twinsonice.link
Git Commit: d07c1a5
Format: JSON (application/json)
Verfügbare Endpunkte
GET /api/v1/ping
Testen ↗

Leichtgewichtiger Liveness-Check. Gibt "pong" und den aktuellen Server-Zeitstempel zurück. Aliase: /api/ping, /ping.

Request Example:
GET https://twinsonice.link/api/v1/ping
Response Example (200 OK):
{ "status": "success", "message": "pong", "timestamp": 1792336941, "datetime": "2026-10-18T17:22:21+02:00" }
GET /api/v1/latest
Testen ↗

Gibt Systemversion, Git Commit Hash ID, Server-Uhrzeit & Umgebungsdaten im JSON-Format zurück. Aliase: /api/v/latest, /api/latest.

Request Example:
GET https://twinsonice.link/api/v1/latest
Response Example (200 OK):
{ "status": "success", "app": "twinsonice.link", "name": "Twins on Ice", "version": "1.0.0", "commit": "d07c1a5", "commit_id": "d07c1a5", "environment": "production", "php_version": "8.3.6", "api_version": "v1", "timestamp": 1792336941 }
GET /api/v1/commit
Testen ↗

Gibt die exakte 7-stellige Git Commit Hash ID des aktuellen Deployments zurück. Aliase: /api/commit, /api/git, /commit.

Request Example:
GET https://twinsonice.link/api/v1/commit
Response Example (200 OK):
{ "status": "success", "commit": "d07c1a5", "commit_id": "d07c1a5", "git_commit": "d07c1a5", "api_version": "v1" }
GET /api/v1/links
Testen ↗

Liefert alle registrierten Short Links, Ziel-URLs, Kurz-URLs, Kategorien und Tracking-Links. Aliase: /api/links, /links.

Request Example:
GET https://twinsonice.link/api/v1/links
Response Example (200 OK):
{ "status": "success", "count": 15, "links": { "website": { "slug": "website", "title": "Offizielle Website", "target_url": "https://www.twinsonice.de", "short_url": "https://icelnk.de/website", "category": "Info" } } }
GET /api/v1/stories
Testen ↗

Liefert die neuesten Instagram Stories aus dem StoryGrab Cache. Aliase: /api/stories, /stories.

Request Example:
GET https://twinsonice.link/api/v1/stories?limit=10
Response Example (200 OK):
{ "status": "success", "count": 2, "stories": [ { "id": "18023849201", "type": "image", "image_url": "https://media.storygrab.net/stories/example.jpg", "date_label": "Heute" } ] }
GET /api/v1/songs
Testen ↗

Liefert Musik- & Discografie-Daten inklusive Cover-Artwork und Streaming-Plattform-Links. Aliase: /api/songs, /songs.

Request Example:
GET https://twinsonice.link/api/v1/songs
Response Example (200 OK):
{ "status": "success", "count": 1, "songs": [ { "id": "check-das", "title": "CHECK DAS", "artist": "Twins on Ice", "smart_link": "https://twinsonice.link/check-das" } ] }
GET /api/v1/health
Testen ↗

System Health-Check Status für Datenbank-Verbindung, Story Cache Dateistatus & Uptime. Aliase: /api/health, /health.

Request Example:
GET https://twinsonice.link/api/v1/health
Response Example (200 OK):
{ "status": "ok", "system": "operational", "database": "connected", "cache": { "exists": true, "size_bytes": 39631 } }
GET /api/v1/qr/{slug}
Testen ↗

Erstellt QR-Code Metadaten und Direct-Image URLs für einen spezifischen Short-Link Slug. Aliase: /api/qr/{slug}, /qr/{slug}.

Request Example:
GET https://twinsonice.link/api/v1/qr/check-das
Response Example (200 OK):
{ "status": "success", "slug": "check-das", "target_url": "https://icelnk.de/check-das", "qr_image_url": "https://twinsonice.link/qr/check-das" }
POST /api/v1/shorten

Generiert eine verkürzte URL für eine übergebene Ziel-URL mit optionalen Header-Optionen (noindex, nocache, custom headers). Wenn für dieselbe Ziel-URL abweichende Header-Optionen angefordert werden, wird automatisch ein neuer Short-Link erstellt. Aliase: /api/shorten, /shorten.

Request Example:
POST https://twinsonice.link/api/v1/shorten Content-Type: application/json { "url": "https://example.com/target-page", "label": "Custom Link Title", "noindex": true, "nocache": true }
Response Example (200 OK):
{ "status": "success", "target_url": "https://example.com/target-page", "short_url": "https://icelnk.de/c/a1b2c3", "short_code": "a1b2c3", "options": { "noindex": true, "nocache": true, "headers": { "X-Robots-Tag": "noindex, nofollow" } } }
POST /api/v1/reveal-email

Schaltet Kontakt-E-Mail-Adressen frei nach erfolgreicher Cloudflare Turnstile Sicherheitsüberprüfung. Aliase: /api/reveal-email.

Request Example:
POST https://twinsonice.link/api/v1/reveal-email Content-Type: application/json { "cf-turnstile-response": "TOKEN", "type": "contact" }
Response Example (200 OK):
{ "status": "success", "email": "[email protected]", "mailto": "mailto:[email protected]" }
GET /api/v1/docs
Testen ↗

Gibt die vollständige API-Spezifikation im strukturierten OpenAPI / JSON-Format zurück. Aliase: /api/docs, /docs.

Request Example:
GET https://twinsonice.link/api/v1/docs
Response Example (200 OK):
{ "openapi": "3.0.0", "info": { "title": "Twins on Ice API", "version": "1.0.0" }, "endpoints": { ... } }