@platform/sdk-membership
Typed TypeScript client for services/membership. The page is generated from the SDK package source plus its generated OpenAPI types.
Installation
npm install @platform/sdk-membershipYou’ll also need the shared auth/client helpers:
npm install @platform/hosts @platform/sdkQuick start
import { LoopClient } from "@platform/sdk";
import { platformHost, SERVICE_NAMES } from "@platform/hosts";
import { createMembershipClient } from "@platform/sdk-membership";
const loop = new LoopClient({
clientId: process.env.LOOP_CLIENT_ID!,
clientSecret: process.env.LOOP_CLIENT_SECRET!,
redirectUri: "https://your-app.example.com/auth/loop/callback",
});
const membership = createMembershipClient({
baseUrl: platformHost({ service: SERVICE_NAMES.MEMBERSHIP }),
accessToken: tokens.access_token,
});Use the convenience helpers below when the SDK exposes them, or call the typed endpoint methods directly with GET / POST / PATCH / DELETE.
Convenience helpers
assignCoach
Underlying REST endpoint: POST /v1/coach-assignments
Parameters
input: AssignCoachInput
Return type
Promise<{
data?: paths["/v1/coach-assignments"]["post"]["responses"]["201"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.assignCoach({
/* AssignCoachInput */
});listAssignments
Underlying REST endpoint: GET /v1/coach-assignments
Parameters
input?: ListAssignmentsInput
Return type
Promise<{
data?: paths["/v1/coach-assignments"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.listAssignments({
/* ListAssignmentsInput */
});unassignCoach
Underlying REST endpoint: DELETE /v1/coach-assignments/\{id\}
Parameters
id: string
Return type
Promise<{
data?: paths["/v1/coach-assignments/{id}"]["delete"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.unassignCoach("<id>");Endpoint calls
GET /readyz
Underlying REST endpoint: GET /readyz
Parameters
None
Return type
Promise<{
data?: paths["/readyz"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/readyz");POST /v1/admin/commission-locks/release-expired
Underlying REST endpoint: POST /v1/admin/commission-locks/release-expired
Parameters
None
Return type
Promise<{
data?: paths["/v1/admin/commission-locks/release-expired"]["post"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.POST("/v1/admin/commission-locks/release-expired");POST /v1/admin/dunning/run-cycle
Underlying REST endpoint: POST /v1/admin/dunning/run-cycle
Parameters
None
Return type
Promise<{
data?: paths["/v1/admin/dunning/run-cycle"]["post"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.POST("/v1/admin/dunning/run-cycle");POST /v1/admin/subscriptions/check-status
Underlying REST endpoint: POST /v1/admin/subscriptions/check-status
Parameters
None
Return type
Promise<{
data?: paths["/v1/admin/subscriptions/check-status"]["post"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.POST("/v1/admin/subscriptions/check-status");GET /v1/coach-assignments
Underlying REST endpoint: GET /v1/coach-assignments
Parameters
query?: paths["/v1/coach-assignments"]["get"]["parameters"]["query"]
Return type
Promise<{
data?: paths["/v1/coach-assignments"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/v1/coach-assignments", {
params: {
query: {
/* paths["/v1/coach-assignments"]["get"]["parameters"]["query"] */
},
},
});POST /v1/coach-assignments
Underlying REST endpoint: POST /v1/coach-assignments
Parameters
body: paths["/v1/coach-assignments"]["post"]["requestBody"]["content"]["application/json"]
Return type
Promise<{
data?: paths["/v1/coach-assignments"]["post"]["responses"]["201"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.POST("/v1/coach-assignments", {
body: {
/* paths["/v1/coach-assignments"]["post"]["requestBody"]["content"]["application/json"] */
},
});DELETE /v1/coach-assignments/{id}
Underlying REST endpoint: DELETE /v1/coach-assignments/\{id\}
Parameters
path: paths["/v1/coach-assignments/{id}"]["delete"]["parameters"]["path"]
Return type
Promise<{
data?: paths["/v1/coach-assignments/{id}"]["delete"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.DELETE("/v1/coach-assignments/{id}", {
params: {
path: {
id: "<id>",
},
},
});POST /v1/memberships
Underlying REST endpoint: POST /v1/memberships
Parameters
body?: paths["/v1/memberships"]["post"]["requestBody"]["content"]["application/json"]
Return type
Promise<{
data?: paths["/v1/memberships"]["post"]["responses"]["201"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.POST("/v1/memberships", {
body: {
/* paths["/v1/memberships"]["post"]["requestBody"]["content"]["application/json"] */
},
});GET /v1/memberships/{id}
Underlying REST endpoint: GET /v1/memberships/\{id\}
Parameters
path: paths["/v1/memberships/{id}"]["get"]["parameters"]["path"]
Return type
Promise<{
data?: paths["/v1/memberships/{id}"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/v1/memberships/{id}", {
params: {
path: {
id: "<id>",
},
},
});GET /v1/memberships/{id}/history
Underlying REST endpoint: GET /v1/memberships/\{id\}/history
Parameters
path: paths["/v1/memberships/{id}/history"]["get"]["parameters"]["path"]
Return type
Promise<{
data?: paths["/v1/memberships/{id}/history"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/v1/memberships/{id}/history", {
params: {
path: {
id: "<id>",
},
},
});POST /v1/memberships/{id}/transition
Underlying REST endpoint: POST /v1/memberships/\{id\}/transition
Parameters
path: paths["/v1/memberships/{id}/transition"]["post"]["parameters"]["path"]body?: paths["/v1/memberships/{id}/transition"]["post"]["requestBody"]["content"]["application/json"]
Return type
Promise<{
data?: paths["/v1/memberships/{id}/transition"]["post"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.POST("/v1/memberships/{id}/transition", {
params: {
path: {
id: "<id>",
},
},
body: {
/* paths["/v1/memberships/{id}/transition"]["post"]["requestBody"]["content"]["application/json"] */
},
});GET /v1/memberships/{user_id}/conversion-eligibility
Underlying REST endpoint: GET /v1/memberships/\{user_id\}/conversion-eligibility
Parameters
path: paths["/v1/memberships/{user_id}/conversion-eligibility"]["get"]["parameters"]["path"]
Return type
Promise<{
data?: paths["/v1/memberships/{user_id}/conversion-eligibility"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/v1/memberships/{user_id}/conversion-eligibility", {
params: {
path: {
user_id: "<user_id>",
},
},
});GET /v1/memberships/access
Underlying REST endpoint: GET /v1/memberships/access
Parameters
query: paths["/v1/memberships/access"]["get"]["parameters"]["query"]
Return type
Promise<{
data?: paths["/v1/memberships/access"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/v1/memberships/access", {
params: {
query: {
/* paths["/v1/memberships/access"]["get"]["parameters"]["query"] */
},
},
});GET /v1/memberships/active
Underlying REST endpoint: GET /v1/memberships/active
Parameters
query: paths["/v1/memberships/active"]["get"]["parameters"]["query"]
Return type
Promise<{
data?: paths["/v1/memberships/active"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/v1/memberships/active", {
params: {
query: {
/* paths["/v1/memberships/active"]["get"]["parameters"]["query"] */
},
},
});GET /v1/memberships/lookup
Underlying REST endpoint: GET /v1/memberships/lookup
Parameters
query: paths["/v1/memberships/lookup"]["get"]["parameters"]["query"]
Return type
Promise<{
data?: paths["/v1/memberships/lookup"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/v1/memberships/lookup", {
params: {
query: {
/* paths["/v1/memberships/lookup"]["get"]["parameters"]["query"] */
},
},
});GET /v1/reactivation-plans
Underlying REST endpoint: GET /v1/reactivation-plans
Parameters
query?: paths["/v1/reactivation-plans"]["get"]["parameters"]["query"]
Return type
Promise<{
data?: paths["/v1/reactivation-plans"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/v1/reactivation-plans", {
params: {
query: {
/* paths["/v1/reactivation-plans"]["get"]["parameters"]["query"] */
},
},
});GET /v1/teams
Underlying REST endpoint: GET /v1/teams
Parameters
None
Return type
Promise<{
data?: paths["/v1/teams"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/v1/teams");GET /v1/teams/{id}
Underlying REST endpoint: GET /v1/teams/\{id\}
Parameters
path: paths["/v1/teams/{id}"]["get"]["parameters"]["path"]
Return type
Promise<{
data?: paths["/v1/teams/{id}"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/v1/teams/{id}", {
params: {
path: {
id: "<id>",
},
},
});POST /v1/teams/{id}/invites
Underlying REST endpoint: POST /v1/teams/\{id\}/invites
Parameters
path: paths["/v1/teams/{id}/invites"]["post"]["parameters"]["path"]body: paths["/v1/teams/{id}/invites"]["post"]["requestBody"]["content"]["application/json"]
Return type
Promise<{
data?: paths["/v1/teams/{id}/invites"]["post"]["responses"]["201"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.POST("/v1/teams/{id}/invites", {
params: {
path: {
id: "<id>",
},
},
body: {
/* paths["/v1/teams/{id}/invites"]["post"]["requestBody"]["content"]["application/json"] */
},
});GET /v1/teams/invites/{code}
Underlying REST endpoint: GET /v1/teams/invites/\{code\}
Parameters
path: paths["/v1/teams/invites/{code}"]["get"]["parameters"]["path"]
Return type
Promise<{
data?: paths["/v1/teams/invites/{code}"]["get"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.GET("/v1/teams/invites/{code}", {
params: {
path: {
code: "<code>",
},
},
});POST /v1/teams/invites/{code}/accept
Underlying REST endpoint: POST /v1/teams/invites/\{code\}/accept
Parameters
path: paths["/v1/teams/invites/{code}/accept"]["post"]["parameters"]["path"]
Return type
Promise<{
data?: paths["/v1/teams/invites/{code}/accept"]["post"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.POST("/v1/teams/invites/{code}/accept", {
params: {
path: {
code: "<code>",
},
},
});POST /v1/teams/invites/{code}/decline
Underlying REST endpoint: POST /v1/teams/invites/\{code\}/decline
Parameters
path: paths["/v1/teams/invites/{code}/decline"]["post"]["parameters"]["path"]
Return type
Promise<{
data?: paths["/v1/teams/invites/{code}/decline"]["post"]["responses"]["200"]["content"]["application/json"];
error?: unknown;
response: Response;
}>Example
const result = await membership.POST("/v1/teams/invites/{code}/decline", {
params: {
path: {
code: "<code>",
},
},
});