Zum Inhalt springen

API-Dokumentation

Mit der fastry API legst du Monitore an, markierst Deployments und liest deine Rankings – zum Beispiel aus deiner CI-Pipeline. Die API gibt es im Tarif Agency.

Anmeldung

Erstelle einen API-Key unter Einstellungen → API und wähle dort seine Rechte. Sende ihn bei jeder Anfrage mit:

Authorization: Bearer fry_…

Ohne gültigen API-Key antwortet die API mit 401, fehlt ein Recht mit 403. Fehler kommen als JSON mit dem Feld error.

Seitenweise abrufen

Listen liefern data und meta (page, per_page, total, total_pages). Mit ?page=2&per_page=50 holst du die nächste Seite; per_page ist standardmäßig 100, höchstens 200.

Beispiel: Deployment aus der CI melden

curl -X POST https://staging.fastry.com/api/v1/deployments \
  -H "Authorization: Bearer $FASTRY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://shop.example.com", "commit": "a1b2c3d"}'

Endpunkte

POST /api/v1/deployments Recht: Deployments melden

Deployment markieren

Setzt einen Marker an allen Monitoren der URL(s). Eine reine Domain (ohne Pfad) trifft alle Monitore dieser Domain. Etwa 2 Minuten danach misst fastry jeden Monitor mit Performance-Tracking neu (Standard; abschaltbar je Monitor oder mit `scan: false`, `scan: true` misst auch abgeschaltete Monitore). Mehrere Deploys kurz hintereinander ergeben eine Messung; sie zählt nicht zu den Scans pro Tag. 404, wenn keine URL zu einem Monitor passt.

Felder: author (string) branch (string) commit (string) commit_url (string) deployed_at (string) environment (string) message (string) scan (boolean) url (string) urls (array)

GET /api/v1/monitors Recht: Monitore lesen

Monitore auflisten

page
Seite, ab 1 (Standard 1)
per_page
Einträge je Seite (Standard 100, höchstens 200)
POST /api/v1/monitors Recht: Monitore erstellen & ändern

Monitor anlegen

Felder: monitor.expected_status_codes (array) monitor.follow_redirects (boolean) monitor.http_method (string) monitor.interval_seconds (integer) monitor.keyword (string) monitor.keyword_case_sensitive (boolean) monitor.keyword_mode (string) monitor.name (string) monitor.paused (boolean) monitor.psi_device (string) monitor.psi_enabled (boolean) monitor.timeout_seconds (integer) monitor.url (string)

GET /api/v1/monitors/{id} Recht: Monitore lesen

Einen Monitor lesen

id
ID des Monitors
PATCH /api/v1/monitors/{id} Recht: Monitore erstellen & ändern

Monitor ändern

id
ID des Monitors

Felder: monitor.expected_status_codes (array) monitor.follow_redirects (boolean) monitor.http_method (string) monitor.interval_seconds (integer) monitor.keyword (string) monitor.keyword_case_sensitive (boolean) monitor.keyword_mode (string) monitor.name (string) monitor.paused (boolean) monitor.psi_device (string) monitor.psi_enabled (boolean) monitor.timeout_seconds (integer) monitor.url (string)

PUT /api/v1/monitors/{id} Recht: Monitore erstellen & ändern

Monitor ändern (wie PATCH)

id
ID des Monitors

Felder: monitor.expected_status_codes (array) monitor.follow_redirects (boolean) monitor.http_method (string) monitor.interval_seconds (integer) monitor.keyword (string) monitor.keyword_case_sensitive (boolean) monitor.keyword_mode (string) monitor.name (string) monitor.paused (boolean) monitor.psi_device (string) monitor.psi_enabled (boolean) monitor.timeout_seconds (integer) monitor.url (string)

DELETE /api/v1/monitors/{id} Recht: Monitore erstellen & ändern

Monitor löschen

id
ID des Monitors
POST /api/v1/monitors/{id}/check Recht: Monitore erstellen & ändern

Sofort prüfen

id
ID des Monitors
GET /api/v1/rankings Recht: Rankings lesen

Aktuelle Rankings lesen

page
Seite, ab 1 (Standard 1)
per_page
Einträge je Seite (Standard 100, höchstens 200)

Maschinenlesbar als OpenAPI: /api/v1/openapi.json