Archive Browser REST API
This page provides everything you need to understand and interact with the Archive Browser REST API
General Information
The Archive Browser provides a REST API that mirrors all capabilities of the web UI. You can use it for integrations, automated reporting, custom dashboards, and tooling built on top of the archive data.
Built-in Interactive API Tool (Swagger UI)
The Archive Browser includes a built-in Swagger UI that allows you to explore the endpoints and test API calls directly against your own server. Once the application is running, you can access these tools at:
-
Interactive UI: https://<host>:8443/swagger-ui/index.html
-
Raw OpenAPI 3.0 specification: https://<host>:8443/openapi (useful for importing into API clients like Postman)
Authentication
The Archive Browser REST API requires authentication for all data requests. You must include a valid token in the Authorization: Bearer header of your HTTP requests.
You can authenticate using two methods:
-
API Keys: Generated in Settings > API Keys, these act as permanent bearer tokens. By default, they do not expire; an optional expiry date can be set at creation time. This is the recommended method for long-running integrations.
-
Session Tokens: Short-lived JSON Web Tokens (JWT) generated by submitting your credentials to the API. For more information on how to generate them, see Authentication endpoint.
HTTP Status Codes and Error Handling
The Archive Browser REST API returns standard HTTP status codes to indicate the success or failure of an API request.
-
200: Success.
-
400: Bad request (invalid filter parameter, sort string, or date format).
-
401: Unauthorized (missing or invalid token).
-
403: Forbidden (the authenticated user does not have the required role).
-
404: Not found (the requested resource does not exist).
-
409: Conflict (upload rejected because files already exist).
-
500: Internal server error.
When the API returns an error (any 4xx or 5xx status code), the response body provides a consistent JSON structure to help you troubleshoot. This JSON object explicitly details the timestamp, HTTP status, error type, specific error message, and the requested path.
Using the REST API
You can interact with the REST API using command-line tools like curl or through scripting languages like Python. The following examples demonstrate how to construct endpoint URLs to perform common administrative and reporting tasks.
When testing these examples in your own environment, remember to prepend your server's base URL, for example, [https://archivebrowser.example.com](https://archivebrowser.example.com) and include your API key or session token in the Authorization: Bearer header.
-
List the 10 most recent failed executions: Use this endpoint to filter by status codes representing specific failures (such as 1850 and 1899) and sort by the start time in descending order.
GET /api/executions?status=1850,1899&sort=-startTime&max_results=10
-
Get the execution report content: Use this endpoint to retrieve the raw text of a specific report file (such as the REP execution report) for a known RunID.
GET /api/executions/1000030/reports/REP
-
Download all executions from the last 7 days as CSV: Use this endpoint to stream a large dataset directly to a CSV file by defining a precise timeframe and bounding the start time.
GET /api/executions/download?time_frame_from=2024.06.08%2000:00:00&time_frame_to=2024.06.15%2023:59:59&time_frame_option=start&max_results=100
-
Full-text search for a specific error: Use this endpoint to scan all indexed report contents for a specific text string (like "connection refused") and limit the output results.
GET /api/executions/search?q=connection+refused&max_results=20
REST API Reference
The following reference details the available endpoints for the Archive Browser REST API, organized by functional categories such as Authentication, Executions, Reports, Messages, and Archives.
Authentication
Authentication endpoints allow you to securely connect to the API before issuing any data queries.
-
POST /auth/token: Authenticates a user and generates a short-lived JWT token. This requires a JSON body (application/json) containing the username and password. This is the only endpoint that does not require a bearer token in the request header.
Executions
These endpoints allow you to search, filter, export, and retrieve specific execution records from the archive index.
-
GET /api/executions: Returns a paginated list of archived execution records. It supports filtering, sorting, and cursor-based pagination (see the parameter table below).
-
GET /api/executions/{run_id}: Returns the index metadata for a single execution identified by its RunID.
-
GET /api/executions/{run_id}/content: Returns the full archive header record for an execution, including the raw text content exactly as stored in the archive file.
-
GET /api/executions/{run_id}/children: Returns all immediate child task executions of a workflow (JOBP) execution.
-
GET /api/executions/download: Streams a CSV file containing execution records matching your specified filters. This endpoint accepts the same query parameters as the list endpoint, and the response is streamed without size limits.
List Executions Query Parameters
You can use the following parameters with the GET /api/executions endpoint to filter and sort your results:
|
Parameter |
Type |
Default Value |
Description |
|---|---|---|---|
|
start_at |
integer |
0 |
Zero-based page index. |
|
start_at_run_id |
integer |
0 |
Cursor-based paging to return only executions with a RunID greater than this value. |
|
max_results |
integer |
50 |
Page size (range: 1–100). |
|
name |
string |
None |
Filter by object name (case-insensitive substring match). |
|
status |
integer array |
None |
Filter by AE status codes (multiple values are OR'd together). |
|
user |
string |
None |
Filter by activating username (substring match). |
|
department |
string |
None |
Filter by user department (substring match). |
|
client |
string array |
None |
Filter by AE client numbers (multiple values are OR'd together). |
|
a_type |
string array |
None |
Filter by object type codes, e.g., JOBS (multiple values are OR'd together). |
|
s_type |
string array |
None |
Filter by object sub-type codes (multiple values are OR'd together). |
|
host_name |
string |
None |
Filter by agent or host name (substring match). |
|
parent_act |
string |
None |
Filter by parent activation name (substring match). |
|
archive_key1 |
string |
None |
Filter by archive key 1 (substring match). |
|
archive_key2 |
string |
None |
Filter by archive key 2 (substring match). |
|
run_id |
integer array |
None |
Filter by specific RunIDs. |
|
parent_run_id |
integer |
None |
Filter for direct children of the given parent RunID. |
|
time_frame_from |
string |
1900.01.01 00:00:00 |
Timeframe lower bound in yyyy.MM.dd HH:mm:ss format. |
|
time_frame_to |
string |
1900.01.01 00:00:00 |
Timeframe upper bound in yyyy.MM.dd HH:mm:ss format. |
|
time_frame_option |
string |
all |
Which timestamp field the timeframe applies to (activation, start, end, all). |
|
sort |
string |
+runID |
Comma-separated sort fields, prefixed with + for ascending or - for descending. |
Reports and Comments
Use these endpoints to access the raw text output, logs, and user annotations attached to specific executions.
-
GET /api/executions/{run_id}/reports: Returns all report headers associated with the given execution RunID.
-
GET /api/executions/{run_id}/reports/{report_type}: Returns the full content of a specific report (such as ACT or REP) for the given execution.
-
GET /api/executions/{run_id}/reports/download: Streams a ZIP archive containing all report files for the given execution.
-
GET /api/executions/search: Performs a full-text search across all indexed report content. Requires the q parameter for the search string, and optionally accepts max_results (default: 50) and scan_limit (default: 5000).
-
GET /api/executions/{run_id}/comments: Returns a paginated list of comments attached to the given execution. Optionally accepts page and size parameters.
Messages (Meldungen)
These endpoints provide access to download or search archived Automation Engine system messages.
-
GET /api/alerts: Returns a paginated list of archived AE system messages.
-
GET /api/alerts/download: Streams a CSV file of messages matching the specified filters without size limits.
Message Query Parameters
You can filter your message queries using the following parameters:
|
Parameter |
Type |
Default Value |
Description |
|---|---|---|---|
|
page |
integer |
0 |
Zero-based page index. |
|
size |
integer |
25 |
Page size. |
|
client |
string |
None |
Filter by AE client number. |
|
user |
string |
None |
Filter by username (substring match). |
|
department |
string |
None |
Filter by department (substring match). |
|
time_frame_from |
string |
None |
Timeframe lower bound in yyyy.MM.dd HH:mm:ss format. |
|
time_frame_to |
string |
None |
Timeframe upper bound in yyyy.MM.dd HH:mm:ss format. |
|
source |
string |
None |
Filter by message source (substring match). |
|
category |
string |
None |
Filter by alert category (substring match). |
|
type |
string array |
None |
Filter by alert type codes (multiple values are OR'd together). |
|
host |
string |
None |
Filter by host name (substring match). |
|
message |
string |
None |
Filter by message text content (substring match). |
|
sort |
string |
None |
Sort expression utilizing the standard execution sort format. |
Archives and Status
These administrative endpoints allow you to manage the archive file repository and monitor the progress of the indexing system.
-
POST /api/archives/upload: Uploads a ucybdbar export ZIP file via multipart/form-data. This endpoint requires the admin role. Overwriting is not permitted; the upload is rejected if any files already exist in the archive folder.
-
GET /status: Returns the aggregated indexing status across all data categories.
-
GET /status/archive: Returns the indexing status specifically for Execution (AH) records.
-
GET /status/report: Returns the indexing status specifically for Report (RH) records.
-
GET /status/comment: Returns the indexing status specifically for Comment (CO) records.
-
GET /status/meldung: Returns the indexing status specifically for Message (ML) records.
See also: