PES Guide

A real REST API for your app, one click away

Describe your resources, press Create and get an HTTPS URL with full CRUD that your web app, emulator or phone can call right now. Free, no account, json-server compatible.

Editor

Schema

Access

By creating an API you accept the terms of use. Fictitious data only.

Your API will appear here

Pick an example or describe your resources, then press Create API. You get a URL your app can call right away.

  1. Describe resources and fields
  2. Create the API
  3. Call it from the console or your app

Client code, ready to paste

Uses your API's URL.

My APIs

Kept in this browser with their edit tokens. Export one to keep working another day or on another computer: importing the file recreates it with its data.

What every resource understands

The json-server 0.17 query syntax, plus delays and errors on demand to test loading and error states.

RequestDoes
GET /tasks?done=trueEqual to a value. Repeat the parameter for OR.
?priority_gte=2&priority_lte=3Ranges with _gte and _lte, different with _ne.
?title_like=reportContains, ignoring case.
?q=reportSearches every text field.
?_sort=priority,id&_order=desc,ascSorts by one or more fields.
?_page=2&_limit=10Pages, with X-Total-Count and Link headers. _start and _end slice.
GET /projects/1/tasksChildren of a row (POST fills projectId).
?_expand=project · ?_embed=tasksAdds the parent row, or the child rows.
?_delay=1500Answers after 1.5 s (up to 3 s), to see your loading state.
?_status=503Answers with that error and changes nothing, to test error handling.
GET /dbThe whole data set.

Stricter than json-server on purpose: fields that are not in the schema are rejected with their name, values are checked against their type, and ids are integers assigned by the server. Typos in your app show up at once instead of weeks later.

Limits, stated plainly

Resources per API
Fields per resource
Rows per resource
Size of an API
Characters per text value
New APIs per network and hour
Deleted after this many days without changes
Maximum life of an API, in days

When many people use it at once

The service runs on free infrastructure with daily quotas. Under high demand, creating new APIs pauses first, so the ones that already exist keep working. Every refusal comes back as JSON with a clear message and a Retry-After header, and the page tells you when to try again. If even existing APIs stop answering, the free daily quota is spent: it comes back at midnight UTC. Meanwhile download db.json and run it yourself.

Moving to your real backend

Your app only knows a base URL. When the real API is ready, change that line; if it follows the same routes, nothing else changes.

Questions

Is it really free?

Yes. There is no account and no paid plan. Ads on this page help cover it, and the limits above keep it free for everyone.

How long does my API last?

It is deleted 30 days after the last change, and in any case 180 days after it was created. Export it from My APIs to keep the schema and data, and import the file to bring it back.

Can my team edit the same API?

Yes: Share edit access copies a link that adds the API, with its edit token, to the browser that opens it. Share it only with people you trust.

Can I store real data?

No. Use fictitious data only: no real people's data, passwords or payment details. Open and read-only APIs can be read by anyone who has the URL.

Does it work from an Android emulator or a phone?

Yes. It is served over HTTPS with CORS open, so emulators, phones and web apps can call it without cleartext exceptions or proxies.

How is it different from json-server?

It is hosted, so the whole team and every device share one API without running anything. It speaks the same query syntax, validates writes against your schema, and adds simulated delays and errors. Deleting a row does not delete its children.

Report an API

If an API holds illegal content, real personal data or anything that breaks the terms of use, tell us. Reports are reviewed without undue delay. You can also write to appsdelpages@gmail.com.