Every time I want to teach someone API testing, I hit the same wall: there's nothing decent to test against.

Public APIs are either read-only (so you never touch a POST), rate-limited into uselessness, or they need a signup flow and a key in a .env file before anyone writes a single assertion. JSONPlaceholder is the usual fallback, but it fakes its writes — you POST something, get a 201, and the resource isn't there when you GET it. That's a terrible thing to learn on, because it teaches you that a status code is the same as a result.

I recently came across funapi.dev, which is a set of mock REST APIs built specifically for QA practice. No signup, no key. Writes actually persist. And — the part that made me sit up — each client gets its own isolated copy of the dataset.

I picked the Movies API and wrote a real suite against it. Below are the tests I found most worth showing, including the one that turned up a bug.

What we're testing