Xata
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.
To set up an integration with Xata:
-
You need to have an existing Xata database to connect to or create a new database from your Xata workspace Create a Database ↗.
-
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
andUsers
. -
Configure the Xata database credentials in your Worker:
You need to add your Xata database credentials as secrets to your Worker. First, get your database details from your Xata Dashboard ↗, then add them as secrets using Wrangler:
Terminal window # Add the Xata API key as a secretnpx wrangler secret put XATA_API_KEY# When prompted, paste your Xata API key# Add the Xata branch as a secretnpx wrangler secret put XATA_BRANCH# When prompted, paste your Xata branch name (usually 'main')# Add the Xata database URL as a secretnpx wrangler secret put XATA_DATABASE_URL# When prompted, paste your Xata database URL -
Install the Xata CLI ↗ and authenticate the CLI by running the following commands:
Terminal window npm install -g @xata.io/clixata auth login -
Once you have the CLI set up, In your Worker, run the following code in the root directory of your project:
Terminal window xata initAccept the default settings during the configuration process. After completion, a
.env
and.xatarc
file will be generated in your project folder. -
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:XATA_API_KEY=<YOUR_API_KEY_HERE>XATA_BRANCH=<YOUR_BRANCH_HERE>XATA_DATABASE_URL=<YOUR_DATABASE_URL_HERE> -
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 added as secrets to your Worker.
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 ↗.
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Products
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark