User Journey Statistics
Query statistical data, including "Journey Overall Statistics", "Message Sending Statistics", and "Webhook Sending Statistics".
User Journey Statistics
Query journey data including "entries, target conversions, early exits, normal completions, and in-progress" counts.
Endpoint
GET /v1/stats/journey
Authentication
The EngageLab REST API uses HTTP Basic Authentication as the authentication method. Add an Authorization header to the HTTP Header:
Authorization: Basic ${base64_auth_string}
Authorization: Basic ${base64_auth_string}
This code block in the floating window
The base64_auth_string is generated using the following algorithm: base64(api_key:api_secret)
- The header name is "Authorization", and the value is the base64-encoded "username:password" pair (separated by a colon).
- In the MA API context, the username is the APIKey and the password is the APISecret. Please add an API-type data source in Data Sources to obtain the APIKey and API Secret.
Request Example
curl -X GET 'https://ma-api.engagelab.com/v1/stats/journey?journey_id=123&time_unit=DAY&start_time=2026-06-01&end_time=2026-06-07' \
-H 'Authorization: Basic OTY0NDFlNGQ3MzIwN2E2NTE3YWJmYmJjOmFwaV9zZWNyZXRfeHh4'
curl -X GET 'https://ma-api.engagelab.com/v1/stats/journey?journey_id=123&time_unit=DAY&start_time=2026-06-01&end_time=2026-06-07' \
-H 'Authorization: Basic OTY0NDFlNGQ3MzIwN2E2NTE3YWJmYmJjOmFwaV9zZWNyZXRfeHh4'
This code block in the floating window
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| journey_id | String | Yes | Journey ID. Multiple IDs separated by commas. Up to 100 supported. |
| time_unit | String | Yes | Time unit. Two possible values: HOUR, DAY |
| start_time | String | Yes | Start time in yyyy-MM-dd format |
| end_time | String | Yes | End time in yyyy-MM-dd format- end_time >= start_time - Maximum range between start and end is 31 days. |
Response Parameters
| Field | Type | Description |
|---|---|---|
| code | Integer | Whether the API call was successful. 0 indicates success or partial success; other values indicate failure |
| message | String | Description of the API call result. success on success |
| data | Array<Object> | Returned statistics information |
| journey_id | Long | Journey ID |
| time_unit | String | Time unit. Two possible values: HOUR, DAY |
| error_code | Int | Whether the journey statistics were retrieved successfully. 0 indicates success; other values indicate failure |
| detail | Array<Object> | Hourly/Daily breakdown |
| time | String | Statistics date in the response, in yyyy-MM-dd or yyyy-MM-dd HH format |
| entry_count | Long | Number of entries |
| conversion_count | Long | Number of conversions |
| completion_count | Long | Number of normal completions |
| early_exit_count | Long | Number of early exits |
| in_progress_count | Long | Number of in-progress users as of end_time or the given time |
All Successful
{
"code": 0,
"message": "success",
"data": [
{
"journey_id":123,
"time_unit": "DAY",
"error_code": 0,
"detail": [
{
"time": "2026-05-28",
"entry_count": 312,
"conversion_count": 24,
"early_exit_count": 41,
"completion_count": 247,
"in_progress_count": 156
}
]
},
{
"journey_id":234,
"time_unit": "DAY",
"error_code": 0,
"detail": [
{
"time": "2026-05-28",
"entry_count": 312,
"conversion_count": 24,
"early_exit_count": 41,
"completion_count": 247,
"in_progress_count": 156
}
]
}]
}
{
"code": 0,
"message": "success",
"data": [
{
"journey_id":123,
"time_unit": "DAY",
"error_code": 0,
"detail": [
{
"time": "2026-05-28",
"entry_count": 312,
"conversion_count": 24,
"early_exit_count": 41,
"completion_count": 247,
"in_progress_count": 156
}
]
},
{
"journey_id":234,
"time_unit": "DAY",
"error_code": 0,
"detail": [
{
"time": "2026-05-28",
"entry_count": 312,
"conversion_count": 24,
"early_exit_count": 41,
"completion_count": 247,
"in_progress_count": 156
}
]
}]
}
This code block in the floating window
All Failed
{
"code": 50219,
"message": "The number of JourneyIDs exceeds 100."
}
{
"code": 50219,
"message": "The number of JourneyIDs exceeds 100."
}
This code block in the floating window
Partial Success
{
"code": 0,
"message": "success",
"data": [
{
"journey_id": 123,
"time_unit": "DAY",
"error_code": 0,
"detail": [
{
"time": "2026-05-28",
"entry_count": 312,
"conversion_count": 24,
"early_exit_count": 41,
"completion_count": 247,
"in_progress_count": 156
}
]
},
{
"journey_id": -1,
"error_code": 50221
}]
}
{
"code": 0,
"message": "success",
"data": [
{
"journey_id": 123,
"time_unit": "DAY",
"error_code": 0,
"detail": [
{
"time": "2026-05-28",
"entry_count": 312,
"conversion_count": 24,
"early_exit_count": 41,
"completion_count": 247,
"in_progress_count": 156
}
]
},
{
"journey_id": -1,
"error_code": 50221
}]
}
This code block in the floating window
Message Sending Statistics
Query data such as "sent, delivered, clicked" for each message component in a journey.
Endpoint
GET /v1/stats/journey/message
Request Example
curl -X GET 'https://ma-api.engagelab.com/v1/stats/journey/message?journey_id=123&time_unit=DAY&start_time=2026-06-01&end_time=2026-06-07' \
-H 'Authorization: Basic OTY0NDFlNGQ3MzIwN2E2NTE3YWJmYmJjOmFwaV9zZWNyZXRfeHh4'
curl -X GET 'https://ma-api.engagelab.com/v1/stats/journey/message?journey_id=123&time_unit=DAY&start_time=2026-06-01&end_time=2026-06-07' \
-H 'Authorization: Basic OTY0NDFlNGQ3MzIwN2E2NTE3YWJmYmJjOmFwaV9zZWNyZXRfeHh4'
This code block in the floating window
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| journey_id | String | Yes | Journey ID. Multiple IDs separated by commas. Up to 100 supported. |
| time_unit | String | Yes | Time unit. Two possible values: HOUR, DAY |
| start_time | String | Yes | Start time in yyyy-MM-dd format |
| end_time | String | Yes | End time in yyyy-MM-dd format- end_time >= start_time - Maximum range between start and end is 31 days. |
Response Parameters
| Field | Type | Description |
|---|---|---|
| code | Integer | Whether the API call was successful. 0 indicates success or partial success; other values indicate failure |
| message | String | Description of the API call result. success on success |
| data | Array<Object> | Returned statistics information |
| journey_id | Long | Journey ID |
| time_unit | String | Time unit. Two possible values: HOUR, DAY |
| error_code | Int | Whether the journey statistics were retrieved successfully. 0 indicates success; other values indicate failure |
| detail | Array<Object> | Hourly/Daily breakdown |
| time | String | Statistics date in the response, in yyyy-MM-dd or yyyy-MM-dd HH format |
| component_id | Long | Message component ID |
| component_name | String | Message component name, e.g. APP_PUSH_1, EMAIL_2 |
| channel | String | Channel type |
| entry_count | Long | Number of entries |
| plan_count | Long | Planned target count |
| send_count | Long | Number sent |
| delivery_count | Long | Number delivered |
| impression_count | Long | Number of impressions |
| open_count | Long | Number of opens |
| click_count | Long | Number of clicks |
| conversion_count | Long | Number of conversions |
| revenue_count | Long | Number of revenue-generating events |
| revenue_amount | Number | Total revenue amount |
All Successful
{
"code": 0,
"message": "success",
"data": [
{
"journey_id": 123,
"time_unit": "DAY",
"error_code": 0,
"detail": [
{
"component_id": 8801,
"component_name": "EMAIL_1",
"channel": "Email",
"time": "2026-05-28",
"entry_count": 320,
"plan_count": 312,
"send_count": 290,
"delivery_count": 270,
"impression_count": 198,
"open_count": 155,
"click_count": 24,
"conversion_count": 8,
"revenue_count": 7,
"revenue_amount": 488.50
},
{
"component_id": 8801,
"component_name": "EMAIL_1",
"channel": "Email",
"time": "2026-05-29",
"entry_count": 305,
"plan_count": 298,
"send_count": 280,
"delivery_count": 261,
"impression_count": 185,
"open_count": 144,
"click_count": 19,
"conversion_count": 6,
"revenue_count": 5,
"revenue_amount": 312.00
}
]
}
]
}
{
"code": 0,
"message": "success",
"data": [
{
"journey_id": 123,
"time_unit": "DAY",
"error_code": 0,
"detail": [
{
"component_id": 8801,
"component_name": "EMAIL_1",
"channel": "Email",
"time": "2026-05-28",
"entry_count": 320,
"plan_count": 312,
"send_count": 290,
"delivery_count": 270,
"impression_count": 198,
"open_count": 155,
"click_count": 24,
"conversion_count": 8,
"revenue_count": 7,
"revenue_amount": 488.50
},
{
"component_id": 8801,
"component_name": "EMAIL_1",
"channel": "Email",
"time": "2026-05-29",
"entry_count": 305,
"plan_count": 298,
"send_count": 280,
"delivery_count": 261,
"impression_count": 185,
"open_count": 144,
"click_count": 19,
"conversion_count": 6,
"revenue_count": 5,
"revenue_amount": 312.00
}
]
}
]
}
This code block in the floating window
Webhook Sending Statistics
Query data such as "requests and successes" for each Webhook component in a journey.
Endpoint
GET /v1/stats/journey/webhook
Request Example
curl -X GET 'https://ma-api.engagelab.com/v1/stats/journey/webhook?journey_id=123&time_unit=DAY&start_time=2026-06-01&end_time=2026-06-07' \
-H 'Authorization: Basic OTY0NDFlNGQ3MzIwN2E2NTE3YWJmYmJjOmFwaV9zZWNyZXRfeHh4'
curl -X GET 'https://ma-api.engagelab.com/v1/stats/journey/webhook?journey_id=123&time_unit=DAY&start_time=2026-06-01&end_time=2026-06-07' \
-H 'Authorization: Basic OTY0NDFlNGQ3MzIwN2E2NTE3YWJmYmJjOmFwaV9zZWNyZXRfeHh4'
This code block in the floating window
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| journey_id | String | Yes | Journey ID. Multiple IDs separated by commas. Up to 100 supported. |
| time_unit | String | Yes | Time unit. Two possible values: HOUR, DAY |
| start_time | String | Yes | Start time in yyyy-MM-dd format |
| end_time | String | Yes | End time in yyyy-MM-dd format- end_time >= start_time - Maximum range between start and end is 31 days. |
Response Parameters
| Field | Type | Description |
|---|---|---|
| code | Integer | Whether the API call was successful. 0 indicates success or partial success; other values indicate failure |
| message | String | Description of the API call result. success on success |
| data | Array<Object> | Returned statistics information |
| journey_id | Long | Journey ID |
| time_unit | String | Time unit. Two possible values: HOUR, DAY |
| error_code | Int | Whether the journey statistics were retrieved successfully. 0 indicates success; other values indicate failure |
| detail | Array<Object> | Hourly/Daily breakdown |
| time | String | Statistics date in the response, in yyyy-MM-dd or yyyy-MM-dd HH format |
| component_id | Long | Message component ID |
| component_name | String | Message component name, e.g. APP_PUSH_1, EMAIL_2 |
| entry_count | Long | Number of entries into the Webhook component |
| send_count | Long | Number of successful requests |
| send_failure_count | Long | Number of failed requests |
All Successful
{
"code": 0,
"message": "success",
"data": [
{
"journey_id": 123,
"time_unit": "DAY",
"error_code": 0,
"detail": [
{
"component_id": 9001,
"component_name": "WEBHOOK_1",
"time": "2026-05-28",
"entry_count": 520,
"send_count": 498,
"send_failure_count": 22
},
{
"component_id": 9001,
"component_name": "WEBHOOK_1",
"time": "2026-05-29",
"entry_count": 610,
"send_count": 600,
"send_failure_count": 10
}
]
}
]
}
{
"code": 0,
"message": "success",
"data": [
{
"journey_id": 123,
"time_unit": "DAY",
"error_code": 0,
"detail": [
{
"component_id": 9001,
"component_name": "WEBHOOK_1",
"time": "2026-05-28",
"entry_count": 520,
"send_count": 498,
"send_failure_count": 22
},
{
"component_id": 9001,
"component_name": "WEBHOOK_1",
"time": "2026-05-29",
"entry_count": 610,
"send_count": 600,
"send_failure_count": 10
}
]
}
]
}
This code block in the floating window
Error Codes
Common Error Codes
| HTTP Status Code | code | message | Description |
|---|---|---|---|
| 401 | 40050 | authorization invalid | Authentication failed |
| 429 | 55110 | Too many requests, please try again later. | Request rate limit exceeded |
| 400 | 40001 | Invalid HTTP parameter | HTTP message or required path/query parameter is invalid |
| 400 | 40002 | Invalid business parameter | Parameter format, enum, or type validation failed |
| 400 | 50034 | Project does not exist | The project bound to the APIKey does not exist |
| 500 | -1 | Internal server error | Service exception |
Journey Statistics Error Codes
| HTTP Status Code | code | message | Description |
|---|---|---|---|
| 400 | 50202 | Journey does not exist. | The journey does not exist or does not belong to the current project |
| 400 | 50217 | Invalid time range. | start_time > end_time, or the query range exceeds 31 days |
| 400 | 50219 | The number of JourneyIDs exceeds 100. | The number of JourneyIDs exceeds the 100 limit |
| 400 | 50220 | Invalid time_unit. | Invalid time_unit value; only HOUR and DAY are supported |
| 400 | 50221 | Invalid journey_id format. | Invalid format for a single JourneyID (error_code field, indicating that a specific journey query failed) |










