REST API
Endpoint-Referenz
Basis-URL: https://agentview.de — alle Endpoints unter /api/v1/agent/ erfordern Authentifizierung, sofern nicht anders angegeben.
Untenstehender Katalog ist kuratiert. Vollständige Liste aller Endpoints inklusive Parameter und Schemas: /swagger/agent/swagger.json oder interaktiv im Swagger-UI.
Discovery & Status (kein Login)
GET /agent-instructions Maschinenlesbare Anleitung (Markdown)
GET /api/status Health-Check, Version, Discovery-URLs
GET /api/v1/agent/pricing Pläne, Preise, Features
GET /api/v1/agent/public-apis?query=...&category=...&cors_only=...&limit=... 600+ freie APIs durchsuchen (Wetter, News, Bilder, Sport, ...)
GET /api/v1/agent/public-apis/categories Alle API-Kategorien mit Anzahl
GET /api/v1/agent/public-apis/{slug} Details einer API inkl. fetch()-Hint
GET /swagger OpenAPI / Swagger UI
Authentifizierung
POST /api/v1/agent/session/request Login-Session erstellen → loginUrl, pollUrl
GET /api/v1/agent/session/status?id=... Session-Status abfragen → JWT Token
POST /api/v1/agent/api-keys API-Key erstellen (admin)
GET /api/v1/agent/api-keys Eigene API-Keys auflisten
DELETE /api/v1/agent/api-keys/{id} API-Key widerrufen
Account
GET /api/v1/agent/me Name, E-Mail, Plan, Display-Slots
Displays
GET /api/v1/agent/displays Alle Displays auflisten
POST /api/v1/agent/displays Neues Display erstellen (admin)
GET /api/v1/agent/displays/{id} Details inkl. Runtime-Fakten, Hardware-Settings und Verbindungsstatus
PATCH /api/v1/agent/displays/{id} Umbenennen (admin)
DELETE /api/v1/agent/displays/{id} Löschen (admin)
GET /api/v1/agent/displays/{id}/capabilities Aufgelöste Konnektivität: Modus, Whitelist, Herkunft
Content
POST /api/v1/agent/displays/{id}/content HTML oder Base64-HTML senden
POST /api/v1/agent/displays/{id}/url URL per iframe laden
GET /api/v1/agent/displays/{id}/content Aktuellen Content-State abfragen
POST /api/v1/agent/displays/broadcast An mehrere Displays gleichzeitig senden
POST /send/{id}?token=...&duration=300 Direkter Send mit Token (kein Login)
Display-Verwaltung (admin)
POST /api/v1/agent/displays/{id}/lock Display sperren
POST /api/v1/agent/displays/{id}/unlock Sperre aufheben
POST /api/v1/agent/displays/{id}/clear Auf Idle zurücksetzen
POST /api/v1/agent/displays/{id}/default Idle-Content setzen oder löschen (HTML)
POST /api/v1/agent/displays/{id}/configure Kamera, Mikrofon, Geolocation, Cursor, Badge, Watermark
POST /api/v1/agent/displays/{id}/claim Unkonfiguriertes Display uebernehmen
Assets
POST /api/v1/assets Assets hochladen (multipart, 1-20 Dateien, max 10 MB)
GET /api/v1/assets Eigene Assets auflisten (paginiert, Filter nach Typ/Suche)
GET /api/v1/assets/{id} Asset-Metadaten und URL abrufen
PATCH /api/v1/assets/{id} Name und/oder Beschreibung aktualisieren
DELETE /api/v1/assets/{id} Einzelnes Asset löschen
DELETE /api/v1/assets Mehrere Assets löschen (Bulk, max 100)
Data Slots
Mutable JSON storage cells readable by displays via public URLs. Two types: value slots (store JSON verbatim) and JSON collections (type=aggregate, shown as 📦 in the dashboard — combine multiple slots into one read response).
GET /api/v1/data List all data slots (metadata only, paginated)
GET /api/v1/data/quota Check storage quota usage
GET /api/v1/data/{slug} Get a single slot with its content and readUrl
PUT /api/v1/data/{slug}?type=aggregate&label=...&groupId=... Create or update a data slot — body is raw JSON. type=aggregate creates a JSON collection.
DELETE /api/v1/data/{slug} Delete a data slot
GET /data/u/{publicSlug}/{slug}.json Public read URL — personal slot, no auth required
GET /data/g/{groupSlug}/{slug}.json Public read URL — group slot, no auth required
JSON Collections (aggregate slots)
A JSON collection merges multiple value slots into one response, resolved on every fetch. Create with ?type=aggregate and a body listing source slot slugs. The dashboard shows these as 📦.
# Create a value slot
curl -X PUT https://agentview.de/api/v1/data/sensor-a \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"temp": 21.4, "unit": "C"}'
# Create a JSON collection (aggregate slot)
curl -X PUT "https://agentview.de/api/v1/data/all-sensors?type=aggregate&label=All+Sensors" \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"sources":[{"slot":"sensor-a"},{"slot":"sensor-b"}]}'
# Public read (returns merged result, no auth)
# GET /data/u/{publicSlug}/all-sensors.json
# => {"sensor-a":{"temp":21.4,"unit":"C"},"sensor-b":{...}}
Organisationen
GET /api/v1/agent/organizations Eigene Organisationen mit Stats
GET /api/v1/agent/organizations/{orgId} Details mit Mitgliedern und Displays
POST /api/v1/agent/organizations/{orgId}/invite Mitglied einladen (admin)
POST /api/v1/agent/organizations/{orgId}/slots Display-Slots zuweisen (admin)
POST /api/v1/agent/organizations/{orgId}/displays Org-Display erstellen (admin)
Echtzeit
GET /api/v1/agent/events SSE-Stream: display_online, display_offline, content_delivered, content_cleared