SDK de JavaScript
El cliente que la API publica en /sdk.js y /sdk.mjs, generado a partir de la propia especificación. Cómo cargarlo en el navegador y en Node, los métodos por tema, cómo pasar parámetros y cuerpo, el tratamiento de errores y las opciones del cliente.
La API publica un SDK de JavaScript generado a partir de la propia especificación OpenAPI. Cubre todas las operaciones, envía las cabeceras por ti, desenvuelve el sobre de las respuestas y convierte los errores en excepciones.
| Archivo | Uso |
|---|---|
/sdk.js | UMD: <script src> (expone Memberfy) o require() en Node |
/sdk.mjs | ESM: import { createClient } from '…/sdk.mjs' |
Empezar en el navegador
<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>
Pasa siempre el baseUrl con https://.
Empezar en Node
Descarga el archivo en el proyecto e impórtalo en local (Node 18 o posterior, que ya incluye fetch):
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);
Vuelve a descargarlo cuando quieras actualizarlo.
Lo que hace por ti
| Cabeceras | Authorization, X-CommunityId, X-ProfileId y Accept-Language, a partir de setToken, setCommunity, setProfile y setLanguage |
| Sobre | Devuelve el data directamente; los listados devuelven { data, pagination } |
| Errores | Lanza MemberfyError, con .status, .body y .errors |
| Sesión | onUnauthorized se llama ante un 401, para que vuelvas a iniciar sesión |
Los métodos
Los métodos están agrupados por tema (el mismo de la referencia): api.auth, api.products, api.subscriptions, api.coupons, api.sectionsSpaces, api.events… El nombre del método sale del operationId de la operación: api.products.postCommunitiesByCommunityIdProducts, api.profiles.getList, api.auth.login.
Algunos nombres todavía llevan CommunitiesByCommunityId de cuando la ruta tenía la comunidad en el camino. Desde el 6 de octubre de 2026 ninguna ruta lleva la comunidad en el camino, pero los nombres se mantuvieron para que nada se rompa en tu código. La comunidad va siempre por setCommunity. Consulta X-CommunityId.
En la página de cada endpoint de la referencia aparece el operationId.
Parámetros y cuerpo
Los parámetros de ruta y de query van por su nombre; el resto se convierte en el cuerpo:
api.setCommunity(communityId); // the community goes in the X-CommunityId header
await api.products.putCommunitiesByCommunityIdProductsById({
id: productId, // goes to the path
type: 'SUBSCRIPTION', // body
title: 'Alumno · Mensual', // body
price: 49, // body
billingInterval: 'MONTHLY', // body
allowedPaymentMethods: ['PIX', 'CREDIT_CARD', 'BOLETO'],
});
También puedes separarlos: { id, body: { … } }. No pases communityId en los argumentos: como ya no es parámetro de ruta, iría al cuerpo. Otras opciones por llamada: headers (cabeceras adicionales), query (parámetros de query extra) y signal (un AbortController).
Para cualquier ruta, existe api.request({ httpMethod, path, pathParams, queryParams, hasBody }, args).
Tratar errores
try {
await api.coupons.postCommunitiesByCommunityIdCouponsValidate({ code: 'LANZAMIENTO20' });
} catch (error) {
if (error.name === 'MemberfyError') {
console.log(error.status); // 400
console.log(error.errors); // [{ param: 'code', message: 'El cupón ha expirado' }]
}
}
Opciones del cliente
| Opción | Para qué |
|---|---|
baseUrl | La dirección de la API. Usa https://api.memberfy.net |
token, communityId, profileId, language | Valores iniciales de las cabeceras |
raw: true | Devuelve el cuerpo en bruto, con el sobre |
onUnauthorized | Función que se llama ante un 401 |
fetch | Una implementación de fetch, para entornos sin la nativa |
Siempre al día
El SDK se genera cada vez que se sirve, a partir de las rutas de la API. Volver a descargarlo es actualizarlo.
Para IA
Para que un asistente genere llamadas correctas, dale también el /docs.txt: el SDK dice cómo llamar; el /docs.txt dice qué enviar.