Skip to main content

Subscriptions

Platform subscription plans and billing state.

7 endpoints. Every request needs an Authorization: Bearer mtro_... header, and responses follow the envelope described in Errors and conventions.

POST /subscriptions/cancel​

Cancel the current subscription. This changes billing state and should require owner confirmation when used by an agent.

Required scope: any valid API key for the entity.
MCP tool: subscriptions_cancel

Request body

note

Field names are taken from the Core handler, which reads exactly these. Types and which of them are required are not yet documented.

FieldTypeRequiredDescription
noteanyno
subscriptionIdanyno

Example

curl -X POST 'https://core.mtro.app/subscriptions/cancel' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{}'

POST /subscriptions/cancel-pending​

Cancel a pending subscription change. This changes billing state and should require owner confirmation when used by an agent.

Required scope: any valid API key for the entity.
MCP tool: subscriptions_cancel_pending

Request body

note

Field names are taken from the Core handler, which reads exactly these. Types and which of them are required are not yet documented.

FieldTypeRequiredDescription
subscriptionIdanyno

Example

curl -X POST 'https://core.mtro.app/subscriptions/cancel-pending' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{}'

POST /subscriptions/checkout​

Create a subscription checkout session. This starts billing flow and should require owner confirmation when used by an agent.

Required scope: any valid API key for the entity.
MCP tool: subscriptions_checkout

Request body

note

Field names are taken from the Core handler, which reads exactly these. Types and which of them are required are not yet documented.

FieldTypeRequiredDescription
billingIntervalanyno
coHostingSuiteOptInanyno
planIdanyno
promoCodeanyno
subscriptionIdanyno

Example

curl -X POST 'https://core.mtro.app/subscriptions/checkout' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{}'

GET /subscriptions/my​

Get the current entity subscription.

Required scope: any valid API key for the entity.
MCP tool: subscriptions_my

Example

curl -X GET 'https://core.mtro.app/subscriptions/my' \
-H 'Authorization: Bearer mtro_your_api_key'

Response

FieldType
subscriptionany
planany
pendingSubscriptionany
hasActiveSubscriptionboolean
coHostingSuiteFirstInvoiceCreditAvailableboolean
promoCodesany[]
errorboolean

GET /subscriptions/payments​

Get subscription payment history.

Required scope: any valid API key for the entity.
MCP tool: subscriptions_payments

Example

curl -X GET 'https://core.mtro.app/subscriptions/payments' \
-H 'Authorization: Bearer mtro_your_api_key'

Response

FieldType
paymentsany[]
errorboolean

GET /subscriptions/plans​

List public subscription plans available to the current owner.

Required scope: any valid API key for the entity.
MCP tool: subscriptions_plans

Example

curl -X GET 'https://core.mtro.app/subscriptions/plans' \
-H 'Authorization: Bearer mtro_your_api_key'

Response

FieldType
plansobject[]
errorboolean
Fields of plans[]
FieldType
_idstring
keystring
__vinteger
createdAtinteger
currencystring
descriptionstring
featuresobject[]
isActiveboolean
isCanonicalboolean
isCustomPricingboolean
isDefaultboolean
listingCountstring
monthlyPriceinteger
namestring
priceLabelstring
sortOrderinteger
updatedAtinteger
userSeatsstring
yearlyPriceinteger

GET /subscriptions/plans/all​

List all subscription plans. Usually admin-only.

Required scope: any valid API key for the entity.
MCP tool: subscriptions_plans_all

Example

curl -X GET 'https://core.mtro.app/subscriptions/plans/all' \
-H 'Authorization: Bearer mtro_your_api_key'