curl --request GET \
--url 'https://management.scanova.io/plans/current/' \
--header 'Authorization: YOUR_API_KEY'
{
"is_active": true,
"is_free": false,
"expire": "2027-08-16",
"is_expired": false,
"days_left": 365,
"recurring_enabled": false,
"can_cancel_subscription": false,
"payment_method": null,
"pricing": null,
"plan": {
"id": 275,
"slug": "pro-scanova-io",
"name": "Pro - scanova.io",
"plan_type": "Normal",
"description": "...",
"version": 1,
"family": {
"id": 12,
"name": "Pro"
},
"quotas": [
{
"quota_id": 401,
"codename": "QR_CODE_LIMIT",
"name": "QR Code Limit",
"value": 100
}
],
"is_enterprise_plan": false,
"is_custom_plan": false
},
"upcoming_plan": null
}
Management API — Analytics & Plans
Current plan
GET /plans/current/
GET
/
plans
/
current
/
curl --request GET \
--url 'https://management.scanova.io/plans/current/' \
--header 'Authorization: YOUR_API_KEY'
{
"is_active": true,
"is_free": false,
"expire": "2027-08-16",
"is_expired": false,
"days_left": 365,
"recurring_enabled": false,
"can_cancel_subscription": false,
"payment_method": null,
"pricing": null,
"plan": {
"id": 275,
"slug": "pro-scanova-io",
"name": "Pro - scanova.io",
"plan_type": "Normal",
"description": "...",
"version": 1,
"family": {
"id": 12,
"name": "Pro"
},
"quotas": [
{
"quota_id": 401,
"codename": "QR_CODE_LIMIT",
"name": "QR Code Limit",
"value": 100
}
],
"is_enterprise_plan": false,
"is_custom_plan": false
},
"upcoming_plan": null
}
Returns the authenticated account’s active subscription plan — its expiry, billing state, and the full quota/permission set the plan grants.
Verified live against a Pro-plan test account —
Requires a Management API key with
MANAGEMENT_API (or MANAGEMENT_API_SANDBOX) quota, sent as the raw Authorization header value — see the Management API overview.Request
curl --request GET \
--url 'https://management.scanova.io/plans/current/' \
--header 'Authorization: YOUR_API_KEY'
{
"is_active": true,
"is_free": false,
"expire": "2027-08-16",
"is_expired": false,
"days_left": 365,
"recurring_enabled": false,
"can_cancel_subscription": false,
"payment_method": null,
"pricing": null,
"plan": {
"id": 275,
"slug": "pro-scanova-io",
"name": "Pro - scanova.io",
"plan_type": "Normal",
"description": "...",
"version": 1,
"family": {
"id": 12,
"name": "Pro"
},
"quotas": [
{
"quota_id": 401,
"codename": "QR_CODE_LIMIT",
"name": "QR Code Limit",
"value": 100
}
],
"is_enterprise_plan": false,
"is_custom_plan": false
},
"upcoming_plan": null
}
pricing and payment_method are null on this account because it isn’t currently on a paid recurring billing cycle; plan.quotas is truncated above for brevity (a real response includes every quota the plan grants).
Response fields
boolean
Whether the plan is currently active (not expired, not cancelled).
boolean
Whether this is a free-tier plan.
string
Expiry date (
YYYY-MM-DD), or the literal string "Lifetime" for a plan with no expiry.boolean
Whether the plan has already expired.
integer
Days remaining until
expire.boolean
Whether auto-renewal is on.
boolean
Whether the account is eligible to cancel its subscription from the dashboard.
object | null
The account’s on-file payment method, or
null if none is set (e.g. Free Trial/Enterprise-provisioned accounts).object | null
The specific pricing/billing-period record this plan was purchased under (
{id, name, period}, plus amount/currency when resolvable from order history), or null if the account has no billing history against this plan.object
The plan definition itself.
Show plan properties
Show plan properties
integer
string
string
string
Human-readable plan type, e.g.
Normal, Enterprise.string
integer
object
{id, name} — the plan family this plan belongs to (e.g. all tiers of “Pro”).array
Every quota this plan grants, each as
{quota_id, codename, name, value, ...}. codename is the stable identifier other endpoints’ quota-gate error messages refer to (e.g. MANAGEMENT_API, FOLDER_MANAGEMENT, EXPORT_ANALYTICS_REPORT).boolean
boolean
object | null
Same shape as
plan, if the account has a scheduled plan change (e.g. a downgrade taking effect at the end of the current billing cycle) — null otherwise.The canonical Pro plan does not grant
MANAGEMENT_API quota — only Free Trial, Enterprise, and Internal plans do in the verified test environment. If you’re building against this API and getting a 401 with "Your plan does not have management API quota.", check plan.quotas here for MANAGEMENT_API (or MANAGEMENT_API_SANDBOX) and contact support if you believe your plan should include it — there’s no self-serve upgrade path for this quota specifically at this time.Related
- Management API overview — the
environment-to-quota mapping (MANAGEMENT_API,INTEGRATION_ZAPIER,INTEGRATION_MCP) this endpoint’splan.quotascodenames correspond to. - Create an API token — where a key’s
environmentdetermines which of these quotas gets checked. - Export analytics — an endpoint gated by the
EXPORT_ANALYTICS_REPORTcodename you can check for here. - Folder management — an endpoint gated by the
FOLDER_MANAGEMENTcodename you can check for here.
Authorizations
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. management.scanova.io) — the same key sent to the regular API host will not authenticate.
Response
200 - application/json
Current plan detail — expiry, billing state, and the full quota/permission set the plan grants.
Was this page helpful?
⌘I