OpenAPI Support Matrix
The tables below give an overview of what we support from OpenAPI.
✅ Server Configuration
| Name | Notes | Swagger Link | Support |
|---|---|---|---|
| ServerURL config | Global and per-method (include base URL and templating) | api-host-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) | serialization/#path (opens in a new tab) | ✅ |
| Basic types | ✅ | ||
| Simple objects | ✅ | ||
label | ❌ | ||
matrix | ❌ |
⚠️ Query Parameters Serialization (query-parameters (opens in a new tab) & 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 | multi-part 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))
✅ Datatypes
| 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/AllOf | oneof-anyof-allof-not (opens in a new tab) | ⚠️ See union type support below |
✅ Union Types
| Name | Notes | Language Support |
|---|---|---|
oneOf | For languages where we haven't yet developed native Union type support. oneOf will be treated as an any type. | ✅ TS, Python, Go |
allOf | To avoid construction of illogical types, we currently construct an object using the superset of fields from the listed schemas. In cases where the base schemas have a field name collision, we 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. | ✅ TS, Python, Go |
✅ Miscellaneous
| Name | Notes | Swagger Link | Support |
|---|---|---|---|
| Auxiliary files* | ✅ | ||
x-speakeasy-server-id generation | ✅ | ||
| Snippet generation | ✅ | ||
| README generation | ✅ | ||
| Documentation generation | ✅ |
* Utility classes and functions to help with serialization and deserialization.
* Files needed for creating a fully compilable package that can be published to the relevant package manager without further changes.