Exclaimer Subscription Transfers API

The Subscription Transfers API from Exclaimer — 3 operation(s) for subscription transfers.

Operations 3

PUT /1.0/subscriptions/{SubscriptionID}/transfer/cancel Cancel Subscription Transfer #
POST /1.0/subscriptions/transfer/claim Claim Subscription Transfer #
POST /1.0/subscriptions/{SubscriptionID}/transfer Initiate Subscription Transfer #

Work with this as data

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 Specification

exclaimer-subscription-transfers-api-openapi.yml Raw ↑
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