Overview

Upload a spec or a sample payload — get a live, stateful mock API in seconds.

Default mode
Active mock APIs
Requests captured
Requests by format
JSON
XML
same records, negotiated per request
RPC dispatch APIs
body-routed mocks

Busiest APIs

View all →
Loading…

Recent requests

Loading…

Projects

Every API belongs to a project. Modules are optional groupings inside a project.

Loading projects…

APIs by module

APIs

API Project / module Source Serves Endpoints Requests ↓ Actions
Loading APIs…
1 Upload 2 Review 3 Launch
Detected from content, not the file extension
Drop a spec — or any sample payload
OpenAPI YAML/JSON, XML/JSON payloads, and text files containing any of these
No file handy?
Choose one, or create a new project from this menu
Optional; create one inside the selected project
Readable name; does not affect the URL
Unique in this project; cannot be changed after launch
Updates from the selected project and URL path
Stub needs no configuration
Upload a file or paste content to begin.
Endpoints preview
Upload a file and preview to see its endpoints.
Generated code
Code appears after preview.

Try it

Send a request to any mock. The format toggle sets the request's Content-Type and Accept headers — the same record answers in JSON or XML.

Request bodyapplication/json
Responseidle
Response will appear here.

Bundled samples

Ready-made files to try API Studio: OpenAPI specs, the Tally XML gateway, and raw sample payloads. Download one, then upload it on the Create API page.

Loading…

Access

Creating, moving, or deleting APIs, projects, and modules requires an Access API Key when this instance runs in protected mode. Reads — docs, mocks, and request logs — do not require it.

Instance

Host
Access control
LLM generation mode

Welcome to API Studio

API Studio turns an OpenAPI file—or a raw JSON or XML example—into a live stateful mock API. Use this guide to create, organize, test, and manage mocks without needing backend code.

Getting started

  1. 1
    Choose or create a projectEvery API belongs to a project. Use modules only when you need an optional grouping inside that project.
  2. 2
    Upload or paste inputChoose an OpenAPI 3.x or Swagger 2.0 YAML/JSON file, or provide a representative JSON/XML payload and let API Studio infer CRUD endpoints.
  3. 3
    Review the display name and URL pathThe display name is a readable label. The URL path is unique inside the project and produces /mock/{project-path}/{url-path}.
  4. 4
    Preview before launchingCheck the detected source, generated endpoints, project/module scope, and generated code. Preview does not save or mount anything.
  5. 5
    Launch and testOpen the API workspace, use interactive Docs, or click an endpoint to send a request through the Try-it console.
  6. 6
    Inspect captured requestsUse the Overview and API workspace to review request activity and confirm integrations are calling the expected paths.

Available features

Spec and sample input

Upload OpenAPI 3.x, Swagger 2.0, JSON, XML, or text containing supported payloads. You can also paste content directly.

Stateful CRUD mocks

Created and updated records persist in SQLite, so later GET requests return the data sent by your test clients.

JSON and XML

Use the same stored records across JSON and XML requests while preserving expected XML root structures.

Projects and modules

Keep APIs organized by project and optional module. Add new APIs to an existing project whenever needed.

Body-routed workflows

Model Tally, SOAP-style, and similar gateways with dispatch rules and optional session state transitions.

Docs and request tools

Each API has interactive documentation, a downloadable normalized specification, a Try-it console, and recent request activity.

Understand the structure

TermMeaningImportant behavior
ProjectRequired top-level API groupingIts URL path is part of the API URL. The Default Project is the permanent fallback and cannot be deleted.
ModuleOptional organization inside a projectModules never appear in the runtime URL, so moving or renaming a module does not break clients.
API display nameReadable display labelIt can be changed without changing the API URL.
URL pathStable path unique within a projectIt becomes the final API URL segment and cannot be changed after launch.
API URL/mock/{project-path}/{url-path}Use the full base URL shown in the API workspace when configuring a client.

Common tasks

Add another API

Open Projects, select the project or a module, then choose Add API. URL paths only need to be unique within that project.

Test an endpoint

Open an API workspace and select an endpoint, or open Try it and enter the complete mock path, method, format, and body.

Delete an API or project

Delete APIs first, then delete the empty non-default project. Restart the application after API deletion to fully unload its routes.

Resolve an error

401: enter your Access API Key in Settings. 409: choose a different URL path or empty the project. 413: reduce the upload/request size.

Frequently asked questions

What can I upload?

OpenAPI 3.x or Swagger 2.0 YAML/JSON files, raw JSON/XML samples, and text files containing those formats. API Studio validates specs and infers CRUD APIs from representative sample payloads.

What is the difference between Preview and Launch?

Preview validates the input and shows the generated endpoints and code without saving anything. Launch writes the normalized spec and router, registers the API, and makes its URL live.

Why is the Default Project not deletable?

It is the permanent fallback for older APIs and uploads that do not provide a project. It may remain empty and does not affect other projects.

Does changing an API or module name change its URL?

No. Display names and modules are organizational. Project paths and API URL paths form the stable URL and cannot be changed after launch.

Why do I see “URL path already exists”?

A URL path must be unique inside its project. Choose another path, or place the API in a different project. The same path may be reused in different projects.

Why can’t I delete a project?

Delete or move every API assigned to it first. Use Move on an API row, or on its workspace header, to reassign it to another project or module. Empty modules are removed automatically with a non-default project.

How do I move an API between projects or modules?

Open the APIs page and choose Move on the API's row, or use Move in the API workspace header. Moving between modules changes nothing else. Moving to another project rewrites the base URL to /mock/<new-project-path>/<url-path> and keeps the previous URL working as an alias.

Why does a deleted API require a restart?

The generated route is loaded into the running process. Its files and records are deleted immediately, but restarting fully unloads the in-memory route.

Where is mock data stored?

Generated specifications and routers are stored on disk, while request and stateful CRUD data are stored in SQLite. They survive restarts when the deployment volumes are persistent.

What does the Access API Key protect?

When enabled, it protects control-plane changes such as creating, moving, and deleting APIs, projects, and modules. Organization SSO or VPN access must protect the entire application, including docs, logs, and mock endpoints.

Where do I get an Access API Key?

Get your Access API Key from TinyMagiq, then open Settings and enter it in the Access API Key field. Never share the key in tickets, screenshots, chat messages, or uploaded payloads.

Should I use real production or personal data?

Only use data permitted by your organization. For the feedback pilot, use synthetic or safely anonymized data and never include credentials, access tokens, or production secrets.

When should I use LLM generation mode?

Use deterministic Stub mode by default. LLM mode executes generated Python and should remain disabled unless your organization has explicitly approved that workflow.

Docs Download spec

Endpoints — click to try
Dispatch rules
Recent requests to this API
Loading…