No mocks. No stubs. No ceremony.

Instant API responses, simplified.

Define an API output once, dryapi returns a URL that serves it back immediately — perfect for smoke tests, demos, and quick integrations. Built to be the simplest way to test real HTTP calls.

Simple
No mocks needed
JSON
Payload ready
1 URL
No setup required
Try it now
How it Works
1

Describe the response

Send the payload, headers, and status you want to test.

2

Get your URL

dryapi returns a link that serves your response.

3

Hit it anywhere

Use curl, browsers, CI, or your integration tests.

Built for fast tests

Frontend demos

Unblock UI work without building a full backend.

Integration checks

Run a real HTTP call without stubbing infrastructure.

Support & QA

Reproduce payloads from the field in seconds.

Onboarding

Share a stable example response while docs evolve.

Write Docs with Live API Examples

Stop pasting fake JSON in docs. Generate a real URL that returns the exact example response.

Before

Static docs snippet that can get outdated:

GET /users/42
{
  "id": 42,
  "name": "Ada"
}

After

Real endpoint in your docs/tutorial:

GET https://dryapi.io/Ab12Cd34
{
  "id": 42,
  "name": "Ada",
  "role": "admin"
}
1. `POST /responses` with your example body.
2. Copy generated `https://dryapi.io/<id>`.
3. Paste it directly in docs, tutorials, and SDK examples.
curl -s -X POST https://dryapi.io/responses \
  -H "Content-Type: application/json" \
  -d '{"status":200,"body":{"id":42,"name":"Ada","role":"admin"}}'
# => {"url":"https://dryapi.io/Ab12Cd34","expiresIn":60}
Built for simplicity.

No mocks, no stubs, no setup. Just define the response and use the URL.

URL generated

Use this URL in your tests or open it in a new tab.