Sequenzy Migrations API

The Migrations API from Sequenzy — 7 operation(s) for migrations.

Operations 7

GET /migrations/{runId} Get migration run #
GET /migrations/{runId}/agent-package Get migration agent package #
POST /migrations/{runId}/connect-source Connect migration source #
POST /migrations/{runId}/discover Discover migration source #
POST /migrations/{runId}/approve-plan Approve migration plan #
POST /migrations/{runId}/start Start migration #
POST /migrations/{runId}/cancel Cancel migration #

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/sequenzy:sequenzy-migrations-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

sequenzy-migrations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sequenzy Migrations API
  description: Sequenzy API for managing subscribers, tags, events, sequences, and transactional emails
  version: 1.0.0
servers:
- url: https://api.sequenzy.com/api/v1
  description: Production server
- url: https://api.sequenzy.com/v1
  description: Legacy production server alias
security:
- bearerAuth: []
tags:
- name: Migrations
paths:
  /migrations/{runId}:
    get:
      summary: Get migration run
      description: Returns provider-neutral migration status, discovery, plan, progress, and report.
      operationId: getMigrationRun
      tags:
      - Migrations
      parameters:
      - name: runId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Migration run returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    additionalProperties: true
              example:
                success: true
                data:
                  id: run_123
                  status: awaiting_approval
                  discovery:
                    provider: kit
                    resources:
                    - id: subscribers
                      type: subscribers
                      count: 3470
                    - id: campaigns
                      type: campaigns
                      count: 108
                    - id: automations
                      type: automations
                      count: 42
                  approvedPlan: {}
                  progress: {}
                  report:
                    subscribersQueued: 0
                    draftCampaignsCreated: 0
                    draftSequencesCreated: 0
                    draftTransactionalEmailsCreated: 0
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Migration run not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          $ref: '#/components/responses/TransientDatabaseUnavailable'
  /migrations/{runId}/agent-package:
    get:
      summary: Get migration agent package
      description: Returns endpoint URLs and exact call sequence for an agent-assisted migration.
      operationId: getMigrationAgentPackage
      tags:
      - Migrations
      parameters:
      - name: runId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Agent package returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    additionalProperties: true
              example:
                success: true
                data:
                  runId: run_123
                  provider: kit
                  providerLabel: Kit
                  organizationsEnabled: false
                  systemPrompt: Preserve provider email HTML exactly...
                  instructions:
                  - Do not convert migrated HTML into Sequenzy blocks or recreate the email from its visible text.
                  endpoints:
                    connectSource: https://api.sequenzy.com/api/v1/migrations/run_123/connect-source
                  sequence:
                  - POST connect-source with the provider credential.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Migration run not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          $ref: '#/components/responses/TransientDatabaseUnavailable'
  /migrations/{runId}/connect-source:
    post:
      summary: Connect migration source
      description: Stores a provider credential on an existing migration run connection.
      operationId: connectMigrationSource
      tags:
      - Migrations
      parameters:
      - name: runId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - provider
              - credential
              properties:
                provider:
                  type: string
                  description: Provider adapter ID. Supported values include `active-campaign`, `brevo`, `constant-contact`, `customer-io`, `drip`, `hubspot`, `kit`, `klaviyo`, `loops`, `mailchimp`, `mailerlite`, `mailjet`, `omnisend`, `resend`, and `sendgrid`.
                credential:
                  type: string
                  description: Provider API credential.
                providerLabel:
                  type: string
                  description: Optional display label for manual providers.
      responses:
        '200':
          description: Source connected
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    additionalProperties: true
        '400':
          description: Provider unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Migration run not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /migrations/{runId}/discover:
    post:
      summary: Discover migration source
      description: Queues provider discovery for a migration run.
      operationId: discoverMigrationSource
      tags:
      - Migrations
      parameters:
      - name: runId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Discovery queued
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    additionalProperties: true
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Migration run not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /migrations/{runId}/approve-plan:
    post:
      summary: Approve migration plan
      description: Approves provider-neutral resources and freezes the execution plan for a migration run.
      operationId: approveMigrationPlan
      tags:
      - Migrations
      parameters:
      - name: runId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - resourceIds
              properties:
                resourceIds:
                  type: array
                  items:
                    type: string
                resourceOptions:
                  type: object
                  additionalProperties:
                    type: object
                    additionalProperties: true
      responses:
        '200':
          description: Plan approved
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    additionalProperties: true
        '400':
          description: Invalid approval
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Approval failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /migrations/{runId}/start:
    post:
      summary: Start migration
      description: Queues execution for an approved migration run. Queued or running runs return their current state without another execution or plan change. Completed, failed, canceled and cancel_requested runs return 400. At least one selected resource is required, from resourceIds or the previously approved plan. resourceOptions applies only with a nonempty resourceIds selection.
      operationId: startMigration
      tags:
      - Migrations
      parameters:
      - name: runId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                resourceIds:
                  type: array
                  items:
                    type: string
                resourceOptions:
                  type: object
                  additionalProperties:
                    type: object
                    additionalProperties: true
      responses:
        '200':
          description: Migration queued
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    additionalProperties: true
        '400':
          description: Run cannot start in its current state, or no resources were selected
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Migration run not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /migrations/{runId}/cancel:
    post:
      summary: Cancel migration
      description: Cancels queued/pre-execution runs immediately. Running imports move to cancel_requested while workers stop linked subscriber import chunks, then finish as canceled.
      operationId: cancelMigration
      tags:
      - Migrations
      parameters:
      - name: runId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Migration canceled
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    additionalProperties: true
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Migration run not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  responses:
    TransientDatabaseUnavailable:
      description: The database was temporarily unavailable. The request may be retried after the delay in Retry-After.
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            success: false
            error: The service could not reach its database for a moment. Retry the request.
            code: SERVICE_UNAVAILABLE
  schemas:
    InputIssue:
      type: object
      properties:
        path:
          type: string
          description: Dotted field path, such as `audience.subscriberIds[0]`. Empty when the problem is with the request body itself.
          example: kind
        message:
          type: string
          description: What is wrong with the field.
          example: must be "add_tags"
        allowedValues:
          type: array
          description: Accepted values when the field only takes a fixed set of values.
          items: {}
          example:
          - add_tags
      required:
      - path
      - message
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          example: Error message
        code:
          type: string
          description: Optional stable machine-readable error discriminator when available.
          example: COMPANY_CREATE_REQUIRES_PERSONAL_KEY
        retryable:
          type: boolean
          description: Whether retrying the request can recover from the error.
        issues:
          type: array
          description: Field-level problems with the request, when the endpoint reports them. Up to ten entries; `error` summarizes the first three.
          items:
            $ref: '#/components/schemas/InputIssue'
      required:
      - error
  headers:
    RetryAfter:
      description: Number of seconds to wait before retrying the request.
      schema:
        type: integer
        minimum: 1
        example: 1
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key passed as Bearer token