---
title: Subscription Actions
description: The recorded action attempts for the subscriptions of the user.

---

# Subscription Actions

The recorded action attempts for the subscriptions of the user.


## [GET /subscription-actions](/end-user-api/subscription-actions#tag/subscription-actions/GET/subscription-actions)

List subscription actions

List actions across subscriptions belonging to customers you can access, newest scheduled first. Removed plans that never started are excluded.

Authentication: X-Api-Key + Bearer JWT

### Query parameters

- `limit` (`integer`, optional, >= 1, <= 1000, default 100) — The maximum number of items to return.
- `cursor` (`string`, optional) — Opaque pagination token from a previous response's nextCursor.
- `customerId` (`array of string`, optional) — Filter by customer IDs. When omitted, include all customers visible to the caller.
- `subscriptionId` (`string`, optional) — Optionally restrict results to one subscription of the selected customers.

### Responses

#### 200

Subscription actions retrieved successfully

Type: `object`

- `items` (`array of SubscriptionAction`, required)
  - `actionId` (`string`, required) — Unique identifier for this action.
  - `applyAt` (`string`, required, date-time) — When the operation is scheduled to take effect.
  - `createdAt` (`string`, required, date-time) — When the action was created.
  - `customerId` (`string`, required) — Customer that owns the subscription.
  - `executionFinishedAt` (`string`, optional, date-time) — When execution ended, if it has finished.
  - `executionStartedAt` (`string`, optional, date-time) — When execution began, if it has started.
  - `scheduleMode` (`enum<string>`, required, one of UNKNOWN, IMMEDIATE, AT_SPECIFIED_DATE, AT_SPECIFIED_DATE_TIME, ON_DEMAND, example ON_DEMAND) — How the action is scheduled. UNKNOWN means that the schedule mode is not known. IMMEDIATE starts execution at once. AT_SPECIFIED_DATE and AT_SPECIFIED_DATE_TIME target a specified date or time. ON_DEMAND starts execution on demand. A caller must tolerate new values.
  - `status` (`enum<string>`, required, one of UNKNOWN, PENDING, RUNNING, SUCCESS, FAILURE, example PENDING) — The recorded execution state of an action. UNKNOWN means that the state is not known. PENDING waits for execution. RUNNING is in progress. SUCCESS and FAILURE describe the result of execution. A caller must tolerate new values.
  - `subscriptionId` (`string`, required) — Subscription affected by this action.
  - `type` (`enum<string>`, required, one of UNKNOWN, CREATE, CREATE_WITH_PORT_IN, CHANGE_PRODUCT, CHANGE_SIM_CARD, CHANGE_VANITY_NUMBER_FORWARD, CHANGE_MSISDN, CHANGE_MSISDN_WITH_PORT_IN, GET_NEW_MSISDN, CHANGE_RATE_PLAN, PAUSE, SUSPEND, BAR, RESTORE, CANCEL, RESET_NETWORK, ENABLE_ADDON, CANCEL_ADDON, CHANGE_ADDON_PRODUCT, EXPIRE_ADDON, MOVED_FROM_ANOTHER_CUSTOMER, CANCEL_DEVICE_LOCATION, RESET_VOICEMAIL_PASSWORD, UPDATE_ROAMING_LIMIT, ENABLE_VOWIFI, RESEND_ESIM_QR_CODE, RECONNECT, CHANGE_E911_ADDRESS, TOPUP, MOVE_TO_ANOTHER_CUSTOMER, OPEN_FOR_OUTPORTING, ADD_CONTRACT_PERIOD, LEGACY_UPDATE, example ENABLE_VOWIFI) — The kind of recorded subscription action. The list includes legacy values that can occur in historical records. A caller must tolerate new values.
  - `updatedAt` (`string`, required, date-time) — When the action was most recently updated.
- `pagination` (`object`, required) — Cursor-based pagination information returned by list endpoints. Pass `nextCursor` as the `cursor` query parameter of the next request to fetch the following page.
  - `nextCursor` (`string | null`, required, example eyJvZmZzZXQiOjEwMH0) — Opaque token for fetching the next page. Null when no more results.

#### 400

The request was malformed or invalid.

Type: [Error](/end-user-api/models.md#models/Error)

#### 401

Authentication is required to access this resource.

Type: [Error](/end-user-api/models.md#models/Error)

#### 403

Access to this resource is forbidden.

Type: [Error](/end-user-api/models.md#models/Error)

#### 500

An unexpected error occurred on the server.

Type: [Error](/end-user-api/models.md#models/Error)

### Example request

```bash
curl https://apiv2.example.com/api/v2/end-user/subscription-actions \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
```

## [GET /subscription-actions/{actionId}](/end-user-api/subscription-actions#tag/subscription-actions/GET/subscription-actions/{actionId})

Get subscription action

Get the execution state of an action. Actions outside your customer scope and missing actions both return not found.

Authentication: X-Api-Key + Bearer JWT

### Path parameters

- `actionId` (`string`, required) — Unique identifier of the action.

### Responses

#### 200

Subscription action retrieved successfully

Type: [SubscriptionAction](/end-user-api/models.md#models/SubscriptionAction)

#### 400

The request was malformed or invalid.

Type: [Error](/end-user-api/models.md#models/Error)

#### 401

Authentication is required to access this resource.

Type: [Error](/end-user-api/models.md#models/Error)

#### 403

Access to this resource is forbidden.

Type: [Error](/end-user-api/models.md#models/Error)

#### 404

The requested resource was not found.

Type: [Error](/end-user-api/models.md#models/Error)

#### 500

An unexpected error occurred on the server.

Type: [Error](/end-user-api/models.md#models/Error)

### Example request

```bash
curl https://apiv2.example.com/api/v2/end-user/subscription-actions/ACTION_ID \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
```
