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.
openapi: 3.2.0
info:
title: DBMigratePro REST Public 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: Public
paths:
/api/docs:
get:
operationId: getDocs
tags:
- Public
summary: 'Documentation navigation: every page''s slug and title. Public'
security: []
x-rate-limit: 60/minute per IP (unauthenticated)
responses:
'200':
description: Success.
/api/docs/{slug}:
get:
operationId: getDocsSlug
tags:
- Public
summary: One documentation page as rendered HTML and as Markdown. Public
security: []
x-rate-limit: 60/minute per IP (unauthenticated)
parameters:
- name: slug
in: path
required: true
schema:
type: string
responses:
'200':
description: Success.
/api/features:
get:
operationId: getFeatures
tags:
- Public
summary: Which product features are enabled. Public
security: []
x-rate-limit: 60/minute per IP (unauthenticated)
responses:
'200':
description: Success.
/api/pricing:
get:
operationId: getPricing
tags:
- Public
summary: Current published rates, resolved live from Stripe. Public
security: []
x-rate-limit: 60/minute per IP (unauthenticated)
responses:
'200':
description: Success.
/api/pricing/account:
get:
operationId: getPricingAccount
tags:
- Public
summary: The acting team's plan, entitlement, and usage
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.
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