Workflow Definitions
Retrieve the blueprint configurations for your automated workflows. List all definitions with filtering and pagination, or retrieve the full profile for a single definition including its steps summary and triggers.
All endpoints on this page require a valid JWT token, API key, and tenant header. See Authentication for details.
List Definitions
Retrieve a paginated list of workflow definitions.
/apidev/v1/workflow/definitionsRequest Headers
Every request to a protected endpoint requires these headers:
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer token obtained from the Login endpoint. Format: Bearer <token> |
X-API-Key | Yes | Company integration key provided during onboarding. Format: gtk_xxx... |
tenant | Yes | Your company hostname (e.g., yourcompany.geotareas.com) |
Content-Type | Conditional | application/json — required for POST and PUT requests |
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | integer | No | 25 | Number of records per page. Min: 1, Max: 100 |
offset | integer | No | 0 | Number of records to skip for pagination |
status | string | No | active | Filter by status: active, inactive, or all |
entity_type | string | No | — | Filter by entity type: TAREA, CUENTA, CLIENTE, PERSONAL, DISPOSITIVO, NINGUNA |
search | string | No | — | Partial match on name or description. Max length: 120 |
Response
A successful response returns an array of workflow definition objects inside the data field.
| Field | Type | Description |
|---|---|---|
id | string | Definition unique identifier (BigInt) |
name | string | Definition display name |
description | string | null | Description of the workflow |
status | string | "active" or "inactive" |
entity_type | string | Entity type this workflow applies to |
version | integer | Definition version number |
steps_count | integer | Number of steps in the workflow |
triggers_count | integer | Number of triggers configured |
created_at | string | Creation timestamp (ISO 8601, no timezone) |
updated_at | string | Last update timestamp (ISO 8601, no timezone) |
Code Examples
- cURL
- JavaScript
- Python
curl -s -X GET "https://$TENANT_HOST/apidev/v1/workflow/definitions?limit=10&status=active" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"
const response = await fetch(
`https://${TENANT_HOST}/apidev/v1/workflow/definitions?limit=10&status=active`,
{
headers: {
"Authorization": `Bearer ${TOKEN}`,
"X-API-Key": APIKEY,
"tenant": TENANT,
},
}
);
const { data, meta } = await response.json();
console.log(`Fetched ${data.length} of ${meta.total} definitions`);
import requests
response = requests.get(
f"https://{TENANT_HOST}/apidev/v1/workflow/definitions",
headers={
"Authorization": f"Bearer {TOKEN}",
"X-API-Key": APIKEY,
"tenant": TENANT,
},
params={"limit": 10, "status": "active"},
)
result = response.json()
for definition in result["data"]:
print(f"{definition['id']}: {definition['name']} ({definition['status']})")
Example Response
{
"success": true,
"data": [
{
"id": "482938470192837465",
"name": "New Account Onboarding",
"description": "Triggered when a new account is created to complete the onboarding checklist.",
"status": "active",
"entity_type": "CUENTA",
"version": 3,
"steps_count": 5,
"triggers_count": 2,
"created_at": "2025-08-10T14:30:00",
"updated_at": "2026-01-20T09:15:00"
}
],
"meta": {
"total": 12,
"limit": 10,
"offset": 0
}
}
Rate Limit Headers
Every response includes rate limit information in the headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum number of requests allowed in the current window |
X-RateLimit-Remaining | Number of requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp (seconds) when the current window resets |
Retry-After | Seconds to wait before retrying (only present on 429 responses) |
X-Request-Id | Unique request identifier for debugging and support tickets |
Definition Detail
Retrieve the full profile for a single workflow definition, including its steps summary and trigger configurations.
/apidev/v1/workflow/definitions/{id}Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The unique identifier of the workflow definition (BigInt) |
Response
Returns the same fields as the List endpoint, plus the following additional fields:
| Field | Type | Description |
|---|---|---|
steps_summary | array | Ordered list of steps in the workflow (see below) |
triggers | array | List of triggers that start this workflow (see below) |
steps_summary array items:
| Field | Type | Description |
|---|---|---|
node_id | string | Node identifier within the definition |
name | string | Step display name |
type | string | Step type: human_task, automatic, condition, notification |
assignee_type | string | null | Assignment type: user, group, role, or null |
has_form | boolean | Whether this step has a capture form |
triggers array items:
| Field | Type | Description |
|---|---|---|
type | string | Trigger type: manual, event, schedule |
description | string | null | Human-readable trigger description |
Example Response
{
"success": true,
"data": {
"id": "482938470192837465",
"name": "New Account Onboarding",
"description": "Triggered when a new account is created to complete the onboarding checklist.",
"status": "active",
"entity_type": "CUENTA",
"version": 3,
"steps_count": 5,
"triggers_count": 2,
"created_at": "2025-08-10T14:30:00",
"updated_at": "2026-01-20T09:15:00",
"steps_summary": [
{
"node_id": "node_a1b2c3",
"name": "Verify Contact Information",
"type": "human_task",
"assignee_type": "group",
"has_form": true
},
{
"node_id": "node_d4e5f6",
"name": "Send Welcome Email",
"type": "automatic",
"assignee_type": null,
"has_form": false
}
],
"triggers": [
{
"type": "event",
"description": "Fires when a new account is created"
},
{
"type": "manual",
"description": null
}
]
},
"meta": {}
}
Errors
All endpoints on this page may return the following errors. For the full error reference, see Error Handling.
| Code | HTTP | Description |
|---|---|---|
BAD_REQUEST | 400 | Missing required headers |
VALIDATION_ERROR | 400 | Invalid params |
UNAUTHORIZED | 401 | Invalid or expired JWT / API Key |
FORBIDDEN | 403 | User lacks required permission |
NOT_FOUND | 404 | Resource not found |
RATE_LIMITED | 429 | Exceeded rate limit |
INTERNAL_ERROR | 500 | Unexpected server error |
Related Resources
- Authentication -- How to obtain and use JWT tokens and API keys
- Workflow Instances -- Start, track, and cancel workflow instances
- Workflow Tasks -- Manage workflow tasks in your inbox
- Pagination -- Standard pagination parameters and metadata
- Rate Limits -- Rate limit windows and retry strategies
- Error Handling -- Full error codes reference