Practice API testing and automation against a real REST API.

Airport Gap is a free REST API made for API testing practice and test automation. It has real endpoints, real authentication and failures you can trigger on purpose, so your tests run against more than a happy path.

Free. Just an email and password, and we'll never send you marketing email.

Save a favorite airport

POST /api/favorites HTTP/1.1Host: airportgap.comAuthorization: Bearer token=<your token>Content-Type: application/json {"airport_id": "JFK","note": "My usual layover"}

Response 201 Created

Content-Type: application/json {"data": {"id": "11","type": "favorite","attributes": {"airport": {"iata": "JFK","name": "John F Kennedy International Airport","city": "New York","country": "United States"},"note": "My usual layover"}}}

The same request, failing on purpose

POST /api/favorites HTTP/1.1Host: airportgap.comAuthorization: Bearer token=<your token>Content-Type: application/jsonX-Simulate: service-unavailable {"airport_id": "JFK","note": "My usual layover"}

Response 503 Service Unavailable

Content-Type: application/jsonRetry-After: 30 {"errors": [{"status": "503","title": "Service Unavailable","detail": "The service is simulating downtime. Retry your request after 30 seconds."}]}

What you can practice in your API tests

Every main HTTP method
Send GET, POST, PATCH and DELETE requests across airports and favorites, so your suite covers both reads and writes.
Token authentication
Generate a token and send it in the Authorization header to call the favorites endpoints.
Data that persists
Favorites stay saved in your account, so you can test create, update and delete flows end to end.
Failures on demand
Add the X-Simulate header to get server errors, downtime, slow responses, malformed JSON or wrong content types, so you can check how your tests handle retries, timeouts and bad responses. See failure simulation.
Rate limits
Each IP address can send up to 100 requests a minute, so you can check how your tests handle a 429 response. Slow simulations are limited to 10 a minute. See rate limiting.

REST API endpoints to test

Method Path What it does
GET /airports List all airports, one page at a time
GET /airports/:id Get one airport by its IATA code
POST /airports/distance Measure the distance between two airports
POST /tokens Get your token with your email and password
GET /favorites List your saved airports Needs a token
GET /favorites/:id Get one saved airport Needs a token
POST /favorites Save a favorite airport Needs a token
PATCH /favorites/:id Update the note on a saved airport Needs a token
DELETE /favorites/:id Remove a saved airport Needs a token
DELETE /favorites/clear_all Remove all saved airports Needs a token

When your tests run in CI

On Airport Gap, you choose when things fail. In CI, failures show up on their own, and the hard part is telling a real regression from a flaky test.

TestNod reads the JUnit XML reports your CI already produces and tracks pass rates, flaky tests and slowdowns across every build. It's from the maker of Airport Gap and free while in beta.

See how TestNod works →