Bubble.io API: How to Use the Data API and Workflow API
Every Bubble app has two built-in REST APIs: the Data API for reading and writing records, and the Workflow API for triggering backend operations. Complete reference with authentication, request formats, response structures, and the FAQ every builder asks.
How Bubble Exposes Your App to the Outside World
Every Bubble application has two built-in APIs that external systems can interact with: the Data API (for reading and writing database records) and the Workflow API (for triggering backend workflows). These APIs transform your Bubble app from a self-contained application into a platform that other systems can integrate with — enabling Zapier automations, custom mobile clients, third-party integrations, and cross-system data sync.
Data API vs Workflow API
| API | Purpose | Authentication | Rate Limited | Use Cases |
|---|---|---|---|---|
| Data API | Read, create, update, delete records in your Bubble database via REST | API token (generated in Settings) | Yes, per plan | Zapier integrations, mobile app backends, data sync, reporting |
| Workflow API | Trigger backend API workflows via HTTP POST | API token or public (configurable per workflow) | Yes, per plan | Webhooks from external services, Zapier actions, triggered operations |
Reading and Writing Bubble Data Externally
Settings → API → Enable Data API. Check each data type you want to expose. Generate an API token. This token must be included in all API requests as the Authorization header.
GET
https://yourapp.bubbleapps.io/api/1.1/obj/task
Header
Authorization: Bearer YOUR_API_TOKEN
// GET with filter
GET
/api/1.1/obj/task?constraints=[{“key”:”is_done”,”constraint_type”:”equals”,”value”:false}]
// Returns: {response: {results: […], count: N, remaining: N}}
POST
https://yourapp.bubbleapps.io/api/1.1/obj/task
Header
Content-Type: application/json
Body
{“title”: “New task”, “workspace”: “WORKSPACE_ID”}
// Returns: {id: “NEW_RECORD_ID”}
PATCH
https://yourapp.bubbleapps.io/api/1.1/obj/task/RECORD_ID
Body
{“is_done”: true, “completed_at”: “2026-04-01T10:00:00Z”}
Triggering Operations from External Systems
// Backend Workflows tab → New workflow → Check ‘Expose as public API endpoint’
// Add parameters that external callers will pass
// Example: create_lead backend workflow
Parameters
: name (text), email (text), source (text)
Step 1
: Create a Lead record with these parameter values
Step 2
: Return value: Lead’s Unique ID
// External caller triggers the workflow
POST
https://yourapp.bubbleapps.io/api/1.1/wf/create_lead
Body
{“name”: “Jane Smith”, “email”: “jane@company.com”, “source”: “LinkedIn”}
// Returns: {status: “success”, response: {lead_id: “RECORD_ID”}}
Q: Does the Data API respect privacy rules?
Yes. The Data API enforces Bubble’s privacy rules. If a data type has privacy rules that prevent a user from seeing certain records, those records will not appear in Data API results for that user’s token. API tokens are associated with a user; that user’s permissions apply.
Q: Can I use the Bubble API to build a mobile app?
Yes. FlutterFlow and other mobile frontends can call Bubble’s Data API and Workflow API to read and write data. Some teams use Bubble as the backend for a FlutterFlow mobile app. The Bubble Data API functions as a complete REST backend.
Q: What are the rate limits on the Bubble API?
Rate limits vary by plan. Check your plan’s API call limits in your Bubble dashboard. Heavy API usage from external systems can consume significant Workload Units; monitor your usage after enabling external API access.
Build Your Bubble.io App With Expert Help
Pakistan’s leading Bubble.io development team. Multi-tenant SaaS architecture, Stripe billing, and full product builds done right from day one.
