1---2name: openapi-specification-v23description: OpenAPI (Swagger) 2.0 specification for describing REST APIs. Use when writing, validating, or interpreting Swagger 2.0 specs, generating clients/docs, or working with path/operation/parameter/response/schema/security definitions.4---5
6OpenAPI Specification 2.0 (formerly Swagger 2.0) defines a JSON/YAML format for describing RESTful APIs: paths, operations, parameters, responses, schemas, and security. Use this skill when creating or editing Swagger 2.0 specs, validating structure, or generating code/documentation from them.
7
8> The skill is based on OpenAPI Specification 2.0, generated at 2026-01-30.
9
10## Core References
11
12| Topic | Description | Reference |
13|-------|-------------|-----------|
14| Format and Structure | Document format, file structure, data types | [core-format-and-structure](references/core-format-and-structure.md) |
15| Fixed and Patterned Fields | Fixed vs patterned field names in the schema | [core-fixed-patterned-fields](references/core-fixed-patterned-fields.md) |
16| Swagger Object | Root document, required/optional fields, extensions | [core-swagger-object](references/core-swagger-object.md) |
17| Info and Metadata | Info, Contact, License objects | [core-info-metadata](references/core-info-metadata.md) |
18| Tags and External Docs | Tag Object, External Documentation Object | [core-tags-and-external-docs](references/core-tags-and-external-docs.md) |
19| Reference Object | $ref, JSON Pointer, same-document and external file references | [core-reference-object](references/core-reference-object.md) |
20| Data Types and Formats | Primitives, format table, validation, file type | [core-data-types-and-formats](references/core-data-types-and-formats.md) |
21| MIME Types | consumes/produces, RFC 6838, examples | [core-mime-types](references/core-mime-types.md) |
22| HTTP Status Codes | Response keys, default response, IANA/RFC 7231 | [core-http-status-codes](references/core-http-status-codes.md) |
23| Path Templating | Curly braces, path parameters, name matching | [core-path-templating](references/core-path-templating.md) |
24| Header Object | Response header definition (type, format, items, validation) | [core-header-object](references/core-header-object.md) |
25| Headers Object | Container for response headers (name → Header Object) | [core-headers-object](references/core-headers-object.md) |
26| Items Object | Non-body array items (parameters, headers) | [core-items-object](references/core-items-object.md) |
27| Example Object | Response examples by MIME type | [core-example-object](references/core-example-object.md) |
28
29## Paths and Operations
30
31| Topic | Description | Reference |
32|-------|-------------|-----------|
33| Paths and Operations | Paths Object, Path Item, Operation Object | [paths-and-operations](references/paths-and-operations.md) |
34| Path Item $ref | External path definition, conflict behavior | [path-item-ref](references/path-item-ref.md) |
35
36## Parameters and Responses
37
38| Topic | Description | Reference |
39|-------|-------------|-----------|
40| Parameters | Parameter locations (path, query, header, body, formData) | [parameters](references/parameters.md) |
41| collectionFormat | csv, ssv, tsv, pipes, multi and where they apply | [parameters-collection-format](references/parameters-collection-format.md) |
42| Parameters Definitions (Reuse) | Root-level parameters, reuse via $ref | [parameters-definitions-reuse](references/parameters-definitions-reuse.md) |
43| Responses | Responses Object, Response Object | [responses](references/responses.md) |
44| Responses Definitions (Reuse) | Root-level responses, reuse via $ref | [responses-definitions-reuse](references/responses-definitions-reuse.md) |
45
46## Schemas and Definitions
47
48| Topic | Description | Reference |
49|-------|-------------|-----------|
50| Schema and Definitions | Schema Object, Definitions, composition, polymorphism | [schema-and-definitions](references/schema-and-definitions.md) |
51| Schema JSON Schema Keywords | JSON Schema Draft 4 subset and Swagger-specific fields | [schema-json-schema-keywords](references/schema-json-schema-keywords.md) |
52
53## Security
54
55| Topic | Description | Reference |
56|-------|-------------|-----------|
57| Security | Security Definitions, Security Scheme | [security](references/security.md) |
58| Security Requirement Object | Applying security at root/operation, OR/AND logic | [security-requirement-object](references/security-requirement-object.md) |
59| Scopes Object | OAuth2 scope name → description | [security-scopes-object](references/security-scopes-object.md) |
60| Basic and API Key | basic and apiKey Security Scheme | [security-basic-apikey](references/security-basic-apikey.md) |
61| OAuth2 Flows | implicit, password, application, accessCode and required URLs | [security-oauth2-flows](references/security-oauth2-flows.md) |
62
63## Best Practices
64
65| Topic | Description | Reference |
66|-------|-------------|-----------|
67| Spec Authoring | operationId, tags, responses, parameters, definitions, security | [best-practices-spec-authoring](references/best-practices-spec-authoring.md) |
68
69## Advanced
70
71| Topic | Description | Reference |
72|-------|-------------|-----------|
73| Vendor Extensions | x- prefix, value types, where allowed | [advanced-vendor-extensions](references/advanced-vendor-extensions.md) |
74| Security Filtering | Empty Paths, empty Path Item for access control | [advanced-security-filtering](references/advanced-security-filtering.md) |
75| Extensions and XML | XML Object for schema properties | [advanced-extensions-and-xml](references/advanced-extensions-and-xml.md) |