Data portability

Own your compliance data

Your vendors, risks, people, policies and the documents behind them are yours. Export them with keel-migrate (an open-source tool you run on your own machine, using each platform’s official API), taking whatever each platform’s API lets out, then bring them into Keel. It reads Vanta, Drata, Hyperproof, Oneleet and Secureframe today, with OneTrust in beta. Your credentials never leave your computer.

keel-migrate is one of several things we build in the open. See all of them on our open source page.

Open source · MIT · read-only · runs locally. Vanta, Drata, Hyperproof, Oneleet and Secureframe today, with OneTrust in beta; more on the roadmap.

The open-source tool

Export on your terms, not theirs

keel-migrate is a small, auditable command-line tool. You give it a read-only API key for your current platform; it exports your data to one or more portable bundle files. Nothing runs on our servers, and we never see your source credentials.

  • Runs on your machine

    A command-line tool you run yourself. Your API credentials never leave your computer and are never written to disk or sent to Keel.

  • Official APIs, read-only

    Talks only to the source platform’s own documented API, over HTTPS, read-only. It never scrapes the UI and cannot modify anything in your source system.

  • Open source (MIT)

    The whole tool is public and auditable: read exactly what it does before you run it. No black box, no account required.

  • A neutral, open format

    It writes one or more documented bundle files (a large export is split automatically). Import them into Keel, or keep them. The format is open, so your data is not locked to any destination.

# No install step. Requires Node.js 18.17+.

# Vanta (read-only OAuth client)
export VANTA_CLIENT_ID=… VANTA_CLIENT_SECRET=…
npx keel-migrate export --source vanta --out ./out

# Drata (read-only API key)
export DRATA_API_KEY=…
npx keel-migrate export --source drata --out ./out

# Hyperproof (OAuth client with read-only scopes)
export HYPERPROOF_CLIENT_ID=… HYPERPROOF_CLIENT_SECRET=…
npx keel-migrate export --source hyperproof --out ./out

# Oneleet (API service key and tenant id)
export ONELEET_API_KEY=… ONELEET_TENANT_ID=…
npx keel-migrate export --source oneleet --out ./out

# Secureframe (API key and secret)
export SECUREFRAME_API_KEY=… SECUREFRAME_API_SECRET=…
npx keel-migrate export --source secureframe --out ./out

# OneTrust (beta: read-only OAuth client; exports users + risks)
export ONETRUST_HOSTNAME=… ONETRUST_CLIENT_ID=… ONETRUST_CLIENT_SECRET=…
npx keel-migrate export --source onetrust --out ./out

Open source, so read it before you run it. Requires Node.js 18.17 or newer. Full instructions, including large exports, are in the repository README.

What comes over

Your registers and policies, mapped for you

  • Vendors

    Your third-party register: name, website, criticality, status, and review dates.

  • Risks

    Your risk register with treatment and status, plus likelihood × impact and residual scores wherever the source platform scores its risks. A risk the source never scored arrives unscored and is marked Needs scoring in your register.

  • People

    Your personnel directory: names, emails, roles, and active/offboarded status.

  • Policies

    Your policy register: titles, status, approval dates, and versions.

  • Policy & evidence documents

    Where the source API serves a file, it is downloaded and inlined (checksum-verified), then stored in your Keel evidence library on import. The table below shows which sources serve which documents.

What keel-migrate exports from each source platform
Source Exports Policy documents Evidence files Risk scores Where it connects
Vanta Vendors, risks, people and policiesA link where one exists, not the fileYes, the files themselvesLikelihood and impact, where scoredapi.vanta.com
Drata Vendors, risks, people and policiesNot includedNoLikelihood and impact, where scoredpublic-api.drata.com
Hyperproof Vendors, risks, people and policiesA link where one exists, not the fileYes, the files themselvesLikelihood and impact, where scoredUS only (not EU or GovCloud)
Oneleet Vendors, risks, people and policiesDownloaded when served by its API, otherwise a linkNoLikelihood and impact, where scoredapi.oneleet.com
Secureframe Vendors, risks and peopleNo policiesNoNone sentUS only (not UK)
OneTrust Beta Risks and peopleNo policiesNoNone sentYour own tenant host, including regional ones

What comes over depends on what each platform’s API lets out. Vanta exposes its approved-policy PDFs only as a link into its web app, so those need a manual export. Where a source sends no likelihood or impact, the risk arrives unscored and the register marks it Needs scoring. OneTrust is in beta because it reads only people and risks while its vendor and policy API paths are confirmed. Automated integration monitors don’t transfer. You reconnect those in Keel, where they feed Keel’s own checks.

Then import into Keel

From export to a working program in minutes

1

Export

Run keel-migrate locally to produce your bundle file (or a set of files for a large export).

2

Upload

Drop the bundle into Keel’s importer. Nothing contacts your old platform.

3

Preview

See exactly what will import before anything is written.

4

Import

Bring it in. Re-runs are idempotent: nothing is duplicated.

Straight talk

Moving your data, honestly

keel-migrate helps you take your own data to a new home. It doesn’t end any agreement you have with your current provider. Check your existing contract’s terms before you switch. We built the tool to use each platform’s official, supported API precisely because your right to your own data shouldn’t depend on anyone’s permission.

Vanta, Drata, Hyperproof, Oneleet, Secureframe and OneTrust are trademarks of their respective owners. Keel is not affiliated with, sponsored by, or endorsed by them. Product names are used factually to describe the platform you are exporting your own data from. See our trademark notice.