OpenAPI support matrix
The tables below provide an overview of the OpenAPI features supported by Speakeasy.
✅ Server configuration
Name | Notes | Swagger link | Support |
---|---|---|---|
ServerURL config | Global and per-method (include base URL and templating) | API server and base path (opens in a new tab) | ✅ |
Authentication and security | Global and per-method | Authentication (opens in a new tab) | ✅ |
Method generation | ✅ | ||
Model generation | Request and response | ✅ |
⚠️ Path parameters serialization (Path parameters (opens in a new tab))
Name | Notes | Swagger link | Support |
---|---|---|---|
Default | (style = simple, explode = false) | Parameter serialization (opens in a new tab) | ✅ |
Basic types | ✅ | ||
Simple objects | ✅ | ||
label | ❌ | ||
matrix | ❌ |
⚠️ Query parameters serialization (Query parameters (opens in a new tab) and query (opens in a new tab))
Name | Notes | Swagger link | Support |
---|---|---|---|
json | ✅ | ||
form | ✅ | ||
spaceDelimited | ✅ | ||
pipeDelimited | ✅ | ||
deepObject | ✅ | ||
Basic types | ✅ | ||
Simple objects | ✅ |
✅ Request headers (Header (opens in a new tab))
Name | Notes | Swagger link | Support |
---|---|---|---|
Simple (explode = true) | ✅ | ||
Simple (explode = false) | ✅ |
⚠️ Request body serialization
Name | Notes | Swagger link | Support |
---|---|---|---|
Multipart encoding | Multipart requests (opens in a new tab) | ✅ | |
Binary | ✅ | ||
Form data | ✅ | ||
JSON | Both application/json and text/json | ✅ | |
x-www-form-urlencoded | Including encoding, but not non-object types | Describing request body (opens in a new tab) | ⚠️ |
Plain text | ✅ | ||
Raw byte | ✅ | ||
Handling required body | ✅ | ||
XML | ❌ | ||
Other media types | ❌ |
⚠️ Response body deserialization
Name | Notes | Swagger link | Support |
---|---|---|---|
Return StatusCode and Content-Type | ✅ | ||
JSON | ✅ | ||
Plain text | ✅ | ||
Raw byte | ✅ | ||
JSON | ✅ | ||
Other media types | ❌ |
✅ Media-type patterns (Media types (opens in a new tab))
✅ Data types
Name | Notes | Swagger link | Support |
---|---|---|---|
Basic types | Data models: Data types (opens in a new tab) | ✅ | |
Enums | ✅ | ||
Number formats | float, double, int32, int64 | ✅ | |
Date-time | ✅ | ||
Binary | ✅ | ||
Arrays | ✅ | ||
Objects | ✅ | ||
Optional | ✅ | ||
Maps | ✅ | ||
Any type | ✅ | ||
OneOf , AnyOf , and AllOf | oneOf, anyOf, allOf, not (opens in a new tab) | ⚠️ See union type support below |
✅ Union types
Name | Notes | Language support |
---|---|---|
oneOf | For languages that don’t yet have native union type support in Speakeasy, oneOf will be treated as an any type. | ✅ TypeScript, Python, Go, C#, Java, PHP |
allOf | To avoid construction of illogical types, Speakeasy currently constructs an object using the superset of fields from the listed schemas. In cases where the base schemas have a field name collision, Speakeasy will default to using the field from the object deepest in the list. | ✅ All languages |
anyOf | anyOf is treated as oneOf to avoid the bloat of combinatorial data type creation. | ✅ TypeScript, Python, Go |
✅ Miscellaneous
Name | Notes | Swagger link | Support |
---|---|---|---|
Auxiliary files* | ✅ | ||
x-speakeasy-server-id generation | ✅ | ||
Snippet generation | ✅ | ||
README generation | ✅ | ||
Documentation generation | ✅ |
* Files needed for creating a fully compilable package that can be published to the relevant package manager without further changes.