ERP Integration API
- Base URL:
https://erp-integration-api.sls.epilot.io - API Docs: https://docs.epilot.io/api/erp-integration
API for integrating with ERP systems, handling tracking acknowledgments, triggering ERP processes, and processing ERP updates.
Quick Startโ
# List available operations
epilot erp-integration
# Call an operation
epilot erp-integration acknowledgeTracking
Common Flagsโ
| Flag | Description |
|---|---|
-p key=value | Set a named parameter |
-d '{...}' | Request body JSON |
-H 'Key: Value' | Custom header |
-t, --token <token> | Bearer token for authentication |
--profile <name> | Use a named profile |
-s, --server <url> | Override server base URL |
-i, --include | Include response headers in output |
--json | Output raw JSON (no formatting) |
-v, --verbose | Verbose output (show request details) |
--jsonata <expr> | JSONata expression to transform response |
--definition <file> | Override OpenAPI spec file/URL |
--guided | Prompt for all parameters interactively |
--no-interactive | Disable interactive prompts |
Operationsโ
erp
acknowledgeTrackingโ Acknowledges an ERP tracking record by removing it from the tracking table, requires public authenticationtriggerErpโ Triggers the ERP integration processprocessErpUpdatesEventsV3โ Handles updates from ERP systems using integration_id directly.simulateMappingV2โ Test v2.0 mapping configuration by transforming a payload using the provided mapping rules without persisting data.simulateMappingโ Test mapping configuration by transforming a payload using the provided mapping rules without persisting data.
integrations
listIntegrationsโ Retrieve all integrations for the authenticated organizationcreateIntegrationโ Create a new integration configurationgetIntegrationโ Retrieve a specific integration by its IDupdateIntegrationโ Update an existing integration configurationdeleteIntegrationโ Delete an integration and all its use casesqueryEventsโ Query events for a specific integrationreplayEventsโ Replay one or more events for a specific integration. Events will be re-processed with their original payloads but withlistUseCasesโ Retrieve all use cases for a specific integrationcreateUseCaseโ Create a new use case for an integrationgetUseCaseโ Retrieve a specific use case by its IDupdateUseCaseโ Update an existing use case configurationdeleteUseCaseโ Delete a use case from an integrationlistUseCaseHistoryโ Retrieve historical versions of a use case's configuration.listIntegrationsV2โ Retrieve all integrations with embedded use cases for the authenticated organizationcreateIntegrationV2โ Create a new integration with embedded use cases.getIntegrationV2โ Retrieve a specific integration with all its embedded use casesupdateIntegrationV2โ Update an existing integration with embedded use cases.deleteIntegrationV2โ Delete an integration and all its use casessetIntegrationAppMappingโ Creates or updates a mapping from an app/component to an integration.deleteIntegrationAppMappingโ Removes a mapping from an app/component to an integration.getOutboundStatusโ Get the status of all outbound use cases for a specific integration.
monitoring
queryInboundMonitoringEventsโ Query inbound monitoring events for a specific integration.getMonitoringStatsโ Get aggregated statistics for both inbound and outbound monitoring events for a specific integration.getMonitoringTimeSeriesโ Get time-series aggregated event counts for monitoring charts.queryAccessLogsโ Query API access logs for a specific integration's organization.queryOutboundMonitoringEventsโ Query outbound monitoring events for a specific integration.
acknowledgeTrackingโ
Acknowledges an ERP tracking record by removing it from the tracking table, requires public authentication
POST /v1/erp/tracking/acknowledgement
Request Body
Sample Call
epilot erp-integration acknowledgeTracking \
-d '{"ack_id":"string"}'
Using stdin pipe:
cat body.json | epilot erp-integration acknowledgeTracking
With JSONata filter:
epilot erp-integration acknowledgeTracking --jsonata 'message'
Sample Response
{
"message": "string"
}
triggerErpโ
Triggers the ERP integration process
POST /v1/erp/trigger
Request Body (required)
Sample Call
epilot erp-integration triggerErp
With request body:
epilot erp-integration triggerErp \
-d '{
"execution_id": "string",
"org_id": "string",
"webhook_id": "string",
"flow_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"action_id": "string",
"flow_action_id": "string",
"flow_name": "string",
"activity_id": "string",
"entity_id": "string"
}'
Using stdin pipe:
cat body.json | epilot erp-integration triggerErp
With JSONata filter:
epilot erp-integration triggerErp --jsonata 'status_code'
Sample Response
{
"status_code": "string",
"message": "string",
"body": {},
"code": "string",
"status": "succeeded",
"start_date": "string",
"end_date": "string",
"event_id": "string"
}
processErpUpdatesEventsV3โ
Handles updates from ERP systems using integration_id directly.
POST /v3/erp/updates/events
Request Body
Sample Call
epilot erp-integration processErpUpdatesEventsV3 \
-d '{"integration_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","correlation_id":"string","events":[{},{}]}'
Using stdin pipe:
cat body.json | epilot erp-integration processErpUpdatesEventsV3
With JSONata filter:
epilot erp-integration processErpUpdatesEventsV3 --jsonata 'results[0]'
Sample Response
{
"results": [
{
"event_id": "string",
"status": "success",
"message": "string"
}
]
}
simulateMappingV2โ
Test v2.0 mapping configuration by transforming a payload using the provided mapping rules without persisting data.
POST /v2/erp/updates/mapping_simulation
Request Body (required)
Sample Call
epilot erp-integration simulateMappingV2
With request body:
epilot erp-integration simulateMappingV2 \
-d '{
"event_configuration": {
"entities": [
{}
],
"meter_readings": [
{}
]
},
"format": "json",
"payload": "string"
}'
Using stdin pipe:
cat body.json | epilot erp-integration simulateMappingV2
With JSONata filter:
epilot erp-integration simulateMappingV2 --jsonata 'entity_updates'
Sample Response
{
"entity_updates": [
{
"entity_slug": "string",
"unique_identifiers": {},
"attributes": {}
}
],
"meter_readings_updates": [
{
"meter": {
"$entity_unique_ids": {}
},
"meter_counter": {
"$entity_unique_ids": {}
},
"attributes": {}
}
],
"warnings": [
{
"entity_schema": "string",
"field": "string",
"message": "string"
}
]
}
simulateMappingโ
Test mapping configuration by transforming a payload using the provided mapping rules without persisting data.
POST /v1/erp/updates/mapping_simulation
Request Body (required)
Sample Call
epilot erp-integration simulateMapping
With request body:
epilot erp-integration simulateMapping \
-d '{
"mapping_configuration": {
"version": "1.0",
"mapping": {
"objects": {}
}
},
"object_type": "string",
"format": "json",
"payload": "string"
}'
Using stdin pipe:
cat body.json | epilot erp-integration simulateMapping
With JSONata filter:
epilot erp-integration simulateMapping --jsonata 'entity_updates'
Sample Response
{
"entity_updates": [
{
"entity_slug": "string",
"unique_identifiers": {},
"attributes": {}
}
],
"meter_readings_updates": [
{
"meter": {
"$entity_unique_ids": {}
},
"meter_counter": {
"$entity_unique_ids": {}
},
"attributes": {}
}
],
"warnings": [
{
"entity_schema": "string",
"field": "string",
"message": "string"
}
]
}
listIntegrationsโ
Retrieve all integrations for the authenticated organization
GET /v1/integrations
Sample Call
epilot erp-integration listIntegrations
With JSONata filter:
epilot erp-integration listIntegrations --jsonata 'integrations'
Sample Response
{
"integrations": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"orgId": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"name": "string",
"description": "string",
"access_token_ids": ["string"],
"app_ids": ["string"],
"environment_config": [
{
"key": "string",
"label": "string",
"type": "String",
"description": "string",
"required": false,
"order": 0
}
],
"settings": {
"autoRefresh": {
"enabled": false,
"freshnessThresholdMinutes": 1
}
}
}
]
}
createIntegrationโ
Create a new integration configuration
POST /v1/integrations
Request Body (required)
Sample Call
epilot erp-integration createIntegration
With request body:
epilot erp-integration createIntegration \
-d '{
"name": "string",
"description": "string",
"access_token_ids": ["string"],
"app_ids": ["string"],
"environment_config": [
{
"key": "string",
"label": "string",
"type": "String",
"description": "string",
"required": false,
"order": 0
}
],
"settings": {
"autoRefresh": {
"enabled": false,
"freshnessThresholdMinutes": 1
}
}
}'
Using stdin pipe:
cat body.json | epilot erp-integration createIntegration
With JSONata filter:
epilot erp-integration createIntegration --jsonata '$'
Sample Response
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"orgId": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"name": "string",
"description": "string",
"access_token_ids": ["string"],
"app_ids": ["string"],
"environment_config": [
{
"key": "string",
"label": "string",
"type": "String",
"description": "string",
"required": false,
"order": 0
}
],
"settings": {
"autoRefresh": {
"enabled": false,
"freshnessThresholdMinutes": 1
}
}
}
getIntegrationโ
Retrieve a specific integration by its ID
GET /v1/integrations/{integrationId}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Sample Call
epilot erp-integration getIntegration \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot erp-integration getIntegration 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration getIntegration -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'
Sample Response
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"orgId": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"name": "string",
"description": "string",
"access_token_ids": ["string"],
"app_ids": ["string"],
"environment_config": [
{
"key": "string",
"label": "string",
"type": "String",
"description": "string",
"required": false,
"order": 0
}
],
"settings": {
"autoRefresh": {
"enabled": false,
"freshnessThresholdMinutes": 1
}
}
}
updateIntegrationโ
Update an existing integration configuration
PUT /v1/integrations/{integrationId}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Request Body (required)
Sample Call
epilot erp-integration updateIntegration \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{}'
Using positional args for path parameters:
epilot erp-integration updateIntegration 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration updateIntegration -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration updateIntegration -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'
Sample Response
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"orgId": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"name": "string",
"description": "string",
"access_token_ids": ["string"],
"app_ids": ["string"],
"environment_config": [
{
"key": "string",
"label": "string",
"type": "String",
"description": "string",
"required": false,
"order": 0
}
],
"settings": {
"autoRefresh": {
"enabled": false,
"freshnessThresholdMinutes": 1
}
}
}
deleteIntegrationโ
Delete an integration and all its use cases
DELETE /v1/integrations/{integrationId}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Sample Call
epilot erp-integration deleteIntegration \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot erp-integration deleteIntegration 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration deleteIntegration -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'message'
Sample Response
{
"message": "string"
}
queryEventsโ
Query events for a specific integration
POST /v1/integrations/{integrationId}/events
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Request Body (required)
Sample Call
epilot erp-integration queryEvents \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
With request body:
epilot erp-integration queryEvents \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"event_id": "string",
"event_type": "CREATE",
"correlation_id": "string",
"object_type": "string",
"event_name": "string",
"limit": 25,
"cursor": {
"event_time": "2025-10-31T12:34:56Z",
"event_id": "evt_1234567890abcdef"
}
}'
Using positional args for path parameters:
epilot erp-integration queryEvents 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration queryEvents -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration queryEvents -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'data'
Sample Response
{
"data": [
{
"event_type": "CREATE",
"object_type": "string",
"timestamp": "1970-01-01T00:00:00.000Z",
"format": "json",
"payload": "string",
"deduplication_id": "evt-2025-05-01-12345-create-bp"
}
],
"next_cursor": {
"event_time": "2025-10-31T12:34:56Z",
"event_id": "evt_1234567890abcdef"
},
"has_more": true
}
replayEventsโ
Replay one or more events for a specific integration. Events will be re-processed with their original payloads but with
POST /v1/integrations/{integrationId}/events/replay
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Request Body (required)
Sample Call
epilot erp-integration replayEvents \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{"event_ids":["string"]}'
Using positional args for path parameters:
epilot erp-integration replayEvents 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration replayEvents -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration replayEvents -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'event_ids'
Sample Response
{
"event_ids": ["string"]
}
listUseCasesโ
Retrieve all use cases for a specific integration
GET /v1/integrations/{integrationId}/use-cases
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Sample Call
epilot erp-integration listUseCases \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot erp-integration listUseCases 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration listUseCases -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'use_cases'
Sample Response
{
"use_cases": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"slug": "string",
"type": "inbound",
"enabled": true,
"change_description": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"configuration": {}
}
]
}
createUseCaseโ
Create a new use case for an integration
POST /v1/integrations/{integrationId}/use-cases
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Request Body (required)
Sample Call
epilot erp-integration createUseCase \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
With request body:
epilot erp-integration createUseCase \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"name": "string",
"slug": "string",
"enabled": true,
"type": "inbound",
"configuration": {
"entities": [
{}
],
"meter_readings": [
{}
]
}
}'
Using positional args for path parameters:
epilot erp-integration createUseCase 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration createUseCase -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration createUseCase -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'
Sample Response
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"slug": "string",
"type": "inbound",
"enabled": true,
"change_description": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"configuration": {
"entities": [
{}
],
"meter_readings": [
{}
]
}
}
getUseCaseโ
Retrieve a specific use case by its ID
GET /v1/integrations/{integrationId}/use-cases/{useCaseId}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
useCaseId | path | string (uuid) | Yes | The use case ID |
Sample Call
epilot erp-integration getUseCase \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-p useCaseId=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot erp-integration getUseCase 123e4567-e89b-12d3-a456-426614174000 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration getUseCase -p integrationId=123e4567-e89b-12d3-a456-426614174000 -p useCaseId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'
Sample Response
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"slug": "string",
"type": "inbound",
"enabled": true,
"change_description": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"configuration": {
"entities": [
{}
],
"meter_readings": [
{}
]
}
}
updateUseCaseโ
Update an existing use case configuration
PUT /v1/integrations/{integrationId}/use-cases/{useCaseId}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
useCaseId | path | string (uuid) | Yes | The use case ID |
Request Body (required)
Sample Call
epilot erp-integration updateUseCase \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-p useCaseId=123e4567-e89b-12d3-a456-426614174000
With request body:
epilot erp-integration updateUseCase \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-p useCaseId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"name": "string",
"slug": "string",
"enabled": true,
"change_description": "string",
"type": "inbound",
"configuration": {
"entities": [
{}
],
"meter_readings": [
{}
]
}
}'
Using positional args for path parameters:
epilot erp-integration updateUseCase 123e4567-e89b-12d3-a456-426614174000 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration updateUseCase -p integrationId=123e4567-e89b-12d3-a456-426614174000 -p useCaseId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration updateUseCase -p integrationId=123e4567-e89b-12d3-a456-426614174000 -p useCaseId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'
Sample Response
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"slug": "string",
"type": "inbound",
"enabled": true,
"change_description": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"configuration": {
"entities": [
{}
],
"meter_readings": [
{}
]
}
}
deleteUseCaseโ
Delete a use case from an integration
DELETE /v1/integrations/{integrationId}/use-cases/{useCaseId}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
useCaseId | path | string (uuid) | Yes | The use case ID |
Sample Call
epilot erp-integration deleteUseCase \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-p useCaseId=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot erp-integration deleteUseCase 123e4567-e89b-12d3-a456-426614174000 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration deleteUseCase -p integrationId=123e4567-e89b-12d3-a456-426614174000 -p useCaseId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'message'
Sample Response
{
"message": "string"
}
listUseCaseHistoryโ
Retrieve historical versions of a use case's configuration.
GET /v1/integrations/{integrationId}/use-cases/{useCaseId}/history
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
useCaseId | path | string (uuid) | Yes | The use case ID |
cursor | query | string | No | Opaque pagination cursor. Pass the 'next_cursor' value from a previous |
response to fetch the next page of results. |
Sample Call
epilot erp-integration listUseCaseHistory \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-p useCaseId=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot erp-integration listUseCaseHistory 123e4567-e89b-12d3-a456-426614174000 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration listUseCaseHistory -p integrationId=123e4567-e89b-12d3-a456-426614174000 -p useCaseId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'history'
Sample Response
{
"history": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"useCaseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"slug": "string",
"enabled": true,
"change_description": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"history_created_at": "1970-01-01T00:00:00.000Z",
"type": "inbound",
"configuration": {}
}
],
"next_cursor": "string"
}
listIntegrationsV2โ
Retrieve all integrations with embedded use cases for the authenticated organization
GET /v2/integrations
Sample Call
epilot erp-integration listIntegrationsV2
With JSONata filter:
epilot erp-integration listIntegrationsV2 --jsonata 'integrations'
Sample Response
{
"integrations": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"orgId": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"name": "string",
"description": "string",
"access_token_ids": ["string"],
"app_ids": ["string"],
"environment_config": [],
"settings": {},
"use_cases": []
}
]
}
createIntegrationV2โ
Create a new integration with embedded use cases.
POST /v2/integrations
Request Body (required)
Sample Call
epilot erp-integration createIntegrationV2
With request body:
epilot erp-integration createIntegrationV2 \
-d '{
"name": "string",
"description": "string",
"access_token_ids": ["string"],
"app_ids": ["string"],
"environment_config": [
{
"key": "string",
"label": "string",
"type": "String",
"description": "string",
"required": false,
"order": 0
}
],
"settings": {
"autoRefresh": {
"enabled": false,
"freshnessThresholdMinutes": 1
}
},
"use_cases": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"slug": "string",
"enabled": true,
"change_description": "string",
"type": "inbound",
"configuration": {}
}
]
}'
Using stdin pipe:
cat body.json | epilot erp-integration createIntegrationV2
With JSONata filter:
epilot erp-integration createIntegrationV2 --jsonata '$'
Sample Response
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"orgId": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"name": "string",
"description": "string",
"access_token_ids": ["string"],
"app_ids": ["string"],
"environment_config": [
{
"key": "string",
"label": "string",
"type": "String",
"description": "string",
"required": false,
"order": 0
}
],
"settings": {
"autoRefresh": {
"enabled": false,
"freshnessThresholdMinutes": 1
}
},
"use_cases": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"slug": "string",
"type": "inbound",
"enabled": true,
"change_description": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"configuration": {}
}
]
}
getIntegrationV2โ
Retrieve a specific integration with all its embedded use cases
GET /v2/integrations/{integrationId}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Sample Call
epilot erp-integration getIntegrationV2 \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot erp-integration getIntegrationV2 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration getIntegrationV2 -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'
Sample Response
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"orgId": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"name": "string",
"description": "string",
"access_token_ids": ["string"],
"app_ids": ["string"],
"environment_config": [
{
"key": "string",
"label": "string",
"type": "String",
"description": "string",
"required": false,
"order": 0
}
],
"settings": {
"autoRefresh": {
"enabled": false,
"freshnessThresholdMinutes": 1
}
},
"use_cases": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"slug": "string",
"type": "inbound",
"enabled": true,
"change_description": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"configuration": {}
}
]
}
updateIntegrationV2โ
Update an existing integration with embedded use cases.
PUT /v2/integrations/{integrationId}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID (client-provided) |
Request Body (required)
Sample Call
epilot erp-integration updateIntegrationV2 \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
With request body:
epilot erp-integration updateIntegrationV2 \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"name": "string",
"description": "string",
"access_token_ids": ["string"],
"app_ids": ["string"],
"environment_config": [
{
"key": "string",
"label": "string",
"type": "String",
"description": "string",
"required": false,
"order": 0
}
],
"settings": {
"autoRefresh": {
"enabled": false,
"freshnessThresholdMinutes": 1
}
},
"use_cases": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"slug": "string",
"enabled": true,
"change_description": "string",
"type": "inbound",
"configuration": {}
}
]
}'
Using positional args for path parameters:
epilot erp-integration updateIntegrationV2 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration updateIntegrationV2 -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration updateIntegrationV2 -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'
Sample Response
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"orgId": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"name": "string",
"description": "string",
"access_token_ids": ["string"],
"app_ids": ["string"],
"environment_config": [
{
"key": "string",
"label": "string",
"type": "String",
"description": "string",
"required": false,
"order": 0
}
],
"settings": {
"autoRefresh": {
"enabled": false,
"freshnessThresholdMinutes": 1
}
},
"use_cases": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"integrationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"slug": "string",
"type": "inbound",
"enabled": true,
"change_description": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z",
"configuration": {}
}
]
}
deleteIntegrationV2โ
Delete an integration and all its use cases
DELETE /v2/integrations/{integrationId}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Sample Call
epilot erp-integration deleteIntegrationV2 \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot erp-integration deleteIntegrationV2 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration deleteIntegrationV2 -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'message'
Sample Response
{
"message": "string"
}
setIntegrationAppMappingโ
Creates or updates a mapping from an app/component to an integration.
PUT /v1/integrations/{integrationId}/app-mapping
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID to map to |
Request Body (required)
Sample Call
epilot erp-integration setIntegrationAppMapping \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
With request body:
epilot erp-integration setIntegrationAppMapping \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"app_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"component_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"overwrite": false
}'
Using positional args for path parameters:
epilot erp-integration setIntegrationAppMapping 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration setIntegrationAppMapping -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration setIntegrationAppMapping -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'integration_id'
Sample Response
{
"integration_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
deleteIntegrationAppMappingโ
Removes a mapping from an app/component to an integration.
DELETE /v1/integrations/{integrationId}/app-mapping
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID (used for authorization, must match the mapping) |
Request Body (required)
Sample Call
epilot erp-integration deleteIntegrationAppMapping \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{"app_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","component_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}'
Using positional args for path parameters:
epilot erp-integration deleteIntegrationAppMapping 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration deleteIntegrationAppMapping -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration deleteIntegrationAppMapping -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'message'
Sample Response
{
"message": "string"
}
queryInboundMonitoringEventsโ
Query inbound monitoring events for a specific integration.
POST /v1/integrations/{integrationId}/monitoring/inbound-events
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Request Body (required)
Sample Call
epilot erp-integration queryInboundMonitoringEvents \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
With request body:
epilot erp-integration queryInboundMonitoringEvents \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"use_case_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"event_type": "CREATE",
"sync_type": "entity",
"status": "success",
"error_category": "validation",
"correlation_id": "string",
"object_type": "string",
"event_name": "string",
"event_id": "string",
"from_date": "2025-01-01T00:00:00Z",
"to_date": "2025-01-31T23:59:59Z",
"limit": 50,
"cursor": {
"completed_at": "1970-01-01T00:00:00.000Z",
"event_id": "string"
}
}'
Using positional args for path parameters:
epilot erp-integration queryInboundMonitoringEvents 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration queryInboundMonitoringEvents -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration queryInboundMonitoringEvents -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'data'
Sample Response
{
"data": [
{
"org_id": "string",
"event_id": "string",
"correlation_id": "string",
"integration_id": "string",
"use_case_id": "string",
"event_type": "CREATE",
"object_type": "string",
"sync_type": "entity",
"status": "success",
"error_code": "string",
"error_message": "string",
"error_category": "validation",
"processing_duration_ms": 0,
"received_at": "1970-01-01T00:00:00.000Z",
"completed_at": "1970-01-01T00:00:00.000Z"
}
],
"next_cursor": {
"completed_at": "1970-01-01T00:00:00.000Z",
"event_id": "string"
},
"has_more": true
}
getMonitoringStatsโ
Get aggregated statistics for both inbound and outbound monitoring events for a specific integration.
POST /v1/integrations/{integrationId}/monitoring/stats
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Request Body (required)
Sample Call
epilot erp-integration getMonitoringStats \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
With request body:
epilot erp-integration getMonitoringStats \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"from_date": "2025-01-01T00:00:00Z",
"to_date": "2025-01-31T23:59:59Z",
"inbound_group_by": ["use_case_id", "status"],
"outbound_group_by": ["event_name", "status"]
}'
Using positional args for path parameters:
epilot erp-integration getMonitoringStats 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration getMonitoringStats -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration getMonitoringStats -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'inbound'
Sample Response
{
"inbound": {
"total_events": 0,
"total_correlations": 0,
"success_count": 0,
"error_count": 0,
"skipped_count": 0,
"warning_count": 0,
"success_rate": 0,
"last_error_at": "1970-01-01T00:00:00.000Z",
"breakdown": [
{}
]
},
"outbound": {
"total_events": 0,
"success_count": 0,
"error_count": 0,
"pending_count": 0,
"success_rate": 0,
"last_error_at": "1970-01-01T00:00:00.000Z",
"breakdown": [
{}
]
}
}
getMonitoringTimeSeriesโ
Get time-series aggregated event counts for monitoring charts.
POST /v1/integrations/{integrationId}/monitoring/timeseries
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Request Body (required)
Sample Call
epilot erp-integration getMonitoringTimeSeries \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{"from_date":"2025-01-01T00:00:00Z","to_date":"2025-01-31T23:59:59Z","interval":"1h","direction":"both"}'
Using positional args for path parameters:
epilot erp-integration getMonitoringTimeSeries 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration getMonitoringTimeSeries -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration getMonitoringTimeSeries -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'interval'
Sample Response
{
"interval": "5m",
"from_date": "1970-01-01T00:00:00.000Z",
"to_date": "1970-01-01T00:00:00.000Z",
"buckets": [
{
"timestamp": "1970-01-01T00:00:00.000Z",
"inbound": {
"success_count": 0,
"error_count": 0,
"warning_count": 0,
"skipped_count": 0,
"total_count": 0
},
"outbound": {
"success_count": 0,
"error_count": 0,
"pending_count": 0,
"total_count": 0
}
}
]
}
getOutboundStatusโ
Get the status of all outbound use cases for a specific integration.
GET /v1/integrations/{integrationId}/outbound-status
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Sample Call
epilot erp-integration getOutboundStatus \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot erp-integration getOutboundStatus 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration getOutboundStatus -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'useCases'
Sample Response
{
"useCases": [
{
"useCaseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"useCaseEnabled": true,
"eventCatalogEvent": "contract.created",
"eventEnabled": true,
"webhooks": [
{
"webhookId": "string",
"webhookName": "string",
"enabled": true
}
],
"status": "ok",
"conflicts": [
{
"type": "event_disabled",
"webhookId": "string",
"message": "string"
}
]
}
]
}
queryAccessLogsโ
Query API access logs for a specific integration's organization.
POST /v1/integrations/{integrationId}/monitoring/access-logs
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID (used for tenant authorization) |
Request Body (required)
Sample Call
epilot erp-integration queryAccessLogs \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
With request body:
epilot erp-integration queryAccessLogs \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"token_id": "api_5ZugdRXasLfWBypHi93Fk",
"service": "entity",
"method": "GET",
"path": "/v1/entity",
"status": 200,
"from_date": "2025-01-01T00:00:00Z",
"to_date": "2025-01-31T23:59:59Z",
"limit": 50,
"cursor": {
"timestamp": "1970-01-01T00:00:00.000Z",
"request_id": "string"
}
}'
Using positional args for path parameters:
epilot erp-integration queryAccessLogs 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration queryAccessLogs -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration queryAccessLogs -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'data'
Sample Response
{
"data": [
{
"timestamp": "1970-01-01T00:00:00.000Z",
"environment": "string",
"service": "string",
"request_id": "string",
"method": "string",
"path": "string",
"status": 0,
"response_latency_ms": 0,
"response_length": 0,
"token_id": "string",
"org_id": "string",
"origin": "string",
"source_ip": "string"
}
],
"next_cursor": {
"timestamp": "1970-01-01T00:00:00.000Z",
"request_id": "string"
},
"has_more": true
}
queryOutboundMonitoringEventsโ
Query outbound monitoring events for a specific integration.
POST /v1/integrations/{integrationId}/monitoring/outbound-events
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
integrationId | path | string (uuid) | Yes | The integration ID |
Request Body (required)
Sample Call
epilot erp-integration queryOutboundMonitoringEvents \
-p integrationId=123e4567-e89b-12d3-a456-426614174000
With request body:
epilot erp-integration queryOutboundMonitoringEvents \
-p integrationId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"event_name": "automation_flow_target",
"status": "succeeded",
"webhook_config_id": "string",
"from_date": "2025-01-01T00:00:00Z",
"to_date": "2025-01-31T23:59:59Z",
"limit": 50,
"cursor": {
"created_at": "1970-01-01T00:00:00.000Z",
"event_id": "string"
}
}'
Using positional args for path parameters:
epilot erp-integration queryOutboundMonitoringEvents 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot erp-integration queryOutboundMonitoringEvents -p integrationId=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot erp-integration queryOutboundMonitoringEvents -p integrationId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'data'
Sample Response
{
"data": [
{
"org_id": "string",
"event_id": "string",
"event_name": "string",
"status": "succeeded",
"url": "string",
"http_method": "string",
"http_response": {},
"webhook_config_id": "string",
"metadata": {},
"execution_context": {},
"payload": {},
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "1970-01-01T00:00:00.000Z"
}
],
"next_cursor": {
"created_at": "1970-01-01T00:00:00.000Z",
"event_id": "string"
},
"has_more": true
}