A source provides information on where to find the data source and how to access it. For example, it could be a Rest API with custom headers and/or parameters.

Currently, we support CSV and Json (we plan to quickly offer XML and GraphQL support). In the future, one of our main goals is to offer support for as many data sources as possible.

Sources allow you to define variables that can be set using GraphQL parameters or by resolvers to execute linked requests (see resolvers chapter for more details).

When creating a Source, you’ll first have to select the source type. This documentation will go through and explain each one.


Currently, variables are not typed, which means that a variable could be an integer, float, string, or boolean.

Variables can be declared in a Source, which can later be used to declare query parameters (i.e: I declare a page variable that allows me to query only the first page of results).

Each variable must be defined between double brackets inside of the URL (e.g. {{my_variable}}). If the variable doesn’t already exist, it will be created.

Existing variables will appear in the Variables section, below the URL, Params & Headers section. See below how it looks:


During Wapixir’s alpha, variables can only be declared by adding a parameter value of {{my_variable}}. Variables will be much easier to manage once we’ve left our alpha stage.

Http based source

This module concerns all data sources that inherit from HTTP (JSON, CSV file …).

Every HTTP based source has an HTTP form that contains a URL, parameters, and headers required to obtain the data from the target source. In this example, we’ll use the typicode user API.

First, we should consider the URL that will allow us to obtain the users. In our case it will be{{id}} where {{id}} is a variable that could be any positive integer (e.g.


You can also define headers for your HTTP source. For example, if you need a bearer token or your HTTP endpoint uses the header Content-Type.


As mentioned previously, you can also use variables. Here’s an example of a bearer token using a variable:


You can see 2 variables: id (in the URL) and token.

JSON source

JSON sources are a type of HTTP source. See the module on HTTP based sources for more information.

CSV source

CSV sources are a type of HTTP source. See the module on HTTP based sources for more information.


The Comma Separated Value (CSV) format generally uses the comma as a separator for data, but not always. For this particular case, we’ve allowed users to specify either a comma , or semi-colon ;.

For the time being, we leave it up to the user to determine which separator needs to be used. By default, the separator that we use is the comma ,.