Analytics
Read aggregated import statistics, health, and the settings behind them.
This functionality is in preview mode - some of the features may not be fully operational yet.
Retrieves aggregated import metrics for a time window: headline counters and rates, a time series bucketed by day, week, or month, per-stream health, the top failing streams, an error breakdown, and how many streams were added or removed.
To narrow the scope, use:
configIdfor one configurationconfigIdsfor several configurationsstreamIdfor one stream
When none of them are given, the whole tenant is summarised. Use sections to fetch only the parts you need — an unrequested section is returned as null.
- : Needed to trigger, schedule, monitor, and cancel import runs and to read configurations, streams, schedules, runs, and imported data.
The tenant you want to access.
mytenantRestricts the statistics to a single configuration.
7c9e6679-7425-40de-944b-e07fc1f90ae7Restricts the statistics to several configurations, as a comma-separated list of identifiers. Ignored when configId is given.
7c9e6679-7425-40de-944b-e07fc1f90ae7,550e8400-e29b-41d4-a716-446655440000Restricts the statistics to a single stream. Takes precedence over the configuration filters.
3fa85f64-5717-4562-b3fc-2c963f66afa6The start of the window, as an ISO-8601 instant. When omitted, defaults to 30 days ago.
2024-05-01T00:00:00ZThe end of the window, as an ISO-8601 instant. Exclusive. When omitted, defaults to now.
2024-05-31T00:00:00ZThe bucket size of the returned time series.
DAYExample: DAYPossible values: A comma-separated list of the sections to compute: TOTALS, STREAMS, ERRORS, CHANGES. When omitted, defaults to all sections. A section not requested through the sections parameter is returned as null.
TOTALS,ERRORSThe request was successful. The statistics are returned.
Aggregated import metrics for the requested window and scope. A section that was not requested via the sections parameter is returned as null.
The window or a filter value is invalid.
Given request is unauthorized - the authorization token is invalid or has expired. Details will be provided in the response payload.
Given authorization scopes are not sufficient and do not match scopes required by the endpoint.
Internal Service Error occurred.
GET /importtool/{tenant}/stats HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"summary": {
"totalRuns": 42,
"succeeded": 38,
"partial": 3,
"failed": 1,
"cancelled": 0,
"recordsRead": 125000,
"created": 4300,
"updated": 98000,
"skipped": 22000,
"deleted": 700,
"failedRecords": 130,
"successRate": 0.905,
"failureRate": 0.001,
"deletionRate": 0.006,
"skipRate": 0.176,
"avgRunDurationSec": 184.5,
"avgCreatedPerRun": 102.4,
"avgUpdatedPerRun": 2333.3,
"distinctEntities": 87000,
"activeRuns": 1
},
"series": [
{
"bucket": "2026-07-19T00:00:00.000Z",
"runs": 3,
"succeeded": 3,
"failed": 0,
"recordsRead": 4200,
"created": 120,
"updated": 3900,
"deleted": 10,
"skipped": 170,
"failedRecords": 0
}
],
"streamHealth": [
{
"streamId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"configId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Products",
"targetType": "product",
"lastRunStatus": "SUCCEEDED",
"lastRunAt": "2026-07-20T02:00:00.000Z",
"watermarkAgeSeconds": 7200,
"failureRatio": 0.002,
"health": "GREEN",
"thresholds": {
"failureRatioAmber": 0.01,
"failureRatioRed": 0.1,
"staleAmberHours": 48,
"staleRedHours": 168,
"failedRunIsRed": true,
"customised": false
}
}
],
"topFailingStreams": [
{
"streamId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Products",
"count": 87
}
],
"errorBreakdown": [
{
"stage": "UPSERT",
"errorCode": "VALIDATION",
"count": 54
}
],
"streamChanges": {
"added": 2,
"removed": 1,
"trackingSince": "2026-06-11T08:00:00.000Z",
"series": [
{
"bucket": "2026-07-19T00:00:00.000Z",
"added": 1,
"removed": 0
}
]
}
}This functionality is in preview mode - some of the features may not be fully operational yet.
Retrieves the tenant's job groups. A job group is a named set of import configurations, used to scope the analytics to the imports that matter to you. Groups are stored per tenant and shared by everyone working on it.
Creating, changing, and deleting groups requires the importtool.import_manage scope.
- : Needed to trigger, schedule, monitor, and cancel import runs and to read configurations, streams, schedules, runs, and imported data.
The tenant you want to access.
mytenantThe request was successful. The job groups are returned.
A named set of import configurations, used to scope the import statistics.
The job group identifier.
9f8c7b6a-5d4e-3f2a-1b0c-9d8e7f6a5b4cThe job group name. Unique within the tenant.
Nightly master dataThe configurations in the group.
7c9e6679-7425-40de-944b-e07fc1f90ae7When the group was created.
2024-05-01T09:00:00.000ZWhen the group was last changed.
2024-05-02T11:30:00.000ZGiven request is unauthorized - the authorization token is invalid or has expired. Details will be provided in the response payload.
Given authorization scopes are not sufficient and do not match scopes required by the endpoint.
Internal Service Error occurred.
GET /importtool/{tenant}/dashboard/job-groups HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
{
"id": "9f8c7b6a-5d4e-3f2a-1b0c-9d8e7f6a5b4c",
"name": "Nightly master data",
"configIds": [
"7c9e6679-7425-40de-944b-e07fc1f90ae7"
],
"createdAt": "2026-07-01T10:15:30.000Z",
"updatedAt": "2026-07-20T08:00:00.000Z"
}
]This functionality is in preview mode - some of the features may not be fully operational yet.
Retrieves the tenant-wide thresholds that decide whether a stream is reported as GREEN, AMBER, or RED in the import statistics, together with the built-in defaults they fall back to.
Thresholds resolve field by field, from the most specific level to the least specific: stream, configuration, tenant, then the built-in default. An unset field falls back to the value at the next less-specific level.
Changing the tenant-wide thresholds requires the importtool.import_manage scope.
- : Needed to trigger, schedule, monitor, and cancel import runs and to read configurations, streams, schedules, runs, and imported data.
The tenant you want to access.
mytenantThe request was successful. The thresholds are returned.
The tenant-wide thresholds, together with the built-in defaults they fall back to.
Given request is unauthorized - the authorization token is invalid or has expired. Details will be provided in the response payload.
Given authorization scopes are not sufficient and do not match scopes required by the endpoint.
Internal Service Error occurred.
GET /importtool/{tenant}/settings/health-thresholds HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"thresholds": {
"failureRatioAmber": 0.05,
"staleRedHours": 72
},
"builtInDefaults": {
"failureRatioAmber": 0.01,
"failureRatioRed": 0.1,
"staleAmberHours": 48,
"staleRedHours": 168,
"failedRunIsRed": true
}
}Last updated
Was this helpful?

