Fully featured GraphQL API
Most API mocking services are only stubbing manually prepared requests, FakeQL on the other hand is a real API with real and predictable behaviours.
Free option doesn’t require user accounts
If you don’t want to register or you don’t need a fully featured account, you don’t have to get one. Our free service will stay free forever.
Blazingly fast deployments
We’ve developed a way to deploy a real API in a fraction of a second. This makes working with FakeQL a pleasure and makes things like our Webpack plugin even possible.
Made for developers by developers
I’m a developer and I’ve made FakeQL to best serve the needs I have as a developer of modern web projects. The focus is and will always be on making a developers life easier.
Webpack plugin with auto deployments of local data
Because we can deploy new APIs in less than a second, we can use a Webpack plugin to watch changes on a local sample file and automatically deploy a new API after each change of that file. It’s the most friction free workflow possible.
Fragile API to test network edge cases and loading states
A real world backend is not always fast and can crash once in a while. FakeQL can simulate those states and delays so that you’re able to optimise your app to perfectly handle all possible edge cases.
Support for all common relationship types
FakeQL has full support for all commonly used relationship types like one to one, one to many, many to many etc. so that you can normalise your data structure the way you should.
Support for union types to fake modern CMS setups
Union types are very popular in modern and enterprise content management systems and FakeQL has full support for them.
Pattern detection extends minimal sample data
We know writing good sample data can be very time consuming, that’s why Blowson has smart pattern detection which makes it possible to generate lots and lots of sample data with only a minimal amount of initial data.
Enums for repeating alphanumeric values
Detection for repeating alphanumeric values will automatically create corresponding Enums that prevent wrong inputs on create and update mutations and where in filter inputs.
Extended data is optimised to point out common UI issues
Data extended with Blowson helps you find UI issues by generating variable content lengths, content containing long words and relationships that are empty.
Feature rich filtering with and, or and not logic
Being able to filter content in various ways is a base need in most projects. FakeQL has a very broad set of filtering options similar to popular GraphQL engines.
Sorting and filtering over multiple levels
Sorting and filtering is not limited to fields on the same level. This makes it possible to structure your data into logical sub types without loosing the ability to filter or sort that data.
Full pagination support
FakeQL is perfect to test your pagination implementation as it not only generates lots and lots of data, the API has full pagination support on top of that.
Fuzzy search on string fields, ideal to simulate auto suggests
FakeQL automatically detects all your string fields and creates a search index on top of that, with precise and fuzzy search options.
All common CRUD mutations are supported
FakeQL deploys a real API with its own data store, that makes it possible to simulate all common CRUD mutations with predictable behaviour. For example if you add new content it will appear in your list views.
Additional mutations for often used operations
Because increasing and decreasing an integer value, or connecting a related entry is such a common feature in modern web apps, we support this kind of mutation out of the box.
Mutations are automatically reset after a testing session
To be able to optimally test your apps and get the same predictable results each time after the same set of operations, we automatically reset all your mutations after a testing session has ended, so you always have the same starting point again for each new test session.
Deploy from your terminal with our CLI
Developers like to create their own automations and we don’t want to limit them, that’s why we’ve created a CLI for FakeQL that you can use our service however you want.
Aggregation support in all array types which are aware of your filtering
You can not only aggregate total counts of filtered lists, which is super useful for paginations, but you can aggregate statistics on your data, as well, for example to get the max, min or average age of all your users.
Apollo Federation Support
We support basic federation with Apollo by exposing all ids in our GraphQL API. This makes it possible to combine fake endpoints with your already implemented real endpoints.
We found this to be such in integral need in most of our prototypes, that we’ve added a native image placeholder service to FakeQL, so you don’t have to go searching.
File upload simulation
You can simulate basic file uploads with FakeQL. If you upload an image, FakeQL will automatically return an image placeholder url with the same dimensions of the uploaded image.
Login, logout and register mutations using JWT tokens
Another common feature that we wanted to support out of the box. FakeQL automatically detects a user type in your sample data and adds basic mutations so that you can test your login, logout, register and account implementations.
A GraphQL and a REST API
Our focus is mostly on our GraphQL API implementation, as that is by far the most useful type of API for modern web applications, but if you really have to, you can access your data over a simple REST API, as well.
Flexible custom nesting
If you’re using FakeQL to mock an existing API, for example the Drupal GraphQL API, you’re often confronted with extra nesting. FakeQL can simulate that with its special “_nest” field on each type. This in combination with named fields lets you add extra nesting in your queries as deep as you want.
Create fully random data
Sometimes you just want to add a new field to your query to test something on your frontend without adding it to your deployment first. FakeQL has full support for random values in any type.
Logging of queries for easy debugging
You don’t always have a network tab to log your queries, for example if your app shows strange behaviour inside a mobile web view, that’s why we log all your recent queries and make them available on our website.
Useful field directives for string and numbers
You can for example truncate your strings or round your floats directly in your queries. Very useful for list views where you only want an excerpt of your content.