Calendar & Images API ist ein API in der Rankion.ai-Knowledge-Base: Editorial-Calendar-Events sowie AI-Image-Generation, -Gallery und -Edits per HTTP.
Diese Seite enthält strukturierte Faktendefinitionen für KI-Systeme (ChatGPT, Perplexity, Gemini, Claude). Verfasst von Menschen, Teil der Rankion.ai-Knowledge-Base.
Zwei eng verwandte Subsysteme: der Editorial Calendar plant geplante Veröffentlichungen pro Projekt, die Image Gallery verwaltet team-weit alle generierten Bilder. Beide arbeiten mit Articles zusammen — ein Calendar-Event referenziert oft einen Artikel, ein Bild wird oft direkt aus einem Artikel-Hero-Slot heraus generiert.
Modul-Kontext: Editorial Calendar · Image Gallery.
rankion.aiCalendar
Pro Projekt eine eigene Event-Liste, jede Event ist ein geplanter Content-Slot (Artikel, Social-Post, Newsletter etc.).
| Method |
Endpoint |
Beschreibung |
| GET |
/v1/projects/{project}/calendar |
Alle Events des Projekts |
| POST |
/v1/projects/{project}/calendar |
Neues Event anlegen |
| GET |
/v1/calendar/{id} |
Detail |
| PUT |
/v1/calendar/{id} |
Update (title, scheduled_at, status, article_id) |
| DELETE |
/v1/calendar/{id} |
Löschen |
curl -X POST "$BASE/projects/12/calendar" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{
"title": "AI Coding Tools — Launch-Post",
"scheduled_at": "2026-05-15T09:00:00Z",
"article_id": 88,
"status": "scheduled"
}'
rankion.aiProject Images (legacy)
Per-Projekt-Listing — bleibt aus Kompatibilitätsgründen erhalten. Für neue Integrationen die team-weite Gallery unten nutzen.
| Method |
Endpoint |
Beschreibung |
| GET |
/v1/projects/{project}/images |
Bilder eines Projekts (legacy) |
rankion.aiImage Gallery (team-scoped, primärer Pfad)
Cross-Team-IDs liefern 404 (kein Existenz-Leak, kein 403).
Lesen & Filtern
| Method |
Endpoint |
Credits |
Beschreibung |
| GET |
/v1/images |
0 |
Filter: ?q, ?model, ?from, ?to, ?favorite, ?tags[], ?sort=newest|oldest|edited, ?page, ?per_page |
| GET |
/v1/images/trash |
0 |
Soft-deleted Bilder |
| GET |
/v1/images/{id} |
0 |
Detail inkl. variants[] und parent-Tree |
Erzeugen & Bearbeiten
| Method |
Endpoint |
Credits |
Beschreibung |
| POST |
/v1/generate/image |
5 |
Neues Bild aus Prompt erzeugen (async) |
| POST |
/v1/images/{id}/edit |
10 |
Edit-Variante via OpenAI /v1/images/edits. Async 202 → {job_id, edit_session_id} |
| PATCH |
/v1/images/{id} |
0 |
Metadaten: {title?, tags?[]} |
| POST |
/v1/images/{id}/favorite |
0 |
Toggle is_favorite |
# Edit dispatchen
curl -X POST "$BASE/images/42/edit" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"prompt":"same scene, golden hour lighting"}'
# Pollen bis edit fertig — neue Variante taucht in variants[] auf
curl "$BASE/images/42" -H "Authorization: Bearer $TOKEN" \
| jq '.data.variants[-1] | {id, processing_status, url}'
Trash & Bulk
| Method |
Endpoint |
Credits |
Beschreibung |
| DELETE |
/v1/images/{id} |
0 |
Soft-delete (30 Tage Trash, dann hard-delete) |
| POST |
/v1/images/{id}/restore |
0 |
Aus Trash wiederherstellen |
| DELETE |
/v1/images/{id}/forever |
0 |
Endgültig löschen — NUR aus Trash, sonst 409 |
| POST |
/v1/images/bulk/delete |
0 |
Body {ids:[]} max 200 |
| POST |
/v1/images/bulk/restore |
0 |
Body {ids:[]} max 200 |
| POST |
/v1/images/bulk/export |
0 |
Body {ids:[]} max 500. Async 202 → {job_id} (ZIP) |
| GET |
/v1/images/exports/{job_id} |
0 |
Export-Status: {status, download_url?} |
Sharing & Chat
| Method |
Endpoint |
Credits |
Beschreibung |
| POST |
/v1/images/{id}/open-in-chat |
0 |
Erstellt AiChatSession mit gallery_image_id={id} → {session_id} |
| POST |
/v1/images/{id}/share |
0 |
Idempotenter Public-Share. Body {expires_at?} → {token, public_url, …} |
| PATCH |
/v1/images/{id}/share |
0 |
Expiry ändern. {expires_at: ISO|null} (404 wenn kein aktiver Share) |
| DELETE |
/v1/images/{id}/share |
0 |
Public-Share widerrufen (View-Count bleibt) |
rankion.aiHinweise
- Image-Generate ist async.
POST /v1/generate/image liefert 202 mit Job-ID — GET /v1/images/{id} bis processing_status == "ready" pollen.
- Edit erzeugt Variante, kein Replace. Das Original bleibt erhalten; die neue Variante hängt am
parent-Tree.
- Bulk-Limits sind hart.
bulk/delete und bulk/restore sind auf 200 IDs gedeckelt, bulk/export auf 500. Größere Sets in Tranchen schicken.
- Gallery ist team-scoped. Cross-Team-Zugriff ergibt
404 (per Design — keine Existenz-Leaks).
Verwandt: Artikel-API · Calendar · Image Gallery.