# The Data API

### Enabling the Data API

The Data API is disabled by default. To enable it, go to Settings - API and check the box 'This app exposes a Data API'. This allows you to select one-by-one which data types are exposed in the Data API.

### The Data API and privacy rules

Access to data is controlled by the privacy rules applied to that particular data type.&#x20;

#### View all fields

If this box is checked, the client will be able to retrieve all the fields on all the things of a given data type. If you uncheck this box you can check which fields are returned one-by-one.

#### Find this in searches

If this box is checked, the client will be able to retrieve a list of things of a given data type, optionally using search constraints.&#x20;

#### View attached files

If this box is checked, the client will be able to retrieve files saved to a given data type.

#### Allow auto-binding

This setting does not affect clients who access the database via the Data API.

### Data API Privacy Rules

Whenever the Data API is enabled for a database thing, three new options are available in that thing’s privacy rule:

* Create via API
* Modify via API
* Delete via API

These settings only apply to clients that access the database via the Data API. All three are disabled by default on existing privacy rules. They do not affect your application’s regular users or your API Workflows.

## Other ways to learn

### User manual articles

The Bubble manual gives extended information about Bubble's features and how to use them.

<details>

<summary>Introduction to APIs</summary>

This article series takes an in-depth look at what exactly an API is and how you can both set up an API in Bubble and connect to external APIs in different ways.

Article: [Introduction to APIs](https://manual.bubble.io/~/revisions/cityQ1wuAKUIdbGUZo4Q/help-guides/integrations/api/introduction-to-apis)\
Video: [Introduction to APIs](https://www.youtube.com/watch?v=nO8PSqeJaWk\&t=745s)\
Article: [What is a RESTful API?](https://manual.bubble.io/~/revisions/cityQ1wuAKUIdbGUZo4Q/help-guides/integrations/api/introduction-to-apis/what-is-a-restful-api)

</details>

<details>

<summary>Authenticating with the Bubble API</summary>

Authentication is the process of identifying **who** the client is in order to determine what they have access to.\
\
Article series: [The Bubble API and authentication](https://manual.bubble.io/~/revisions/cityQ1wuAKUIdbGUZo4Q/help-guides/integrations/api/the-bubble-api/authentication)\
\
\
**Authentication types**\
The Bubble API lets clients authenticate in different ways:\
\
Article: [Accessing the Bubble API without authentication](https://manual.bubble.io/~/revisions/cityQ1wuAKUIdbGUZo4Q/help-guides/integrations/api/the-bubble-api/authentication/no-authentication)\
Article: [Accessing the Bubble API authenticated as a User](https://manual.bubble.io/~/revisions/cityQ1wuAKUIdbGUZo4Q/help-guides/integrations/api/the-bubble-api/authentication/as-a-user)\
Article: [Accessing the Bubble API authenticated as an admin](https://manual.bubble.io/~/revisions/cityQ1wuAKUIdbGUZo4Q/help-guides/integrations/api/the-bubble-api/authentication/as-an-admin)\\

**How to set up authentication in the external system**\
The Bubble uses the bearer token method to authenticate clients.

Article: [How to set up authentication in an external app](https://manual.bubble.io/~/revisions/cityQ1wuAKUIdbGUZo4Q/help-guides/integrations/api/the-bubble-api/authentication/how-to-authenticate)

</details>

<details>

<summary>The Data API</summary>

The Data API lets you set up an API in your Bubble application that accepts **incoming** **requests** to search for, read, create, edit and delete entries in your database.\
\
Article series: [The Data API](https://manual.bubble.io/~/revisions/cityQ1wuAKUIdbGUZo4Q/help-guides/integrations/api/the-bubble-api/the-data-api)

</details>

### Video lessons

<details>

<summary>Video lessons</summary>

* [Intro to APIs and the API Connector](https://www.youtube.com/watch?v=nO8PSqeJaWk\&t=745s)

</details>
