Code Generators
API Builder generates high-quality client libraries and server stubs from your API specification. The generated code is designed to be indistinguishable from hand-written code — minimal dependencies, single-file output, and readable enough to review like any other PR.
Design Principles
- Minimal dependencies — Client libraries use native framework dependencies where possible. When not, we use the most standard options available.
- Readable output — Every generator starts as a hand-written client that we then automate. The goal is generated code you'd be proud to commit.
- Single file — Download one fully contained, fully functional file. Drop it into your project or package it as a library.
Available Generators
S Scala
- Play 2.9 / Scala 3 Client — Latest Play Framework client with Scala 3 support
- Http4s 0.23 Client — Functional HTTP client for the Typelevel ecosystem
- Anorm 2.9 / Scala 3 Parsers — Database parsers for Play Anorm
- Scala Models — Standalone model and enum generation
- Scala Mock Client — Mock clients for testing
Older Scala versions
K Kotlin & Android
- Android Kotlin RxJava2 Client — Kotlin models with Retrofit 2 + RxJava2
- Android Java Client — Java models with Retrofit 2
- Android RxJava2 Client — Java models with Retrofit 2 + RxJava2
J Java & Spring
- Java WebClient (Spring 6) — Spring 6 WebClient with Jakarta validation BETA
- Lombok Models (Spring 6) — Jakarta JPA models with Lombok BETA
- JPA Repositories (Spring 6) — Spring Data JPA repositories with Jakarta
- Java Models — Standalone Java model generation
- AWS Lambda POJOs — Java POJO models for AWS Lambda
T TypeScript & JavaScript
- TypeScript Declarations — Type definitions for TypeScript projects
- TypeScript SDK — Full TypeScript client SDK
- JavaScript (Isomorphic) — ES6 client for Node and browser
- JSDoc 3 Types — JSDoc type definitions
G GraphQL
- GraphQL Apollo Server — Schema + Apollo Server adapters (example)
- GraphQL Schema — Standalone schema generation
- GraphQL for Java — Schema for use with graphql-java
+ More Languages
- Go Client — Native net/http client for Go
- Dart / Flutter Client — Client for Dart and Flutter apps
- Elm Client (V2) — Type-safe Elm client generation
- C# Client — .NET client generation
- Ruby Client — Ruby HTTP client
⚙ Infrastructure & Schema
- OpenAPI 3.0 — Export to OpenAPI 3.0 spec
- Swagger JSON — Export to Swagger 2.0
- JSON Schema — JSON Schema from service definition
- PostgreSQL DDL — Database schema generation
- CSV Export — API info in CSV format (endpoints, models)
- AWS AppSync CloudFormation — Deploy AppSync backend from your API
- AWS Lambda (Node.js) — Lambda service scaffolding
Scala / Play Framework Docs
Resources
- Browse all generators — Full list with status and details
- Generator attributes — Configure generator behavior per-service
- Generator source code — Build your own or contribute
- Examples repository — Working examples for multiple generators
Want to build your own generator?
Generators are REST services that accept a service description and return a string. It's that simple.
View Generator Source