> For the complete documentation index, see [llms.txt](https://developer.celigo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.celigo.com/api/api-reference/subscription-and-entitlements.md).

# Subscription & Entitlements

Subscription (license) information and entitlement usage for the current account, including plan details, feature limits, and consumption metrics.

### License schema

## The License object

```json
{"openapi":"3.2.0","info":{"title":"Subscription & Entitlements","version":"1.0.0"},"components":{"schemas":{"License":{"type":"object","required":["_id","type","created","lastModified"],"description":"Subscription plan or connector/Integration App license. Fields describe\nwhat the plan **entitles**, not what is configured on the account.","properties":{"_id":{"type":"string","format":"objectId","readOnly":true,"description":"License identifier."},"created":{"type":"string","format":"date-time","readOnly":true,"description":"License creation timestamp."},"lastModified":{"type":"string","format":"date-time","readOnly":true,"description":"Last modification timestamp."},"expires":{"type":"string","format":"date-time","description":"License expiration timestamp."},"type":{"type":"string","description":"License type (subscription category). Only the account-level license describes the full subscription plan.","enum":["integrator","platform","endpoint","connector","integrationApp","integrationAppChild"]},"cdc":{"type":"boolean","description":"When true, the account is licensed for CDC (change data capture) features."},"tier":{"type":"string","description":"Subscription tier name — the plan level the account is on. On `platform` licenses a year\nmarker in the name identifies the plan generation; the rest of the name is free-form\n(packages, custom names)."},"supportTier":{"type":"string","description":"Support plan level.","enum":["essential","preferred","premier"]},"trialEndDate":{"type":"string","format":"date-time","description":"Trial end timestamp. Remains populated after the trial ends with the original expiration date."},"_connectorId":{"type":"string","format":"objectId","description":"Connector id. Present on `connector`, `integrationApp`, and `integrationAppChild` licenses."},"_integrationId":{"type":"string","format":"objectId","description":"Integration id. Present on `connector`, `integrationApp`, and `integrationAppChild` licenses."},"_editionId":{"type":"string","format":"objectId","description":"Edition id — present on `integrationApp` and `integrationAppChild` licenses."},"_parentId":{"type":"string","format":"objectId","description":"Parent license id — present only on `integrationAppChild` licenses. References the parent `integrationApp` license."},"opts":{"type":"object","description":"Connector/license options (connector edition, add-on licenses, etc.). Present only on connector-specific licenses."},"resumable":{"type":"boolean","readOnly":true,"description":"When true, the license/account is eligible for self-service resume after suspension."},"disableOverage":{"type":"boolean","description":"When true, overage charges are disabled for this account."},"requestUserToMigrateSandbox":{"type":"boolean","description":"When true, the user should be prompted to migrate legacy sandbox data to environments."},"endpoint":{"type":"object","description":"Entitlements for endpoint-style licenses. Present only when `type` is `endpoint`.","properties":{"production":{"$ref":"#/components/schemas/LicenseEntitlementCounts"},"numEnvironments":{"type":"integer","description":"Maximum number of environments the plan allows."}}},"integrator":{"type":"object","description":"Entitlements for integrator-style licenses. Present only when `type` is `integrator`.","properties":{"production":{"$ref":"#/components/schemas/LicenseEntitlementCounts"},"numEnvironments":{"type":"integer","description":"Maximum number of environments the plan allows."}}},"platform":{"type":"object","description":"Entitlements for platform-style licenses. Present only when `type` is `platform`.","properties":{"production":{"$ref":"#/components/schemas/LicenseEntitlementCounts"},"numEnvironments":{"type":"integer","description":"Maximum number of environments the plan allows."},"apiManagement":{"type":"boolean","description":"When true, the platform plan includes API Management."}}},"sso":{"type":"boolean","description":"When true, the plan entitles the account to use SSO (Single Sign-On)."},"van":{"type":"boolean","description":"When true, the plan entitles the account to use VAN (Value Added Network) for EDI."},"lookupCache":{"type":"boolean","description":"When true, the plan entitles the account to use Lookup Caches (in-memory lookups)."},"abstractFlows":{"type":"boolean","description":"When true, the plan entitles the account to use Abstract Flows (multi-instance templates)."},"apiManagement":{"type":"boolean","description":"When true, the plan entitles the account to use API Management (APIM)."},"concurrency":{"type":"integer","description":"Maximum number of concurrent flow executions the plan allows."},"maxAllowedDataRetention":{"type":"integer","description":"Maximum data retention period (in days) the plan allows."},"auditLogRetentionYears":{"type":"integer","description":"Maximum audit log retention (in years) the plan allows."},"aiConversationsPrepaidBalance":{"type":"number","description":"Remaining prepaid credit balance for Ora (Celigo's AI assistant).\nCustomers purchase credits up front and usage costs are deducted\nas they interact with Ora."},"aiAgentsPrepaidBalance":{"type":"number","description":"Remaining prepaid credit balance for AI Agents — LLM/AI capabilities\nused within flows, APIs, and automations (e.g., AI-powered transforms,\nhooks). Customers purchase credits up front and usage costs are\ndeducted as AI agents run. This balance is separate from Ora credits."},"aiAgentsActions":{"type":"integer","description":"Total AI agent action entitlement for the current billing period."},"mcp":{"type":"object","description":"MCP (Model Context Protocol) server entitlements.","required":["numInvocations"],"properties":{"numInvocations":{"type":"integer","description":"Base number of MCP server invocations per month included with the plan."}}},"di":{"type":"object","description":"Data Interchange (DI) entitlements.","required":["enabled","volume","volumeAddOn","disableOverage"],"properties":{"enabled":{"type":"boolean","description":"When true, the plan entitles the account to use Data Interchange."},"volume":{"type":"integer","description":"Base DI volume included with the plan."},"volumeAddOn":{"type":"integer","description":"Additional DI volume the customer purchased as add-ons."},"disableOverage":{"type":"boolean","description":"When true, Data Interchange overage charges are disabled."}}},"api":{"type":"object","description":"API Builder plan entitlements and invocation limits.","required":["builder","enablePricing","disableOverages","numInvocations","apimNumInvocations","numAddOnInvocations"],"properties":{"builder":{"type":"boolean","description":"When true, the plan entitles the account to use API Builder (building custom HTTP APIs on the Celigo platform)."},"enablePricing":{"type":"boolean","description":"When true, API pricing and billing features are enabled."},"disableOverages":{"type":"boolean","description":"When true, API overage charges are disabled."},"numInvocations":{"type":"integer","description":"Base number of API calls per month included with the plan."},"apimNumInvocations":{"type":"integer","description":"Base number of APIM API calls per month included with the plan."},"numAddOnInvocations":{"type":"integer","description":"Additional API calls per month the customer purchased as add-ons."}}},"edi":{"type":"object","description":"EDI (Electronic Data Interchange) plan entitlements.","required":["enabled","tier","numTradingPartners","numAddOnTradingPartners","numDocumentTypes","numAddOnDocumentTypes"],"properties":{"enabled":{"type":"boolean","description":"When true, the plan entitles the account to use EDI (B2B Manager)."},"onboarded":{"type":"boolean","description":"When true, the account has completed EDI onboarding."},"tier":{"type":"string","description":"B2B Manager subscription tier.","enum":["free","basic","advanced","expert"]},"disableOverage":{"type":"boolean","description":"When true, EDI overage charges are disabled."},"numTradingPartners":{"type":"integer","description":"Base number of EDI trading partners included with the plan."},"numAddOnTradingPartners":{"type":"integer","description":"Additional EDI trading partners the customer purchased as add-ons."},"numDocumentTypes":{"type":"integer","description":"Base number of EDI document types included with the plan."},"numAddOnDocumentTypes":{"type":"integer","description":"Additional EDI document types the customer purchased as add-ons."},"labelPrinting":{"type":"object","description":"EDI label-printing (BarTender) entitlements. Absent when the\nlabel-printing capability is unavailable platform-wide.","required":["enabled","onboarded","numLabels","numAddOnLabels"],"properties":{"enabled":{"type":"boolean","description":"When true, the plan entitles the account to use EDI label printing."},"onboarded":{"type":"boolean","description":"When true, the account has completed label-printing onboarding."},"numLabels":{"type":"integer","description":"Base weekly label allowance included with the plan. The effective\nweekly cap is `numLabels` plus `numAddOnLabels`."},"numAddOnLabels":{"type":"integer","description":"Additional weekly label allowance the customer purchased as add-ons."}}}}},"logging":{"type":"object","description":"Execution logging plan entitlements. A plan that does not entitle execution\nlogging carries only `enabled: false`; the cap fields appear when the plan\ndefines them. Trial accounts carry the trial's entitlement until `trialEndDate`;\nan account that does not convert then reads `enabled: false` (or no block).","required":["enabled"],"properties":{"enabled":{"type":"boolean","description":"When true, the plan entitles the account to use execution logging."},"maxLogMode":{"type":"string","description":"Maximum persistent execution-log mode (`flow.logging.mode`) the plan allows;\npresent when the plan defines this cap. A flow mode above this level is\noutside the entitlement regardless of the account's Store payloads consent.\nTime-boxed debug windows (`flow.logging.debugUntil`) are not governed by\nthis cap: they are governed by `enabled`, `maxDebugDuration`, and the\naccount's Store payloads consent.","enum":["basic","detailed"]},"maxDebugDuration":{"type":"integer","description":"Maximum time (in minutes) the plan allows a user to enable debug logging for. Present when the plan defines this cap."},"maxRetentionPeriod":{"type":"integer","description":"Maximum execution log retention period (in days) the plan allows. Present when the plan defines this cap."}}},"storage":{"type":"object","description":"File-storage entitlements. Always present on account-level licenses\n(`type` is `integrator`, `endpoint`, or `platform`); absent on\nconnector and Integration App licenses.","required":["maxAllowedUsage","disableOverage"],"properties":{"maxAllowedUsage":{"type":"number","minimum":0,"description":"Maximum file-storage usage the plan allows, in GB — the same\nquota `GET /v1/storage/usage` reports in bytes as\n`maxAllowedUsage`. Reported as 1 for accounts without an\nexplicit storage entitlement."},"disableOverage":{"type":"boolean","description":"When true, file-storage overage charges are disabled."}}}},"if":{"properties":{"type":{"const":"platform"}}},"then":{"required":["platform"]},"else":{"if":{"properties":{"type":{"const":"integrator"}}},"then":{"required":["integrator"]},"else":{"if":{"properties":{"type":{"const":"endpoint"}}},"then":{"required":["endpoint"]},"else":{"if":{"properties":{"type":{"enum":["connector","integrationApp","integrationAppChild"]}}},"then":{"required":["_connectorId"]}}}}},"LicenseEntitlementCounts":{"type":"object","description":"Entitlement counts for a given environment. For each resource type, a\n`num*` field holds the base plan count and a `numAddOn*` field holds\nadditional capacity purchased as add-ons.","required":["numEndpoints","numAddOnEndpoints","numFlows","numAddOnFlows","numAgents","numAddOnAgents"],"properties":{"numEndpoints":{"type":"integer","description":"Base number of endpoints (distinct connected applications) included with the plan, per\nenvironment. Whether the count is taken from endpoints in use or from endpoints invoked\nin the billing period depends on the account's pricing model."},"numAddOnEndpoints":{"type":"integer","description":"Additional endpoints the customer purchased as add-ons."},"numFlows":{"type":"integer","description":"Base flow entitlement included with the plan, per environment. Whether it caps enabled\nflows or the distinct flows run in a billing period — and whether reaching it blocks or\nonly notifies — depends on the account's pricing model."},"numAddOnFlows":{"type":"integer","description":"Additional flows the customer purchased as add-ons."},"numTradingPartners":{"type":"integer","description":"Base number of trading partners included with the plan."},"numAddOnTradingPartners":{"type":"integer","description":"Additional trading partners the customer purchased as add-ons."},"numAgents":{"type":"integer","description":"Base number of on-premise agents included with the plan."},"numAddOnAgents":{"type":"integer","description":"Additional on-premise agents the customer purchased as add-ons."}}}}}}
```

## Get licenses (subscription)

> Returns one account-level license (\`type\` is \`platform\`, \`integrator\`, or\
> \`endpoint\`) plus zero or more \`connector\`, \`integrationApp\`, or\
> \`integrationAppChild\` licenses.

```json
{"openapi":"3.2.0","info":{"title":"Subscription & Entitlements","version":"1.0.0"},"tags":[{"name":"Subscription & Entitlements","description":"Subscription (license) information and entitlement usage for the current account, including plan details, feature limits, and consumption metrics.\n\n## License schema\n\n{% openapi-schemas spec=\"subscription\" schemas=\"License\" grouped=\"true\" %}"}],"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"},{"url":"https://api.au.integrator.io","description":"Production (AU region)"},{"url":"https://api.ca.integrator.io","description":"Production (CA region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"License":{"type":"object","required":["_id","type","created","lastModified"],"description":"Subscription plan or connector/Integration App license. Fields describe\nwhat the plan **entitles**, not what is configured on the account.","properties":{"_id":{"type":"string","format":"objectId","readOnly":true,"description":"License identifier."},"created":{"type":"string","format":"date-time","readOnly":true,"description":"License creation timestamp."},"lastModified":{"type":"string","format":"date-time","readOnly":true,"description":"Last modification timestamp."},"expires":{"type":"string","format":"date-time","description":"License expiration timestamp."},"type":{"type":"string","description":"License type (subscription category). Only the account-level license describes the full subscription plan.","enum":["integrator","platform","endpoint","connector","integrationApp","integrationAppChild"]},"cdc":{"type":"boolean","description":"When true, the account is licensed for CDC (change data capture) features."},"tier":{"type":"string","description":"Subscription tier name — the plan level the account is on. On `platform` licenses a year\nmarker in the name identifies the plan generation; the rest of the name is free-form\n(packages, custom names)."},"supportTier":{"type":"string","description":"Support plan level.","enum":["essential","preferred","premier"]},"trialEndDate":{"type":"string","format":"date-time","description":"Trial end timestamp. Remains populated after the trial ends with the original expiration date."},"_connectorId":{"type":"string","format":"objectId","description":"Connector id. Present on `connector`, `integrationApp`, and `integrationAppChild` licenses."},"_integrationId":{"type":"string","format":"objectId","description":"Integration id. Present on `connector`, `integrationApp`, and `integrationAppChild` licenses."},"_editionId":{"type":"string","format":"objectId","description":"Edition id — present on `integrationApp` and `integrationAppChild` licenses."},"_parentId":{"type":"string","format":"objectId","description":"Parent license id — present only on `integrationAppChild` licenses. References the parent `integrationApp` license."},"opts":{"type":"object","description":"Connector/license options (connector edition, add-on licenses, etc.). Present only on connector-specific licenses."},"resumable":{"type":"boolean","readOnly":true,"description":"When true, the license/account is eligible for self-service resume after suspension."},"disableOverage":{"type":"boolean","description":"When true, overage charges are disabled for this account."},"requestUserToMigrateSandbox":{"type":"boolean","description":"When true, the user should be prompted to migrate legacy sandbox data to environments."},"endpoint":{"type":"object","description":"Entitlements for endpoint-style licenses. Present only when `type` is `endpoint`.","properties":{"production":{"$ref":"#/components/schemas/LicenseEntitlementCounts"},"numEnvironments":{"type":"integer","description":"Maximum number of environments the plan allows."}}},"integrator":{"type":"object","description":"Entitlements for integrator-style licenses. Present only when `type` is `integrator`.","properties":{"production":{"$ref":"#/components/schemas/LicenseEntitlementCounts"},"numEnvironments":{"type":"integer","description":"Maximum number of environments the plan allows."}}},"platform":{"type":"object","description":"Entitlements for platform-style licenses. Present only when `type` is `platform`.","properties":{"production":{"$ref":"#/components/schemas/LicenseEntitlementCounts"},"numEnvironments":{"type":"integer","description":"Maximum number of environments the plan allows."},"apiManagement":{"type":"boolean","description":"When true, the platform plan includes API Management."}}},"sso":{"type":"boolean","description":"When true, the plan entitles the account to use SSO (Single Sign-On)."},"van":{"type":"boolean","description":"When true, the plan entitles the account to use VAN (Value Added Network) for EDI."},"lookupCache":{"type":"boolean","description":"When true, the plan entitles the account to use Lookup Caches (in-memory lookups)."},"abstractFlows":{"type":"boolean","description":"When true, the plan entitles the account to use Abstract Flows (multi-instance templates)."},"apiManagement":{"type":"boolean","description":"When true, the plan entitles the account to use API Management (APIM)."},"concurrency":{"type":"integer","description":"Maximum number of concurrent flow executions the plan allows."},"maxAllowedDataRetention":{"type":"integer","description":"Maximum data retention period (in days) the plan allows."},"auditLogRetentionYears":{"type":"integer","description":"Maximum audit log retention (in years) the plan allows."},"aiConversationsPrepaidBalance":{"type":"number","description":"Remaining prepaid credit balance for Ora (Celigo's AI assistant).\nCustomers purchase credits up front and usage costs are deducted\nas they interact with Ora."},"aiAgentsPrepaidBalance":{"type":"number","description":"Remaining prepaid credit balance for AI Agents — LLM/AI capabilities\nused within flows, APIs, and automations (e.g., AI-powered transforms,\nhooks). Customers purchase credits up front and usage costs are\ndeducted as AI agents run. This balance is separate from Ora credits."},"aiAgentsActions":{"type":"integer","description":"Total AI agent action entitlement for the current billing period."},"mcp":{"type":"object","description":"MCP (Model Context Protocol) server entitlements.","required":["numInvocations"],"properties":{"numInvocations":{"type":"integer","description":"Base number of MCP server invocations per month included with the plan."}}},"di":{"type":"object","description":"Data Interchange (DI) entitlements.","required":["enabled","volume","volumeAddOn","disableOverage"],"properties":{"enabled":{"type":"boolean","description":"When true, the plan entitles the account to use Data Interchange."},"volume":{"type":"integer","description":"Base DI volume included with the plan."},"volumeAddOn":{"type":"integer","description":"Additional DI volume the customer purchased as add-ons."},"disableOverage":{"type":"boolean","description":"When true, Data Interchange overage charges are disabled."}}},"api":{"type":"object","description":"API Builder plan entitlements and invocation limits.","required":["builder","enablePricing","disableOverages","numInvocations","apimNumInvocations","numAddOnInvocations"],"properties":{"builder":{"type":"boolean","description":"When true, the plan entitles the account to use API Builder (building custom HTTP APIs on the Celigo platform)."},"enablePricing":{"type":"boolean","description":"When true, API pricing and billing features are enabled."},"disableOverages":{"type":"boolean","description":"When true, API overage charges are disabled."},"numInvocations":{"type":"integer","description":"Base number of API calls per month included with the plan."},"apimNumInvocations":{"type":"integer","description":"Base number of APIM API calls per month included with the plan."},"numAddOnInvocations":{"type":"integer","description":"Additional API calls per month the customer purchased as add-ons."}}},"edi":{"type":"object","description":"EDI (Electronic Data Interchange) plan entitlements.","required":["enabled","tier","numTradingPartners","numAddOnTradingPartners","numDocumentTypes","numAddOnDocumentTypes"],"properties":{"enabled":{"type":"boolean","description":"When true, the plan entitles the account to use EDI (B2B Manager)."},"onboarded":{"type":"boolean","description":"When true, the account has completed EDI onboarding."},"tier":{"type":"string","description":"B2B Manager subscription tier.","enum":["free","basic","advanced","expert"]},"disableOverage":{"type":"boolean","description":"When true, EDI overage charges are disabled."},"numTradingPartners":{"type":"integer","description":"Base number of EDI trading partners included with the plan."},"numAddOnTradingPartners":{"type":"integer","description":"Additional EDI trading partners the customer purchased as add-ons."},"numDocumentTypes":{"type":"integer","description":"Base number of EDI document types included with the plan."},"numAddOnDocumentTypes":{"type":"integer","description":"Additional EDI document types the customer purchased as add-ons."},"labelPrinting":{"type":"object","description":"EDI label-printing (BarTender) entitlements. Absent when the\nlabel-printing capability is unavailable platform-wide.","required":["enabled","onboarded","numLabels","numAddOnLabels"],"properties":{"enabled":{"type":"boolean","description":"When true, the plan entitles the account to use EDI label printing."},"onboarded":{"type":"boolean","description":"When true, the account has completed label-printing onboarding."},"numLabels":{"type":"integer","description":"Base weekly label allowance included with the plan. The effective\nweekly cap is `numLabels` plus `numAddOnLabels`."},"numAddOnLabels":{"type":"integer","description":"Additional weekly label allowance the customer purchased as add-ons."}}}}},"logging":{"type":"object","description":"Execution logging plan entitlements. A plan that does not entitle execution\nlogging carries only `enabled: false`; the cap fields appear when the plan\ndefines them. Trial accounts carry the trial's entitlement until `trialEndDate`;\nan account that does not convert then reads `enabled: false` (or no block).","required":["enabled"],"properties":{"enabled":{"type":"boolean","description":"When true, the plan entitles the account to use execution logging."},"maxLogMode":{"type":"string","description":"Maximum persistent execution-log mode (`flow.logging.mode`) the plan allows;\npresent when the plan defines this cap. A flow mode above this level is\noutside the entitlement regardless of the account's Store payloads consent.\nTime-boxed debug windows (`flow.logging.debugUntil`) are not governed by\nthis cap: they are governed by `enabled`, `maxDebugDuration`, and the\naccount's Store payloads consent.","enum":["basic","detailed"]},"maxDebugDuration":{"type":"integer","description":"Maximum time (in minutes) the plan allows a user to enable debug logging for. Present when the plan defines this cap."},"maxRetentionPeriod":{"type":"integer","description":"Maximum execution log retention period (in days) the plan allows. Present when the plan defines this cap."}}},"storage":{"type":"object","description":"File-storage entitlements. Always present on account-level licenses\n(`type` is `integrator`, `endpoint`, or `platform`); absent on\nconnector and Integration App licenses.","required":["maxAllowedUsage","disableOverage"],"properties":{"maxAllowedUsage":{"type":"number","minimum":0,"description":"Maximum file-storage usage the plan allows, in GB — the same\nquota `GET /v1/storage/usage` reports in bytes as\n`maxAllowedUsage`. Reported as 1 for accounts without an\nexplicit storage entitlement."},"disableOverage":{"type":"boolean","description":"When true, file-storage overage charges are disabled."}}}},"if":{"properties":{"type":{"const":"platform"}}},"then":{"required":["platform"]},"else":{"if":{"properties":{"type":{"const":"integrator"}}},"then":{"required":["integrator"]},"else":{"if":{"properties":{"type":{"const":"endpoint"}}},"then":{"required":["endpoint"]},"else":{"if":{"properties":{"type":{"enum":["connector","integrationApp","integrationAppChild"]}}},"then":{"required":["_connectorId"]}}}}},"LicenseEntitlementCounts":{"type":"object","description":"Entitlement counts for a given environment. For each resource type, a\n`num*` field holds the base plan count and a `numAddOn*` field holds\nadditional capacity purchased as add-ons.","required":["numEndpoints","numAddOnEndpoints","numFlows","numAddOnFlows","numAgents","numAddOnAgents"],"properties":{"numEndpoints":{"type":"integer","description":"Base number of endpoints (distinct connected applications) included with the plan, per\nenvironment. Whether the count is taken from endpoints in use or from endpoints invoked\nin the billing period depends on the account's pricing model."},"numAddOnEndpoints":{"type":"integer","description":"Additional endpoints the customer purchased as add-ons."},"numFlows":{"type":"integer","description":"Base flow entitlement included with the plan, per environment. Whether it caps enabled\nflows or the distinct flows run in a billing period — and whether reaching it blocks or\nonly notifies — depends on the account's pricing model."},"numAddOnFlows":{"type":"integer","description":"Additional flows the customer purchased as add-ons."},"numTradingPartners":{"type":"integer","description":"Base number of trading partners included with the plan."},"numAddOnTradingPartners":{"type":"integer","description":"Additional trading partners the customer purchased as add-ons."},"numAgents":{"type":"integer","description":"Base number of on-premise agents included with the plan."},"numAddOnAgents":{"type":"integer","description":"Additional on-premise agents the customer purchased as add-ons."}}}},"responses":{"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}}}},"paths":{"/v1/licenses":{"get":{"summary":"Get licenses (subscription)","operationId":"getLicenses","tags":["Subscription & Entitlements"],"description":"Returns one account-level license (`type` is `platform`, `integrator`, or\n`endpoint`) plus zero or more `connector`, `integrationApp`, or\n`integrationAppChild` licenses.","responses":{"200":{"description":"List of licenses","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/License"}}}}},"401":{"$ref":"#/components/responses/401-unauthorized"}}}}}}
```

## Get license entitlement usage

> Returns entitlement usage for the environment the request is made in -- how many resources it\
> is consuming vs. what is entitled. Pair with \`GET /v1/licenses\` for the entitlement limits;\
> the license's pricing model decides what the flow count means.

```json
{"openapi":"3.2.0","info":{"title":"Subscription & Entitlements","version":"1.0.0"},"tags":[{"name":"Subscription & Entitlements","description":"Subscription (license) information and entitlement usage for the current account, including plan details, feature limits, and consumption metrics.\n\n## License schema\n\n{% openapi-schemas spec=\"subscription\" schemas=\"License\" grouped=\"true\" %}"}],"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"},{"url":"https://api.au.integrator.io","description":"Production (AU region)"},{"url":"https://api.ca.integrator.io","description":"Production (CA region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"LicenseEntitlementUsage":{"type":"object","description":"Entitlement usage information for the account/license, keyed by usage category.","properties":{"flowUsage":{"$ref":"#/components/schemas/FlowUsage"},"endpointUsage":{"$ref":"#/components/schemas/EndpointUsage"},"agentUsage":{"$ref":"#/components/schemas/AgentUsage"},"environmentUsage":{"$ref":"#/components/schemas/EnvironmentUsage"},"ediTradingPartnerUsage":{"$ref":"#/components/schemas/EDITradingPartnerUsage"},"ediDocumentTypeUsage":{"$ref":"#/components/schemas/EDIDocumentTypeUsage"},"ediLabelPrintingUsage":{"$ref":"#/components/schemas/EDILabelPrintingUsage"},"apiUsage":{"type":"object","description":"API invocation counts for the current billing period.","properties":{"ioInvocationCount":{"type":"integer","description":"Number of integrator.io API invocations."},"apimInvocationCount":{"type":"integer","description":"Number of APIM (API Management add-on) invocations."}}},"syncUsage":{"type":"object","description":"Sync-volume entitlement usage.","properties":{"entitlement":{"type":"integer","description":"Provisioned sync entitlement."},"volume":{"type":"integer","description":"Sync volume consumed against the entitlement."}}},"mcpUsage":{"type":"object","description":"MCP server invocation counts.","properties":{"numInvocations":{"type":"integer","description":"Number of MCP invocations for the current period."}}},"aiAgentsActionsUsage":{"type":"integer","description":"Number of AI agent actions consumed for the current period."}}},"FlowUsage":{"type":"object","description":"Flow entitlement usage.","properties":{"numEnabled":{"type":"integer","description":"The flow meter for the requesting environment on the account's pricing model. The field\nname reflects its legacy meaning (enabled flows); on plans that meter flow runs it is the\nnumber of distinct flows that ran in the billing period — never a count of executions."},"flows":{"type":"array","description":"Flows contributing to the meter.","items":{"type":"object","properties":{"_id":{"type":"string","format":"objectId","description":"Flow id."},"name":{"type":"string","description":"Flow name."},"isDeleted":{"type":"boolean","description":"When true, the flow has been soft-deleted. Deleted flows may still count toward entitlement until fully purged."},"integration":{"type":"object","description":"Parent integration summary.","properties":{"_id":{"type":"string","format":"objectId","description":"Integration id."},"name":{"type":"string","description":"Integration name."}}}}}}}},"EndpointUsage":{"type":"object","description":"Endpoint entitlement usage.","properties":{"numConsumed":{"type":"integer","description":"Number of endpoints currently consumed."},"endpoints":{"type":"array","description":"Detailed breakdown of endpoints by type.","items":{"type":"object","properties":{"type":{"type":"string","description":"Endpoint adaptor type (e.g., `http`, `rdbms`, `ftp`)."},"assistant":{"type":"string","description":"Application assistant identifier, if the connection uses a Celigo-managed application profile (e.g., `hubspot`, `netsuite`)."},"baseURI":{"type":"string","description":"Base URI of the connection, if applicable."},"rdbms":{"type":"object","description":"Database connection details. Present when `type` is `rdbms`.","properties":{"type":{"type":"string","description":"Database engine (e.g., `snowflake`, `mysql`, `postgresql`)."},"host":{"type":"string","description":"Database host or account identifier."}}},"connections":{"type":"array","description":"Connections contributing to this endpoint's usage.","items":{"type":"object","properties":{"_id":{"type":"string","format":"objectId","description":"Connection id."},"name":{"type":"string","description":"Connection name."},"isDeleted":{"type":"boolean","description":"When true, the connection has been soft-deleted. Deleted connections may still count toward entitlement until fully purged."}}}}}}}}},"AgentUsage":{"type":"object","description":"Agent entitlement usage.","properties":{"numActive":{"type":"integer","description":"Number of active agents."},"agents":{"type":"array","description":"Agents contributing to usage.","items":{"type":"object","properties":{"_id":{"type":"string","format":"objectId","description":"Agent id."},"name":{"type":"string","description":"Agent name."}}}}}},"EnvironmentUsage":{"type":"object","description":"Environment entitlement usage.","properties":{"numEnabled":{"type":"integer","description":"Number of enabled environments."},"environments":{"type":"array","description":"Environments contributing to usage.","items":{"type":"object","properties":{"_id":{"type":"string","format":"objectId","description":"Environment id."},"name":{"type":"string","description":"Environment name."},"_userId":{"type":"string","format":"objectId","description":"Owner user id."},"_envUserId":{"type":"string","format":"objectId","description":"Environment user id."},"description":{"type":"string","description":"Environment description."},"enabled":{"type":"boolean","description":"When true, the environment is enabled and active."},"createdAt":{"type":"string","format":"date-time","readOnly":true,"description":"Environment creation timestamp."},"lastModified":{"type":"string","format":"date-time","readOnly":true,"description":"Last modification timestamp."}}}}}},"EDITradingPartnerUsage":{"type":"object","description":"EDI trading partner entitlement usage (EDI add-on/licensing).","properties":{"numConsumed":{"type":"integer","description":"Number of EDI trading partners consumed."},"tradingPartners":{"type":"array","description":"Trading partners contributing to usage.","items":{"type":"object","properties":{"tradingPartnerName":{"type":"string","description":"Trading partner display name."},"ediProfiles":{"type":"array","description":"EDI profiles associated with this trading partner.","items":{"type":"object","properties":{"id":{"type":"string","format":"objectId","description":"EDI profile id."},"name":{"type":"string","description":"EDI profile name."}}}}}}}}},"EDIDocumentTypeUsage":{"type":"object","description":"EDI document type entitlement usage (EDI add-on/licensing).","properties":{"numConsumed":{"type":"integer","description":"Number of EDI document types consumed."},"documents":{"type":"array","description":"Document types contributing to usage.","items":{"type":"object","properties":{"category":{"type":"string","description":"Normalized document type category (e.g., \"Warehouse Stock Shipping Order\")."},"fileDefinitions":{"type":"array","description":"File definitions in this category.","items":{"type":"object","properties":{"_id":{"type":"string","format":"objectId","description":"File definition id."},"name":{"type":"string","description":"File definition name."}}}}}}}}},"EDILabelPrintingUsage":{"type":"object","description":"EDI label-printing (BarTender) entitlement usage for the current billing week (Monday–Sunday UTC).\nPresent only when the account's license enables label printing; omitted entirely when label\nprinting is disabled platform-wide.","properties":{"numConsumed":{"type":"integer","description":"Labels consumed account-wide this week, summed across every environment — this is the value\nmeasured against the weekly cap. It is not necessarily the sum of `flows[].numConsumed`, since\n`flows[]` covers only the caller's active environment."},"flows":{"type":"array","description":"Per-flow label consumption for the caller's active environment only. A flow is listed here\nonly when it consumed labels this week in the environment the request is scoped to.","items":{"type":"object","properties":{"_id":{"type":"string","format":"objectId","description":"Flow id."},"name":{"type":"string","description":"Flow name. May be an empty string when the flow has been deleted."},"integration":{"type":"object","description":"Parent integration of the flow. Every flow belongs to an integration.","properties":{"_id":{"type":"string","format":"objectId","description":"Integration id."},"name":{"type":"string","description":"Integration name."}}},"numConsumed":{"type":"integer","description":"Labels this flow consumed this week in the caller's active environment."}}}}}}},"responses":{"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}}}},"paths":{"/v1/licenseEntitlementUsage":{"get":{"summary":"Get license entitlement usage","operationId":"getLicenseEntitlementUsage","tags":["Subscription & Entitlements"],"description":"Returns entitlement usage for the environment the request is made in -- how many resources it\nis consuming vs. what is entitled. Pair with `GET /v1/licenses` for the entitlement limits;\nthe license's pricing model decides what the flow count means.","responses":{"200":{"description":"Entitlement usage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseEntitlementUsage"}}}},"401":{"$ref":"#/components/responses/401-unauthorized"}}}}}}
```

## Get historic label-printing usage

> Returns account-wide EDI label-printing (BarTender) consumption bucketed into the trailing\
> 12 ISO weeks (Monday–Sunday UTC), most-recent week first. Each week's total sums every flow and\
> environment under the account. Pair with the \`ediLabelPrintingUsage\` block on\
> \`GET /v1/licenseEntitlementUsage\` for the current week's per-flow breakdown.

```json
{"openapi":"3.2.0","info":{"title":"Subscription & Entitlements","version":"1.0.0"},"tags":[{"name":"Subscription & Entitlements","description":"Subscription (license) information and entitlement usage for the current account, including plan details, feature limits, and consumption metrics.\n\n## License schema\n\n{% openapi-schemas spec=\"subscription\" schemas=\"License\" grouped=\"true\" %}"}],"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"},{"url":"https://api.au.integrator.io","description":"Production (AU region)"},{"url":"https://api.ca.integrator.io","description":"Production (CA region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"EDILabelPrintingUsageSummary":{"type":"object","description":"Historic weekly EDI label-printing (BarTender) consumption, account-wide across all flows and\nenvironments. Covers the trailing 12 ISO weeks (Monday–Sunday UTC).","required":["weeks"],"properties":{"weeks":{"type":"array","description":"Weekly totals, most-recent week first. Always dense over the 12-week window — a week with no\nconsumption is returned with `numConsumed: 0`. Empty when label printing is disabled for the\naccount.","items":{"type":"object","required":["weekStart","weekEnd","numConsumed"],"properties":{"weekStart":{"type":"string","format":"date-time","description":"Start of the ISO week, Monday 00:00:00.000 UTC."},"weekEnd":{"type":"string","format":"date-time","description":"End of the ISO week, Sunday 23:59:59.999 UTC."},"numConsumed":{"type":"integer","description":"Labels consumed account-wide during the week."}}}}}}},"responses":{"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}}}},"paths":{"/v1/ediLabelPrinting/usage/summary":{"get":{"summary":"Get historic label-printing usage","operationId":"getEDILabelPrintingUsageSummary","tags":["Subscription & Entitlements"],"description":"Returns account-wide EDI label-printing (BarTender) consumption bucketed into the trailing\n12 ISO weeks (Monday–Sunday UTC), most-recent week first. Each week's total sums every flow and\nenvironment under the account. Pair with the `ediLabelPrintingUsage` block on\n`GET /v1/licenseEntitlementUsage` for the current week's per-flow breakdown.","responses":{"200":{"description":"Historic weekly label-printing usage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EDILabelPrintingUsageSummary"}}}},"401":{"$ref":"#/components/responses/401-unauthorized"}}}}}}
```

## Get historical monthly entitlement usage

> Returns historical monthly usage for accounts whose pricing model meters flow runs (platform\
> licenses), newest month first; the current month's row can carry null usage until the meter\
> has processed. Useful for month-by-month trend analysis of usage vs. allocation. Not available\
> on plans that do not store monthly usage (endpoint and integrator licenses).

```json
{"openapi":"3.2.0","info":{"title":"Subscription & Entitlements","version":"1.0.0"},"tags":[{"name":"Subscription & Entitlements","description":"Subscription (license) information and entitlement usage for the current account, including plan details, feature limits, and consumption metrics.\n\n## License schema\n\n{% openapi-schemas spec=\"subscription\" schemas=\"License\" grouped=\"true\" %}"}],"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"},{"url":"https://api.au.integrator.io","description":"Production (AU region)"},{"url":"https://api.ca.integrator.io","description":"Production (CA region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"MonthlyUsage":{"type":"object","description":"Month-by-month usage vs allocation for a billing period.","properties":{"year":{"type":"integer","description":"Calendar year."},"month":{"type":"integer","minimum":1,"maximum":12,"description":"Calendar month (1-indexed — 1 = January, 12 = December)."},"usage":{"type":"object","description":"Actual usage numbers for the month.","properties":{"flows":{"type":"integer","description":"Flows in use during the month."},"endpoints":{"type":"integer","description":"Endpoints in use during the month."},"agents":{"type":"integer","description":"On-premise agents in use during the month."},"apiInvocationCount":{"type":"integer","description":"API invocations consumed during the month."},"diVolume":{"type":"integer","description":"Data Interchange volume consumed during the month."}}},"allocated":{"type":"object","description":"Allocated/entitled numbers for the month.","properties":{"flows":{"type":"integer","description":"Flow allocation for the month (base plan plus add-ons)."},"endpoints":{"type":"integer","description":"Endpoint allocation for the month (base plan plus add-ons)."},"agents":{"type":"integer","description":"On-premise agent allocation for the month (base plan plus add-ons)."},"apiInvocation":{"type":"integer","description":"API invocation allocation for the month."}}}}}},"responses":{"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}}}},"paths":{"/v1/historicalMonthlyUsage":{"get":{"summary":"Get historical monthly entitlement usage","operationId":"getHistoricalMonthlyUsage","tags":["Subscription & Entitlements"],"description":"Returns historical monthly usage for accounts whose pricing model meters flow runs (platform\nlicenses), newest month first; the current month's row can carry null usage until the meter\nhas processed. Useful for month-by-month trend analysis of usage vs. allocation. Not available\non plans that do not store monthly usage (endpoint and integrator licenses).","responses":{"200":{"description":"Historical monthly usage","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonthlyUsage"}}}}},"401":{"$ref":"#/components/responses/401-unauthorized"}}}}}}
```

## Get usage records (legacy)

> Returns historical usage records for the current account (legacy usage series).\
> \
> The response is an array of monthly records with a duration field (\`milliseconds\`).

```json
{"openapi":"3.2.0","info":{"title":"Subscription & Entitlements","version":"1.0.0"},"tags":[{"name":"Subscription & Entitlements","description":"Subscription (license) information and entitlement usage for the current account, including plan details, feature limits, and consumption metrics.\n\n## License schema\n\n{% openapi-schemas spec=\"subscription\" schemas=\"License\" grouped=\"true\" %}"}],"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"},{"url":"https://api.au.integrator.io","description":"Production (AU region)"},{"url":"https://api.ca.integrator.io","description":"Production (CA region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"UsageRecord":{"type":"object","description":"A monthly usage record returned by `GET /v1/usage`.","properties":{"year":{"type":"integer","description":"Calendar year."},"month":{"type":"integer","minimum":0,"maximum":11,"description":"Calendar month (0-indexed — 0 = January, 11 = December). Differs from `historicalMonthlyUsage` which uses 1-indexed months."},"milliseconds":{"type":"integer","description":"Usage duration value in milliseconds (legacy metric)."}}}},"responses":{"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}}}},"paths":{"/v1/usage":{"get":{"summary":"Get usage records (legacy)","operationId":"getUsage","tags":["Subscription & Entitlements"],"description":"Returns historical usage records for the current account (legacy usage series).\n\nThe response is an array of monthly records with a duration field (`milliseconds`).","responses":{"200":{"description":"Usage records","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UsageRecord"}}}}},"401":{"$ref":"#/components/responses/401-unauthorized"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.celigo.com/api/api-reference/subscription-and-entitlements.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
