# List Entitlement Cancellation Requests

`GET https://api.suger.cloud/org/{orgId}/entitlement/{entitlementId}/cancel`

List entitlement cancellation requests with filtering, sorting, and pagination.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `orgId` | path | string | yes | Organization ID |
| `entitlementId` | path | string | yes | Entitlement ID |
| `page_size` | query | integer | no | Number of items per page (default 20, max 1000) |
| `page_number` | query | integer | no | Page number (default 1) |
| `q` | query | string | no | LISP-style filter expression (e.g., '(= status \ |
| `s` | query | string | no | Sort fields: 'field:asc,field2:desc' or '-field,field2' format (e.g., 'created_at:desc,status:asc') |

## Responses

### 200 — Paginated list of entitlement cancellation requests

Content-Type: `application/json` · Schema: `ListBaseResponse-EntitlementCancellationRequest`

**`ListBaseResponse-EntitlementCancellationRequest`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array<EntitlementCancellationRequest> | no |  |
| `page_number` | integer | no |  |
| `page_size` | integer | no |  |
| `total_count` | integer | no | TotalCount is the number of matching rows, counted up to ListCountCap. When TotalCountCapped is true it is that cap rather than the real total. |
| `total_count_capped` | boolean | no | TotalCountCapped reports that more rows match than TotalCount says: the count stopped at ListCountCap because an exact total costs a full scan of everything the filter matches. Clients should present TotalCount as a lower bound ("10,000+") when this is set. Omitted when false, so clients that predate the field are unaffected. |

**`EntitlementCancellationRequest`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string | no | CreatedAt holds the value of the "created_at" field. |
| `createdBy` | LastModifiedBy | no |  |
| `entitlementID` | string | no | EntitlementID holds the value of the "entitlement_id" field. |
| `externalRequestID` | string | no | ExternalRequestID holds the value of the "external_request_id" field. |
| `id` | string | no | ID of the ent. |
| `info` | EntitlementCancellationRequestInfo | no |  |
| `lastUpdatedAt` | string | no | LastUpdatedAt holds the value of the "last_updated_at" field. |
| `organizationID` | string | no | OrganizationID holds the value of the "organization_id" field. |
| `partner` | string | no | Partner holds the value of the "partner" field. |
| `status` | string | no | Status holds the value of the "status" field. |
| `statusMessage` | string | no | StatusMessage holds the value of the "status_message" field. |

**`LastModifiedBy`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `email` | string | no | The email of the creator. |
| `entityId` | string | no | The ID of the creator. |
| `entityType` | EntityType | no |  |
| `name` | string | no | The name of the creator. |

**`EntitlementCancellationRequestInfo`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `awsClientToken` | string | no | AwsClientToken is the UUID client token for idempotency. |
| `awsReasonCode` | string | no | AwsReasonCode is the cancellation reason code from AWS SDK. |
| `awsReasonDescription` | string | no | AwsReasonDescription is the description of the cancellation reason. |

### 400 — Bad request error

Content-Type: `application/json`

### 500 — Internal server error

Content-Type: `application/json`

## Example

_Generated from this operation's schema. Values are placeholders — substitute your own ids, and set `SUGER_TOKEN` to a bearer token from the [OAuth client-credentials exchange](https://doc.fours.com/settings/oauth-app/)._

### Request

```bash
curl -X GET 'https://api.suger.cloud/org/{orgId}/entitlement/{entitlementId}/cancel' \
  -H "Authorization: Bearer $SUGER_TOKEN"
```

### Response — 200

```json
{
  "data": [
    {
      "createdAt": "2026-01-31T12:00:00Z",
      "createdBy": {
        "email": "buyer@example.com",
        "entityId": "01H0000000000000000000",
        "entityType": "",
        "name": "Acme Corp"
      },
      "entitlementID": "01H0000000000000000000",
      "externalRequestID": "01H0000000000000000000",
      "id": "01H0000000000000000000",
      "info": {
        "awsClientToken": "string",
        "awsReasonCode": "string",
        "awsReasonDescription": "string"
      },
      "lastUpdatedAt": "2026-01-31T12:00:00Z",
      "organizationID": "01H0000000000000000000",
      "partner": "string",
      "status": "string",
      "statusMessage": "string"
    }
  ],
  "page_number": 1,
  "page_size": 1,
  "total_count": 1,
  "total_count_capped": true
}
```

### Error — 400

```json
"string"
```

---

API reference: https://doc.fours.com/api/
