Claude Microservice

Dedizierter AI-Service für Claude CLI Jobs. Asynchrone Verarbeitung mit Streaming-Output und Attachment-Support.

Service Online

Features

Async Job Processing

Jobs laufen im Hintergrund. Polling für Status und Streaming-Events.

📎

File Attachments

Upload von HTML, PDF, Images, Audio, Video bis 500MB.

🤖

Multiple Models

Haiku (schnell), Sonnet (balanced), Opus (powerful).

🔒

API Key Auth

Sichere Authentifizierung via X-API-Key Header.

🎙

Audio Transcription

Audio-Transkription via Voxtral mit Splitting für lange Dateien. Output als Text, Zusammenfassung, Stichpunkte oder PDF.

Authentication

🔑 API Key Required

Alle Endpoints (außer /health) erfordern einen API-Key im Header:

X-API-Key: csk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

API-Spezifikation: /openapi.yaml

Endpoints

GET /health

Health-Check. Kein API-Key erforderlich.

// Response { "status": "ok", "version": "1.0.0", "claude_cli": "2.1.x" }
POST /jobs

Erstellt einen neuen Claude Job. Akzeptiert multipart/form-data oder application/json.

Request Body
prompt* string Der Prompt für Claude
model string haiku | sonnet | opus (default: sonnet)
attachments[] file[] Dateien (max 10, je max 500MB)
# Mit curl curl -X POST https://claude.sirplus.org/jobs \ -H "X-API-Key: csk_xxx" \ -F "prompt=Analysiere diese Datei" \ -F "model=opus" \ -F "attachments[]=@document.pdf" // Response { "success": true, "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "status": "pending", "stream_url": "/jobs/550e.../stream" } }
POST /jobs (type=transcription)

Erstellt einen Audio-Transkriptions-Job. Sendet Audio an Voxtral API, optional mit Nachverarbeitung durch Claude.

Request Body (multipart/form-data)
type* string Muss "transcription" sein
file* file Audio-Datei (mp3, wav, m4a, ogg, flac, webm)
output string JSON-Array der gewünschten Outputs. Kombinierbar: "plain" (Rohtext), "compact" (Zusammenfassung), "bullets" (Stichpunkte), "doc" (PDF-Dokument). Default: ["plain"]
language string Sprache der Audio z.B. "de", "en"
# Transkription mit allen Output-Formaten curl -X POST https://claude.sirplus.org/jobs \ -H "X-API-Key: csk_xxx" \ -F "type=transcription" \ -F "file=@meeting.mp3" \ -F 'output=["plain","compact","bullets","doc"]' \ -F "language=de" // Response { "success": true, "data": { "id": "660f9500-f39c-52e5-b827-557766550000", "type": "transcription", "status": "pending", "stream_url": "/jobs/660f.../stream" } }
GET /jobs/{id}

Ruft Status und Ergebnis eines Jobs ab.

Response
status string pending | running | completed | failed
result string Claude's Antwort (wenn completed)
error_message string Fehlermeldung (wenn failed)
// Response (completed) { "success": true, "data": { "id": "550e8400-...", "status": "completed", "result": "Die Analyse zeigt...", "created_at": "2026-01-23T12:00:00Z", "finished_at": "2026-01-23T12:00:15Z" } }
GET /jobs/{id}/stream

Live-Streaming Events eines laufenden Jobs. Für Echtzeit-Updates.

Query Parameters
offset int Event-Index zum Starten (default: 0)
// Response { "success": true, "data": { "status": "running", "events": [ {"type": "assistant", "message": ...}, {"type": "tool_use", ...} ], "next_offset": 5 } }
GET /jobs/{id}/download/{filename}

Download generierter Dateien (z.B. transcript.pdf). Erfordert API-Key-Ownership.

# PDF-Transkript herunterladen curl -O -J https://claude.sirplus.org/jobs/660f9500-.../download/transcript.pdf \ -H "X-API-Key: csk_xxx"
GET /jobs

Listet alle Jobs des API-Keys auf.

// Response { "success": true, "data": [ {"id": "...", "status": "completed", ...}, {"id": "...", "status": "running", ...} ] }
DELETE /jobs/{id}

Löscht einen Job und bricht laufende Prozesse ab.

// Response { "success": true, "message": "Job deleted" }

Supported File Types

// Images image/png, image/jpeg, image/webp, image/gif application/pdf text/plain, text/markdown, text/csv, text/html application/json // Audio audio/mpeg, audio/mp4, audio/wav, audio/ogg, audio/flac, audio/webm // Video video/mp4, video/webm, video/quicktime

Error Codes

400 Bad Request - Ungültige Parameter
401 Unauthorized - API-Key fehlt oder ungültig
404 Not Found - Job existiert nicht
500 Server Error - Interner Fehler
_____ _ _ / ____| | | | | | | | __ _ _ _ __| | ___ | | | |/ _` | | | |/ _` |/ _ \ | |____| | (_| | |_| | (_| | __/ \_____|_|\__,_|\__,_|\__,_|\___| Microservice v1.0 | Powered by Claude CLI