You start with an OpenAPI file, the same one that describes the real API. Understudy reads it and turns it into a working, stateful stand-in. You do not rewrite anything, and you do not hand-build routes.
What happens when you import
- It parses your document, in YAML or JSON. The editor accepts either.
- It resolves the references inside the file, so every route knows its real parameters, request body and response shapes.
- It builds a table of every endpoint, one row per path and method, in the order your document lists them.
- It discovers your resources, like Order, Customer and Product, so you get a model you can browse and edit, not just a flat list of routes.
From that moment the simulation is live. Point your app at it and start making real calls.
Your contract is kept exactly
This is the promise that matters most. The document you import is the contract, and Understudy never changes it. The resources and fields you see are an overlay kept beside the spec, so editing them in the UI never rewrites it.
Two things follow from that:
- Export then import gives you back an identical setup. Round tripping is a tested guarantee.
- The runtime will never answer with a route, parameter or response your contract does not describe, and never quietly drop one it does.
What it handles
- OpenAPI 3.0 and 3.1, including the newer JSON Schema rules in 3.1.
- YAML or JSON, parsed right in the browser.
- Internal references, resolved safely even when they point at each other in a loop.