Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/exclaimer-subscription-transfers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Exclaimer Cloud Subscription Transfers API
description: 'Introduction
The Exclaimer Cloud API is designed to offer partners the ability to provision and manage Exclaimer Cloud tenants.'
version: '1'
x-documentation:
documentVersion: '5.2'
datePublished: '2025-07-23 14:34:13Z'
servers:
- url: https://cloudapi.exclaimer.com/exclaimerapi
description: Local
security:
- Exclaimer: []
tags:
- name: Subscription Transfers
paths:
/1.0/subscriptions/{SubscriptionID}/transfer/cancel:
put:
tags:
- Subscription Transfers
summary: Cancel Subscription Transfer
description: 'This request allows you to cancel a subscription transfer that you''ve previously issued a transfer request for.
Once the transfer request is cancelled, the subscription will no longer show as pending transfer. If someone tries to claim the subscription, their request will be rejected.'
parameters:
- name: SubscriptionID
in: path
description: Your reference for the subscription to cancel. This is the same ID you specified when issuing the transfer request.
required: true
schema:
type: string
responses:
'204':
description: No Content
'400':
description: Bad Request / Missing Field
'401':
description: Unauthorized
'403':
description: Forbidden
'415':
description: Unsupported Media Type
'500':
description: Internal Server Error
x-documentation:
routeExamples:
Basic usage:
value: /subscriptions/Subscription-FKV-201/transfer/cancel
curlExamples:
Basic usage - cURL:
description: /subscriptions/Subscription-FKV-201/transfer/cancel
value: '{}'
operationId: put10SubscriptionsBySubscriptionIDTransferCancel
x-operation-id-source: derived
/1.0/subscriptions/transfer/claim:
post:
tags:
- Subscription Transfers
summary: Claim Subscription Transfer
description: 'This request allows you to claim a subscription that''s currently owned by someone else.
You can optionally specify additional details for the subscription, such as providing a meaningful ID, or associating it with one of your existing resellers, and/or end users.
This is the second half or a two part transfer handshake. See Initiate Subscription Transfer for the first half of the process.
In order to claim a subscription you must first have a valid token that can be used in the transfer process. This token will be provided either by the current subscription owner, or by Exclaimer. Once the token has been used, it will be invalidated, and cannot be reused.
Self claiming: It''s possible to claim a subscription that you''ve previously issued a transfer request for, right up until the point at which the subscription has been claimed by someone else. While we would recommend you use the Cancel Subscription Transfer API instead, if you do use this we recommend only specifying the TransferToken and no other details. In this case, all existing subscription details, including Subscription ID, Reseller, and End User, will remain unchanged.'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ClaimSubscriptionTransfer'
examples:
Use an auto-generated ID, and do not associate with a reseller or end user:
value: '{"TransferToken":"e0c2669f107745b1bf1253332b4ca205"}'
Don't associate with existing any End User or Reseller:
value: '{"TransferToken":"4e9db0647cc54f51b537000a41ca4f1","SubscriptionID":"Subscription-WON-196"}'
Associate with an existing End User and Reseller:
value: '{"TransferToken":"6a5dad1dd73904c1cb6830cef161710","SubscriptionID":"Subscription-PPX-394","ResellerID":"R-55782","EndUserID":"U-ABC-592"}'
Specify End User and Reseller in full:
value: '{"TransferToken":"37a5dad1dd73904c1cb6830cef16171","SubscriptionID":"Subscription-DFU-292","Reseller":{"ResellerID":"R-55555","CompanyName":"Resellers & Co.","CountryCode":"GBR"},"EndUser":{"EndUserID":"U-ABC-321","CompanyName":"Users Ltd","CountryCode":"GBR"}}'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ClaimSubscriptionTransferResponse'
examples:
Auto-generated:
value: '{"SubscriptionID":"77dmEGy5yE5apa38WMXt8udALobQoS"}'
Specified:
value: '{"SubscriptionID":"Subscription-CVZ-996"}'
'400':
description: Bad Request / Missing Field
'401':
description: Unauthorized
'403':
description: Forbidden
'415':
description: Unsupported Media Type
'500':
description: Internal Server Error
x-documentation:
curlExamples:
Use an auto-generated ID, and do not associate with a reseller or end user - cURL:
description: /subscriptions/transfer/claim
value: '{"TransferToken":"e0c2669f107745b1bf1253332b4ca205"}'
Don't associate with existing any End User or Reseller - cURL:
description: /subscriptions/transfer/claim
value: '{"TransferToken":"4e9db0647cc54f51b537000a41ca4f1","SubscriptionID":"Subscription-WON-196"}'
Associate with existing End User and Reseller - cURL:
description: /subscriptions/transfer/claim
value: '{"TransferToken":"6a5dad1dd73904c1cb6830cef161710","SubscriptionID":"Subscription-PPX-394","ResellerID":"R-55782","EndUserID":"U-ABC-592"}'
Specify End User and Reseller in full - cURL:
description: /subscriptions/transfer/claim
value: '{"TransferToken":"37a5dad1dd73904c1cb6830cef16171","SubscriptionID":"Subscription-DFU-292","Reseller":{"ResellerID":"R-55555","CompanyName":"Resellers & Co.","CountryCode":"GBR"},"EndUser":{"EndUserID":"U-ABC-321","CompanyName":"Users Ltd","CountryCode":"GBR"}}'
operationId: post10SubscriptionsTransferClaim
x-operation-id-source: derived
/1.0/subscriptions/{SubscriptionID}/transfer:
post:
tags:
- Subscription Transfers
summary: Initiate Subscription Transfer
description: 'This request initiates a subscription transfer.
This is the first half or a two part transfer handshake. See Claim Subscription Transfer for the second half of the process.
This requests puts the target subscription into a state of transfer until it gets claimed. The request returns a Transfer Token that may be used by another consumer to take ownership of the subscription.'
parameters:
- name: SubscriptionID
in: path
description: Your reference for the subscription. This is the same ID you specified, or was automatically generated, when the subscription was created, i.e., when calling <b>Add Subscription</b>.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/InitiateSubscriptionTransferResponse'
examples:
Basic usage:
value: '{"TransferToken":"27sfPOh6bR0ium66SMCr5sdPLdyQxC"}'
'400':
description: Bad Request / Missing Field
'401':
description: Unauthorized
'403':
description: Forbidden
'415':
description: Unsupported Media Type
'500':
description: Internal Server Error
x-documentation:
routeExamples:
Basic usage:
value: /subscriptions/Subscription-QAM-784/transfer
curlExamples:
Basic usage - cURL:
description: /subscriptions/Subscription-QAM-784/transfer
value: '{}'
operationId: post10SubscriptionsBySubscriptionIDTransfer
x-operation-id-source: derived
components:
schemas:
ClaimSubscriptionTransferResponse:
title: ClaimSubscriptionTransferResponse
properties:
SubscriptionID:
type: string
description: This is the ID that's been assigned to the transferred subscription. If you specified a <b>SubscriptionID</b> when claiming the subscription, then that value will be returned. However, if you already have a subscription with the same <b>SubscriptionID</b>, or you did not specify a <b>SubscriptionID</b>, then an automatically generated value will have been used.
ClaimSubscriptionTransferEndUser:
title: EndUser
required:
- EndUserID
- CompanyName
- CountryCode
properties:
EndUserID:
type: string
description: Your reference for the user. This will associate the user with the transferred subscription. <p> If a user with the <b>EndUserID</b> already exists, it will be updated; otherwise it will be created. </p>
CompanyName:
type: string
description: The name of the company to associate the transferred subscription with.
CountryCode:
type: string
description: The country code where the user is based.<br /> Specify in ISO 3166-1 alpha-2/alpha-3 or numeric.
ClaimSubscriptionTransfer:
title: ClaimSubscriptionTransferRequest
required:
- TransferToken
properties:
TransferToken:
type: string
description: This token grants you the rights to transfer the subscription, and will be provided either by the current subscription owner, or by Exclaimer. The token can only be used for one valid request. This excludes validation errors, in which case the token will remain valid.
SubscriptionID:
type: string
description: Your reference for the subscription once it's been transferred. If not specified, or a subscription with the same ID already exists, this will be automatically generated.
ResellerID:
type: string
description: Allows you to associate the transferred subscription with an existing custom reseller record. <p><b>N.B. ResellerID</b> and <b>Reseller</b> are mutually exclusive. If both are provided, this will result in an error. If neither are provided, then the subscription will not be associated with a reseller. </p>
Reseller:
allOf:
- $ref: '#/components/schemas/ClaimSubscriptionTransferReseller'
- description: Allows you to associate the transferred subscription with a custom reseller record. <p><b>N.B. Reseller</b> and <b>ResellerID</b> are mutually exclusive. If both are provided, this will result in an error. If neither are provided, then the subscription will not be associated with a reseller. </p>
- {}
EndUserID:
type: string
description: Allows you to associate the transferred subscription with an existing custom user record. <p><b>N.B. EndUserID</b> and <b>EndUser</b> are mutually exclusive. If both are provided, this will result in an error. If neither are provided, then the subscription will not be associated with an end user. </p>
EndUser:
allOf:
- $ref: '#/components/schemas/ClaimSubscriptionTransferEndUser'
- description: Allows you to associate the transferred subscription with a custom user record. <p><b>N.B. EndUser</b> and <b>EndUserID</b> are mutually exclusive. If both are provided, this will result in an error. If neither are provided, then the subscription will not be associated with an end user. </p>
- {}
description: This request allows you to claim a subscription that's currently owned by someone else. <p> You can optionally specify additional details for the subscription, such as providing a meaningful ID, or associating it with one of your existing resellers, and/or end users. </p><p> This is the second half or a two part transfer handshake. See <b>Initiate Subscription Transfer</b> for the first half of the process. </p><p> In order to claim a subscription you must first have a valid token that can be used in the transfer process. This token will be provided either by the current subscription owner, or by Exclaimer. Once the token has been used, it will be invalidated, and cannot be reused. </p><p><b>Self claiming:</b> It's possible to claim a subscription that you've previously issued a transfer request for, right up until the point at which the subscription has been claimed by someone else. While we would recommend you use the <b>Cancel Subscription Transfer</b> API instead, if you do use this we recommend only specifying the <b>TransferToken</b> and no other details. In this case, all existing subscription details, including Subscription ID, Reseller, and End User, will remain unchanged. </p>
InitiateSubscriptionTransferResponse:
title: InitiateSubscriptionTransferResponse
properties:
TransferToken:
type: string
description: The issued token that can be used to claim the subscription.
ClaimSubscriptionTransferReseller:
title: Reseller
required:
- ResellerID
- CompanyName
- CountryCode
properties:
ResellerID:
type: string
description: Your reference for the reseller. This will associate the reseller with the transferred subscription. <p> If a reseller with the <b>ResellerID</b> already exists, it will be updated; otherwise it will be created. </p>
CompanyName:
type: string
description: The name of the company to associated the transferred subscription with.
CountryCode:
type: string
description: The country code where the reseller is based.<br /> Specify in ISO 3166-1 alpha-2/alpha-3 or numeric.
securitySchemes:
Exclaimer:
type: apiKey
name: ExApiToken
in: header