# softwaremill/tapir

Rapid development of self-documenting APIs

Repository: https://github.com/softwaremill/tapir
Canonical: https://ross.abutalabs.com/products/tapir
Homepage: https://tapir.softwaremill.com
Language: Scala
License: Apache-2.0
License Family: permissive
Topics: akka-http, openapi, http4s, sttp, http, scala, declarative, type-safe, functional-programming, akka, documentation, http-client, http-requests, http-server, observability, play-framework, zio
Last push: 2026-08-26T15:39:25+00:00

## Health v2 (maintenance only)
Score: 94/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 99, release rhythm 84, longevity 100
- inputs: {"age_days": 2824, "days_push": 7, "days_rel": 26, "gap_med": 6.0, "n_releases_24m": 83}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1469, forks 470 (observed 2026-08-28T04:04:49.105858+00:00)

## What it is
Tapir is a Scala library for describing HTTP APIs declaratively with type-safe endpoint definitions. Endpoints can be exposed as servers, consumed as clients, and automatically documented in OpenAPI, AsyncAPI, and JSON Schema formats.

## Use cases
- define type-safe HTTP APIs in Scala
- generate OpenAPI documentation from code
- build REST API servers with Netty, Akka HTTP, http4s, or Play
- generate type-safe HTTP clients from endpoint definitions
- gradually adopt declarative endpoints in existing Scala services
- expose AsyncAPI docs for event-driven endpoints

## When to choose
- you write Scala and want compile-time guarantees for API endpoints
- you need self-documenting APIs with OpenAPI/AsyncAPI generation
- you want one endpoint definition shared between server and client code
- you need high-performance Scala HTTP servers

## When to avoid
- you are not using Scala or the JVM
- you prefer writing OpenAPI specs by hand or code-generating from specs
- you need a non-HTTP protocol like gRPC or GraphQL

## Facets
- artifact type: library
- maturity: active
- function: api-framework, http-server, http-client, routing, serialization, documentation, api-documentation, middleware
- domain: web-development, backend, apis, developer-tools, documentation
- platform: jvm, cross-platform
- tags: openapi, asyncapi, type-safe, declarative-apis, scala, akka-http, http4s, zio, sttp, self-documenting-apis

## Member repositories
- softwaremill/tapir (main) score 94

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:49.105858+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:34:54.869776+00:00, confidence not recorded.
  - readme: https://github.com/softwaremill/tapir (fetched 2026-08-28T04:04:49.105858+00:00, sha 445e775768c8)
- Data as of 2026-08-30T08:39:29.467469+00:00.
