Migration guide
Migrate from Stainless to Octri
Upload stainless.yml with the OpenAPI file beside it. Your targets, package name, production repository and method names come across, and your users keep installing the packages they already have.
Written by Octri · Checked 25 October 2026
What to have to hand
Octri reads Stainless’s own files. A .zip of your repository or a single config file, up to 15 MB.
- stainless.yml
- openapi.yml
What comes across
Each row is a field the Stainless importer reads, and where it lands. Rows marked “By hand” are what is left for you.
| What | In Octri | From Stainless |
|---|---|---|
| SDK languages | One SDK per target | targets |
| Package name | SDK package name | package_name of the first target |
| Repository | The SDK repository | production_repo |
| Project name | Project name | organization.name |
| Method grouping | Methods grouped by tag | resources |
| Method names | Per-endpoint names | x-stainless-method-name in your spec |
| Names inside resources | Set in SDK Studio | By hand |
Step by step
Bring it in
Sign up, choose Switch to Octri when onboarding asks for your spec, and drop in
stainless.ymlwith your OpenAPI file, or a .zip of the repository that holds both.Check the preview
Before anything is created, Octri shows what it found: the spec, each target as an SDK language, the package name, the repository, and which methods carry a name from your spec. Anything it could not carry is named in a note under the preview, so you know what is left to do by hand.
Check the surface
Method names set under
resourcesare not read, so set those in SDK Studio, where the preview shows each call as your users will write it. Compare it with the package you ship today before the first release.Release one language first
Release one language under its existing package name as a new major version, then add the rest one at a time. Each regeneration after that opens a pull request in that language’s repository.
Go live
Publish, then point your custom domain at Octri last, so readers keep the old site until the new one is ready. From then on every merged spec change rebuilds the draft of your docs, SDKs and MCP tools, ready for you to publish.
Questions
The importer skips them and names each one in the preview. Octri generates SDKs in TypeScript, Python, Go, Java, Kotlin, Ruby, PHP, Rust, Swift and Dart.
Still deciding?
The comparison sets Octri against Stainless row by row, from each product’s own pages, with Octri’s prices beside them.
Other migration guides
Migrate from
Speakeasy
Languages, SDK name, package name and x-speakeasy extensions from workflow.yaml and gen.yaml.
Read the guide
Migrate from
Fern
SDK generators, package name, docs theme and the page list from the fern folder.
Read the guideMigrate from
liblab
Spec, languages, auth schemes and package name from liblab.config.json.
Read the guideMigrate from
Mintlify
Name, theme, spec and the page list from docs.json or mint.json, plus your MDX by Pull from GitHub.
Read the guideMigrate from
ReadMe
Your OpenAPI file and the Markdown that bi-directional sync keeps in Git.
Read the guideMigrate from
Redocly
Your bundled OpenAPI file, your Markdown in Git and the redirects in redocly.yaml.
Read the guideMigrate from
Scalar
The OpenAPI document from your Scalar registry or repository, and your Markdown and MDX guides.
Read the guideMigrate from
GitBook
The OpenAPI file your API blocks read and the Markdown that Git Sync keeps in your repository.
Read the guide
Migrate from
Stoplight
The OpenAPI file and Markdown articles in the repository your Stoplight project syncs with.
Read the guideMigrate from
Docusaurus
The OpenAPI file your plugin reads, your MDX pages and the layout in sidebars.js.
Read the guideMigrate from
APIMatic
The API definition your SDKs are built from and the Markdown guides in your portal.
Read the guideMigrate from
OpenAPI Generator
The spec you pass to -i and the package names in your generator config.
Read the guide
Try it on your own spec
Bring what you have from Stainless on the Free plan and see your reference written and your first SDK built.