Change Subscription Plan
/v1/graphs/{graph_id}/subscriptionsPart of Subscriptions.
For repositories: synchronous tier change. For user graphs: use POST /v1/graphs/{graph_id}/operations/change-tier instead — this endpoint rejects graph tier changes. Requires org owner role.
Authentication
Authenticate in any one of these ways — not all of them:
- API key in the
X-API-Keyheader. - Bearer token in the
Authorizationheader.
Path parameters
| Name | Type | Description |
|---|---|---|
graph_idrequired | string | Graph ID or repository name |
Request body
Required, application/json.
| Field | Type | Description |
|---|---|---|
new_plan_namerequired | string | New plan name to change to |
user_idoptional | string | Organization member whose subscription to change. Defaults to the caller; targeting another member requires org owner or admin. |
Example request
curl -X PATCH "https://api.robosystems.ai/v1/graphs/{graph_id}/subscriptions" \
-H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"new_plan_name": "advanced"
}'Responses
200 Successful Response
| Field | Type | Description |
|---|---|---|
idrequired | string | Subscription ID |
resource_typerequired | string | Resource type (graph or repository) |
resource_idrequired | string | Resource identifier |
user_idoptional | string | Organization member the subscription belongs to. Set for repository subscriptions, which are billed to the org but granted per user. |
plan_namerequired | string | Current plan name |
plan_display_namerequired | string | Human-readable plan name for UI display |
billing_intervalrequired | string | Billing interval |
statusrequired | string | Subscription status |
base_price_centsrequired | integer | Base price in cents |
current_period_startoptional | string | Current billing period start |
current_period_endoptional | string | Current billing period end |
started_atoptional | string | Subscription start date |
canceled_atoptional | string | Cancellation date |
ends_atoptional | string | Subscription end date (when access will be revoked, especially relevant for cancelled subscriptions) |
created_atrequired | string | Creation timestamp |
operation_idoptional | string | Operation ID for tracking async tier changes via SSE |
| Status | Meaning |
|---|---|
| 400 | Invalid request |
| 401 | Authentication required |
| 403 | Access denied |
| 404 | Resource not found |
| 422 | Validation Error |
| 429 | Rate limit exceeded |
| 500 | Internal server error |