Your screen is too small. Please widen your browser window or use a device with a screen width of at least 300px to use this app.
Everything you need to create mock endpoints and call them from your app, no real backend required.
Back to homeFake API helps you quickly create mock APIs for developing and testing applications without needing a real backend. It's useful when you want to develop the frontend independently, test different scenarios (success, error, delay), demo an app with simulated data, or quickly experiment with an idea without setting up a server.
Each project you create gets a unique public projectId. You attach this to a path and define the JSON body, HTTP status code, and delay for each endpoint. The final URL format is:
https://www.fake-api.dev/{projectId}{your_created_path}You need an account before you can create projects and endpoints.
Enter your name, email, and password. A verification email is sent, click Verify to activate your account.
Use your email and password, or sign in instantly with Login with Google.
Select Forgot Password? on the login page and follow the email instructions to reset it.
You need to verify your email before you can use all features.
After logging in, you'll land on the Project management page, this is where all your mock APIs are organized.
On the Project page, start a new project.
Enter a Name (required) and an optional Description.
Your project appears in the list with its own public_id.
The project list shows each project's Name and its public_id, that's the projectId you'll use in mock API URLs.
The Delete all button removes every project you own and cannot be undone. Use with caution.
Endpoint groups help you organize endpoints by functionality or module, for example users, orders, or products. On desktop, groups appear in the left panel of the project page, on mobile, use the dropdown menu instead. Select a group to view and configure its endpoints.
Endpoints define how the mock API responds when it's called. Select an Endpoint Group, click Create new, and fill in:
| Method | GET, POST, PUT, PATCH, or DELETE |
| Path | Must start with /, e.g. /api/users, /api/users/1 |
| Response body | Valid JSON returned to the client |
| Delay (ms) | Simulated latency, default 0 |
| Status Code | Default 200. If set to 204, the body is empty |
Example endpoint configuration:
{
"method": "GET",
"path": "/api/users/1",
"response_body": {
"id": 1,
"name": "John Doe",
"email": "johndoe@example.com"
},
"delay_ms": 500,
"status_code": 200
}Click Save, the endpoint list updates right away with the new endpoint.
Prefix a path segment with : to turn it into a dynamic parameter that matches any value, for example /api/users/:id. That single endpoint responds to /api/users/1, /api/users/42, and any other value in that position, so you don't need a separate endpoint per id.
If both a literal path and a dynamic path could match the same request, the literal (exact) match always wins, the dynamic route is only used as a fallback when no exact match is found.
https://www.fake-api.dev/{projectId}{path} URL, ready to paste into your code.Use the projectId shown in the API Endpoint card on your project's detail page:
curl -X GET https://www.fake-api.dev/QGONEwKEqJg/api/user/1fetch('https://www.fake-api.dev/QGONEwKEqJg/api/users/1')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));axios.get('https://www.fake-api.dev/QGONEwKEqJg/api/users/1')
.then(response => console.log(response.data))
.catch(error => console.error('Error:', error));When you call the API, it will:
404 Not Found
No endpoint matches the requested path.
405 Method Not Allowed
The path is correct but the method doesn't match.
Create a project and get a working endpoint in under a minute.