Skip to main content

App API

API for managing app publishing and installed app.

Quick Startโ€‹

# List available operations
epilot app

# Call an operation
epilot app getPublicFacingComponent -p appId=123e4567-e89b-12d3-a456-426614174000 -p componentId=123e4567-e89b-12d3-a456-426614174000

Common Flagsโ€‹

FlagDescription
-p key=valueSet 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, --includeInclude response headers in output
--jsonOutput raw JSON (no formatting)
-v, --verboseVerbose output (show request details)
--jsonata <expr>JSONata expression to transform response
--definition <file>Override OpenAPI spec file/URL
--guidedPrompt for all parameters interactively
--no-interactiveDisable interactive prompts

Operationsโ€‹

App Installation

App Configuration

  • listConfigurations โ€” List all app configuration metadata owned by an organization. To get full app configuration details, use the /v1/app-con
  • createConfiguration โ€” Create a new private app configuration. To make it public a verification process needs to be triggered
  • listPublicConfigurations โ€” List all publicly available app configurations that can be installed. This endpoint returns apps that have at least one
  • getPublicConfiguration โ€” Retrieve the public configuration of an app to install in your tenant
  • getConfiguration โ€” Retrieve a specific app configuration
  • patchMetadata โ€” Patch non-versioned configuration metadata of a given app configuration.
  • deleteConfiguration โ€” Delete an app configuration and all its versions and components.
  • createBundleUploadUrl โ€” Generate a presigned URL for uploading app bundle to /<app-id>/bundle.js path
  • createZipUploadUrl โ€” Generate a presigned URL to upload a zip file with artifacts that will be unpacked in a new directory under the /<app-id
  • createLogoUploadUrl โ€” Generate a presigned URL for uploading app logo to /<app-id>/logo.png path
  • deleteLogo โ€” Delete the app logo from /<app-id>/logo.png path
  • listVersions โ€” Retrieve a list of versions for an app configuration
  • getVersion โ€” Retrieve a specific version of an app configuration
  • patchVersion โ€” Patch an existing app version
  • deleteVersion โ€” Delete a specific version of an app configuration
  • getReview โ€” Retrieve the review status of a specific app version
  • createReview โ€” Submit an app version for review to make it public
  • createComponent โ€” Patch an existing app version to create/add a component
  • patchComponent โ€” Patch an existing app version to update its components
  • deleteComponent โ€” Delete a specific component from an app version
  • cloneVersion โ€” Clone an existing app version to create a new version

App Analytics

  • queryEvents โ€” Query analytics events for a specific app with flexible filtering
  • ingestEvent โ€” Internal endpoint for services to submit app events for analytic purposes

getPublicFacingComponentโ€‹

Retrieve public facing components for an installed app

GET /v1/public/app/{appId}/components/{componentId}

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration to install
componentIdpathstringYesID of the component to retrieve

Sample Call

epilot app getPublicFacingComponent \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p componentId=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot app getPublicFacingComponent 123e4567-e89b-12d3-a456-426614174000 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app getPublicFacingComponent -p appId=123e4567-e89b-12d3-a456-426614174000 -p componentId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'component'
Sample Response
{
"component": {
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {
"override_dev_mode": {
"override_url": "http://localhost:3000"
},
"component_url": "https://cdn.apps.com/123/v1.0.0/bundle.js",
"component_tag": "string",
"component_args": [
{
"type": "text"
}
],
"component_size": 0,
"component_mapping": {}
}
}
}

listConfigurationsโ€‹

List all app configuration metadata owned by an organization. To get full app configuration details, use the /v1/app-con

GET /v1/app-configurations

Parameters

NameInTypeRequiredDescription
pagequerynumberNoPage number for pagination
pageSizequerynumberNoNumber of items per page

Sample Call

epilot app listConfigurations

With JSONata filter:

epilot app listConfigurations --jsonata 'configurations'
Sample Response
{
"configurations": [
{
"app_id": "string",
"name": "string",
"author": {
"name": "string",
"company": "string",
"email": "string"
},
"dev_mode": true,
"versions": ["string"],
"public_versions": ["string"],
"support_email": "string",
"latest_version": "string",
"category": "string",
"icon_url": "string",
"documentation_url": "string",
"description": {
"en": "string",
"de": "string"
},
"notifications": {
"email": "developer@example.com",
"events": ["app.installed"]
},
"owner_org_id": "string",
"internal": false,
"pricing": {
"pricing_type": "FREE",
"billing_frequency": "MONTHLY"
},
"configuration_audit": {
"created_at": "string",
"created_by": "string",
"updated_at": "string",
"updated_by": "string"
}
}
],
"pagination": {
"total": 0,
"page": 0,
"pageSize": 0
}
}

createConfigurationโ€‹

Create a new private app configuration. To make it public a verification process needs to be triggered

POST /v1/app-configurations

Request Body (required)

Sample Call

epilot app createConfiguration \
-d '{"name":"string","description":{"en":"string","de":"string"},"category":"string","logo_url_key":"string"}'

Using stdin pipe:

cat body.json | epilot app createConfiguration

With JSONata filter:

epilot app createConfiguration --jsonata 'app_id'
Sample Response
{
"app_id": "string"
}

listPublicConfigurationsโ€‹

List all publicly available app configurations that can be installed. This endpoint returns apps that have at least one

GET /v1/app-configurations/public

Parameters

NameInTypeRequiredDescription
pagequerynumberNoPage number for pagination
pageSizequerynumberNoNumber of items per page

Sample Call

epilot app listPublicConfigurations

With JSONata filter:

epilot app listPublicConfigurations --jsonata 'configurations'
Sample Response
{
"configurations": [
{
"app_id": "string",
"name": "string",
"author": {
"name": "string",
"company": "string",
"email": "string"
},
"dev_mode": true,
"versions": ["string"],
"public_versions": ["string"],
"support_email": "string",
"latest_version": "string",
"category": "string",
"icon_url": "string",
"documentation_url": "string",
"description": {
"en": "string",
"de": "string"
},
"notifications": {
"email": "developer@example.com",
"events": ["app.installed"]
},
"owner_org_id": "string",
"internal": false,
"pricing": {
"pricing_type": "FREE",
"billing_frequency": "MONTHLY"
},
"configuration_audit": {
"created_at": "string",
"created_by": "string",
"updated_at": "string",
"updated_by": "string"
}
}
],
"pagination": {
"total": 0,
"page": 0,
"pageSize": 0
}
}

getPublicConfigurationโ€‹

Retrieve the public configuration of an app to install in your tenant

GET /v1/app-configurations/public/{appId}

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration to install
versionquerystringNoVersion of the app configuration to retrieve

Sample Call

epilot app getPublicConfiguration \
-p appId=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot app getPublicConfiguration 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app getPublicConfiguration -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'app_id'
Sample Response
{
"app_id": "string",
"support_email": "string",
"owner_org_id": "string",
"name": "string",
"author": {
"name": "string",
"company": "string",
"email": "string"
},
"dev_mode": true,
"category": "string",
"icon_url": "string",
"documentation_url": "string",
"description": {
"en": "string",
"de": "string"
},
"pricing": {
"pricing_type": "FREE",
"billing_frequency": "MONTHLY"
},
"components": [
{
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {}
}
],
"is_beta": true,
"deprecated_at": "string",
"version": "string",
"role": {
"id": "string",
"grants": [
{}
]
},
"blueprint_ref": {
"manifest_id": "string",
"job_id": "string"
},
"latest_version": "string",
"public": true,
"versions": [
{
"app_id": "string",
"owner_org_id": "string",
"components": [],
"visibility": "private",
"public": false,
"pending": false,
"version": "string",
"is_beta": true,
"deprecated_at": "string",
"changelog": "string",
"review_status": "approved",
"role": {},
"blueprint_ref": {},
"version_audit": {}
}
]
}

getConfigurationโ€‹

Retrieve a specific app configuration

GET /v1/app-configurations/{appId}

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration
versionquerystringNoVersion of the app configuration to retrieve

Sample Call

epilot app getConfiguration \
-p appId=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot app getConfiguration 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app getConfiguration -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'
Sample Response
{
"app_id": "string",
"name": "string",
"author": {
"name": "string",
"company": "string",
"email": "string"
},
"dev_mode": true,
"versions": ["string"],
"public_versions": ["string"],
"support_email": "string",
"latest_version": "string",
"category": "string",
"icon_url": "string",
"documentation_url": "string",
"description": {
"en": "string",
"de": "string"
},
"notifications": {
"email": "developer@example.com",
"events": ["app.installed"]
},
"owner_org_id": "string",
"internal": false,
"pricing": {
"pricing_type": "FREE",
"billing_frequency": "MONTHLY"
},
"configuration_audit": {
"created_at": "string",
"created_by": "string",
"updated_at": "string",
"updated_by": "string"
},
"components": [
{
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {}
}
],
"visibility": "private",
"public": false,
"pending": false,
"version": "string",
"is_beta": true,
"deprecated_at": "string",
"changelog": "string",
"review_status": "approved",
"role": {
"id": "string",
"grants": [
{}
]
},
"blueprint_ref": {
"manifest_id": "string",
"job_id": "string"
},
"version_audit": {
"created_at": "string",
"created_by": "string",
"updated_at": "string",
"updated_by": "string",
"versioned_at": "string",
"versioned_by": "string"
}
}

patchMetadataโ€‹

Patch non-versioned configuration metadata of a given app configuration.

PATCH /v1/app-configurations/{appId}

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration

Request Body (required)

Sample Call

epilot app patchMetadata \
-p appId=123e4567-e89b-12d3-a456-426614174000

With request body:

epilot app patchMetadata \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"name": "string",
"description": {
"en": "string",
"de": "string"
},
"category": "string",
"documentation_url": "string",
"notifications": {
"email": "developer@example.com",
"events": ["app.installed"]
},
"pricing": {
"pricing_type": "FREE",
"billing_frequency": "MONTHLY"
},
"logo_url_key": "string",
"support_email": "string",
"dev_mode": true
}'

Using positional args for path parameters:

epilot app patchMetadata 123e4567-e89b-12d3-a456-426614174000

Using stdin pipe:

cat body.json | epilot app patchMetadata -p appId=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app patchMetadata -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'

deleteConfigurationโ€‹

Delete an app configuration and all its versions and components.

DELETE /v1/app-configurations/{appId}

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration

Sample Call

epilot app deleteConfiguration \
-p appId=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot app deleteConfiguration 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app deleteConfiguration -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'

queryEventsโ€‹

Query analytics events for a specific app with flexible filtering

POST /v1/app-configurations/{appId}/events

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration

Request Body (required)

Sample Call

epilot app queryEvents \
-p appId=123e4567-e89b-12d3-a456-426614174000

With request body:

epilot app queryEvents \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"time_range": {
"start": "1970-01-01T00:00:00.000Z",
"end": "1970-01-01T00:00:00.000Z",
"preset": "1h"
},
"filters": {
"source": ["CUSTOM_JOURNEY_BLOCK"],
"component_id": ["string"],
"event_type": ["ERROR"],
"correlation_id": "string"
},
"aggregation": {
"group_by": ["source"],
"metrics": ["count"]
},
"pagination": {
"page": 1,
"page_size": 100
},
"sort": {
"field": "timestamp",
"order": "desc"
}
}'

Using positional args for path parameters:

epilot app queryEvents 123e4567-e89b-12d3-a456-426614174000

Using stdin pipe:

cat body.json | epilot app queryEvents -p appId=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app queryEvents -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'results[0]'
Sample Response
{
"query": {
"time_range": {
"start": "1970-01-01T00:00:00.000Z",
"end": "1970-01-01T00:00:00.000Z",
"preset": "1h"
},
"filters": {
"source": ["CUSTOM_JOURNEY_BLOCK"],
"component_id": ["string"],
"event_type": ["ERROR"],
"correlation_id": "string"
},
"aggregation": {
"group_by": ["source"],
"metrics": ["count"]
},
"pagination": {
"page": 1,
"page_size": 100
},
"sort": {
"field": "timestamp",
"order": "desc"
}
},
"results": {
"type": "raw",
"events": [
{
"app_id": "string",
"version": "string",
"event_id": "string",
"component_id": "string",
"timestamp": "string",
"correlation_id": "string",
"event_type": "ERROR",
"source": "CUSTOM_JOURNEY_BLOCK",
"actor": {
"org_id": "string",
"user_id": "string",
"type": "user"
},
"details": {}
}
]
},
"pagination": {
"page": 0,
"page_size": 0,
"total_items": 0,
"has_next": true
}
}

createBundleUploadUrlโ€‹

Generate a presigned URL for uploading app bundle to /<app-id>/bundle.js path

POST /v1/app-configurations/{appId}/bundle

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration

Request Body (required)

Sample Call

epilot app createBundleUploadUrl \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-d '{"version":"string","component_id":"string"}'

Using positional args for path parameters:

epilot app createBundleUploadUrl 123e4567-e89b-12d3-a456-426614174000

Using stdin pipe:

cat body.json | epilot app createBundleUploadUrl -p appId=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app createBundleUploadUrl -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'component_id'
Sample Response
{
"component_id": "string",
"component_url": "string",
"upload_url": "string",
"s3ref": {
"bucket": "my-bucket",
"key": "manifest.json"
},
"expires_at": "1970-01-01T00:00:00.000Z"
}

createZipUploadUrlโ€‹

Generate a presigned URL to upload a zip file with artifacts that will be unpacked in a new directory under the /<app-id

POST /v1/app-configurations/{appId}/zip

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration

Request Body

Sample Call

epilot app createZipUploadUrl \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-d '{"version":"1.0.0","component_id":"string","filename":"dist.zip"}'

Using positional args for path parameters:

epilot app createZipUploadUrl 123e4567-e89b-12d3-a456-426614174000

Using stdin pipe:

cat body.json | epilot app createZipUploadUrl -p appId=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app createZipUploadUrl -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'component_id'
Sample Response
{
"component_id": "string",
"upload_url": "string",
"artifact_url": "string",
"s3ref": {
"bucket": "my-bucket",
"key": "manifest.json"
},
"expires_at": "1970-01-01T00:00:00.000Z"
}

createLogoUploadUrlโ€‹

Generate a presigned URL for uploading app logo to /<app-id>/logo.png path

POST /v1/app-configurations/{appId}/logo

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration

Request Body (required)

Sample Call

epilot app createLogoUploadUrl \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-d '{"filename":"company-logo.png","mime_type":"image/png"}'

Using positional args for path parameters:

epilot app createLogoUploadUrl 123e4567-e89b-12d3-a456-426614174000

Using stdin pipe:

cat body.json | epilot app createLogoUploadUrl -p appId=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app createLogoUploadUrl -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'upload_url'
Sample Response
{
"upload_url": "string",
"s3ref": {
"bucket": "my-bucket",
"key": "manifest.json"
},
"expires_at": "1970-01-01T00:00:00.000Z"
}

Delete the app logo from /<app-id>/logo.png path

DELETE /v1/app-configurations/{appId}/logo

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration

Sample Call

epilot app deleteLogo \
-p appId=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot app deleteLogo 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app deleteLogo -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'

listVersionsโ€‹

Retrieve a list of versions for an app configuration

GET /v1/app-configurations/{appId}/versions

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration
pagequerynumberNoPage number for pagination
pageSizequerynumberNoNumber of items per page

Sample Call

epilot app listVersions \
-p appId=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot app listVersions 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app listVersions -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'versions'
Sample Response
{
"versions": [
{
"app_id": "string",
"owner_org_id": "string",
"components": [
{
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {
"override_dev_mode": {
"override_url": "http://localhost:3000"
},
"component_url": "https://cdn.apps.com/123/v1.0.0/bundle.js",
"component_tag": "string",
"component_args": [
{
"type": "text"
}
],
"component_size": 0,
"component_mapping": {}
}
}
],
"visibility": "private",
"public": false,
"pending": false,
"version": "string",
"is_beta": true,
"deprecated_at": "string",
"changelog": "string",
"review_status": "approved",
"role": {
"id": "string",
"grants": [
{
"action": "string",
"resource": "string"
}
]
},
"blueprint_ref": {
"manifest_id": "string",
"job_id": "string"
},
"version_audit": {
"created_at": "string",
"created_by": "string",
"updated_at": "string",
"updated_by": "string",
"versioned_at": "string",
"versioned_by": "string"
}
}
],
"pagination": {
"total": 0,
"page": 0,
"pageSize": 0
}
}

getVersionโ€‹

Retrieve a specific version of an app configuration

GET /v1/app-configurations/{appId}/versions/{version}

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration
versionpathstringYesVersion of the app configuration to retrieve

Sample Call

epilot app getVersion \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p version=example

Using positional args for path parameters:

epilot app getVersion 123e4567-e89b-12d3-a456-426614174000 example

With JSONata filter:

epilot app getVersion -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example --jsonata '$'
Sample Response
{
"app_id": "string",
"name": "string",
"author": {
"name": "string",
"company": "string",
"email": "string"
},
"dev_mode": true,
"versions": ["string"],
"public_versions": ["string"],
"support_email": "string",
"latest_version": "string",
"category": "string",
"icon_url": "string",
"documentation_url": "string",
"description": {
"en": "string",
"de": "string"
},
"notifications": {
"email": "developer@example.com",
"events": ["app.installed"]
},
"owner_org_id": "string",
"internal": false,
"pricing": {
"pricing_type": "FREE",
"billing_frequency": "MONTHLY"
},
"configuration_audit": {
"created_at": "string",
"created_by": "string",
"updated_at": "string",
"updated_by": "string"
},
"components": [
{
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {}
}
],
"visibility": "private",
"public": false,
"pending": false,
"version": "string",
"is_beta": true,
"deprecated_at": "string",
"changelog": "string",
"review_status": "approved",
"role": {
"id": "string",
"grants": [
{}
]
},
"blueprint_ref": {
"manifest_id": "string",
"job_id": "string"
},
"version_audit": {
"created_at": "string",
"created_by": "string",
"updated_at": "string",
"updated_by": "string",
"versioned_at": "string",
"versioned_by": "string"
}
}

patchVersionโ€‹

Patch an existing app version

PATCH /v1/app-configurations/{appId}/versions/{version}

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration
versionpathstringYesVersion to update

Request Body (required)

Sample Call

epilot app patchVersion \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p version=example \
-d '{"manifest_id":"string","role_id":"string","grants":[{"action":"string","resource":"string"}]}'

Using positional args for path parameters:

epilot app patchVersion 123e4567-e89b-12d3-a456-426614174000 example

Using stdin pipe:

cat body.json | epilot app patchVersion -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example

With JSONata filter:

epilot app patchVersion -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example --jsonata '$'

deleteVersionโ€‹

Delete a specific version of an app configuration

DELETE /v1/app-configurations/{appId}/versions/{version}

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration
versionpathstringYesVersion to delete

Sample Call

epilot app deleteVersion \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p version=example

Using positional args for path parameters:

epilot app deleteVersion 123e4567-e89b-12d3-a456-426614174000 example

With JSONata filter:

epilot app deleteVersion -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example --jsonata '$'

getReviewโ€‹

Retrieve the review status of a specific app version

GET /v1/app-configurations/{appId}/versions/{version}/review

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration
versionpathstringYesVersion to retrieve the review status for

Sample Call

epilot app getReview \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p version=example

Using positional args for path parameters:

epilot app getReview 123e4567-e89b-12d3-a456-426614174000 example

With JSONata filter:

epilot app getReview -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example --jsonata 'review'
Sample Response
{
"review": {
"version": "string",
"review_status": "approved",
"requested_at": "string",
"requested_by": "string",
"technical_contact": "string",
"marketing_contact": "string",
"demo_url": "string"
}
}

createReviewโ€‹

Submit an app version for review to make it public

POST /v1/app-configurations/{appId}/versions/{version}/review

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration
versionpathstringYesVersion to submit for review

Request Body (required)

Sample Call

epilot app createReview \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p version=example \
-d '{"technical_contact":"string","marketing_contact":"string","demo_url":"string"}'

Using positional args for path parameters:

epilot app createReview 123e4567-e89b-12d3-a456-426614174000 example

Using stdin pipe:

cat body.json | epilot app createReview -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example

With JSONata filter:

epilot app createReview -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example --jsonata 'review'
Sample Response
{
"review": {
"version": "string",
"review_status": "approved",
"requested_at": "string",
"requested_by": "string",
"technical_contact": "string",
"marketing_contact": "string",
"demo_url": "string"
}
}

createComponentโ€‹

Patch an existing app version to create/add a component

POST /v1/app-configurations/{appId}/versions/{version}/components

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration
versionpathstringYesVersion to update

Request Body (required)

Sample Call

epilot app createComponent \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p version=example

With request body:

epilot app createComponent \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p version=example \
-d '{
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {
"override_dev_mode": {
"override_url": "http://localhost:3000"
},
"component_url": "https://cdn.apps.com/123/v1.0.0/bundle.js",
"component_tag": "string",
"component_args": [
{
"type": "text"
}
],
"component_size": 0,
"component_mapping": {}
}
}'

Using positional args for path parameters:

epilot app createComponent 123e4567-e89b-12d3-a456-426614174000 example

Using stdin pipe:

cat body.json | epilot app createComponent -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example

With JSONata filter:

epilot app createComponent -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example --jsonata 'component'
Sample Response
{
"component": {
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {
"override_dev_mode": {
"override_url": "http://localhost:3000"
},
"component_url": "https://cdn.apps.com/123/v1.0.0/bundle.js",
"component_tag": "string",
"component_args": [
{
"type": "text"
}
],
"component_size": 0,
"component_mapping": {}
}
}
}

patchComponentโ€‹

Patch an existing app version to update its components

PATCH /v1/app-configurations/{appId}/versions/{version}/components/{componentId}

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration
versionpathstringYesVersion to update
componentIdpathstringYesID of the component to update

Request Body (required)

Sample Call

epilot app patchComponent \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p version=example \
-p componentId=123e4567-e89b-12d3-a456-426614174000

With request body:

epilot app patchComponent \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p version=example \
-p componentId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {
"override_dev_mode": {
"override_url": "http://localhost:3000"
},
"component_url": "https://cdn.apps.com/123/v1.0.0/bundle.js",
"component_tag": "string",
"component_args": [
{
"type": "text"
}
],
"component_size": 0,
"component_mapping": {}
}
}'

Using positional args for path parameters:

epilot app patchComponent 123e4567-e89b-12d3-a456-426614174000 example 123e4567-e89b-12d3-a456-426614174000

Using stdin pipe:

cat body.json | epilot app patchComponent -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example -p componentId=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app patchComponent -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example -p componentId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'

deleteComponentโ€‹

Delete a specific component from an app version

DELETE /v1/app-configurations/{appId}/versions/{version}/components/{componentId}

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration
versionpathstringYesVersion to update
componentIdpathstringYesID of the component to delete

Sample Call

epilot app deleteComponent \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p version=example \
-p componentId=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot app deleteComponent 123e4567-e89b-12d3-a456-426614174000 example 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app deleteComponent -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example -p componentId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'

cloneVersionโ€‹

Clone an existing app version to create a new version

POST /v1/app-configurations/{appId}/versions/{sourceVersion}/clone-to/{targetVersion}

Parameters

NameInTypeRequiredDescription
appIdpathstringYesID of the app configuration
sourceVersionpathstringYesSource version to clone from
targetVersionpathstringYesTarget version to create

Sample Call

epilot app cloneVersion \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p sourceVersion=example \
-p targetVersion=example

Using positional args for path parameters:

epilot app cloneVersion 123e4567-e89b-12d3-a456-426614174000 example example

With JSONata filter:

epilot app cloneVersion -p appId=123e4567-e89b-12d3-a456-426614174000 -p sourceVersion=example -p targetVersion=example --jsonata 'app_id'
Sample Response
{
"app_id": "string",
"version": "string",
"status": "pending"
}

listInstallationsโ€‹

Retrieve a list of installed apps for the organization.

GET /v1/app

Parameters

NameInTypeRequiredDescription
componentTypequery"CUSTOM_JOURNEY_BLOCK" | "CUSTOM_PORTAL_BLOCK" | "PORTAL_EXTENSION" | "CUSTOM_FLOW_ACTION" | "ERP_INFORM_TOOLKIT" | "CUSTOM_CAPABILITY" | "EXTERNAL_PRODUCT_CATALOG" | "CUSTOM_PAGE"NoFilter apps by specific component type
enabledquerybooleanNoFilter apps by enabled status
pagequerynumberNoPage number for pagination
pageSizequerynumberNoNumber of items per page

Sample Call

epilot app listInstallations

With JSONata filter:

epilot app listInstallations --jsonata 'apps'
Sample Response
{
"apps": [
{
"app_id": "string",
"installer_org_id": "string",
"owner_org_id": "string",
"enabled": true,
"name": "string",
"option_values": [
{
"component_id": "string",
"options": [
{
"key": "string",
"value": {}
}
]
}
],
"components": [
{
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {
"override_dev_mode": {
"override_url": "http://localhost:3000"
},
"component_url": "https://cdn.apps.com/123/v1.0.0/bundle.js",
"component_tag": "string",
"component_args": [
{
"type": "text"
}
],
"component_size": 0,
"component_mapping": {}
}
}
],
"installed_version": "string",
"role": "string",
"blueprint_ref": {
"manifest_id": "string",
"job_id": "string"
},
"installation_audit": {
"created_at": "string",
"created_by": "string",
"updated_at": "string",
"updated_by": "string"
},
"_manifest": ["123e4567-e89b-12d3-a456-426614174000"]
}
],
"pagination": {
"total": 0,
"page": 0,
"pageSize": 0
}
}

getInstallationโ€‹

Retrieve details of an installed app by its ID.

GET /v1/app/{appId}

Parameters

NameInTypeRequiredDescription
appIdpathstringYes

Sample Call

epilot app getInstallation \
-p appId=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot app getInstallation 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app getInstallation -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'app_id'
Sample Response
{
"app_id": "string",
"installer_org_id": "string",
"owner_org_id": "string",
"enabled": true,
"name": "string",
"option_values": [
{
"component_id": "string",
"options": [
{
"key": "string",
"value": {}
}
]
}
],
"components": [
{
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {
"override_dev_mode": {
"override_url": "http://localhost:3000"
},
"component_url": "https://cdn.apps.com/123/v1.0.0/bundle.js",
"component_tag": "string",
"component_args": [
{
"type": "text"
}
],
"component_size": 0,
"component_mapping": {}
}
}
],
"installed_version": "string",
"role": "string",
"blueprint_ref": {
"manifest_id": "string",
"job_id": "string"
},
"installation_audit": {
"created_at": "string",
"created_by": "string",
"updated_at": "string",
"updated_by": "string"
},
"_manifest": ["123e4567-e89b-12d3-a456-426614174000"]
}

installโ€‹

Upsert app installation by its ID.

POST /v1/app/{appId}

Parameters

NameInTypeRequiredDescription
appIdpathstringYes

Request Body

Sample Call

epilot app install \
-p appId=123e4567-e89b-12d3-a456-426614174000

With request body:

epilot app install \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"version": "string",
"option_values": [
{
"component_id": "string",
"options": [
{
"key": "string",
"value": {}
}
]
}
],
"_manifest": ["123e4567-e89b-12d3-a456-426614174000"]
}'

Using positional args for path parameters:

epilot app install 123e4567-e89b-12d3-a456-426614174000

Using stdin pipe:

cat body.json | epilot app install -p appId=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app install -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'app_id'
Sample Response
{
"app_id": "string",
"installer_org_id": "string",
"owner_org_id": "string",
"enabled": true,
"name": "string",
"option_values": [
{
"component_id": "string",
"options": [
{
"key": "string",
"value": {}
}
]
}
],
"components": [
{
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {
"override_dev_mode": {
"override_url": "http://localhost:3000"
},
"component_url": "https://cdn.apps.com/123/v1.0.0/bundle.js",
"component_tag": "string",
"component_args": [
{
"type": "text"
}
],
"component_size": 0,
"component_mapping": {}
}
}
],
"installed_version": "string",
"role": "string",
"blueprint_ref": {
"manifest_id": "string",
"job_id": "string"
},
"installation_audit": {
"created_at": "string",
"created_by": "string",
"updated_at": "string",
"updated_by": "string"
},
"_manifest": ["123e4567-e89b-12d3-a456-426614174000"]
}

patchInstallationโ€‹

Patch an installed app by its ID.

PATCH /v1/app/{appId}

Parameters

NameInTypeRequiredDescription
appIdpathstringYes

Request Body

Sample Call

epilot app patchInstallation \
-p appId=123e4567-e89b-12d3-a456-426614174000

With request body:

epilot app patchInstallation \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"version": "string",
"option_values": [
{
"component_id": "string",
"options": [
{
"key": "string",
"value": {}
}
]
}
],
"_manifest": ["123e4567-e89b-12d3-a456-426614174000"]
}'

Using positional args for path parameters:

epilot app patchInstallation 123e4567-e89b-12d3-a456-426614174000

Using stdin pipe:

cat body.json | epilot app patchInstallation -p appId=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app patchInstallation -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'

uninstallโ€‹

Uninstall an app by its ID.

DELETE /v1/app/{appId}

Parameters

NameInTypeRequiredDescription
appIdpathstringYes

Sample Call

epilot app uninstall \
-p appId=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot app uninstall 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot app uninstall -p appId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'

promoteVersionโ€‹

Update an installed app to a new version

POST /v1/app/{appId}/promote-to/{version}

Parameters

NameInTypeRequiredDescription
appIdpathstringYes
versionpathstringYes

Sample Call

epilot app promoteVersion \
-p appId=123e4567-e89b-12d3-a456-426614174000 \
-p version=example

Using positional args for path parameters:

epilot app promoteVersion 123e4567-e89b-12d3-a456-426614174000 example

With JSONata filter:

epilot app promoteVersion -p appId=123e4567-e89b-12d3-a456-426614174000 -p version=example --jsonata 'app_id'
Sample Response
{
"app_id": "string",
"installer_org_id": "string",
"owner_org_id": "string",
"enabled": true,
"name": "string",
"option_values": [
{
"component_id": "string",
"options": [
{
"key": "string",
"value": {}
}
]
}
],
"components": [
{
"component_type": "CUSTOM_JOURNEY_BLOCK",
"configuration": {
"override_dev_mode": {
"override_url": "http://localhost:3000"
},
"component_url": "https://cdn.apps.com/123/v1.0.0/bundle.js",
"component_tag": "string",
"component_args": [
{
"type": "text"
}
],
"component_size": 0,
"component_mapping": {}
}
}
],
"installed_version": "string",
"role": "string",
"blueprint_ref": {
"manifest_id": "string",
"job_id": "string"
},
"installation_audit": {
"created_at": "string",
"created_by": "string",
"updated_at": "string",
"updated_by": "string"
},
"_manifest": ["123e4567-e89b-12d3-a456-426614174000"]
}

ingestEventโ€‹

Internal endpoint for services to submit app events for analytic purposes

POST /v1/app-events

Request Body (required)

Sample Call

epilot app ingestEvent

With request body:

epilot app ingestEvent \
-d '{
"app_id": "string",
"version": "string",
"event_id": "string",
"component_id": "string",
"timestamp": "string",
"correlation_id": "string",
"event_type": "ERROR",
"source": "CUSTOM_JOURNEY_BLOCK",
"actor": {
"org_id": "string",
"user_id": "string",
"type": "user"
},
"details": {}
}'

Using stdin pipe:

cat body.json | epilot app ingestEvent

With JSONata filter:

epilot app ingestEvent --jsonata '$'