API Übersicht
Basis
- Base URL: https://studiorent.io/api
- Antwortformat: JSON (UTF-8)
Authentifizierung
Öffentliche Endpunkte erfordern keine Authentifizierung. Admin-Endpunkte erwarten einen Service-Token im Header Authorization: Bearer <token>
.
Öffentliche Endpunkte
GET /api/public/[tenantSlug]/availability
– Verfügbarkeit abrufenPOST /api/public/[tenantSlug]/bookings
– Buchung erstellenPOST /api/public/[tenantSlug]/bookings/cancel
– Buchung stornierenGET /api/public/[tenantSlug]/rooms
– Räume auflistenGET /api/public/[tenantSlug]/packages
– Pakete auflisten
Admin-Endpunkte (Token nötig)
GET /api/admin/[tenantId]/studios/list
– Studios auflistenPOST /api/admin/[tenantId]/studios
– Studio anlegenGET /api/admin/[tenantId]/rooms/list
– Räume auflistenPOST /api/admin/[tenantId]/rooms
– Raum anlegenGET /api/admin/[tenantId]/bookings/list
– Buchungen auflistenPOST /api/admin/[tenantId]/bookings/[bookingId]/[action]
– BuchungsaktionPOST /api/admin/[tenantId]/tokens/rotate
– API-Token rotieren
Beispiele
Verfügbarkeit abfragen
fetch('https://studiorent.io/api/public/my-studio/availability?from=2025-08-01&to=2025-08-07')
.then(r => r.json())
.then(console.log);
Buchung erstellen
await fetch('https://studiorent.io/api/public/my-studio/bookings', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
roomId: 'ROOM_ID',
start: '2025-08-01T10:00:00Z',
end: '2025-08-01T12:00:00Z',
customer: { name: 'Max Mustermann', email: 'max@example.com' }
})
});
Admin-Request mit Token
await fetch('https://studiorent.io/api/admin/TENANT_ID/studios/list', {
headers: { Authorization: 'Bearer YOUR_TOKEN' }
});
Rate Limits & Fehler
- 429 Too Many Requests bei zu vielen Anfragen
- 401 Unauthorized bei fehlendem/ungültigem Token
- 400 Bad Request bei ungültigen Parametern