Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
contact:
email: support@relexsolutions.com
name: RELEX Solutions
description: '# Introduction to the Monitoring API
The RELEX Monitoring API provides a way to access monitoring data for RELEX services.'
title: Monitoring Events API
version: 1.24.0
x-logo:
url: /img/monitoring.png
backgroundColor: '#FFFFFF'
altText: RELEX Solutions logo
servers:
- url: https://eu.monitor.relexsolutions.com
description: For business requests from EU-based customers
- url: https://us.monitor.relexsolutions.com
description: For business requests from US-based customers
tags:
- name: Events
description: Endpoints for fetching files and jobs event data.
paths:
/api/v{N}/{customer_id}/events/file:
get:
tags:
- Events
description: Returns file events owned by the requesting customer. Supports filtering via query parameters. The response includes one entry per file where at least one event occurred within the requested timeframe.
operationId: get-file-events
summary: Get file events
parameters:
- description: API version, MAJOR format
in: path
name: N
required: true
example: 1
schema:
type: integer
enum:
- 1
- description: ID of the customer who the events belong to
in: path
name: customer_id
required: true
example: example-customer
schema:
type: string
- description: Customer environment to fetch the events from
in: query
name: env
required: true
example: dev
schema:
type: string
minLength: 1
maxLength: 20
- description: File name filter; returns files whose names contain this string
in: query
name: file_name
required: false
example: somefile.json
schema:
type: string
minLength: 1
maxLength: 512
- description: Start timestamp (inclusive). Must not be later than `end_timestamp`.
in: query
name: start_timestamp
required: false
example: '2026-01-01T05:10:06+00:00'
schema:
type: string
format: date-time
- description: End timestamp (exclusive). Must not be earlier than `start_timestamp`.
in: query
name: end_timestamp
required: false
example: '2026-03-01T20:10:06+00:00'
schema:
type: string
format: date-time
- description: Integration direction (case-insensitive)
in: query
name: direction
required: false
example: inbound
schema:
type: string
enum:
- inbound
- outbound
- description: The ID of RELEX Plan job to filter file events by
in: query
name: job_id
required: false
example: '12345'
schema:
type: string
pattern: ^[0-9]+$
- description: Current event flow status (case-insensitive); supports exploded array syntax, eg. `status=error&status=warning`
in: query
name: status
required: false
example: warning
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- Error
- Warning
- Exported
- Delivering
- Delivered
- Received
- Processing
- Processed
- description: Page number, 1-based
in: query
name: page
example: 1
schema:
type: integer
default: 1
minimum: 1
maximum: 9223372036854776000
- description: Number of file event flows per page
in: query
name: per_page
example: 50
schema:
type: integer
default: 50
minimum: 1
maximum: 1000
responses:
'200':
description: Data was found and returned
content:
application/json:
schema:
$ref: '#/components/schemas/FileEventResult'
'400':
description: Client error, please check the request parameters
content:
application/problem+json:
schema:
$ref: '#/components/schemas/RequestError'
'401':
description: No authentication was provided
'403':
description: Authentication error
'404':
description: Requested path was not found
'429':
description: Too Many Requests
'500':
description: Internal server error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/RequestError'
security:
- oauth2: []
/api/v{N}/{customer_id}/events/job:
get:
tags:
- Events
description: Returns job events executed on customer environment. Supports filtering via query parameters.
operationId: get-job-events
summary: Get job events
parameters:
- description: API version, MAJOR format
in: path
name: N
required: true
example: 1
schema:
type: integer
enum:
- 1
- description: ID of the customer who the events belong to
in: path
name: customer_id
required: true
example: example-customer
schema:
type: string
- description: Customer environment to fetch the events from
name: env
in: query
required: true
example: dev
schema:
type: string
minLength: 1
maxLength: 20
- description: Uniquely identifies a specific execution of the job
in: query
name: job_id
required: false
example: 1234
schema:
type: integer
minimum: 1
maximum: 9223372036854776000
- description: The job_id of the parent job
in: query
name: job_parent_id
required: false
example: 1234
schema:
type: integer
minimum: 1
maximum: 9223372036854776000
- description: The ID of the process which created the scheduled job, which doesn't change between job executions
in: query
name: run_id
required: false
example: 00000000-0000-0000-0000-000000000000
schema:
type: string
format: uuid
- description: The run_id of the parent job
in: query
name: run_parent_id
required: false
example: 00000000-0000-0000-0000-000000000000
schema:
type: string
format: uuid
- description: Name of the scheduled job. The API returns all jobs whose names include the specified string.
in: query
name: job_name
required: false
example: Scheduled job
schema:
type: string
minLength: 1
maxLength: 512
- description: Name of the parent job. The API returns all jobs whose parent names include the specified string.
in: query
name: job_parent_name
required: false
example: Cleanup run
schema:
type: string
minLength: 1
maxLength: 512
- description: Current job status (case-insensitive); supports exploded array syntax, eg. `status=error&status=warning`
in: query
name: status
required: false
example: warning
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- Pending
- Delayed
- Queued
- Running
- Canceled
- Completed
- Warning
- Error
- description: Start timestamp (inclusive). Must not be later than `end_timestamp`.
in: query
name: start_timestamp
required: false
example: '2026-01-01T05:10:06+00:00'
schema:
type: string
format: date-time
- description: End timestamp (exclusive). Must not be earlier than `start_timestamp`.
in: query
name: end_timestamp
required: false
example: '2026-03-01T20:10:06+00:00'
schema:
type: string
format: date-time
- description: Page number, 1-based
in: query
name: page
example: 1
schema:
type: integer
default: 1
minimum: 1
maximum: 9223372036854776000
- description: Number of job execution results per page
in: query
name: per_page
example: 50
schema:
type: integer
default: 50
minimum: 1
maximum: 1000
responses:
'200':
description: Data was found and returned
content:
application/json:
schema:
$ref: '#/components/schemas/JobEventResult'
'400':
description: Client error, please check the request parameters
content:
application/problem+json:
schema:
$ref: '#/components/schemas/RequestError'
'401':
description: No authentication was provided
'403':
description: Authentication error, make sure the customer_id path parameter and the customer in 'client_id' token claim match each other
'404':
description: Requested path was not found
'429':
description: Too Many Requests
'500':
description: Internal server error, please contact the developers
content:
application/problem+json:
schema:
$ref: '#/components/schemas/RequestError'
security:
- oauth2: []
components:
schemas:
error:
unevaluatedProperties: false
properties:
title:
description: Textual representation of the event during which the error has occurred
type: string
example: File preparation started
details:
description: Critical error text
type: string
example: The file you are looking for may have been moved or deleted
FileEventResult:
description: A complete description of all the requested file events
unevaluatedProperties: false
required:
- meta
- data
- _links
properties:
meta:
description: General metadata about the response
$ref: '#/components/schemas/meta'
data:
description: List of events matching the query parameters
type: array
items:
type: object
unevaluatedProperties: false
required:
- file
- status
- direction
- timestamp
- events
properties:
file:
description: Input file name
type: string
minLength: 1
maxLength: 512
example: Sales_051_20231221T111029_130706.json
input_url:
description: Full path of an input file on the file server
type: string
format: uri
example: sftp://sftpexample-customerfim@sftp-example.relexsolutions.com/data/input/Sales_051_20231221T111029_130706.json
output_url:
description: Full path of an output file on the file server
type: string
format: uri
example: https://example-external-abs.blob.core.windows.net/output/Sales_051_20231221T111029_130706
application:
description: Application the file was delivered to (inbound) or exported from (outbound)
type: string
enum:
- Plan
- Promo
examples:
- Plan
- Promo
job_id:
description: RELEX Plan job id associated with the file event
type: string
pattern: ^[0-9]+$
example: '12345'
direction:
description: Integration direction, inbound or outbound
type: string
enum:
- inbound
- outbound
example: inbound
status:
description: Current event flow status
type: string
enum:
- Received
- Processing
- Processed
- Exported
- Delivering
- Delivered
- Warning
- Error
example: Processing
timestamp:
description: Time of the last flow event occurrence
type: string
format: date-time
example: '2023-12-01T02:55:39Z'
file_size:
description: Size of the input file in bytes
type: integer
example: 359
events:
description: Detailed events that were executed on the file
type: array
items:
$ref: '#/components/schemas/event'
errors:
description: Critical errors that took place during operations on the input file, if any
type: array
items:
$ref: '#/components/schemas/error'
oneOf:
- required:
- input_url
- required:
- output_url
example:
- file: E-10003.BSAPPRODUCTLDSRELEX_6700_20231130224506.csv
input_url: sftp://sftpexample-customerfim@sftp-example.relexsolutions.com/data/input/E-10003.BSAPPRODUCTLDSRELEX_6700_20231130224506.csv
direction: inbound
status: Received
timestamp: '2023-12-01T02:55:39Z'
file_size: 359
events:
- title: File received
timestamp: '2023-12-01T02:55:39Z'
- file: E-10003.BSAPCAMPAIGNLRELEX20231130224800.csv
input_url: sftp://sftpexample-customerfim@sftp-example.relexsolutions.com/data/input/E-10003.BSAPCAMPAIGNLRELEX20231130224800.csv
direction: inbound
status: Processing
timestamp: '2023-12-01T04:00:10Z'
file_size: 359
events:
- title: File received
timestamp: '2023-12-01T02:55:39Z'
- title: File preparation started
timestamp: '2023-12-01T04:00:10Z'
- file: E-10003.BSAPPRODUCTLDSRELEX_6400_20231130224503.csv
input_url: sftp://sftpexample-customerfim@sftp-example.relexsolutions.com/data/input/E-10003.BSAPPRODUCTLDSRELEX_6400_20231130224503.csv
application: Plan
job_id: '12345'
direction: inbound
status: Processed
timestamp: '2023-12-04T05:07:33Z'
file_size: 359
events:
- title: File received
timestamp: '2023-12-01T02:55:39Z'
- title: File preparation started
timestamp: '2023-12-01T04:00:10Z'
- title: File preparation completed
timestamp: '2023-12-01T04:00:11Z'
- title: File import started
timestamp: '2023-12-01T04:01:46Z'
file_rows:
total: 100
skipped: 0
- title: File import completed
timestamp: '2023-12-04T05:07:33Z'
- file: transactions_20251204_110001.csv
input_url: https://example-storage.blob.core.windows.net/input/transactions_20251204_110001.csv
status: Warning
direction: inbound
file_size: 694713
timestamp: '2025-12-04T14:12:10Z'
events:
- title: File received
timestamp: '2025-12-04T11:36:01Z'
- title: File preparation started
timestamp: '2025-12-04T14:11:48Z'
file_rows:
total: 5973
skipped: 1339
warnings:
- details: Null value in non-null column relex_transaction_type
count: 1326
example_rows:
- 2025-12-03,LOC01,LOC02,,-6.0,CS,-6.0,CS,REF001,Invoice,TYPE1,CAT1,ORD001,ID001,SO
- 2025-12-03,LOC01,LOC02,,-1.0,CS,-1.0,CS,REF002,Invoice,TYPE1,CAT1,ORD002,ID002,SO
- 2025-12-03,LOC01,LOC02,,-35.0,CS,-35.0,CS,REF003,Invoice,TYPE1,CAT1,ORD003,ID003,SO
- 2025-12-03,LOC01,LOC02,,-8.0,CS,-8.0,CS,REF004,Invoice,TYPE1,CAT1,ORD004,ID004,SO
- 2025-12-03,LOC01,LOC02,,-36.0,CS,-36.0,CS,REF005,Invoice,TYPE1,CAT1,ORD005,ID005,SO
- details: Null value in non-null column primary_qty
count: 13
example_rows:
- 2025-12-03,LOC03,SKU01,DELIVERY,,LB,40.0,CS,REF006,IR Description,TYPE2,CAT2,ORD006,ID006,OT
- 2025-12-03,LOC03,SKU02,DELIVERY,,LB,60.0,CS,REF007,IR Description,TYPE2,CAT2,ORD007,ID007,OT
- 2025-12-03,LOC03,SKU03,DELIVERY,,LB,60.0,CS,REF008,IR Description,TYPE2,CAT2,ORD008,ID008,OT
- 2025-12-03,LOC03,SKU04,DELIVERY,,LB,55.0,CS,REF009,IR Description,TYPE2,CAT2,ORD009,ID009,OT
- 2025-12-03,LOC01,SKU05,DELIVERY,,LB,192.0,CS,REF010,IR Description,TYPE2,CAT2,ORD010,ID010,OP
- title: File preparation completed
timestamp: '2025-12-04T14:12:10Z'
file_rows:
total: 4634
skipped: 0
- file: E-10003.BSAPINVTRANSRELEX_6500_20231201023001.csv
input_url: sftp://sftpexample-customerfim@sftp-example.relexsolutions.com/data/input/E-10003.BSAPINVTRANSRELEX_6500_20231201023001.csv
direction: inbound
status: Error
timestamp: '2023-12-01T04:00:10Z'
file_size: 359
events:
- title: File received
timestamp: '2023-12-01T02:55:39Z'
- title: File preparation started
timestamp: '2023-12-01T04:00:10Z'
errors:
- title: File validation failed
details: 'Validation failed: invalid value "QTY" for column "batch_size"'
- file: Transaction_aaTYk_2025-06-06_05:05:50.csv
output_url: https://example-external-abs.blob.core.windows.net/output/Transaction_aaTYk_2025-06-06_05:05:50.csv
application: Promo
status: Delivered
direction: outbound
timestamp: '2025-06-06T05:06:50Z'
events:
- title: Export file created
timestamp: '2025-06-06T05:05:50Z'
- title: Export file uploaded to customer-facing storage
timestamp: '2025-06-06T05:06:50Z'
_links:
description: Pagination links following HAL standard
unevaluatedProperties: false
allOf:
- $ref: '#/components/schemas/_links'
- type: object
properties:
next:
type: object
unevaluatedProperties: false
properties:
href:
type: string
format: uri-reference
example: /api/v1/example-customer/events/file?page=2
self:
type: object
unevaluatedProperties: false
properties:
href:
type: string
format: uri-reference
example: /api/v1/example-customer/events/file
_links:
required:
- self
type: object
unevaluatedProperties: false
description: Pagination as per the HAL standard
properties:
next:
properties:
href:
type: string
format: uri-reference
description: Next page link
example: /api/v1/example-customer/events/file?page=2
type: object
unevaluatedProperties: false
description: Next page link container, present only if next page has data
self:
properties:
href:
type: string
format: uri-reference
description: Self link
example: /api/v1/example-customer/events/file
type: object
unevaluatedProperties: false
description: Self link container, always present
meta:
required:
- customer
- version
unevaluatedProperties: false
properties:
customer:
type: string
description: Customer identifier
example: example-customer
version:
type: string
description: monitoring-api service version
example: v1
RequestError:
type: object
unevaluatedProperties: false
required:
- type
- title
- status
- detail
- instance
properties:
type:
type: string
description: Error type description
example: ValidationError
title:
type: string
description: Error general title
example: Request parameters validation error
status:
type: integer
description: Response code
example: 400
detail:
type: string
description: Detailed error description
example: One or more errors occurred while validating request parameters
instance:
type: string
format: uri-reference
description: A URI reference that identifies the specific occurrence of the problem
example: /api/v1/example-customer/events/file?env=
errors:
description: An array of validation errors in case there were any
type: array
items:
type: object
unevaluatedProperties: false
required:
- parameter
- reason
properties:
parameter:
type: string
description: The name of the parameter which failed validation
example: env
reason:
type: string
description: Validation error message
example: env must be at least 1 character in length
JobEventResult:
description: A complete description of all the requested job events
unevaluatedProperties: false
required:
- meta
- data
- _links
properties:
meta:
description: General metadata about the response
$ref: '#/components/schemas/meta'
data:
description: List of events matching the query parameters
type: array
items:
type: object
unevaluatedProperties: false
required:
- name
- job_id
- application
- status
- status_message
- progress
- last_update
- start_time
- events
properties:
name:
type: string
minLength: 1
maxLength: 512
description: Event name
example: Scheduled job - Example Workflow
run_id:
type: string
format: uuid
description: The ID of the process which created the scheduled job, which doesn't change between job executions
example: 123e4567-e89b-12d3-a456-426614174000
run_parent_id:
type: string
format: uuid
description: The run_id of the parent job, if applicable
example: 00000000-0000-0000-0000-000000000001
job_id:
type: integer
minimum: 1
maximum: 9223372036854776000
description: Uniquely identifies a specific execution of the job
example: 1123456789900
job_parent_id:
type: integer
minimum: 1
maximum: 9223372036854776000
description: Unique identifier of parent job, if applicable
example: 1123456789899
job_parent_name:
type: string
minLength: 1
maxLength: 512
description: Name of parent job, if applicable
example: Scheduled job - Parent Workflow
application:
type: string
minLength: 1
description: Application that generated the event
example: plan-example
status:
type: string
description: Status from last event
example: Completed
enum:
- Pending
- Delayed
- Queued
- Running
- Canceled
- Completed
- Warning
- Error
status_message:
type: string
description: Event status message
example: Externally triggered workflow 01234567890
progress:
required:
- percentage_completed
description: Event progress
type: object
unevaluatedProperties: false
properties:
rows_total:
type: number
minimum: 0
description: Total number of rows
example: 30
rows_ignored:
type: number
minimum: 0
description: Number of ignored or skipped rows
example: 0
rows_completed:
type: number
minimum: 0
description: Number of completed rows
example: 30
percentage_completed:
type: number
minimum: 0
maximum: 100
description: Completion percentage of the Job
example: 100
last_update:
type: string
format: date-time
description: Timestamp of the last event in this job
example: '2025-03-28T04:45:28Z'
start_time:
type: string
format: date-time
description: Job start time as users see on the event source application
example: '2025-03-28T04:45:25Z'
end_time:
type: string
format: date-time
description: Job end time as users see on the event source application
example: '2025-03-28T04:45:28Z'
events:
type: array
minItems: 1
items:
type: object
unevaluatedProperties: false
required:
- status
- timestamp
properties:
status:
type: string
description: Event status
example: Completed
enum:
- Pending
- Delayed
- Queued
- Running
- Canceled
- Completed
- Warning
- Error
timestamp:
type: string
format: date-time
description: Event timestamp
example: '2025-03-28T04:45:28Z'
example:
- name: Scheduled job - Example Workflow
run_id: 123e4567-e89b-12d3-a456-426614174000
job_id: 1123456789900
application: plan-example
status: Completed
status_message: Externally triggered workflow 01234567890
progress:
rows_total: 30
rows_ignored: 0
rows_completed: 30
percentage_completed: 100
last_update: '2025-03-28T04:45:28Z'
start_time: '2025-03-28T04:45:25Z'
end_time: '2025-03-28T04:45:28Z'
events:
- status: Pending
timestamp: '2025-03-28T04:45:25Z'
- status: Running
timestamp: '2025-03-28T04:45:25Z'
- status: Completed
timestamp: '2025-03-28T04:45:28Z'
- name: Scheduled job - Example Workflow
run_id: a1b2c3d4-e5f6-4789-a012-3456789abcde
job_id: 1123456789900
job_parent_id: 1123456789899
job_parent_name: Scheduled job - Parent Workflow
application: plan-example
status: Error
status_message: Externally triggered workflow 01234567890 - Error running scheduled job
progress:
rows_total: 4
rows_ignored: 0
rows_completed: 0
percentage_completed: 100
last_update: '2025-03-28T04:45:28Z'
start_time: '2025-03-28T04:45:25Z'
end_time: '2025-03-28T04:45:28Z'
events:
- status: Pending
timestamp: '2025-03-28T04:45:25Z'
- status: Running
timestamp: '2025-03-28T04:45:25Z'
- status: Error
timestamp: '2025-03-28T04:45:28Z'
_links:
description: Pagination links following HAL standard
unevaluatedProperties: false
allOf:
- $ref: '#/components/schemas/_links'
- type: object
properties:
next:
type: object
unevaluatedProperties: false
properties:
href:
type: string
format: uri-reference
example: /api/v1/example-customer/events/job?page=2
self:
type: object
unevaluatedProperties: false
properties:
href:
type: string
format: uri-reference
example: /api/v1/example-customer/events/job
event:
unevaluatedProperties: false
properties:
title:
description: Textual representation of the event
type: string
enum:
- File received
- File preparation started
- File preparation completed
- File is ready for processing
- File import started
- File import completed
- Export file created
- Export file ready for preparation
- Export file uploaded to customer-facing storage
example: File received
timestamp:
description: Time of the last file operation at this step
type: string
format: date-time
example: '2025-12-04T14:11:48Z'
file_rows:
description: Information about individual data rows in the uploaded file
type: object
unevaluatedProperties: false
properties:
total:
description: Total number of data rows present in the uploaded file
type: integer
minimum: 0
example: 5973
skipped:
description: Number of rows skipped while processing the uploaded file
type: integer
minimum: 0
example: 1339
warnings:
description: Warnings that occurred during file processing and led to row skipping
type: array
items:
type: object
unevaluatedProperties: false
required:
- details
- count
properties:
details:
type: string
description: An exact description of the issue
example: Could not parse value o
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/relex/refs/heads/main/openapi/relex-events-api-openapi.yml