---
description: Frequently asked questions about the platform
---

# API & Data Library

### **Can I pull data from any API?**

Yes, you can call any API you like using our **Data Library** and bind the data to your app design on your **Projects** page. Some APIs will need authentication.

However, our current architecture requires data to pass through our servers, so be mindful of data that are under regulation compliance (i.e. sensitive data).\


### **Where is the data in my app hosted?**

The data is hosted by the source of your API requests. Bravo doesn’t host any external data, we display external data on mobile by using API calls.\


### **How can I get multiple records from Airtable to show?** **I cannot bind anything beyond the first row of records.**

In **Data Library**, when you are selecting the data retrieved from the Airtable, if you want to populate a list, you need to select `All` in the dropdown next to `.data.records.[]` to select the entire array, rather than a specific row.

![](https://1444025092-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MXpqEanvOhm8vMtIH8i%2F-MhyDW7J0BwxkoljYQXU%2F-MhyGm4eWL62JVVVVe9j%2FScreenshot%202021-08-25%20at%2019.06.28.png?alt=media\&token=f98e9040-7cd7-4af0-814c-fdb2c41cb328)

Then, in **Binding Setup** - first, select the frame that wraps around the design you want to populate. To the right, select `Records[]`, which binds the entire list from the Airtable to the frame. Then, click the `+` that appears below to add the design elements within that frame that you want to connect.\


### **Why does the generated data rearrange the Airtable list? How do I display the data based on how I've inputted it?**

Airtable displays the data in a random sort through their API. To display the list in a specific way, you need to add a string to the end of the Request URL. For example, if you want to display the list in the order as shown in your Airtable view, add `?view=VIEW_NAME` to the end.

In the screenshot below, this view is called "Grid view", so my request URL would be `https://api.airtable.com/v0/appoLJFg3xOzgIHto/Restaurants?view=Grid%20view`.

You can also find more ways to sort & display the data in the [Airtable API Documentation](https://airtable.com/api) of your table, such as ascending/descending, sort by a column, etc.\


### **How do I sort the order of the Airtable data?**

To modify the order in which your Airtable data appears in your Bravo app, you need to add a **sort** or **view** parameter at the end of the API request URL ([see this Airtable doc](https://support.airtable.com/hc/en-us/articles/223247187-How-do-I-sort-filter-or-retrieve-ordered-records-in-the-API-)).

![](https://1444025092-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MXpqEanvOhm8vMtIH8i%2F-MhyDW7J0BwxkoljYQXU%2F-MhyHr8e_Au5umjZ3Sg2%2FGroup_13.png?alt=media\&token=15fdefba-a642-4b3d-8511-d2cf46a32487)

For example, if you want to display the data in the same order as you have in Airtable, add the view parameter like this:

`https://api.airtable.com/v0/appid123456/Table1?**view=Grid%20view**`

If you want to sort alphabetically by the Name column:

`https://api.airtable.com/v0/appid123456/Table1?**sort%5B0%5D%5Bfield%5D=Name**`

\


### **How do I connect a detail page to a list page, so that it populates content based on what I click on the list page?**

Here is the tutorial (opens in Figma) on how to connect the detail page to the list item selected: [https://www.figma.com/file/fQa8tk6sFpEXftcTLPhOK4/Bravo-Tutorial-Connecting-a-list-and-detail-page-to-Airtable-data](https://www.figma.com/file/fQa8tk6sFpEXftcTLPhOK4/Bravo-Tutorial-Connecting-a-list-and-detail-page-to-Airtable-data)\


### **Is there a limit to the number of responses per request?**

Currently, the limit per request is 100 items. You will have to set up the **Pagination** configuration on your **API collection** in order to load more than 100 items. Check documentation here! \


### **How do I add conditionals to my app (i.e. if total is above 10, display happy emoji)?**

It depends on how you set up the backend. Bravo does not have an integrated feature where you set up conditionals in Bravo Studio, it simply displays the data it receives from the API. So you can set up a database (Airtable or Google Sheet) that contains conditional formulas, your app sends input content to the database, the database calculates them, then creates or chooses output content to be displayed back in your app.

### **Is there a timeout limit for API calls?**

We have a timeout for GET requests at 3 seconds and for non-GET requests of 10 seconds. This is to avoid having a bad experience, and the API should be faster. Currently, you could edit the design if you add the timeout code as an Error page state: [here](https://www.notion.so/Specific-error-state-page-c29e4d4f9ac543978cf0c8427b0a3a69).



**Didn't answer your question? 🧐**

Let us know in the [Bravo Community](https://community.bravostudio.app/) so we can further help you!
