Pular para o conteúdo

SDK JavaScript

O cliente que a API publica em /sdk.js e /sdk.mjs, gerado da própria especificação. Como carregar no navegador e no Node, os métodos por assunto, como passar parâmetros e corpo, o tratamento de erro e as opções do cliente.

A API publica um SDK JavaScript gerado da própria especificação OpenAPI. Ele cobre todas as operações, envia os headers por você, desembrulha o envelope das respostas e transforma erro em exceção.

ArquivoUso
/sdk.jsUMD: <script src> (expõe Memberfy) ou require() no Node
/sdk.mjsESM: import { createClient } from '…/sdk.mjs'

Começar no 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>

Passe sempre o baseUrl com https://.

Começar no Node

Baixe o arquivo para o projeto e importe localmente (Node 18 ou mais novo, que já tem 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);

Baixe de novo quando quiser atualizar.

O que ele faz por você

HeadersAuthorization, X-CommunityId, X-ProfileId e Accept-Language, a partir de setToken, setCommunity, setProfile e setLanguage
EnvelopeDevolve o data direto; listagens devolvem { data, pagination }
ErrosLança MemberfyError, com .status, .body e .errors
SessãoonUnauthorized é chamado num 401, para você refazer o login

Os métodos

Os métodos ficam agrupados por assunto (o mesmo da referência): api.auth, api.products, api.subscriptions, api.coupons, api.sectionsSpaces, api.events… O nome do método vem do operationId da operação: api.products.postCommunitiesByCommunityIdProducts, api.profiles.getList, api.auth.login.

Alguns nomes ainda carregam CommunitiesByCommunityId de quando a rota tinha a comunidade no caminho. Desde 6 de outubro de 2026 nenhuma rota leva a comunidade no caminho, mas os nomes ficaram, para nada quebrar no seu código. A comunidade vai sempre pelo setCommunity. Ver X-CommunityId.

Na página de cada endpoint da referência aparece o operationId.

Parâmetros e corpo

Parâmetros de caminho e de query vão pelo nome; o resto vira o corpo:

api.setCommunity(communityId); // a comunidade vai no header X-CommunityId

await api.products.putCommunitiesByCommunityIdProductsById({
  id: productId,               // vai para o caminho
  type: 'SUBSCRIPTION',        // corpo
  title: 'Aluno · Mensal',     // corpo
  price: 49,                   // corpo
  billingInterval: 'MONTHLY',  // corpo
  allowedPaymentMethods: ['PIX', 'CREDIT_CARD', 'BOLETO'],
});

Também dá para separar: { id, body: { … } }. Não passe communityId nos argumentos: como ele não é mais parâmetro de caminho, iria para o corpo. Outras opções por chamada: headers (headers extras), query (parâmetros de query a mais) e signal (um AbortController).

Para qualquer rota, há api.request({ httpMethod, path, pathParams, queryParams, hasBody }, args).

Tratar erro

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: 'Cupom expirado' }]
  }
}

Opções do cliente

OpçãoPara quê
baseUrlO endereço da API. Use https://api.memberfy.net
token, communityId, profileId, languageValores iniciais dos headers
raw: trueDevolve o corpo cru, com o envelope
onUnauthorizedFunção chamada num 401
fetchUma implementação de fetch, para ambientes sem a nativa

Sempre atual

O SDK é gerado a cada vez que é servido, a partir das rotas da API. Baixar de novo é atualizar.

Para IA

Para um assistente gerar chamadas certas, entregue também o /docs.txt: o SDK diz como chamar; o /docs.txt diz o que enviar.

Relacionados