dbmigratepro-com Backups API

The Backups API from dbmigratepro-com — 5 operation(s) for backups.

Operations 11

POST /api/backups Create a backup schedule for a database. Daily is the shortest interval accepted #
GET /api/backups List the current team's backup schedules #
GET /api/backups/{backup} One backup schedule, with its recent runs and its storage destination #
PUT /api/backups/{backup} Update a backup schedule #
PATCH /api/backups/{backup} Patch backups backup #
DELETE /api/backups/{backup} Delete a backup schedule and its stored objects #
POST /api/backups/{backup}/run Run a backup now instead of waiting for the schedule #
GET /api/backups/{backup}/runs Paginated, searchable run history for one schedule #
GET /api/backups/{backup}/runs/{backupRun}/download State of a prepared download, plus a signed URL once it is ready #
POST /api/backups/{backup}/runs/{backupRun}/download Ask for a decrypted, downloadable copy of a completed run #
DELETE /api/backups/{backup}/runs/{backupRun}/download Discard a prepared download copy #

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/dbmigratepro-com:dbmigratepro-com-backups-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

dbmigratepro-com-backups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DBMigratePro REST Backups API
  version: 1.0.0
  summary: Migrate, convert, back up, and restore MySQL and PostgreSQL databases over HTTP.
  description: 'Everything the dashboard does, it does through this API — there is no privileged back

    channel — so a script or an AI agent can drive the whole product.


    **Authentication.** A personal API token from Settings → API Tokens, sent as

    `Authorization: Bearer `. Tokens are full-account: no endpoint currently checks a

    narrower ability. Requests are scoped to the token owner''s *acting team*, which

    `POST /api/teams/{team}/switch` changes — so the same token can see different resources

    over time.


    **Connection URLs are write-only.** Database URLs and storage secrets are encrypted at

    rest and never appear in a response. There is no read-back endpoint.


    **Rate limits, tiered by what an endpoint costs us** (per authenticated user, keyed on

    user id):


    - AI endpoints: 10/minute and 200/day — each call spends money on a model.

    - Probe endpoints (anything that dials a database you supply): 20/minute.

    - Reads: 300/minute. Writes: 60/minute. Token minting: 10/hour.

    - Restores are deliberately left out of the probe and write tiers — they inherit only the

    generous read limit above, because a restore has to work in the middle of an outage.

    Unauthenticated public reads are IP-limited instead.


    Each operation below carries an `x-rate-limit` field naming its tier.


    **Rules for agents.** Two are not negotiable. An agent must never complete a payment on

    a user''s behalf: when a run needs one, the response carries a `checkout_url` to hand

    back to the user, and the run starts by itself once they authorise it. And a destructive

    call — delete, reset — must be confirmed by the user first. A failed migration is never

    charged, and restores are never charged at all, so both are safe to explain plainly.


    This document is generated from the live route table. The narrative guides are at

    https://dbmigratepro.com/docs, and there is an MCP server for clients that speak it —

    see https://dbmigratepro.com/docs/mcp-setup.'
  contact:
    name: DBMigratePro support
    url: https://dbmigratepro.com/contact
servers:
- url: https://dbmigratepro.com
security:
- bearerAuth: []
tags:
- name: Backups
paths:
  /api/backups:
    post:
      operationId: postBackups
      tags:
      - Backups
      summary: Create a backup schedule for a database. Daily is the shortest interval accepted
      security:
      - bearerAuth: []
      x-rate-limit: 60/minute
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 255
                  nullable: true
                frequency:
                  type: integer
                  minimum: 1440
                db_url:
                  type: string
                  maxLength: 2000
                source_db_type:
                  type: string
                  enum:
                  - mysql
                  - postgresql
                  nullable: true
                retention_count:
                  type: integer
                  minimum: 1
                  maximum: 365
                  nullable: true
                notify:
                  type: boolean
                enabled:
                  type: boolean
                storage_bucket_id:
                  type: integer
                  nullable: true
                storage_provider:
                  type: string
                  enum:
                  - s3
                  - gcs
                  - custom
                  nullable: true
              required:
              - frequency
              - db_url
      responses:
        '200':
          description: Success.
        '201':
          description: Created, for the endpoints that create a resource.
        '401':
          description: Missing or invalid API token.
        '403':
          description: The resource belongs to another team, or the endpoint is admin-only.
        '404':
          description: No such resource.
        '422':
          description: Validation failed. The body carries `message` and `errors`.
        '429':
          description: Rate limit exceeded for this tier. Retry after the `Retry-After` header.
    get:
      operationId: getBackups
      tags:
      - Backups
      summary: List the current team's backup schedules
      security:
      - bearerAuth: []
      x-rate-limit: 300/minute
      responses:
        '200':
          description: Success.
        '401':
          description: Missing or invalid API token.
        '403':
          description: The resource belongs to another team, or the endpoint is admin-only.
        '404':
          description: No such resource.
        '429':
          description: Rate limit exceeded for this tier. Retry after the `Retry-After` header.
  /api/backups/{backup}:
    get:
      operationId: getBackupsBackup
      tags:
      - Backups
      summary: One backup schedule, with its recent runs and its storage destination
      security:
      - bearerAuth: []
      x-rate-limit: 300/minute
      parameters:
      - name: backup
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success.
        '401':
          description: Missing or invalid API token.
        '403':
          description: The resource belongs to another team, or the endpoint is admin-only.
        '404':
          description: No such resource.
        '429':
          description: Rate limit exceeded for this tier. Retry after the `Retry-After` header.
    put:
      operationId: putBackupsBackup
      tags:
      - Backups
      summary: Update a backup schedule
      security:
      - bearerAuth: []
      x-rate-limit: 300/minute
      parameters:
      - name: backup
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 255
                  nullable: true
                frequency:
                  type: integer
                  minimum: 1440
                db_url:
                  type: string
                  maxLength: 2000
                source_db_type:
                  type: string
                  enum:
                  - mysql
                  - postgresql
                  nullable: true
                retention_count:
                  type: integer
                  minimum: 1
                  maximum: 365
                notify:
                  type: boolean
                enabled:
                  type: boolean
                storage_bucket_id:
                  type: integer
                  nullable: true
                storage_provider:
                  type: string
                  enum:
                  - s3
                  - gcs
                  - custom
                  nullable: true
      responses:
        '200':
          description: Success.
        '401':
          description: Missing or invalid API token.
        '403':
          description: The resource belongs to another team, or the endpoint is admin-only.
        '404':
          description: No such resource.
        '422':
          description: Validation failed. The body carries `message` and `errors`.
        '429':
          description: Rate limit exceeded for this tier. Retry after the `Retry-After` header.
    patch:
      operationId: patchBackupsBackup
      tags:
      - Backups
      security:
      - bearerAuth: []
      x-rate-limit: 300/minute
      parameters:
      - name: backup
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 255
                  nullable: true
                frequency:
                  type: integer
                  minimum: 1440
                db_url:
                  type: string
                  maxLength: 2000
                source_db_type:
                  type: string
                  enum:
                  - mysql
                  - postgresql
                  nullable: true
                retention_count:
                  type: integer
                  minimum: 1
                  maximum: 365
                notify:
                  type: boolean
                enabled:
                  type: boolean
                storage_bucket_id:
                  type: integer
                  nullable: true
                storage_provider:
                  type: string
                  enum:
                  - s3
                  - gcs
                  - custom
                  nullable: true
      responses:
        '200':
          description: Success.
        '401':
          description: Missing or invalid API token.
        '403':
          description: The resource belongs to another team, or the endpoint is admin-only.
        '404':
          description: No such resource.
        '422':
          description: Validation failed. The body carries `message` and `errors`.
        '429':
          description: Rate limit exceeded for this tier. Retry after the `Retry-After` header.
      summary: Patch backups backup
      x-summary-source: derived
    delete:
      operationId: deleteBackupsBackup
      tags:
      - Backups
      summary: Delete a backup schedule and its stored objects
      security:
      - bearerAuth: []
      x-rate-limit: 300/minute
      parameters:
      - name: backup
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success.
        '401':
          description: Missing or invalid API token.
        '403':
          description: The resource belongs to another team, or the endpoint is admin-only.
        '404':
          description: No such resource.
        '429':
          description: Rate limit exceeded for this tier. Retry after the `Retry-After` header.
  /api/backups/{backup}/run:
    post:
      operationId: postBackupsBackupRun
      tags:
      - Backups
      summary: Run a backup now instead of waiting for the schedule
      security:
      - bearerAuth: []
      x-rate-limit: 60/minute
      parameters:
      - name: backup
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success.
        '201':
          description: Created, for the endpoints that create a resource.
        '401':
          description: Missing or invalid API token.
        '403':
          description: The resource belongs to another team, or the endpoint is admin-only.
        '404':
          description: No such resource.
        '422':
          description: Validation failed. The body carries `message` and `errors`.
        '429':
          description: Rate limit exceeded for this tier. Retry after the `Retry-After` header.
  /api/backups/{backup}/runs:
    get:
      operationId: getBackupsBackupRuns
      tags:
      - Backups
      summary: Paginated, searchable run history for one schedule
      security:
      - bearerAuth: []
      x-rate-limit: 300/minute
      parameters:
      - name: backup
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success.
        '401':
          description: Missing or invalid API token.
        '403':
          description: The resource belongs to another team, or the endpoint is admin-only.
        '404':
          description: No such resource.
        '429':
          description: Rate limit exceeded for this tier. Retry after the `Retry-After` header.
  /api/backups/{backup}/runs/{backupRun}/download:
    get:
      operationId: getBackupsBackupRunsBackupRunDownload
      tags:
      - Backups
      summary: State of a prepared download, plus a signed URL once it is ready
      security:
      - bearerAuth: []
      x-rate-limit: 300/minute
      parameters:
      - name: backup
        in: path
        required: true
        schema:
          type: string
      - name: backupRun
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success.
        '401':
          description: Missing or invalid API token.
        '403':
          description: The resource belongs to another team, or the endpoint is admin-only.
        '404':
          description: No such resource.
        '429':
          description: Rate limit exceeded for this tier. Retry after the `Retry-After` header.
    post:
      operationId: postBackupsBackupRunsBackupRunDownload
      tags:
      - Backups
      summary: Ask for a decrypted, downloadable copy of a completed run
      security:
      - bearerAuth: []
      x-rate-limit: 60/minute
      parameters:
      - name: backup
        in: path
        required: true
        schema:
          type: string
      - name: backupRun
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success.
        '201':
          description: Created, for the endpoints that create a resource.
        '401':
          description: Missing or invalid API token.
        '403':
          description: The resource belongs to another team, or the endpoint is admin-only.
        '404':
          description: No such resource.
        '422':
          description: Validation failed. The body carries `message` and `errors`.
        '429':
          description: Rate limit exceeded for this tier. Retry after the `Retry-After` header.
    delete:
      operationId: deleteBackupsBackupRunsBackupRunDownload
      tags:
      - Backups
      summary: Discard a prepared download copy
      security:
      - bearerAuth: []
      x-rate-limit: 300/minute
      parameters:
      - name: backup
        in: path
        required: true
        schema:
          type: string
      - name: backupRun
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success.
        '401':
          description: Missing or invalid API token.
        '403':
          description: The resource belongs to another team, or the endpoint is admin-only.
        '404':
          description: No such resource.
        '429':
          description: Rate limit exceeded for this tier. Retry after the `Retry-After` header.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'A personal API token from Settings → API Tokens, sent as `Authorization: Bearer <token>`.'
externalDocs:
  description: Documentation
  url: https://dbmigratepro.com/docs