Gira API v1
Dokumente direkt in Ihrem System verarbeitet.
Senden Sie Dateien aus Ihrem ERP und erhalten Sie das Ergebnis per Webhook. Dieselben Tools, Limits, Virenscanner und Datenschutzrichtlinien wie auf der Website. Verfügbar in Plus und Business.
1. Authentifizierung
Erstellen Sie den Schlüssel unter Mein Konto im Bereich Gira-API. Er wird nur einmal angezeigt. Senden Sie ihn mit jeder Anfrage:
Authorization: Bearer gira_xxxxxxxx_yyyyyyyyyyyyyyyy
Bewahren Sie den Schlüssel auf Ihrem Server auf (nie im Browser oder in der App). Wird er bekannt, widerrufen Sie ihn und erstellen Sie einen neuen.
2. Auftrag erstellen
curl -X POST https://girapdf.com.br/v1/jobs \
-H "Authorization: Bearer $GIRA_KEY" \
-F operation=compress-pdf \
-F [email protected] \
-F webhook_url=https://erp.suaempresa.com.br/webhooks/gira
Antwort 202: {"job_id": "…", "status": "queued", "status_url": "/v1/jobs/…"}. Tool-Optionen gehen als zusätzliche Felder mit (z. B. -F texto=CONFIDENCIAL bei watermark-pdf). Die vollständige Liste finden Sie unter GET /v1/tools.
3. Stapel und Workflows
curl -X POST https://girapdf.com.br/v1/pipelines \
-H "Authorization: Bearer $GIRA_KEY" \
-F 'etapas=[{"operation":"xlsx-to-pdf"},{"operation":"compress-pdf"},{"operation":"watermark-pdf","options":{"texto":"INTERNO"}}]' \
-F [email protected] -F [email protected] -F [email protected]
Jede Datei durchläuft alle Schritte; bei mehreren Dateien ist das Ergebnis ein .zip. Bis zu 20 Dateien bei Plus und 100 bei Business.
Verfügbare Schritte
docx-to-pdf (.docx in .pdf) · xlsx-to-pdf (.xlsx, .xls, .ods in .pdf) · pptx-to-pdf (.pptx, .ppt, .odp in .pdf) · html-to-pdf (.html, .htm in .pdf) · jpg-to-pdf (.jpg, .jpeg, .png, .webp in .pdf) · csv-to-xlsx (.csv in .xlsx) · ocr-pdf (.pdf in .pdf) · compress-pdf (.pdf in .pdf) · optimize-images (.pdf in .pdf) · repair-pdf (.pdf in .pdf) · rotate-pdf (.pdf in .pdf) · grayscale-pdf (.pdf in .pdf) · page-numbers (.pdf in .pdf) · watermark-pdf (.pdf in .pdf) · header-footer (.pdf in .pdf) · bates-numbering (.pdf in .pdf) · stamp-pdf (.pdf in .pdf) · resize-pdf (.pdf in .pdf) · flatten-pdf (.pdf in .pdf) · clean-pdf (.pdf in .pdf) · pdf-to-pdfa (.pdf in .pdf) · pdf-to-docx (.pdf in .docx) · pdf-to-xlsx (.pdf in .xlsx) · pdf-to-pptx (.pdf in .pptx) · pdf-to-text (.pdf in .txt) · pdf-to-markdown (.pdf in .md) · pdf-to-jpg (.pdf in .zip) · xlsx-to-csv (.xlsx in .csv)
4. Verfolgen und herunterladen
curl -H "Authorization: Bearer $GIRA_KEY" https://girapdf.com.br/v1/jobs/JOB_ID
curl -H "Authorization: Bearer $GIRA_KEY" -o resultado.pdf https://girapdf.com.br/v1/jobs/JOB_ID/download
Status: queued, processing, completed oder failed. Das Ergebnis bleibt einige Stunden verfügbar (oder gemäß der Aufbewahrungsrichtlinie Ihrer Firma) und wird dann gelöscht.
5. Webhooks
Wenn der Auftrag fertig ist, senden wir einen POST an Ihre URL (nur HTTPS, öffentliche Adresse, Port 443 oder 8443):
X-Gira-Event: job.completed
X-Gira-Signature: t=1696350000,v1=5f2c…
{"event": "job.completed", "job_id": "…", "operation": "compress-pdf", "status": "completed",
"output_filename": "nota-fiscal.pdf", "output_size": 482113, "download_url": "/v1/jobs/…/download"}
Prüfen Sie die Signatur mit dem Webhook-Secret des Schlüssels: HMAC-SHA256(segredo, "<t>." + corpo) muss v1 entsprechen, und lehnen Sie Benachrichtigungen ab, deren t älter als 5 Minuten ist. Wir versuchen es nach 1 Min., 5 Min., 30 Min. und 2 Std. erneut, wenn Ihre URL nicht mit 2xx antwortet.
# Python
import hmac, hashlib, time
def assinatura_valida(segredo, cabecalho, corpo: bytes):
partes = dict(p.split("=", 1) for p in cabecalho.split(","))
if abs(time.time() - int(partes["t"])) > 300:
return False
esperado = hmac.new(segredo.encode(), f'{partes["t"]}.'.encode() + corpo, hashlib.sha256).hexdigest()
return hmac.compare_digest(esperado, partes["v1"])
Limits und Fehler
401ungültiger oder widerrufener Schlüssel ·402Tarif ohne API ·403Tool nicht in Ihrem Tarif oder durch Firmenrichtlinie gesperrt413Datei überschreitet das Tariflimit ·422Datei vom Virenscanner blockiert ·429zu viele Anfragen hintereinander- KI (Zusammenfassung/Übersetzung) und Passwort-Tools sind über die API nicht verfügbar.