Beim gehosteten Dienst werden Organisationen, Mitglieder, API-Schlüssel, Guthaben und Bereitstellungslizenzen über die Organisations-API unter https://ephemer.al/v1 verwaltet. Das Kundenportal und das Dashboard nutzen sie für Sie; diese Seite richtet sich an Skripte und Integrationen.
Authentifizierung
Diese Endpunkte handeln im Namen einer Person. Melden Sie sich mit POST /v1/auth/login an und senden Sie das zurückgegebene token als Bearer-Token. Sitzungen dauern 30 Tage; POST /v1/auth/logout beendet eine vorzeitig.
curl https://ephemer.al/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"…"}'Die Antwort lautet {"token": "...", "user": {...}, "organizations": [...]}. Jede Organisation hat id, name und Ihre role. Alles Folgende außer dem Auflisten und Erstellen von Organisationen und dem Annehmen einer Einladung erfordert die Rolle Inhaber oder Admin in der im Pfad genannten Organisation.
Organisationen
/v1/organizationsid, name und role./v1/organizations{"name": "..."} und macht Sie zu ihrem Inhaber. Liefert 201 mit {"id": "org_...", "name": "...", "role": "owner"}./v1/organizations/{id}{"name": "..."} um. Der Name wird getrimmt und muss 1 bis 200 Zeichen lang sein. Liefert {"id": "org_...", "name": "...", "role": "owner"}. Mitglieder erhalten 403.Mitglieder
/v1/organizations/{id}/membersid, email, name, role und avatar_url auf./v1/organizations/{id}/members/{user_id}/v1/organizations/{id}/members/{user_id}{"role": "admin"} oder {"role": "member"}./v1/organizations/{id}/ownership{"user_id": "..."} auf ein bestehendes Mitglied. Sie werden Admin.Einladungen
/v1/organizations/{id}/invitations{"email": "...", "role": "member"} ein. role ist admin oder member. Liefert 201 mit token, url und email_delivery.email_delivery ist accepted, wenn der E-Mail-Anbieter die Nachricht angenommen hat, was nicht garantiert, dass sie im Posteingang angekommen ist. Lautet der Wert unavailable oder failed, geben Sie die zurückgegebene url auf privatem Weg weiter. Einladungen laufen nach 7 Tagen ab. Die eingeladene Person nimmt sie mit POST /v1/invitations/accept und {"token": "..."} an, angemeldet mit der eingeladenen E-Mail-Adresse.
API-Schlüssel
/v1/organizations/{id}/keysid, name, role und created_at auf. Geheimnisse werden nie aufgelistet./v1/organizations/{id}/keys{"name": "...", "role": "member"}. role ist member oder admin und standardmäßig member.{
"id": "key_0b7e4c2a9d1f8356e4a2c7b9d0f1e3a5",
"name": "production-server",
"role": "member",
"key": "eak_…"
}key wird nur einmal zurückgegeben. Speichern Sie ihn, bevor Sie die Antwort schließen./v1/organizations/{id}/keys/{key_id}Profil
Diese erfordern eine angemeldete Benutzersitzung; API-Schlüssel werden abgelehnt. Benutzer und jeder Eintrag in members enthalten avatar_url: einen Pfad wie /v1/users/usr_…/avatar?v=3f2a… oder null.
/v1/me/avatarContent-Type image/png, image/jpeg oder image/webp, bis zu 256 KiB. Liefert denselben Body wie GET /v1/auth/me. Höchstens 20 Uploads pro Stunde./v1/me/avatar/v1/me/password{"current_password": "...", "new_password": "..."}. Das neue Passwort hat 12 bis 72 Bytes. Ihre übrigen Sitzungen werden abgemeldet; die, die die Anfrage stellt, bleibt angemeldet. Höchstens 10 Versuche pro Stunde./v1/users/{user_id}/avatar404. Die URL ändert sich, wenn sich das Bild ändert, sodass sie dauerhaft zwischengespeichert werden kann.Abrechnung
Geldbeträge verwenden in diesen Endpunkten Cent für Stripe-Beträge und Micros für Guthabenbeträge. Siehe Budgets und Abrechnung.
/v1/organizations/{id}/balance{"balance_micros": ..., "reserved_micros": ..., "available_micros": ...}: gehaltenes Guthaben, für nicht abgerechnete Ausführungen reserviertes und für neue Ausführungen verfügbares. Prüfen Sie available_micros gegen das Budget einer Ausführung, bevor Sie sie starten./v1/organizations/{id}/billingbalance_micros, reserved_micros, available_microsintegerledgerarrayamount_micros, description, created_at und, soweit zutreffend, run_id, payment_id und topup_id.purchase_limitsobjectmin_amount_cents, max_amount_cents und min_threshold_cents. Validieren Sie gegen diese Werte, statt Limits fest zu codieren.auto_topupobjectenabled, threshold_cents, amount_cents, payment_method_saved und last_topup_status.payment_methodobject | nullbrand, last4, exp_month, exp_year und source.payment_method_syncstringsynced oder unavailable, wenn Stripe nicht erreichbar war. Eine fehlgeschlagene Abfrage bedeutet nicht, dass keine Karte vorhanden ist.stripe_configuredboolean/v1/organizations/{id}/billing/checkout{"amount_cents": 2500} und liefert {"url": "..."} für Stripe Checkout. Fügen Sie "save_payment_method": true hinzu, um die Karte für automatische Aufladungen zu speichern. Beträge liegen zwischen 500 und 1.000.000 Cent./v1/organizations/{id}/billing/portal{"url": "..."} für das Stripe-Kundenportal, in dem Karten verwaltet werden./v1/organizations/{id}/billing/auto-topup{"enabled": true, "threshold_cents": 1000, "amount_cents": 5000, "consent": true} oder deaktiviert sie mit {"enabled": false}. Zum Aktivieren ist eine gespeicherte Karte nötig./v1/organizations/{id}/billing/paymentslimit (1 bis 100, Standard 25) und cursor und liefert {"payments": [...], "next_cursor": "..."}. Jede Zahlung hat amount_cents, refunded_cents, disputed_cents, refund_status, created_at, topup_id und receipt_endpoint./v1/organizations/{id}/billing/payments/{payment_id}/receipt{"url": "..."} für den Stripe-Beleg oder 404, wenn Stripe keinen bereitgestellt hat.Bereitstellungslizenzen
/v1/organizations/{id}/license{"entitlement": null}./v1/organizations/{id}/deployments/v1/organizations/{id}/deployments{"name": "..."} und liefert ihr Lizenz-Token einmalig zurück, zusammen mit der von Ephemeral erzeugten Maschinen-ID (oder der machine_id, die Sie senden)./v1/organizations/{id}/deployments/{deployment_id}