Cacheflow Migration API

The Migration API from Cacheflow — 2 operation(s) for migration.

Operations 2

POST /api/latest/settings/stripe/subscriptions/migrations/convert Convert a proposal to a subscription #
POST /api/latest/settings/stripe/subscriptions/migrations Migrate subscription to Cacheflow #

Documentation

Specifications

Other Resources

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/cacheflow-migration-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

cacheflow-migration-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cacheflow Migration API
  version: 0.0.3
servers:
- url: https://api.getcacheflow.com
  description: 'Production. Calls are tenant-routed: send Host: <org-flow-domain>.api.getcacheflow.com (per github.com/getcacheflow/api-examples SETUP.md). Host no longer resolves as of 2026-08-13.'
- url: https://api.sandbox.getcacheflow.com
  description: Sandbox. Tenant-routed as <org-flow-domain>.api.sandbox.getcacheflow.com. Host no longer resolves as of 2026-08-13.
tags:
- name: Migration
paths:
  /api/latest/settings/stripe/subscriptions/migrations/convert:
    post:
      tags:
      - Migration
      summary: Convert a proposal to a subscription
      operationId: convert
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalConversionRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StripeMigrationResponse'
  /api/latest/settings/stripe/subscriptions/migrations:
    post:
      tags:
      - Migration
      summary: Migrate subscription to Cacheflow
      operationId: migrate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StripeMigrationRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StripeMigrationResponse'
components:
  schemas:
    ItemLevelRequest:
      type: object
      properties:
        visibilityOverride:
          type: boolean
        start:
          type: integer
          format: int32
    Money:
      type: object
      properties:
        amount:
          type: integer
          format: int64
        scale:
          type: integer
          format: int32
        formattedAmount:
          type: string
        currency:
          type: string
      description: Total list amount for this level. null for usage.
    Address:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdAt:
          type: string
          format: date-time
          readOnly: true
        createdBy:
          type: string
        updatedAt:
          type: string
          format: date-time
          readOnly: true
        updatedBy:
          type: string
          readOnly: true
        name:
          type: string
        type:
          type: string
        streetAddress:
          type: string
        subAddress:
          type: string
        otherAddress:
          type: string
        city:
          type: string
        region:
          type: string
        regionIso:
          type: string
        postalCode:
          type: string
        country:
          type: string
        countryIso:
          type: string
        verifiedAt:
          type: string
          format: date-time
    ProposalItemRequest:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        description:
          type: string
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        quantity:
          type: number
        productId:
          type: string
          format: uuid
        quantityOverrides:
          type: array
          deprecated: true
          items:
            $ref: '#/components/schemas/QuantityOverride'
        overrides:
          type: array
          deprecated: true
          items:
            $ref: '#/components/schemas/ItemOverrideRequest'
        levels:
          type: array
          items:
            $ref: '#/components/schemas/ItemLevelRequest'
        schedules:
          type: array
          items:
            $ref: '#/components/schemas/ItemScheduleRequest'
        levelVisibility:
          type: string
          enum:
          - all
          - active
          - active_plus_one
          - active_plus_three
          - active_plus_prior_next
          - active_plus_prior_next_three
    ItemScheduleLevelRequest:
      type: object
      properties:
        price:
          $ref: '#/components/schemas/Money'
        listPrice:
          $ref: '#/components/schemas/Money'
      description: Level price and discount info. Required for tiered products.
    ContractOptions:
      type: object
      properties:
        contractStatus:
          type: string
          enum:
          - active
          - paused
          - cancelled
          - ended
        markPastSchedulesAsPaid:
          type: boolean
        markSchedulesAsInvoiced:
          type: boolean
        paymentMethodSource:
          type: string
        paymentMethodId:
          type: string
        paymentMethodType:
          type: string
    ProposalAttachment:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdAt:
          type: string
          format: date-time
          readOnly: true
        createdBy:
          type: string
        updatedAt:
          type: string
          format: date-time
          readOnly: true
        updatedBy:
          type: string
          readOnly: true
        type:
          type: string
          enum:
          - document
          - link
        attachmentConfigId:
          type: string
          format: uuid
        documentId:
          type: string
          format: uuid
        documentVersion:
          $ref: '#/components/schemas/DocumentVersion'
        inEnvelope:
          type: boolean
        name:
          type: string
        linkUrl:
          type: string
    CreateProposalRequest:
      type: object
      properties:
        source:
          type: string
          enum:
          - manual
          - close
          - plaid
          - stripe
          - hubspot
          - salesforce
          - avalara
          - quickbooks
          - profitwell
          - netsuite
          - google
          - warmly
          - zapier
          - cacheflow_checkout
        externalId:
          type: string
        defaultBillingPeriod:
          type: string
          enum:
          - month
          - quarter
          - halfyear
          - year
        name:
          maxLength: 255
          minLength: 0
          type: string
        description:
          maxLength: 255
          minLength: 0
          type: string
        proposalType:
          type: string
          enum:
          - initial
          - change
          - renewal
          - template
        startDate:
          type: string
          format: date
        expiresAt:
          type: string
          format: date
        proposalNumber:
          type: string
        contactIds:
          type: array
          items:
            type: string
            format: uuid
        proposalItems:
          type: array
          items:
            $ref: '#/components/schemas/ProposalItemRequest'
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/CreateContactRequest'
        termType:
          type: string
          enum:
          - month
          - quarter
          - year
        termQty:
          type: integer
          format: int32
        freeMonths:
          type: integer
          format: int32
        status:
          type: string
          enum:
          - draft
          - pending_approval
          - approved
          - schedule_selection
          - payment_selection
          - active
          - pending_renewal
          - accepted
          - expired
          - cancelled
          - deleted
        customTerms:
          type: string
        customerId:
          type: string
          format: uuid
        customer:
          $ref: '#/components/schemas/CustomerRequest'
        billToId:
          type: string
          format: uuid
        shipFromId:
          type: string
          format: uuid
        options:
          type: object
          additionalProperties:
            type: boolean
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/ProposalAttachment'
        paymentTermType:
          type: string
          enum:
          - net_15
          - net_30
          - net_45
          - net_60
          - net_75
          - net_90
          - upon_receipt
          - end_of_month
          - on_15th
        ownerId:
          type: string
          format: uuid
        billingPeriods:
          type: array
          items:
            type: string
            enum:
            - month
            - quarter
            - halfyear
            - year
        currency:
          type: string
        autoRenewable:
          type: boolean
        autoRenewalTermLength:
          type: integer
          format: int32
        externalSource:
          $ref: '#/components/schemas/ExternalSource'
        purchaseOrderNumber:
          type: string
    ItemScheduleRequest:
      type: object
      properties:
        id:
          type: string
          description: ID used to reference an existing schedule in bulk requests.
          format: uuid
        billingPeriod:
          type: string
          enum:
          - month
          - quarter
          - halfyear
          - year
        productId:
          type: string
          description: Product id for a specific version of the product. Must have the same root as the parent Item.
          format: uuid
        startIndex:
          type: integer
          description: Start at regular payment index. Used for relative dates to the start date.
          format: int32
        endIndex:
          type: integer
          description: Inclusive end at regular payment index. Used for relative dates to the start date.
          format: int32
        price:
          $ref: '#/components/schemas/Money'
        listPrice:
          $ref: '#/components/schemas/Money'
        quantity:
          type: number
          description: Quantity
        discount:
          type: boolean
          description: Indicates whether the price should be considered a discount. May not be true if price is higher than listPrice.
        levels:
          type: array
          description: Level price and discount info. Required for tiered products.
          items:
            $ref: '#/components/schemas/ItemScheduleLevelRequest'
    StripeMigrationResponse:
      type: object
      properties:
        subscriptionId:
          type: string
        proposal:
          $ref: '#/components/schemas/ObjectReference'
        contract:
          $ref: '#/components/schemas/ObjectReference'
        customer:
          $ref: '#/components/schemas/ObjectReference'
        status:
          type: string
          enum:
          - not_processed
          - success
          - failed
        error:
          type: string
    ObjectReference:
      type: object
      properties:
        referenceType:
          type: string
          enum:
          - account
          - apiwebhook
          - apitoken
          - approvalgroup
          - attachmentconfig
          - authidentity
          - billingschedule
          - companyInfo
          - connectorSyncEvent
          - contact
          - contentTemplate
          - contract
          - contractitem
          - contractitemlevel
          - currency
          - customer
          - docusignaccount
          - document
          - documentversion
          - group
          - invite
          - invoice
          - invoiceConfiguration
          - organization
          - orgconfig
          - orgidentitytoken
          - payment
          - paymentMethod
          - paymentSchedule
          - paymentTerm
          - pricebook
          - pricebookentry
          - product
          - productlevel
          - productusage
          - proposal
          - proposalapprovalrule
          - proposalevent
          - proposalitem
          - proposaliteminterval
          - proposalitemlevel
          - proposaloption
          - refund
          - renewalconfiguration
          - signature
          - signingdocument
          - transfer
          - transferevent
          - unit
          - user
        id:
          type: string
          format: uuid
        uri:
          type: string
        name:
          type: string
        type:
          type: string
          writeOnly: true
          enum:
          - account
          - apiwebhook
          - apitoken
          - approvalgroup
          - attachmentconfig
          - authidentity
          - billingschedule
          - companyInfo
          - connectorSyncEvent
          - contact
          - contentTemplate
          - contract
          - contractitem
          - contractitemlevel
          - currency
          - customer
          - docusignaccount
          - document
          - documentversion
          - group
          - invite
          - invoice
          - invoiceConfiguration
          - organization
          - orgconfig
          - orgidentitytoken
          - payment
          - paymentMethod
          - paymentSchedule
          - paymentTerm
          - pricebook
          - pricebookentry
          - product
          - productlevel
          - productusage
          - proposal
          - proposalapprovalrule
          - proposalevent
          - proposalitem
          - proposaliteminterval
          - proposalitemlevel
          - proposaloption
          - refund
          - renewalconfiguration
          - signature
          - signingdocument
          - transfer
          - transferevent
          - unit
          - user
    ProposalConversionRequest:
      type: object
      properties:
        proposalId:
          type: string
          format: uuid
        contractOptions:
          $ref: '#/components/schemas/ContractOptions'
        customerId:
          type: string
          format: uuid
        externalCustomerId:
          type: string
    ExternalSource:
      required:
      - sourceId
      - sourceType
      type: object
      properties:
        sourceType:
          type: string
          enum:
          - manual
          - close
          - plaid
          - stripe
          - hubspot
          - salesforce
          - avalara
          - quickbooks
          - profitwell
          - netsuite
          - google
          - warmly
          - zapier
          - cacheflow_checkout
        sourceId:
          type: string
        sourceLink:
          type: string
    ItemLevelOverrideRequest:
      required:
      - level
      - price
      type: object
      properties:
        price:
          $ref: '#/components/schemas/Money'
        listPrice:
          $ref: '#/components/schemas/Money'
        level:
          type: integer
          format: int32
    CustomerRequest:
      type: object
      properties:
        externalId:
          type: string
        source:
          type: string
          enum:
          - manual
          - close
          - plaid
          - stripe
          - hubspot
          - salesforce
          - avalara
          - quickbooks
          - profitwell
          - netsuite
          - google
          - warmly
          - zapier
          - cacheflow_checkout
        name:
          type: string
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/CreateContactRequest'
        tin:
          type: string
        taxUseCode:
          type: string
          enum:
          - A
          - B
          - C
          - D
          - E
          - F
          - G
          - H
          - I
          - J
          - K
          - L
          - M
          - N
          - P
          - Q
          - R
        defaultCurrency:
          type: string
        billingAddress:
          $ref: '#/components/schemas/Address'
        shippingAddress:
          $ref: '#/components/schemas/Address'
        billingContact:
          $ref: '#/components/schemas/CreateContactRequest'
        billingContactId:
          type: string
          format: uuid
        taxExempt:
          type: boolean
        partner:
          type: boolean
        externalSources:
          type: array
          items:
            $ref: '#/components/schemas/ExternalSource'
        referenceType:
          type: string
          enum:
          - account
          - apiwebhook
          - apitoken
          - approvalgroup
          - attachmentconfig
          - authidentity
          - billingschedule
          - companyInfo
          - connectorSyncEvent
          - contact
          - contentTemplate
          - contract
          - contractitem
          - contractitemlevel
          - currency
          - customer
          - docusignaccount
          - document
          - documentversion
          - group
          - invite
          - invoice
          - invoiceConfiguration
          - organization
          - orgconfig
          - orgidentitytoken
          - payment
          - paymentMethod
          - paymentSchedule
          - paymentTerm
          - pricebook
          - pricebookentry
          - product
          - productlevel
          - productusage
          - proposal
          - proposalapprovalrule
          - proposalevent
          - proposalitem
          - proposaliteminterval
          - proposalitemlevel
          - proposaloption
          - refund
          - renewalconfiguration
          - signature
          - signingdocument
          - transfer
          - transferevent
          - unit
          - user
    DocumentVersion:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdAt:
          type: string
          format: date-time
          readOnly: true
        createdBy:
          type: string
        updatedAt:
          type: string
          format: date-time
          readOnly: true
        updatedBy:
          type: string
          readOnly: true
        versionNumber:
          type: integer
          format: int32
        fileName:
          type: string
        url:
          type: string
        documentId:
          type: string
          format: uuid
    StripeMigrationRequest:
      type: object
      properties:
        subscriptionId:
          type: string
        autoRenewable:
          type: boolean
        autoRenewalTermLength:
          type: integer
          format: int32
        createProposalRequest:
          $ref: '#/components/schemas/CreateProposalRequest'
        skipContract:
          type: boolean
        contractOptions:
          $ref: '#/components/schemas/ContractOptions'
        customerId:
          type: string
          format: uuid
        externalCustomerId:
          type: string
    QuantityOverride:
      required:
      - billingPeriod
      - quantity
      type: object
      properties:
        billingPeriod:
          type: string
          enum:
          - month
          - quarter
          - halfyear
          - year
        quantity:
          type: number
        startIndex:
          type: integer
          format: int32
        duration:
          type: integer
          format: int32
    ItemOverrideRequest:
      required:
      - discount
      type: object
      properties:
        price:
          $ref: '#/components/schemas/Money'
        listPrice:
          $ref: '#/components/schemas/Money'
        discount:
          type: boolean
        billingPeriod:
          type: string
          enum:
          - month
          - quarter
          - halfyear
          - year
        startIndex:
          type: integer
          format: int32
        duration:
          type: integer
          format: int32
        levels:
          type: array
          items:
            $ref: '#/components/schemas/ItemLevelOverrideRequest'
    CreateContactRequest:
      required:
      - email
      - firstName
      - lastName
      type: object
      properties:
        externalId:
          type: string
        source:
          type: string
          enum:
          - manual
          - close
          - plaid
          - stripe
          - hubspot
          - salesforce
          - avalara
          - quickbooks
          - profitwell
          - netsuite
          - google
          - warmly
          - zapier
          - cacheflow_checkout
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        role:
          type: string
        externalSources:
          type: array
          items:
            $ref: '#/components/schemas/ExternalSource'