Skip to main content
RapidDev - Software Development Agency
bubble-tutorial

How to use the app connector for API integration between Bubble apps: Step-by-St

Connect two Bubble apps via API by enabling the Data API on App A (Settings → API), then using the API Connector on App B to call App A's endpoints. This allows reading, creating, and modifying data across apps. You can share user data, sync records, and trigger workflows between separate Bubble applications without third-party middleware.

What you'll learn

  • How to enable and configure the Data API on a Bubble app
  • How to call one Bubble app's API from another using the API Connector
  • How to perform CRUD operations between two Bubble apps
  • How to handle authentication and API tokens for app-to-app communication
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Intermediate5 min read20-25 minAll Bubble plans (Data API requires enabling)March 2026RapidDev Engineering Team
TL;DR

Connect two Bubble apps via API by enabling the Data API on App A (Settings → API), then using the API Connector on App B to call App A's endpoints. This allows reading, creating, and modifying data across apps. You can share user data, sync records, and trigger workflows between separate Bubble applications without third-party middleware.

Connect Two Bubble Apps via API

This tutorial shows you how to make two separate Bubble apps communicate through Bubble's built-in Data API and API Connector. App A exposes its data via API endpoints, and App B consumes those endpoints. This is useful for microservice architectures, multi-app ecosystems, or sharing data between a main app and an admin panel.

Prerequisites

  • Two Bubble apps (App A = data provider, App B = data consumer)
  • Admin access to both apps
  • Basic understanding of REST APIs and JSON
  • The API Connector plugin installed on App B

Step-by-step guide

1

Enable the Data API on App A

In App A, go to Settings → API. Check 'Enable Data API'. For each Data Type you want to expose, check the fields that should be accessible via API. You will see the API root URL: https://appname.bubbleapps.io/api/1.1/obj/. Note your API token from Settings → API → 'Generate a new API token'. This token authenticates requests from App B.

Pro tip: Only expose the fields you actually need. Exposing all fields increases your attack surface and data transfer size.

Expected result: App A's Data API is enabled with specific Data Types and fields exposed, and you have an API token.

2

Configure the API Connector on App B

In App B, go to Plugins → API Connector → Add another API. Name it 'App A API'. Set authentication to 'Private key in header' with key name 'Authorization' and value 'Bearer [your-api-token]'. Add a GET call named 'Get Products' with URL: https://app-a.bubbleapps.io/api/1.1/obj/product. Set 'Use as' to Data. Click Initialize — Bubble will map the JSON response fields automatically.

Expected result: App B can query App A's Product data type through the API Connector.

3

Read Data from App A in App B

In App B's Design tab, add a Repeating Group. Set the Type of content to the API response type created by the API Connector. Set the Data source to 'Get data from an external API' → 'App A API - Get Products'. Map the response fields to Text elements in the cell. Add constraints to filter the API response if needed — you can pass constraint parameters in the URL (e.g., ?constraints=[{"key":"category","constraint_type":"equals","value":"electronics"}]).

Expected result: App B displays data from App A's database in a Repeating Group.

4

Create Data in App A from App B

Add a POST call in App B's API Connector named 'Create Product in A'. URL: https://app-a.bubbleapps.io/api/1.1/obj/product. Method: POST. In the body, add the fields as JSON parameters. Set 'Use as' to Action. In App B's workflow, use this action to create a new record in App A's database by passing field values from App B's form inputs.

POST body for creating a Product in App A
1{
2 "name": "<name_value>",
3 "price": <price_value>,
4 "category": "<category_value>",
5 "description": "<description_value>"
6}

Expected result: App B can create new records in App A's database through the API.

5

Set Up Backend Workflow Triggers Between Apps

For more complex interactions, expose Backend Workflows on App A as API endpoints. In App A, go to the Workflow tab → Backend workflows. Create a workflow (e.g., 'process-order'). Check 'Expose as a public API workflow'. Add parameters the workflow accepts. From App B, call this endpoint via API Connector: POST to https://app-a.bubbleapps.io/api/1.1/wf/process-order with the required parameters in the body.

Expected result: App B can trigger complex backend workflows on App A, not just CRUD operations.

Complete working example

API Connector payload
1{
2 "api_name": "App A API",
3 "authentication": {
4 "type": "Private key in header",
5 "key_name": "Authorization",
6 "key_value": "Bearer YOUR_APP_A_API_TOKEN"
7 },
8 "calls": [
9 {
10 "name": "Get Products",
11 "method": "GET",
12 "url": "https://app-a.bubbleapps.io/api/1.1/obj/product",
13 "use_as": "Data"
14 },
15 {
16 "name": "Get Product By ID",
17 "method": "GET",
18 "url": "https://app-a.bubbleapps.io/api/1.1/obj/product/[product_id]",
19 "use_as": "Data",
20 "parameters": [
21 {"key": "product_id", "value": "sample_id", "private": false}
22 ]
23 },
24 {
25 "name": "Create Product",
26 "method": "POST",
27 "url": "https://app-a.bubbleapps.io/api/1.1/obj/product",
28 "use_as": "Action",
29 "body": {
30 "name": "<name>",
31 "price": "<price>",
32 "category": "<category>"
33 }
34 },
35 {
36 "name": "Update Product",
37 "method": "PATCH",
38 "url": "https://app-a.bubbleapps.io/api/1.1/obj/product/[product_id]",
39 "use_as": "Action"
40 },
41 {
42 "name": "Trigger Process Order",
43 "method": "POST",
44 "url": "https://app-a.bubbleapps.io/api/1.1/wf/process-order",
45 "use_as": "Action",
46 "body": {
47 "order_id": "<order_id>",
48 "user_email": "<email>"
49 }
50 }
51 ]
52}

Common mistakes when using the app connector for API integration between Bubble apps: Step-by-St

Why it's a problem: Exposing the API token in client-safe parameters

How to avoid: Always mark the API token as 'Private' in the API Connector. Never check 'Client safe' on authentication parameters.

Why it's a problem: Not handling API pagination for large datasets

How to avoid: Use the cursor parameter for pagination: add '&cursor=[offset]' to requests and loop through pages.

Why it's a problem: Calling the development API URL from a live app

How to avoid: Use the version-d endpoint for development and version-live for production. Switch URLs when deploying.

Best practices

  • Mark API tokens as Private in the API Connector to keep them server-side.
  • Only expose the Data Types and fields that App B actually needs.
  • Handle pagination when querying large datasets (>100 records).
  • Use the development API URL during testing and switch to live for production.
  • Add error handling in App B's workflows for API call failures.
  • Implement rate limiting awareness — Bubble APIs have request limits.

Still stuck?

Copy one of these prompts to get a personalized, step-by-step explanation.

ChatGPT Prompt

I have two Bubble.io apps and need them to share data. App A has a Product database, and App B needs to read products and create orders in App A. How do I set up the Data API on App A and the API Connector on App B?

Bubble Prompt

Enable the Data API on this app for the Product data type. Expose name, price, category, and image fields. Generate an API token for external access.

Frequently asked questions

Can both apps write to each other?

Yes. Enable the Data API on both apps and set up API Connectors on both. Each app can read from and write to the other using the respective API tokens.

Is there a limit on API calls between Bubble apps?

Yes. Each Bubble app has API rate limits based on your plan. Free plans have stricter limits. Monitor usage in Settings → Metrics.

Can I share user authentication between two Bubble apps?

Not natively. Users have separate accounts in each app. You can implement single sign-on by passing tokens via API, or use a third-party auth provider (Auth0, Firebase Auth) shared between both apps.

Should I use the Data API or Backend Workflows for cross-app communication?

Use the Data API for simple CRUD operations. Use Backend Workflows when you need to trigger complex server-side logic with multiple steps.

How do I handle errors when App A is down?

Add error handling in App B's workflows. If the API call fails, show an error message, log the failure, and optionally retry. For mission-critical integrations, RapidDev can build resilient cross-app architectures.

Can I use webhooks instead of API calls?

Yes. App A can call App B's Backend Workflow endpoint whenever data changes (using a database trigger). This pushes updates in real-time instead of App B polling for changes.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.