Modern
Classic
Uses action verbs in URLs (non-RESTful)

The Classic Petstore API

The classic reference in OpenAPI 3.1 format with action verbs in URLs like /pet/findByStatus and /pet/uploadImage. Use this for testing legacy tools. For true RESTful design, try the Modern version.

petstore-classic-v3.1.yaml
openapi: 3.1.0
info:
title: Classic Petstore API
version: 1.0.0

servers:
- url: https://api.petstoreapi.com/v1
description: Classic endpoint

paths:
/pets:
get:
summary: List all pets
parameters:
- name: limit
in: query
schema:
type: integer

components:
schemas:
Pet:
type: object
required: [id, name]

Classic Features

Stable and reliable for traditional workflows

OpenAPI 3.1 Compliant

Fully compatible with OpenAPI 3.1 specification and tooling ecosystem.

Traditional REST

Classic RESTful patterns with straightforward resource operations.

Legacy Compatible

Works with older code generators and API gateways out of the box.

Stable & Reliable

Battle-tested patterns that have been used in production for years.

Simple Data Models

Straightforward schemas without complex polymorphism or discriminators.

Well Documented

Comprehensive documentation with examples for all endpoints.

When to Use Classic

Choose Classic for these scenarios

Legacy Tool Testing

Testing older OpenAPI tooling, code generators, or API gateways that don't yet support OpenAPI 3.2 features.

Learning Basics

Teaching fundamental API design concepts without the complexity of modern features like webhooks and discriminators.

Compatibility Requirements

Projects that must maintain backwards compatibility with existing systems that can't be upgraded.

Simple Use Cases

Basic CRUD APIs that don't need advanced features like event-driven architecture or complex authentication flows.

⚠️ Not RESTful Architecture

The Classic Petstore violates RESTful principles by using action verbs in URLs:

  • /pet/findByStatus → should be /pets?status=available
  • /pet/findByTags → should be /pets?tags=tag1,tag2
  • /pet/{id}/uploadImage → should be POST /pets/{id}/images

For true RESTful design with resource nouns, query parameters, and correct HTTP semantics, use the Modern version.

Switch to RESTful Modern Version

Get Started with Classic

Reliable OpenAPI 3.1 reference for traditional workflows.

Open source under MIT License • No breaking changes