# Show the plans a subscription can switch to

`GET https://rcur.app/api/v2/subscriptions/{subscriptionId}/plan`

The other plans in the group of the subscription, each with what a switch right away (with proration) and a switch at the next payment would cost. Empty when the subscription cannot switch.

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `subscriptionId` | string | yes |  |

## Example request

```bash
curl -X GET https://rcur.app/api/v2/subscriptions/YJRQAMRQ6y/plan \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
```

## Responses

### 200 The plans the subscription can switch to

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `current` | object | yes |  |
| `current.template_id` | string | no |  |
| `current.group_id` | string | no |  |
| `current.name` | string | no |  |
| `options` | array of objects | yes |  |
| `options[].plan` | string | no | Id of the template to switch to, to send as plan |
| `options[].name` | string | no |  |
| `options[].description` | string | no |  |
| `options[].direction` | string | no | One of: `upgrade`, `downgrade`, `interval`. |
| `options[].currency` | string | no |  |
| `options[].amount` | number | no | Amount per period of the new plan |
| `options[].interval` | string | no |  |
| `options[].timings` | object | no | What the switch means per moment; immediate is null when it is not possible for this subscription |
| `options[].timings.immediate` | object | no |  |
| `options[].timings.next_payment` | object | no |  |
| `scheduled` | SubscriptionPlanChange object | yes |  |
| `scheduled.status` | string | yes | One of: `scheduled`, `applied`, `cancelled`. |
| `scheduled.timing` | string | yes | One of: `immediate`, `next_payment`. |
| `scheduled.direction` | string | yes | One of: `upgrade`, `downgrade`, `interval`. |
| `scheduled.from` | string | yes |  |
| `scheduled.to` | string | yes |  |
| `scheduled.effective_on` | string | yes | Today for a switch right away, otherwise the date of the next payment |
| `scheduled.currency` | string | no |  |
| `scheduled.old_amount` | string | no |  |
| `scheduled.new_amount` | string | no |  |
| `scheduled.credit` | string | no | Credit for the unused part of the running period (switch right away) |
| `scheduled.settlement` | string | no | Amount charged for the switch (switch right away) |
| `scheduled.credit_left` | string | no | Credit that stays on the subscription for the next payments |

```json
{
    "current": {
        "template_id": "string",
        "group_id": null,
        "name": "string"
    },
    "options": [
        {
            "plan": "aB3dE5fG7h",
            "name": "Groot",
            "description": null,
            "direction": "upgrade",
            "currency": "EUR",
            "amount": 20,
            "interval": "maandelijks",
            "timings": {
                "immediate": {},
                "next_payment": {}
            }
        }
    ],
    "scheduled": {
        "status": "applied",
        "timing": "immediate",
        "direction": "upgrade",
        "from": "Klein",
        "to": "Groot",
        "effective_on": "2026-11-20",
        "currency": "EUR",
        "old_amount": "10.00",
        "new_amount": "20.00",
        "credit": "6.67",
        "settlement": "13.33",
        "credit_left": "0.00"
    }
}
```

### 404 Resource not found

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | integer | yes |  |
| `error` | string | yes |  |

```json
{
    "status": 404,
    "error": "Resource not found"
}
```
