members.dev
Products

Get Product Catalog

Returns the Product Catalog

GET
/v1/products/catalog

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Header Parameters

Members-Context?string

Organization id (org_…) or short id. Required when no portal session bearer token is sent.

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/portal/v1/products/catalog"
{
  "categories": [
    {
      "id": "prdcat_01ARZ3NDEKTSV4RRFFQ69G5FAV",
      "title": "Memberships",
      "description": "Full and concession membership options.",
      "products": [
        {
          "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
        }
      ]
    }
  ],
  "uncategorized_products": [
    {
      "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
    }
  ]
}
{
  "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"
}