# Set up an API GET request for list page - Xano

The Data Collections allows you to create API requests to any database or tool with an available REST API.

Here is how to create a **GET request** to retrieve data to be displayed in your apps.

{% hint style="success" %}
If you are connecting to **Xano**, you can use the [Xano API Wizard](https://docs.bravostudio.app/connect-api/set-up-api-requests/creating-an-api-collection) to automatically set up GET requests for you. Also, if you have an OpenAPI, Postman or Swager collection, you can import it via JSON file.
{% endhint %}

{% hint style="info" %}
You can utilise other API verbs (i.e. POST) to retrieve data if your API specifies otherwise. Simply change the verb type of the request URL.
{% endhint %}

## How to create a GET request

&#x20;1\. In **Data Collections**, click `Create a new collection` and select `Start from scratch`. If you already have a collection, skip to step #3.

<figure><img src="https://1444025092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXpqEanvOhm8vMtIH8i%2Fuploads%2FKWAbmlE7l9nPZoGUWHUj%2FSet%20up%20an%20API%20GET%20request%20for%20list%20page%20Airtable-2.jpg?alt=media&#x26;token=97dc00ce-3224-4304-9592-a751914a831b" alt=""><figcaption></figcaption></figure>

&#x20; 2\. Enter the name of your collection and an optional description (we recommend putting the source as the description, like Xano).

{% hint style="info" %}
A **Collection** is a group of API requests, normally from the same data source.
{% endhint %}

![](https://1444025092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXpqEanvOhm8vMtIH8i%2Fuploads%2FsgsNHR1BFsbwd709pW6z%2FSet%20up%20an%20API%20GET%20request%20for%20list%20page%20Airtable%20\(1\).jpg?alt=media\&token=4c549f05-2f7f-43bc-a5c8-c4835a8b62ea)

<figure><img src="https://1444025092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXpqEanvOhm8vMtIH8i%2Fuploads%2FRAVtK9JRZpgPUfOdswLn%2FSet%20up%20an%20API%20GET%20request%20for%20list%20page%20Airtable%20(3).jpg?alt=media&#x26;token=cecf8447-ea20-4e59-ab71-9880a2e6ff30" alt=""><figcaption></figcaption></figure>

&#x20; 3\. You're ready to create requests! Click the **+** button to add a new request, then **edit the request name** to help you identify it.

![](https://1444025092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXpqEanvOhm8vMtIH8i%2Fuploads%2F7kX4pGeVW6RH6ggLu9Qk%2FSet%20up%20an%20API%20GET%20request%20for%20list%20page%20Airtable-5.jpg?alt=media\&token=5cc8825c-685e-40fb-bdf6-3df94178900a)

&#x20; 4\. Copy the Endpoint URL from Xano, then return to Bravo and enter the GET request URL.

<figure><img src="https://1444025092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXpqEanvOhm8vMtIH8i%2Fuploads%2Fg3TKjAgIYTSPlj8ziV5g%2FSet%20up%20an%20API%20GET%20request%20for%20list%20page%20Xano.jpg?alt=media&#x26;token=e090e0e4-9529-466d-883d-11d6fdc2da8b" alt=""><figcaption><p>Copy Endpoint URL from Xano</p></figcaption></figure>

<figure><img src="https://1444025092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXpqEanvOhm8vMtIH8i%2Fuploads%2FDBZZkgs5xZxJ8BQbHXJx%2FSet%20up%20an%20API%20GET%20request%20for%20list%20page%20Xano-2.jpg?alt=media&#x26;token=b9cc7839-8d85-4499-9d24-49c08c334f46" alt=""><figcaption><p>Add the API request URL in Bravo</p></figcaption></figure>

&#x20; 5\. If the API has **Headers** or **Parameters** values you need to input in order to send the request call, input them in the section below. (The example request does not require any extra input)

To authenticate the Xano's API request in Bravo:&#x20;

* Click on the **Collection Settings** (look for the gear icon beside the collection name).
* Go to the **Authentication** tab, select **Bearer** for the authentication type, and leave the **token field** empty.
* Go to the API request. Under **Input Variables & Test Values**, add `_authorization` as the variable name and the `auth token` as the key.<br>

  <figure><img src="https://1444025092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXpqEanvOhm8vMtIH8i%2Fuploads%2FW0OlDf3o4Vg082AvOXCk%2FScreenshot%202024-07-10%20at%2012.45.53.png?alt=media&#x26;token=a7122700-72e7-415f-af17-2afb8f6e6066" alt=""><figcaption><p>Authenticated request</p></figcaption></figure>

&#x20; 6\. Press `Send`. You will receive a response list of all the data retrieved from the API request. You have successfully retrieved data from an API! 🎉

{% hint style="warning" %}
If you encounter any error message after clicking Send, you can consult the **`Debug & Inspect Response`** section to get more information about the error.
{% endhint %}

## How to select data items to use in your apps

In your response list under **Received Data**, you will see all the data items that the API request is sending over.

The **text in light gray** is the name of the data item. The **text in green** is text value of the data item, and **text in pink** is numerical value.

&#x20;  1\. If you are selecting data that you want to **populate into a list** in your design, first select **`All`** where you see a dropdown option. This selects the **array** (list) of data rather than one data record.\
\
For instance, in the example provided, there are 150 items. Selecting '0' will pick a unique data, the first one in the list; '1' will choose the second item, and '149' will select the last item in the list.

<figure><img src="https://1444025092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXpqEanvOhm8vMtIH8i%2Fuploads%2FFq232ylqLFkLqizndmDu%2FSet%20up%20an%20API%20GET%20request%20for%20list%20page%20Airtable-11.jpg?alt=media&#x26;token=43d6ac6a-6d8a-48ea-9564-98f2492616ce" alt=""><figcaption><p>Selected data in Received data</p></figcaption></figure>

{% hint style="success" %}
Bravo's API limit is set at 200 items. To display more, add [pagination](https://docs.bravostudio.app/connect-api/pagination), allowing you to show up to 200 items per page.
{% endhint %}

&#x20;  2\. Next, **check the box** next to all the data items that you want to bind to your app design. Any data you select here will appear as an option to bind in Data Binding.

&#x20;  3\. Under **Output Variables**, it lists all the data items you have selected and automatically denotes the one(s) that is an array.

* **Path**: Is the internal path of the data item sent from the API. *You can define a custom one if needed, if you know what you're doing.*
* **Variable Name**: The name to easier identifies the data item. It appears in Data Binding, and you may also edit this for certain request setups. [Learn more](https://docs.bravostudio.app/connnec-api/request-url-variables).
* **Default Value**: Is a sample content of the data item. This sample content will also be the placeholder content for any fields that come up blank. You can delete it if you don't want to override any blank fields.

4. We highly recommend updating the variable names and make sure they match the variable names of other requests related to the same table. \
   \
   In this example, we use "population" as the variable name for the population field in the city table. This same name should be used for the population field in any API requests related to the city table like the [API GET request for a detail page](https://docs.bravostudio.app/connect-api/set-up-api-requests/creating-an-api-collection/xano/data-library-connect-to-any-api-get-request-for-detail-page-xano).

![](https://1444025092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MXpqEanvOhm8vMtIH8i%2Fuploads%2F2CNlTB8flHxGk0v2bB9q%2FScreen-Recording-2024-06-27-at-11.37.46.gif?alt=media\&token=1d90c59f-dc15-4f28-a6fc-13e380ab2985)

{% hint style="success" %}
Use the [Debugging & Inspect Response](https://docs.bravostudio.app/connect-api/debugging-api-issues/data-library-data-library-debug-section) tool to verify that you're receiving the correctly the data.\
\
If the HTTP requests is successful, a 200- OK status code will be returned from the API, together with the data. \
\
If there was any issue with the HTTP request, an error code will be returned from the API.\
\
Learn more about [Errors in API requests](https://docs.bravostudio.app/good-to-know/troubleshoot/errors-in-api-requests).
{% endhint %}

Follow this guide to continue with the Data binding:

{% content-ref url="../../../../data-binding/display-data-in-your-app/data-biding-bind-data-to-ui-for-a-list-page" %}
[data-biding-bind-data-to-ui-for-a-list-page](https://docs.bravostudio.app/data-binding/display-data-in-your-app/data-biding-bind-data-to-ui-for-a-list-page)
{% endcontent-ref %}
