
Smithy
Smithy is a free, open-source, protocol-agnostic interface definition language and toolset for modeling service APIs.
What Smithy is
Smithy is a free, open-source, protocol-agnostic interface definition language and toolset for modeling service APIs. A single model can generate type-safe client SDKs for TypeScript, Python, Go, Rust, Kotlin, Swift, Java, Scala, Ruby, and Dafny, plus server code, API reference documentation, OpenAPI, and JSON Schema. Models can describe REST JSON, RPC v2 CBOR, AWS JSON, and AWS Query/XML protocols. Smithy validates standards during builds and checks revisions for backward compatibility. Its CLI builds, validates, compares, and queries models without requiring Java or Smithy Gradle Plugins. The CLI supports macOS x86 and ARM, Linux x86 and ARM, and Windows x64. Smithy is Apache 2.0 licensed, maintained by AWS and the open-source community, and supports extensions through Maven dependencies and plugins.
Good
- Generates SDKs in ten languages
- Produces server code and documentation
- Checks backward compatibility
- Supports multiple API protocols
- Runs on major desktop platforms
Watch out
- Requires API modeling expertise
- CLI support is platform-specific
- No hosted pricing plan is listed
Who it suits
Smithy suits teams defining service APIs and generating SDKs, server implementations, and documentation across languages. It is also relevant to organizations using OpenAPI, CloudFormation schemas, or AWS integrations.
Verdict
Smithy centralizes API definitions and turns them into multiple implementation and documentation artifacts. Its validation, protocol support, and AWS integrations make it suitable for teams managing shared service models.
The facts
Each one read from Smithy's own pages, with the date it was checked.
What it does
- API protocols
- The same service model can support REST JSON, RPC v2 CBOR, AWS JSON, and AWS Query/XML protocols.checked 4 Oct 2026
- AWS integrations
- Smithy documents integrations with AWS services and tools including API Gateway, CloudFormation, and AWS SDKs.checked 9 Oct 2026
- AWS use
- Smithy says it was created and is used at AWS, and that it powers AWS APIs and SDKs.checked 4 Oct 2026
- CLI
- The Smithy CLI can build models, run ad hoc validation, compare models, and query models without requiring users to set up Java or Smithy Gradle Plugins.checked 4 Oct 2026
- Client languages
- The site lists client SDKs for TypeScript, Python, Go, Rust, Kotlin, Swift, Java, Scala, Ruby, and Dafny.checked 9 Oct 2026
- Code generation
- A single Smithy model can generate type-safe clients, servers, documentation, OpenAPI, and JSON Schema.checked 9 Oct 2026
- Community and maintenance
- The site says Smithy is maintained by AWS and the open-source community and links to community resources and GitHub issues.checked 9 Oct 2026
- Download verification
- Smithy CLI release archives are PGP-signed and hashed, and the installation guide describes verifying their signatures and checksums.checked 4 Oct 2026
- Governance
- Smithy validates model standards during smithy build and checks revisions for backward compatibility.checked 9 Oct 2026
- Integrations
- Smithy build configurations can load extensions and code generators through Maven dependencies and plugins, including AWS-specific dependencies and an OpenAPI generator.checked 4 Oct 2026
- Intended users
- Smithy is presented for teams defining service APIs and generating SDKs, server code, and documentation across programming languages.checked 4 Oct 2026
- License
- The site identifies Smithy as open source under the Apache 2.0 license.checked 9 Oct 2026
- Modeling
- Smithy supports resource-based API modeling, which can be used to generate artifacts including CloudFormation schemas, SDKs, and documentation.checked 4 Oct 2026
- Product
- Smithy is an open-source, protocol-agnostic interface definition language and toolset for defining APIs and generating clients, servers, and documentation.checked 4 Oct 2026
- Protocols
- Smithy describes support for REST JSON, RPC v2 CBOR, AWS JSON, and AWS Query protocols.checked 9 Oct 2026
- Purpose
- Smithy is an open-source interface definition language for modeling services and SDKs.checked 9 Oct 2026
- Security
- The Smithy CLI installation guide says release archives are PGP-signed and hashed, and describes verifying signatures and checksums.checked 9 Oct 2026
- Server languages
- The site lists server support for TypeScript, Java, Python, Go, and Rust.checked 9 Oct 2026
- Support
- The CLI guide directs users with suggestions or issues to create an issue in the Smithy GitHub repository.checked 4 Oct 2026
Where it runs
- CLI platforms
- The Smithy CLI is supported on macOS for x86 and ARM, Linux for x86 and ARM, and Windows x64.checked 9 Oct 2026
- Supported CLI platforms
- The Smithy CLI is supported on macOS x86 and ARM, Linux x86 and ARM, and Windows x64.checked 4 Oct 2026
Alternatives to Smithy
- 1

Apidog
Free planWebAPIExtensionLinux8.0From $9 a month - 2

Apollo Studio
Free planWebAPIExtensionLinux7.7$5 usage-based - 3

PactFlow
Free planWebAPILinuxSelf-hosted7.6From $115.42 a month - 4

Postman
Free planWebExtensionLinuxmacOS7.6From $9 a month - 5

Pact
Free planAPILinuxmacOSSelf-hosted7.5From $115.42 a month - 6

Microcks
Free planWebAPIExtensionLinux7.2Free plan
