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.
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.
Process
12+ connectors ready to go. Pick your SaaS and drop in your credentials.
12+ connectorsExport to PostgreSQL, CSV, or JSON. Your data, your format, your storage.
3 output formatsPay per record migrated. 100K records is $80 total — not $500/month.
$0.0008 / recordIntegrations
More added every sprint — prioritised by your requests.
Don't see yours?
Benefits
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.
Field names don't need to match. Our model maps
first_name →
firstName →
Name (First) automatically.
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.
FAQ
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.
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.
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.
Connector requests
Tell us what to build next. Connectors are shipped in demand order.