Overview
Custom endpoints are dispatched through a dedicated URL namespace:Key Features
- No Code Required: Define endpoints via API or Admin UI
- Path Parameters: Support for
:paramsegments (e.g.,/users/:user_id/orders) - Authorization Conditions: Gate access with rule expressions
- Action Pipelines: Chain multiple actions with access to results from previous steps
- Response Templates: Customize response status, body, and headers
- Execution History: Track every invocation with timing and status
How It Works
Endpoint Definition
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Human-readable name (max 200 chars) |
path | string | Yes | URL path (max 500 chars), e.g., /submit-feedback or /users/:user_id |
method | string | Yes | HTTP method: GET, POST, PUT, PATCH, DELETE |
auth_required | boolean | No | Require authentication (default: true) |
condition | string | No | Rule expression — returns 403 if false |
actions | array | No | Ordered list of action configs (default: []) |
response_template | object | No | Custom response format |
enabled | boolean | No | Active status (default: true) |
Path Parameters
Use:param syntax to capture path segments:
{{request.params.user_id}} and {{request.params.order_id}} in action templates.
Uniqueness
Each endpoint is uniquely identified by the combination of(account_id, path, method). You cannot create two endpoints with the same path and method within one account.
Actions
Actions execute sequentially. Each action’s result is available to subsequent actions.Supported Action Types
| Action Type | Description |
|---|---|
send_webhook | Send an HTTP request to an external URL |
send_email | Send an email |
create_record | Create a record in a collection |
update_record | Update an existing record |
delete_record | Delete a record |
enqueue_job | Enqueue a background job |
query_records | Query records from a collection |
aggregate_records | Run an aggregation (count, sum, avg, min, max) |
transform | Transform data using a template |
Query Records
Aggregate Records
count, sum, avg, min, max.
Transform
Reshape data from previous action results:Template Variables
All string values in action configs and response templates support these variables:| Variable | Description |
|---|---|
{{request.body.field}} | Value from the request body |
{{request.query.field}} | URL query parameter |
{{request.params.field}} | Path parameter (from :param segments) |
{{auth.user_id}} | Authenticated user’s ID |
{{auth.email}} | Authenticated user’s email |
{{auth.account_id}} | Account ID |
{{actions[N].result}} | Result of the Nth action (0-indexed) |
{{now}} | Current UTC timestamp (ISO 8601) |
Response Templates
Customize what your endpoint returns:Authorization
Authentication
Setauth_required: true (the default) to require a valid authentication token. Set to false for public endpoints.
Condition Expressions
Add acondition to control who can access the endpoint:
false, the endpoint returns 403 Forbidden.
Example: Customer Order Summary Endpoint
Limits
| Limit | Default |
|---|---|
| Max endpoints per account | 20 (configurable) |
| Execution timeout | 30 seconds |
| Max action execution depth | 5 |
| Path max length | 500 characters |