--- title: Quickstart docs | Stainless SDKs description: Stainless is the fastest and easiest way to go from OpenAPI spec to idiomatic, polished SDKs. Our quickstart covers using the Studio, uploading a spec, editing your SDKs, and pushing to production. --- ## Introduction Idiomatic and polished SDKs for your API drive faster integration, broader adoption, quicker upgrades, and trust in your engineering quality. In this guide, you will generate SDKs from your OpenAPI specification that can be shipped as a beta product to your users. You can iterate from there, polishing and shaping the SDKs. ### Before getting started To get the most out of this guide, you’ll need: - A [GitHub](https://github.com) account, used for authenticating with Stainless. - An [OpenAPI spec](https://swagger.io/specification/), which is a standard way of describing your API. Stainless reads from this specification to generate SDKs. If you don’t yet have an OpenAPI spec, you can [create one](/docs/guides/create-openapi-spec/index.md) or [use an example spec](https://learn.openapis.org/examples/v3.0/petstore-expanded.html). ## 1 Create a project Once [signed in](https://app.stainless.com/login), you will be directed to create a Stainless organization and your first project. Use your OpenAPI spec, or use [an example](https://learn.openapis.org/examples/v3.0/petstore-expanded.html). This quickstart walks you through setting up a new project using the Stainless dashboard. If you’d prefer to set up your project using the Stainless CLI check out the [CLI quickstart guide](/docs/getting-started/quickstart-cli/index.md). ![Initial project creation](/docs/_astro/project-create-form.Bnc3XNyF_ZUVK0A.webp) If you believe you should have access to an organization someone else invited you to, accept their invitation first to access your Stainless organization. ### The Stainless config While your OpenAPI spec includes much of the information needed to generate an SDK, it doesn’t include necessary components like the SDK structure, pagination, publishing settings, and more. Stainless uses both your OpenAPI spec and Stainless config to generate your SDKs. As part of your first generation, we create an initial draft of your Stainless config using an LLM. When we make improvements to SDKs and the Stainless config that aren’t backwards-compatible, we release new [editions](/docs/reference/config#editions/index.md) you can opt-in to when you’re ready. ## 2 Try your SDKs Once your build completes successfully, your SDKs are ready to use. ![SDK Studio](/docs/_astro/project-build-staging-repo.Dv7D1ERU_ZENqqp.webp) Choose your favorite language. Then click on your **staging** repository corresponding to the language of your choice. We output code initially to the staging repository under the `stainless-sdks` GitHub org until you can connect a production repo that you own. - If you want to get started quickly, use GitHub codespaces with the generated dev containers - If you want to try it on your machine, follow the instructions in the `CONTRIBUTING.md` of each SDK repository ## 3 Use the Studio After filling out the project creation form, you’ll be taken to the organization dashboard. On this page, you can manage API keys and invite organization members. For now, navigate to your project and click the **Studio** tab. In the Studio, you will see three panes: ![The Stainless Studio showing the SDK preview, editor, and builds panes](/docs/_astro/studio.BK1J90I5_2uyH1G.webp) 1. The SDK preview pane shows the shape and structure of your SDKs, along with example usage snippets and type definitions. 2. The editor lets you modify both your OpenAPI spec and Stainless config to see changes reflected live in the documentation panel. 3. The builds and diagnostics pane shows information about your builds and suggests improvements to your configuration. ### Create new builds Building your SDK can be done through the **Save & build main branch >** button at the top-right of the Studio. When a build is triggered, you will see a new build in the Builds panel: ![Release flow](/docs/_astro/build-panel-flow.DFi4C7mg_1uKDi8.webp) A “build” includes: - A push to your config repository, which tracks all configuration changes - A push to your **staging** repository - A push to your **production** repository if configured The Studio is not the only way to trigger builds. You can also trigger builds through [GitHub Actions or a persistent link](/docs/guides/preview-builds/index.md). ### Troubleshooting The Stainless generator always attempts to output something, even if it isn’t perfect. When the generator detects potential improvements to the OpenAPI spec or the Stainless config, it raises *diagnostics* in the Diagnostics panel: ![Diagnostics](/docs/_astro/diagnostics.B_vtAl9I_ZXnaFY.webp) - **Error**: Indicates issues with the usability of the SDK, such as not being able to compile the library or make a request. - **Warning**: Indicates major issues with the user experience of the SDK, but doesn’t affect usability of the rest of the SDK, such as an invalid schema or a misconfigured endpoint. - **Note**: Indicates potential issues with the user experience of the SDK, but not too consequential for the user. You can click on a diagnostic for more details about the issue. The diagnostics pane guides you through resolving these issues, but please don’t hesitate to [reach out](mailto:support@stainless.com) if you need help. ## Next steps Now that your SDKs are building, here are some things to explore: - **Invite team members**: Add collaborators from the **Members** tab in your [organization dashboard](https://app.stainless.com). After accepting an email invite and authenticating with their GitHub handle, members are automatically added to your Stainless project and the staging GitHub repositories. - **Publish to production**: [Connect your own GitHub repository](/docs/guides/publish/index.md) for public releases. - **Automate updates**: [Set up CI/CD](/docs/guides/preview-builds/index.md) to rebuild SDKs when your OpenAPI spec changes.