# Stainless ## Docs - [Frequently Asked Questions (FAQs) (Archived)](/docs/archive/faq/index.md): Answers to common questions about Stainless, including migration, testing, and more. - [Generate a command line interface for your API](/docs/cli/index.md): Generate a production-ready command line tool (CLI) from your OpenAPI spec. - [Comparison guides](/docs/compare/index.md): Find out how Stainless stacks up against the competition. - [Fern vs. Stainless](/docs/compare/fern/index.md): A comprehensive comparison of Fern and Stainless SDK generation: features, language support, configuration, documentation, and more. - [Speakeasy vs. Stainless](/docs/compare/speakeasy/index.md): A detailed comparison of Stainless and Speakeasy for SDK generation: features, language support, configuration, documentation, and more. - [Stainless design decisions](/docs/design/index.md): Useful and interesting details about why some parts of Stainless work the way they do - [Why we generate separate Kotlin and Java SDKs](/docs/design/kotlin-and-java/index.md): Kotlin is interoperable with Java, but one SDK for both languages doesn't work in practice. - [Why our SDKs don't perform runtime request validation](/docs/design/runtime-request-validation/index.md): Find out why Stainless SDKs don't perform runtime request validation and how that benefits everyone. - [Integrate with third-party docs frameworks and systems](/docs/docs-integrations/index.md): Choose the Stainless Docs Platform for seamless SDK documentation, or integrate with third-party providers like ReadMe, bump.sh, and Mintlify using SDK code snippets. - [Bump.sh](/docs/docs-integrations/bumpsh/index.md): Integrate Stainless with Bump.sh to generate SDKs and inject code samples into API docs. Keep docs and SDKs in sync automatically. - [GitBook](/docs/docs-integrations/gitbook/index.md): Integrate Stainless with GitBook to generate SDKs and inject code samples into API docs. Keep docs and SDKs in sync automatically. - [Mintlify](/docs/docs-integrations/mintlify/index.md): Integrate Stainless with Mintlify to generate SDKs and inject code samples into API docs. Keep docs and SDKs in sync automatically. - [ReadMe](/docs/docs-integrations/readme/index.md): Generate SDKs with Stainless and inject code samples into your ReadMe API docs that stay in sync automatically. - [Stainless Docs Platform overview](/docs/docs-platform/index.md): The Stainless Docs Platform is a documentation framework that combines automated API reference generation with a flexible system for authoring guides and other long-form technical content. - [Customize reference generation](/docs/docs-platform/advanced/custom-sdk-json/index.md): Generate API reference content without using the Stainless API. - [Markdown partials](/docs/docs-platform/advanced/markdown-partials/index.md) - [Stainless authentication](/docs/docs-platform/advanced/stainless-authentication/index.md) - [Configuring reference pages](/docs/docs-platform/api-and-sdk-reference/configuring-pages/index.md) - [Local development](/docs/docs-platform/api-and-sdk-reference/local-development/index.md) - [API and SDK reference](/docs/docs-platform/api-and-sdk-reference/overview/index.md) - [UI components](/docs/docs-platform/components/index.md): Learn how to use UI components from Stainless and third-parties in your docs. - [Configuring the Stainless Docs Platform](/docs/docs-platform/configuration/index.md) - [AI chat widget](/docs/docs-platform/customization/ai-chat/index.md): Add an AI assistant widget to your documentation site to help users find answers. - [Analytics](/docs/docs-platform/customization/analytics/index.md): Add analytics tracking to your Stainless Docs Platform site to measure page views and user behavior. - [Use a custom domain](/docs/docs-platform/customization/custom-domain/index.md) - [Integrations and plugins](/docs/docs-platform/customization/integrations-and-plugins/index.md) - [Logo and branding](/docs/docs-platform/customization/logo-and-branding/index.md) - [Open Graph Images](/docs/docs-platform/customization/opengraph-images/index.md): Learn how to create custom Open Graph images that show up in link previews for your documentation pages. - [Styles, fonts, and CSS](/docs/docs-platform/customization/styles-and-fonts/index.md) - [Hosting and deploys](/docs/docs-platform/hosting-and-deploys/index.md) - [Images](/docs/docs-platform/images/index.md) - [Navigation, tabs, and sidebars](/docs/docs-platform/navigation/index.md) - [Project structure](/docs/docs-platform/project-structure/index.md) - [Docs Platform quickstart](/docs/docs-platform/quickstart/index.md) - [Routes and links](/docs/docs-platform/routing/index.md) - [Variables and shared data](/docs/docs-platform/variables/index.md): Define shared variables like product names and version numbers, then use them across your documentation pages. - [Enterprise features](/docs/enterprise/index.md): Premium features designed to meet your exact needs. - [Account manager and SLAs](/docs/enterprise/account-manager-and-slas/index.md): Streamline operations with a single point of contact and specific targets for response and resolution times. - [Advanced release management](/docs/enterprise/advanced-release-management/index.md): Let Stainless manage your full release pipeline. - [AI helpers](/docs/enterprise/ai-helpers/index.md): Helpful client-side utilities for modern AI APIs. - [Audit logs](/docs/enterprise/audit-logs/index.md): Immutable records for important events. - [Breaking change detection](/docs/enterprise/breaking-change-detection/index.md): Automatic detection and alerts to prevent incompatible releases. - [Code owners](/docs/enterprise/codeowners/index.md): Automatically generate CODEOWNERS files. - [GitHub team sync](/docs/enterprise/github-team-sync/index.md): Sync GitHub teams with Stainless role mapping. - [GitHub issue triage](/docs/enterprise/issue-triage/index.md): A service to triage, resolve, and route GitHub issues in SDK repositories. - [Migration support](/docs/enterprise/migration-support/index.md): Switching from one set of SDKs or tools to another can be tricky, but we're here to help. - [Pin SDK versions](/docs/enterprise/pin-sdk-versions/index.md): Freeze code generation at a specific version for more control over rollouts and releases. - [Premium support](/docs/enterprise/premium-support/index.md): Flexible support options that meet you where you are. - [SSO and SCIM](/docs/enterprise/sso-and-scim/index.md): Set up single sign-on (SSO) and System for Cross-domain Identity Management (SCIM) for your Stainless organization. - [White glove onboarding](/docs/enterprise/white-glove-onboarding/index.md): Get started quickly and easily, even if you have large or complex requirements. - [Welcome to Stainless](/docs/index.md): Generate SDKs, docs, a CLI, an MCP server, and more from your OpenAPI spec. - [Create an MCP server from your OpenAPI specification](/docs/mcp/index.md): Generate Model Context Protocol (MCP) servers from your OpenAPI specification - [Docker publishing](/docs/mcp/docker/index.md): Publish your MCP server as a Docker image for easier distribution and deployment - [Configure OAuth for pre-registered apps](/docs/mcp/oauth/index.md): Configure your Stainless MCP server to handle OAuth 2.0 authorization code flow automatically. Learn to support pre-registered apps like Google without separate tooling. - [Permissions](/docs/mcp/permissions/index.md): Configure fine-grained permissions for the MCP code execution tool to control which SDK methods clients can call - [Remote deployment](/docs/mcp/remote/index.md): Deploy your MCP server remotely for web apps and agentic workflows - [Migration guides](/docs/migrate/index.md): Learn how to move from another code generator to Stainless. - [Migrate your Fern docs to Stainless](/docs/migrate/fern-docs/index.md): Migrate your API documentation from Fern Docs to the Stainless Docs Platform, including custom content, React components, and API reference. - [Migrate your Fern SDKs to Stainless](/docs/migrate/fern-sdks/index.md): Learn how to migrate your SDK generation from Fern to Stainless, including exporting your OpenAPI spec and configuring SDK generation. - [Your OpenAPI spec](/docs/openapi/index.md): Your OpenAPI spec is the foudation Stainless builds on; learn how to create or upgrade your spec, use multiple specs, and more. - [Create an OpenAPI spec](/docs/openapi/create/index.md): The complexity of generating an OpenAPI spec depends your API design. These tools can help you create a reasonable spec to get started. - [Stainless OpenAPI extensions](/docs/openapi/extensions/index.md): Complete reference for x-stainless-* vendor extensions that configure SDK generation directly in your OpenAPI spec. - [Generate an OpenAPI repo](/docs/openapi/generate-repo/index.md): Generate and maintain a Git repository containing your OpenAPI specification and its variants. - [Use multiple OpenAPI specs with Stainless](/docs/openapi/multiple/index.md): How to generate a single set of SDKs from multiple specs, or generate different sets of SDKs from different specs. - [OpenAPI requirements](/docs/openapi/requirements/index.md): The OpenAPI versions and features Stainless supports. - [Make your OpenAPI spec appear differently to Stainless with transforms](/docs/openapi/transforms/index.md): Use spec transforms to modify auto-generated specs or customize your OpenAPI without modifying the source - [Transforms reference](/docs/openapi/transforms/reference/index.md): Complete technical reference for Stainless OpenAPI transforms - [Upgrade from Swagger 2.x to OpenAPI 3.x](/docs/openapi/upgrade/index.md): Learn how to convert your Swagger 2.x specification to OpenAPI 3.x for use with Stainless. - [Stainless CLI quickstart](/docs/quickstart-cli/index.md): Use the Stainless CLI to generate idiomatic and polished SDKs from your OpenAPI spec. - [Stainless Studio quickstart](/docs/quickstart-studio/index.md): Use the Stainless Studio to generate idiomatic and polished SDKs from your OpenAPI spec. - [Reference material](/docs/reference/index.md): Technical reference material for various aspects of Stainless. - [Stainless config schema](/docs/reference/config/index.md) - [Generator diagnostics](/docs/reference/diagnostics/index.md) - [SDK and config editions](/docs/reference/editions/index.md) - [Stainless workspace schema](/docs/reference/workspace/index.md): Complete reference for the Stainless workspace file - [Generate SDKs](/docs/sdks/index.md): Learn how to generate, test, and publish SDKs with Stainless - [Configure your SDKs](/docs/sdks/configure/index.md): Learn how to configure your SDKs in Stainless. Organize resources and subresources, map OpenAPI schemas to reusable models, and set up methods and endpoints. This makes your SDKs clear, maintainable, and user-friendly, with easy control over language features and deprecation. - [Configure SDK client settings](/docs/sdks/configure/client/index.md): Configure your SDK's client level settings, including authentication, custom arguments, default headers, retries with exponential backoff, timeouts, idempotency keys, and file uploads. - [Add custom code](/docs/sdks/configure/custom-code/index.md): Custom code in Stainless lets you make changes to generated SDKs that persist across codegen runs, via direct edits or custom commits to your repo. - [Migrate an endpoint to a new version](/docs/sdks/configure/migrate-endpoints/index.md): How to upgrade endpoints without disrupting developers. - [Configure SDK pagination](/docs/sdks/configure/pagination/index.md): Set up pagination helpers and auto-iterators for your SDK. Support cursor, offset, and page number pagination schemes with automatic next-page fetching. - [Configure SDK readme files](/docs/sdks/configure/readme/index.md): Set up code examples in your generated SDK readme files and set headline, pagination, and default example requests to showcase your API's most important endpoints. - [Configure SSE streaming responses in your SDKs](/docs/sdks/configure/streaming/index.md): Enable Server-Sent Events (SSE) streaming in your SDKs to deliver real-time data to clients - [Unstable and undocumented endpoints](/docs/sdks/configure/unstable-or-undocumented-endpoints/index.md): How to handle beta, experimental, and unreleased endpoints in your SDKs. - [Configure SDK webhook helpers](/docs/sdks/configure/webhooks/index.md): Set up webhook helpers that parse and verify webhook payloads with support for standard webhook signatures that use HMAC-SHA256 verification for secure event handling. - [Configure WebSocket methods in your SDKs](/docs/sdks/configure/websockets/index.md): Generate SDK methods for WebSocket endpoints that support full-duplex, bi-directional communication with typed client and server events. - [C#](/docs/sdks/csharp/index.md): Generate production-ready C\# SDKs from your OpenAPI specification - [Go](/docs/sdks/go/index.md): Generate production-ready Go SDKs from your OpenAPI specification - [Java](/docs/sdks/java/index.md): Generate production-ready Java SDKs from your OpenAPI specification - [Kotlin](/docs/sdks/kotlin/index.md): Generate production-ready Kotlin SDKs from your OpenAPI specification - [PHP](/docs/sdks/php/index.md): Generate production-ready PHP SDKs from your OpenAPI specification - [Publish your SDKs](/docs/sdks/publish/index.md) - [Automate codegen with alternative workflows](/docs/sdks/publish/automate-builds/index.md): Use a push-based workflow or poll your OpenAPI spec to trigger codegen after you make changes to your API - [Python](/docs/sdks/python/index.md): Generate production-ready Python SDKs from your OpenAPI specification - [Ruby](/docs/sdks/ruby/index.md): Generate production-ready Ruby SDKs from your OpenAPI specification - [SQL](/docs/sdks/sql/index.md): Generate PostgreSQL extensions from your OpenAPI specification (experimental) - [Test and improve your generated SDKs](/docs/sdks/test/index.md): How to tweak and iterate on your SDKs before launch. - [AI-generated commit messages](/docs/sdks/test/ai-commit-messages/index.md): Automatically generate descriptive commit messages for SDK builds using AI, with support for the Studio, CLI, and preview builds. - [Make changes on branches](/docs/sdks/test/branches/index.md): Safely test OpenAPI and config changes using branches. Preview SDK changes, commit with changelogs, run early access programs, and merge to main when ready. - [Generated SDK tests](/docs/sdks/test/generated-tests/index.md): Learn about the tests Stainless generates for your SDKs and how and when they're run. - [Preview and test codegen results before API changes go live](/docs/sdks/test/preview-builds/index.md): View and validate your SDKs and other codegen targets before you ship changes to your OpenAPI spec. - [TypeScript](/docs/sdks/typescript/index.md): Generate production-ready TypeScript SDKs from your OpenAPI specification - [Stainless security considerations](/docs/security/index.md): Learn about our dependency security and how to report security issues. - [Generate a Terraform provider](/docs/terraform/index.md): Generate production-ready Terraform providers from your OpenAPI specification - [Stainless tools](/docs/tools/index.md): An overview of the tools we provide to help you use Stainless as effectively as possible. - [Community tools](/docs/tools/community/index.md): Unofficial tools for Stainless that are maintained by the community - [GitHub member sync](/docs/tools/github-member-sync/index.md): Sync GitHub organization members with your Stainless org in real time. Access is updated automatically based on GitHub org membership. - [Stainless CLI](/docs/tools/stainless-cli/index.md): The Stainless CLI is the command line interface you use to create, configure, manage, and debug your projects, OpenAPI spec, Stainless config, and more. - [Stainless Language Server](/docs/tools/stainless-language-server/index.md): Set up the Stainless Language Server in your editor for real-time diagnostics, intelligent completions, and navigation in your Stainless config and OpenAPI spec. - [Stainless Studio](/docs/tools/stainless-studio/index.md): The Studio is the UI you use to create, configure, manage, and debug your projects, OpenAPI spec, Stainless config, and more. ## API Reference Links below point to language-neutral HTTP documentation. SDK-specific docs follow the same URL structure with the language inserted after the base path: `/api/{language}/resources/...`. Available languages: http, typescript, python, java, kotlin, go, ruby, cli, php, csharp ### [Projects](/docs/api/resources/projects/index.md) - [Retrieve](/docs/api/resources/projects/methods/retrieve/index.md): Retrieve project - [Update](/docs/api/resources/projects/methods/update/index.md): Update project - [List](/docs/api/resources/projects/methods/list/index.md): List projects - [Create](/docs/api/resources/projects/methods/create/index.md): Create project - [Generate Commit Message](/docs/api/resources/projects/methods/generate_commit_message/index.md): Generate an AI commit message for a specific SDK - [Branches](/docs/api/resources/projects/subresources/branches/index.md) - [Create](/docs/api/resources/projects/subresources/branches/methods/create/index.md): Create a new project branch - [Retrieve](/docs/api/resources/projects/subresources/branches/methods/retrieve/index.md): Retrieve a project branch - [List](/docs/api/resources/projects/subresources/branches/methods/list/index.md): List project branches - [Delete](/docs/api/resources/projects/subresources/branches/methods/delete/index.md): Delete a project branch - [Rebase](/docs/api/resources/projects/subresources/branches/methods/rebase/index.md): Rebase a project branch - [Reset](/docs/api/resources/projects/subresources/branches/methods/reset/index.md) - [Configs](/docs/api/resources/projects/subresources/configs/index.md) - [Retrieve](/docs/api/resources/projects/subresources/configs/methods/retrieve/index.md): Retrieve configuration files - [Guess](/docs/api/resources/projects/subresources/configs/methods/guess/index.md): Generate config suggestions ### [Builds](/docs/api/resources/builds/index.md) - [List](/docs/api/resources/builds/methods/list/index.md): List project builds - [Create](/docs/api/resources/builds/methods/create/index.md): Create build - [Retrieve](/docs/api/resources/builds/methods/retrieve/index.md): Retrieve build - [Compare](/docs/api/resources/builds/methods/compare/index.md): Creates two comparable builds - [Diagnostics](/docs/api/resources/builds/subresources/diagnostics/index.md) - [List](/docs/api/resources/builds/subresources/diagnostics/methods/list/index.md): Get diagnostics for a build - [Target Outputs](/docs/api/resources/builds/subresources/target_outputs/index.md) - [Retrieve](/docs/api/resources/builds/subresources/target_outputs/methods/retrieve/index.md): Download build target output ### [Orgs](/docs/api/resources/orgs/index.md) - [List](/docs/api/resources/orgs/methods/list/index.md): List organizations - [Retrieve](/docs/api/resources/orgs/methods/retrieve/index.md): Retrieve an organization ### [User](/docs/api/resources/user/index.md) - [Retrieve](/docs/api/resources/user/methods/retrieve/index.md): Retrieve the current user