Build custom integrations, sync data to your data warehouse, and connect Franchise Builder to your internal systems. REST API with webhook subscriptions, bulk export, and pre-built connectors.
Create a scoped, revocable key from the API Keys page.
POST to the gateway with your method, path, and query.
Get real-time notifications when records change.
All API requests require an API key passed in the X-API-Key header. Keys are per-tenant, scoped to specific entities, and revocable at any time.
# Authentication via header
curl -X POST https://conscious-scale-your-brand.base44.app/api/functions/apiGateway \
-H "X-API-Key: fb_your_api_key_here" \
-H "Content-Type: application/json"Franchisee records with contact, agreement, and operational status.
curl -X POST https://conscious-scale-your-brand.base44.app/api/functions/apiGateway \
-H "X-API-Key: fb_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"method": "GET",
"path": "/v1/Franchisee",
"query": { "page": 1, "limit": 50, "sort": "-created_date" }
}'curl -X POST https://conscious-scale-your-brand.base44.app/api/functions/apiGateway \
-H "X-API-Key: fb_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"method": "POST",
"path": "/v1/Franchisee",
"body": { "name": "New Franchisee" }
}'Subscribe to real-time events when records are created, updated, or deleted. Webhook payloads are signed with HMAC-SHA256 using your subscription secret.
{
"event": "created",
"entity": "Franchisee",
"record_id": "abc123",
"timestamp": "2026-09-07T19:30:00Z",
"data": {
"franchisee_name": "John Smith",
"email": "john@example.com",
"status": "active"
}
}Verify the signature in the X-FB-Signature header using your webhook secret.
Default rate limit: 1,000 requests/minute per API key. Rate limit headers are included in every response.
X-RateLimit-LimitMaximum requests per minute
X-RateLimit-RemainingRequests remaining in current window
X-RateLimit-ResetUnix timestamp when the window resets
| Code | HTTP Status | Description |
|---|---|---|
| UNAUTHORIZED | 401 | Missing or invalid API key. |
| INVALID_API_KEY | 401 | API key is revoked or not found. |
| API_KEY_EXPIRED | 401 | API key has passed its expiry date. |
| INSUFFICIENT_SCOPE | 403 | API key lacks the required read/write scope for this entity. |
| RATE_LIMIT_EXCEEDED | 429 | Per-minute rate limit exceeded. Check X-RateLimit-Reset header. |
| NOT_FOUND | 404 | Requested resource does not exist. |
| ENTITY_NOT_FOUND | 404 | Entity is not exposed via the public API. |
| METHOD_NOT_ALLOWED | 405 | HTTP method not supported for this path. |
| INVALID_REQUEST | 400 | Malformed request body or missing required fields. |
| INVALID_VERSION | 400 | Unsupported API version in the path. |
| INTERNAL_ERROR | 500 | Unexpected server error. Contact support if persistent. |
Essential cookies are always on. You can accept or reject analytics, marketing, and translation (CPRA / GDPR).