Skip to main content

SubscriptionActionResponse

Response for subscription actions (cancel/reactivate).

successSuccess (boolean)required
messageMessage (string)required
subscription object
anyOf
user_idUser Id (string)required
plan objectrequired

Subscription plan details.

idId (string)required
nameName (string)required
descriptionDescription (string)required
pricePrice (number)required
intervalInterval (string)required

Billing interval (month/year)

features objectrequired

Features included in a subscription plan.

api_callsApi Calls (string)required
geofencesGeofences (string)required
webhooksWebhooks (string)required
test_pointsTest Points (string)required
supportSupport (string)required
custom_domains object
anyOf
string
sla object
anyOf
string
feature_liststring[]

Feature list from model

limits objectrequired

Usage limits for a subscription plan.

api_callsApi Calls (integer)required

Monthly API call limit (-1 for unlimited)

geofencesGeofences (integer)required

Maximum number of geofences (-1 for unlimited)

webhooks_deliveredWebhooks Delivered (integer)required

Monthly webhook delivery limit (-1 for unlimited)

test_pointsTest Points (integer)required

Monthly test point limit (-1 for unlimited)

rate_limit_per_hourRate Limit Per Hour (integer)required

Hourly rate limit

devicesDevices (integer)

Maximum devices per workspace (-1 for unlimited)

Default value: 5
log_retention_daysLog Retention Days (integer)

Log retention in days (-1 for unlimited)

Default value: 7
location_retention_daysLocation Retention Days (integer)

Location data retention in days

Default value: 90
stripe_price_id object

Stripe price ID for checkout

anyOf
string
tierTier (string)

Lowercase plan name (e.g., 'free', 'pro')

Default value:
display_nameDisplay Name (string)

Human-readable plan name

Default value:
price_monthlyPrice Monthly (number)

Monthly price in dollars

Default value: 0
price_yearlyPrice Yearly (number)

Yearly price in dollars

Default value: 0
stripe_price_monthly_id object

Stripe monthly price ID

anyOf
string
stripe_price_yearly_id object

Stripe yearly price ID

anyOf
string
event_overage_rateEvent Overage Rate (number)

Price per extra 100k events

Default value: 0
geofence_overage_rateGeofence Overage Rate (number)

Price per extra 100 geofences

Default value: 0
is_featuredIs Featured (boolean)

Whether this plan is featured/recommended

Default value: false
statusStatus (string)required

Subscription status (active/canceled/past_due)

current_period_start object

ISO 8601 datetime

anyOf
string
current_period_end object

ISO 8601 datetime

anyOf
string
cancel_at_period_endCancel At Period End (boolean)
Default value: false
created_atCreated At (string)required

ISO 8601 datetime

updated_atUpdated At (string)required

ISO 8601 datetime

SubscriptionActionResponse
{
"success": true,
"message": "string",
"subscription": {
"cancel_at_period_end": false,
"created_at": "2025-06-15T10:00:00Z",
"current_period_end": "2025-11-01T00:00:00Z",
"current_period_start": "2025-10-01T00:00:00Z",
"plan": {
"description": "For growing teams with advanced automation needs",
"display_name": "Pro",
"features": {
"api_calls": "100,000/month",
"feature_list": [
"Advanced workflows",
"Webhook templates"
],
"geofences": "500",
"support": "Priority email",
"test_points": "50,000/month",
"webhooks": "50,000/month"
},
"id": "plan_pro",
"interval": "month",
"is_featured": true,
"limits": {
"api_calls": 100000,
"devices": 25,
"geofences": 500,
"location_retention_days": 90,
"log_retention_days": 30,
"rate_limit_per_hour": 5000,
"test_points": 50000,
"webhooks_delivered": 50000
},
"name": "Pro",
"price": 49,
"price_monthly": 49,
"price_yearly": 470,
"tier": "pro"
},
"status": "active",
"updated_at": "2025-10-01T00:00:00Z",
"user_id": "u1a2b3c4-d5e6-7890-abcd-ef1234567890"
}
}