Private beta · now open

The migration API developers
have been waiting for.

Move data out of any SaaS platform with a single API call.  Airtable, HubSpot, Notion, Salesforce, Zendesk  — to PostgreSQL, CSV, or JSON. Pay only for what you migrate.

migrate.js
const portage = new Portage('ptg_live_xxx')
const job = await portage.jobs.create({
  source: {
    type: 'airtable',
    credentials: { apiKey: '...' },
    config: { baseId: 'appXXX' }
  },
  destination: {
    type: 'postgresql',
    config: { connectionString: '...' }
  }
})
await portage.jobs.waitForCompletion(job.id)
// Done. Your data is in PostgreSQL.
You're on the list — we'll be in touch.

Join 0 developers on the waitlist.

How it works

01

Choose your source

12+ connectors ready to go. Pick your SaaS and drop in your credentials.

12+ connectors
02

Choose your destination

Export to PostgreSQL, CSV, or JSON. Your data, your format, your storage.

3 output formats
03

Get results

Pay per record migrated. 100K records is $80 total — not $500/month.

$0.0008 / record

Supported sources

More added every sprint — prioritised by your requests.

Airtable
HubSpot
Notion
Salesforce
Zendesk
Jira
Shopify
Stripe
Google Sheets
Mailchimp
Monday.com
Webflow

Don't see yours?

Why developers love it

No ongoing sync required

Run once, data moves, done. No webhooks to manage, no cron jobs to babysit, no pipeline maintenance. You call the job — we handle the rest and clean up after ourselves.

AI-powered schema mapping

Field names don't need to match. Our model maps first_namefirstNameName (First) automatically.

Per-record pricing: pay for what you migrate

100K records = $80 total, not $500/month for another SaaS subscription. Run one job, pay once, own your data forever. Free tier covers 50K records/month — forever.

Common questions

What if my SaaS isn't listed?

Request it using the form below — we prioritise connectors strictly by demand. If 10+ developers need the same source, we build it in the next sprint. Every request goes directly into our connector backlog.

How do you handle credentials?

AES-256 encrypted at rest, transmitted over TLS 1.3 only. Credentials are deleted from our systems the moment your migration job completes — we have no reason to keep them and we don't.

Is there a free tier?

Yes — 50,000 records per month, free, forever. No credit card required. When you need more, you pay exactly $0.0008 per record — nothing else.

Which SaaS do you need?

Tell us what to build next. Connectors are shipped in demand order.