# Supported OpenAPI features

Which OpenAPI 3.0, 3.1, 3.2 and Swagger 2.0 features Apifolio renders.

Apifolio reads **YAML and JSON** files up to 25 MB.

| Feature | Support |
|---|---|
| Swagger 2.0 | Converted to OpenAPI 3 on the fly: body and form parameters, `consumes`/`produces`, `securityDefinitions`, `collectionFormat`, `x-nullable` |
| OpenAPI 3.0 | Full: parameters, request bodies, responses, headers, links, callbacks, security, servers and server variables |
| OpenAPI 3.1 | JSON Schema 2020-12 types (type arrays, `const`, `examples`, `prefixItems`), `$ref` with sibling keywords, webhooks, `summary` in `info` |
| OpenAPI 3.2 | `QUERY` method, `additionalOperations`, tag `parent` hierarchies, `itemSchema` for streams, `in: querystring`, `dataValue`/`serializedValue` examples |
| `$ref` | Internal references, including chains and recursion. External files and URLs are listed as warnings, never fetched |
| Composition | `allOf` merged into one model; `oneOf`/`anyOf` as switchable variants with one example each; `discriminator` and `mapping` |
| Examples | `example`, `examples`, schema examples, defaults and enums; generated from the schema when missing |
| Code samples | Generated in 8 languages; `x-codeSamples` / `x-code-samples` shown first |
| Extensions | `x-tagGroups`, `x-displayName`, `x-logo` |
| Markdown | CommonMark and GitHub tables in descriptions, sanitised. Images are shown as links |

## Not supported (yet)

- AsyncAPI documents (planned).
- Multi-file specs split across several attachments. Bundle them into one file first, for example with `redocly bundle` or `swagger-cli bundle`.
