members.dev
Docs
Products

List Products

Lists Products

GET
/v1/products

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Query Parameters

page?integer

Page number

Default1
Range1 <= value
size?integer

Page size

Default50
Range1 <= value <= 100

Header Parameters

Members-Context?string

Members organization id (org_…) when the client has multiple organizations.

Default""

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://api.members.dev/v1/products"
{
  "items": [
    {
      "id": "prd_01KKSMB47VYGW97GFE67VGDK7M",
      "short_id": "XF42",
      "name": "Pro Plan",
      "description": "Access to advanced features",
      "image_url": "https://storage.googleapis.com/bucket/orgs/org_01ARZ/products/image_550e8400-e29b-41d4-a716-446655440000.png",
      "start": {
        "start_type": "auto"
      },
      "recurring": {
        "recurring_type": "never"
      },
      "expiry": {
        "expiry_type": "never"
      },
      "trial": {
        "interval": "week",
        "interval_count": 7
      },
      "price": {
        "id": "prc_01KKSMB47VYGW97GFE67VGDK7M",
        "price_type": "fixed",
        "amount": 999,
        "currency": "USD"
      },
      "joining_fee_amount": 0,
      "max_members": 1,
      "new_members_only": false,
      "status": "Active",
      "portal": {
        "is_member_visible": true
      },
      "state_transitions": {
        "archived_at": {}
      },
      "benefit_schedules": [
        {
          "recurring": {
            "recurring_type": "never"
          },
          "expiry": {
            "expiry_type": "never"
          },
          "benefit_grants": [
            {
              "benefit_id": "string",
              "value_initial": 0,
              "expiry": {
                "expiry_type": "never"
              }
            }
          ]
        }
      ],
      "created_at": null,
      "updated_at": null
    }
  ],
  "total": 0,
  "page": 1,
  "size": 1,
  "pages": 0
}
{
  "type": "https://api.members.dev/errors/invalid_credentials",
  "title": "Invalid credentials",
  "status": 401,
  "detail": "Invalid API Key or token.",
  "code": "invalid_credentials"
}
{
  "type": "https://api.members.dev/errors/not_linked_to_tenant",
  "title": "Not linked to tenant",
  "status": 403,
  "detail": "Not linked to this tenant",
  "code": "not_linked_to_tenant"
}
{
  "type": "https://api.members.dev/errors/member_not_found",
  "title": "Member not found",
  "status": 404,
  "detail": "No member exists with the given id in this organization.",
  "code": "member_not_found"
}
{
  "type": "https://api.members.dev/errors/members_context_required",
  "title": "Members context required",
  "status": 422,
  "detail": "This client has multiple organizations. Send the Members-Context header with the organization id (org_…) for this request.",
  "code": "members_context_required"
}
{
  "type": "https://api.members.dev/errors/rate_limit_exceeded",
  "title": "Rate limit exceeded",
  "status": 429,
  "detail": "Rate limit exceeded",
  "code": "rate_limit_exceeded"
}