Saltar al contenido

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.

ArchivoUso
/sdk.jsUMD: <script src> (expone Memberfy) o require() en Node
/sdk.mjsESM: 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

CabecerasAuthorization, X-CommunityId, X-ProfileId y Accept-Language, a partir de setToken, setCommunity, setProfile y setLanguage
SobreDevuelve el data directamente; los listados devuelven { data, pagination }
ErroresLanza MemberfyError, con .status, .body y .errors
SesiónonUnauthorized 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ónPara qué
baseUrlLa dirección de la API. Usa https://api.memberfy.net
token, communityId, profileId, languageValores iniciales de las cabeceras
raw: trueDevuelve el cuerpo en bruto, con el sobre
onUnauthorizedFunción que se llama ante un 401
fetchUna 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.

Relacionados