JavaScript-SDK
Der Client, den die API unter /sdk.js und /sdk.mjs veröffentlicht, erzeugt aus der Spezifikation selbst. Wie du ihn im Browser und in Node lädst, die Methoden nach Thema, wie du Parameter und Body übergibst, die Fehlerbehandlung und die Client-Optionen.
Die API veröffentlicht ein JavaScript-SDK, das aus ihrer eigenen OpenAPI-Spezifikation erzeugt wird. Es deckt alle Operationen ab, schickt die Header für dich mit, packt den Umschlag der Antworten aus und macht aus Fehlern Exceptions.
| Datei | Verwendung |
|---|---|
/sdk.js | UMD: <script src> (stellt Memberfy bereit) oder require() in Node |
/sdk.mjs | ESM: import { createClient } from '…/sdk.mjs' |
Start im Browser
<script src="https://api.memberfy.net/sdk.js"></script>
<script>
const api = Memberfy.createClient({ baseUrl: 'https://api.memberfy.net' });
const session = await api.auth.login({ email, password });
api.setToken(session.token).setCommunity(communityId);
const me = await api.auth.getMe();
</script>
Übergib baseUrl immer mit https://.
Start in Node
Lade die Datei ins Projekt und importiere sie lokal (Node 18 oder neuer, das fetch schon mitbringt):
curl -s https://api.memberfy.net/sdk.mjs -o memberfy-sdk.mjs
import { createClient } from './memberfy-sdk.mjs';
const api = createClient({ baseUrl: 'https://api.memberfy.net' });
const session = await api.auth.login({ email: process.env.MEMBERFY_EMAIL, password: process.env.MEMBERFY_PASSWORD });
api.setToken(session.token).setCommunity(process.env.MEMBERFY_COMMUNITY_ID);
Lade sie neu herunter, wenn du aktualisieren willst.
Was es dir abnimmt
| Header | Authorization, X-CommunityId, X-ProfileId und Accept-Language, aus setToken, setCommunity, setProfile und setLanguage |
| Umschlag | Gibt data direkt zurück; Listen geben { data, pagination } zurück |
| Fehler | Wirft MemberfyError mit .status, .body und .errors |
| Sitzung | onUnauthorized wird bei einem 401 aufgerufen, damit du dich neu anmelden kannst |
Die Methoden
Die Methoden sind nach Thema gruppiert (wie in der Referenz): api.auth, api.products, api.subscriptions, api.coupons, api.sectionsSpaces, api.events … Der Methodenname kommt aus der operationId der Operation: api.products.postCommunitiesByCommunityIdProducts, api.profiles.getList, api.auth.login.
Manche Namen tragen noch CommunitiesByCommunityId aus der Zeit, als die Route die Community im Pfad hatte. Seit dem 6. Oktober 2026 trägt keine Route die Community mehr im Pfad, aber die Namen sind geblieben, damit in deinem Code nichts bricht. Die Community geht immer über setCommunity. Siehe X-CommunityId.
Auf der Seite jedes Endpunkts in der Referenz steht die operationId.
Parameter und Body
Pfad- und Query-Parameter werden über ihren Namen übergeben; der Rest wird zum Body:
api.setCommunity(communityId); // die Community geht in den Header X-CommunityId
await api.products.putCommunitiesByCommunityIdProductsById({
id: productId, // geht in den Pfad
type: 'SUBSCRIPTION', // Body
title: 'Aluno · Mensal', // Body
price: 49, // Body
billingInterval: 'MONTHLY', // Body
allowedPaymentMethods: ['PIX', 'CREDIT_CARD', 'BOLETO'],
});
Du kannst auch trennen: { id, body: { … } }. Übergib communityId nicht in den Argumenten: Da es kein Pfadparameter mehr ist, würde es im Body landen. Weitere Optionen pro Aufruf: headers (zusätzliche Header), query (zusätzliche Query-Parameter) und signal (ein AbortController).
Für jede beliebige Route gibt es api.request({ httpMethod, path, pathParams, queryParams, hasBody }, args).
Fehler behandeln
try {
await api.coupons.postCommunitiesByCommunityIdCouponsValidate({ code: 'LANCAMENTO20' });
} catch (error) {
if (error.name === 'MemberfyError') {
console.log(error.status); // 400
console.log(error.errors); // [{ param: 'code', message: 'Gutschein ist abgelaufen' }]
}
}
Client-Optionen
| Option | Wofür |
|---|---|
baseUrl | Die Adresse der API. Nutze https://api.memberfy.net |
token, communityId, profileId, language | Anfangswerte der Header |
raw: true | Gibt den rohen Body mit Umschlag zurück |
onUnauthorized | Funktion, die bei einem 401 aufgerufen wird |
fetch | Eine fetch-Implementierung für Umgebungen ohne native |
Immer aktuell
Das SDK wird bei jeder Auslieferung aus den Routen der API erzeugt. Neu herunterladen heißt aktualisieren.
Für KI
Damit ein Assistent korrekte Aufrufe erzeugt, gib ihm auch /docs.txt: Das SDK sagt, wie aufgerufen wird; /docs.txt sagt, was geschickt wird.