# GET memberships/:id

Read a partner membership and its associated terms.

## Purpose

Read a partner membership and its associated terms.

## Authentication and scope

Use an app-scoped affiliate API key with `memberships:read`. Record IDs must belong to the credential's app and workspace. A workspace MCP key or install-bridge key is not interchangeable with this key.

## Request

`GET /api/affiliate-platform/v1/memberships/:id`

The `id` path parameter is a HeyCrust UUID returned by the corresponding list/detail operation. This operation does not accept query parameters.

Use the exact record identifier returned for your own app.

## Example

Set the environment credential from your authenticated Developers screen. Replace the fictional record IDs and shop/contact values. This request reads existing records.

```bash
curl --request GET "https://heycrust.com/api/affiliate-platform/v1/memberships/11111111-1111-4111-8111-111111111111" \
  --header "Authorization: Bearer $HEYCRUST_AFFILIATE_API_KEY"
```

## Response and verification

The response is the operation's program, membership, terms, referral, commission or payout-history representation. Verify its app/record identity and state; acceptance of a request is not proof of an external transfer or attributed Shopify install.

Successful responses use `Cache-Control: no-store` and `X-Affiliate-Schema-Version: 1`. Money uses currency plus minor-unit integer strings; currencies stay separate.

## Errors and recovery

401 means missing/invalid/revoked credentials; 403 means denied app/scope/resource access. Invalid fields produce 400, unsupported operation/path 404, conflict/source/review conditions 409, and the DB-backed credential quota produces 429 with `Retry-After`. The public affiliate quota is 120 requests per credential per minute. Validate the response body as well as the status. JSON mutation bodies must fit the 65,536-byte request bound.

Read [API overview](/docs/api) and [Developer integration](/docs/developers).

## Response example

Successful response excerpt exercised through the actual handler with isolated fixtures. Other fields are omitted. IDs, dates and merchant values are fictional; this is an example state, not a universal outcome.

```json
{
  "id": "11111111-1111-4111-8111-111111111111",
  "programId": "11111111-1111-4111-8111-111111111111",
  "appId": "11111111-1111-4111-8111-111111111111",
  "status": "approved",
  "eligible": true,
  "termsAccepted": true,
  "currentTermsAccepted": true
}
```
