---
title: Xata · Cloudflare Workers docs
description: Xata is a serverless data platform powered by PostgreSQL. Xata uniquely combines multiple types of stores (relational databases, search engines, analytics engines) into a single service, accessible through a consistent REST API.
lastUpdated: 2024-08-20T21:10:02.000Z
source_url:
  html: https://a74404c8.preview.developers.cloudflare.com/workers/databases/native-integrations/xata/index.md
  md: https://a74404c8.preview.developers.cloudflare.com/workers/databases/native-integrations/xata/
---

[Xata](https://xata.io) is a serverless data platform powered by PostgreSQL. Xata uniquely combines multiple types of stores (relational databases, search engines, analytics engines) into a single service, accessible through a consistent REST API.

[Database Integrations](https://developers.cloudflare.com/workers/databases/native-integrations/) allow you to connect to a database from your Worker by getting the right configuration from your database provider and adding it as [secrets](https://developers.cloudflare.com/workers/configuration/secrets/) to your Worker.

## Set up an integration with Xata

To set up an integration with Xata:

1. You need to have an existing Xata database to connect to or create a new database from your Xata workspace [Create a Database](https://app.xata.io/workspaces).

2. In your database, you have several options for creating a table: you can start from scratch, use a template filled with sample data, or import data from a CSV file. For this guide, choose **Start with sample data**. This option automatically populates your database with two sample tables: `Posts` and `Users`.

3. Add the Xata integration to your Worker:

   1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com) and select your account.
   2. In **Account Home**, select **Workers & Pages**.
   3. In **Overview**, select your Worker.
   4. Select **Integrations** > **Xata**.
   5. Follow the setup flow, selecting the database created in step 1.

4. Install the [Xata CLI](https://xata.io/docs/getting-started/installation) and authenticate the CLI by running the following commands:

   ```sh
   npm install -g @xata.io/cli


   xata auth login
   ```

5. Once you have the CLI set up, In your Worker, run the following code in the root directory of your project:

   ```sh
   xata init
   ```

   Accept the default settings during the configuration process. After completion, a `.env` and `.xatarc` file will be generated in your project folder.

6. To enable Cloudflare access the secret values generated when running in development mode, create a `.dev.vars` file in your project's root directory and add the following content, replacing placeholders with the specific values:

   ```txt
   XATA_API_KEY=<YOUR_API_KEY_HERE>
   XATA_BRANCH=<YOUR_BRANCH_HERE>
   XATA_DATABASE_URL=<YOUR_DATABASE_URL_HERE>
   ```

7. The following example shows how to make a query to your Xata database in a Worker. The credentials needed to connect to Xata have been automatically added as secrets to your Worker through the integration.

   ```ts
   export default {
     async fetch(request, env, ctx): Promise<Response> {
       const xata = new XataClient({
         apiKey: env.XATA_API_KEY,
         branch: env.XATA_BRANCH,
         databaseURL: env.XATA_DATABASE_URL,
       });


       const records = await xata.db.Posts.select([
         "id",
         "title",
         "author.name",
         "author.email",
         "author.bio",
       ]).getAll();


       return Response.json(records);
     },
   } satisfies ExportedHandler<Env>;
   ```

To learn more about Xata, refer to [Xata's official documentation](https://xata.io/docs).
