Select Page

Please note, the inFlow support team isn’t able to assist with specific API questions, however we can direct questions to the development team if help is needed!

What is an API?

API’s act as the “front door” for applications to access data or functionality from your inFlow database. This can allow developers or people with knowledge of web development a way to access inFlow’s data from outside the program.

The inFlow Cloud API allows you to read and write data to your inFlow Cloud. Like most modern APIs, it’s organized around REST and JSON. This can open a whole world of possibilities of what you can do with that data. This could mean creating your own custom reports, or building something like your own integration with other software.


The documentation for the API can be found here:

How can I access the API?

To gain access to inFlow’s API you will need an active inFlow Cloud subscription, as well you will need to subscribe to the API add-on. You can do that from the subscription page found here:

Then, you can go to and generate an API key. To create a new API key click “Add new API key”, give it a name and once it’s created you’ll be given your API key to access to your inFlow Cloud account (until revoked), so please keep it safe! You will also need your ‘companyId’, an identifier for your inFlow Cloud account, which can be found on the integration page as well with your API keys.

Sample API Requests

Getting started with any API can be tricky, here are a few examples of some common requests to get back useful information. Replace {{companyId}} with your actual company ID.


Filtering is a great way to only return the information you’re looking for. Most requests can be filtered using various different filters. The documentation shows which filter can be applied to each request.

In this example we are requesting sales orders from March 1st, 2021 to April 3rd, 2021, but only to return active or non-cancelled orders and any that contain the number 18.

filter[orderDate]={“fromDate”:”2021-03-01″,”toDate”:”2021-04-03″} is a good example of how to created and use a date object when filtering. You specify the starting date and ending date and inFlow will return the results between these dates.

filter[smart]=18 is a special filter that will search across multiple fields. In the case of sales orders, this will search both order number and the customer name for the number 18 and give results based on that. The smart filter will search different fields based on which endpoint you are calling, check the documentation for fields it searches across.

Include & Pagination{{companyId}}/products?include=cost,defaultPrice,vendorItems,inventoryLines&count=50

To keep things as fast as possible, the API returns small chunks of data rather than everything that is available. This comes in 2 forms, pagination and includes.

Pagination limits the number of results that are returned at one time. By default the API will return 20 results at one time. You can increase this amount, or specify where in the results to return by telling the API to return results before or after a certain entityId. The above example uses count=50, to return 50 results instead of the default 20. You can find more about pagination in the documentation by clicking on the word request under Query Parameters in each section.

Includes statements are extremely powerful with inFlow’s API. Because so much information is linked to each other inside inFlow, by default the API will return only the basic information of what you request. To get more information or related data to what you are requesting, you will need to use the includes parameter. Adding this will return the object you specify in the includes request.

In the example above, we are requesting a list of products, but we are including several objects of extra information as well. include=cost,defaultPrice,vendorItems,inventoryLines We are requesting to also include the product’s cost, default price, Vendors it’s listed under and the inventory lines which returns information like the quantity on hand and the location of that stock. You can find all the different objects you can include in your requests in the documentation.

These include statements can also be linked to get even more information{{companyId}}/sales-orders?include=lines.product.category

Here include=lines.product.category, not only is returning the individual product lines on the sales order (include=lines), but it is also returning the product information (include=lines.product) like product name, item type, barcode etc. Going one step further adding the .category also returns the category object that this product belongs to!


If you have any questions on using the API or run into any issues, please email us at 

Was this article helpful?

Thank you for your input, your feedback is important to us.

Thank you for your input, your feedback is important to us.