Skip to main content
Version: v2025.8.2

API documentation

Welcome to the Fast2 API documentation.
This section provides a complete reference for interacting programmatically with Fast2 using its RESTful web services.

The API allows you to:

  • Trigger and monitor migrations
  • Manage configurations, workers, and migration jobs
  • Query results and punnets data
  • And many more...

All endpoints are documented with:

  • Path and query parameters
  • Request and response schemas
  • Example calls in cURL

Before using the API, make sure you have:

  • A valid authentication token (see Authentication)
  • Network access to the Fast2 server

Base URL: http://localhost:1789

Note: The interactive Swagger UI for Fast2 is available at:
http://localhost:1789/swagger-ui/index.html

Authentication​

  • Bearer JWT via Authorization: Bearer <token> (Bearer Token)

All examples include cURL requests. Replace placeholders with real values.

Tags​

  • Catalog API — Endpoint to retrieve catalog tasks
  • Job API — Endpoint for managing jobs
  • Worker API — API for managing workers
  • User API — Endpoint for managing users
  • Shared Objects API — Endpoint for managing shared objects
  • Email API — Endpoint for managing emails
  • Map API — Endpoint for managing maps
  • Queue API — Endpoint for managing queues
  • Punnet API — Endpoint to retrieve punnets
  • Broker API — Endpoint for broker-worker communication
  • Campaign API — Endpoint for managing campaigns
  • Authentication API — Endpoint for managing authentications

Authentication API​

Endpoint for managing authentications

changePassword​

POST /auth/change-password

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
currentPasswordstringno
newPasswordstringno
newPasswordConfirmationstringno

Body format:

{
"currentPassword": "string",
"newPassword": "string",
"newPasswordConfirmation": "string"
}

Responses

StatusContent-TypeSchemaDescription
200/objectOK

cURL example

curl -X POST 'http://localhost:1789/auth/change-password' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"currentPassword": "string",
"newPassword": "string",
"newPasswordConfirmation": "string"
}'

isAuthenticated​

GET /auth/is-authenticated

Responses

StatusContent-TypeSchemaDescription
200/booleanOK

cURL example

curl -X GET 'http://localhost:1789/auth/is-authenticated' \
-H 'Authorization: Bearer <token>' \

getLockTimeDuration​

GET /auth/lock-time-duration

Responses

StatusContent-TypeSchemaDescription
200/integer(int32)OK

cURL example

curl -X GET 'http://localhost:1789/auth/lock-time-duration' \
-H 'Authorization: Bearer <token>' \

authenticate​

POST /auth/login

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
emailstringno
passwordstringno

Body format:

{
"email": "string",
"password": "string"
}

Responses

StatusContent-TypeSchemaDescription
200/objectOK

cURL example

curl -X POST 'http://localhost:1789/auth/login' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"password": "string"
}'

getMaxFailedAttempts​

GET /auth/max-failed-attempts

Responses

StatusContent-TypeSchemaDescription
200/integer(int32)OK

cURL example

curl -X GET 'http://localhost:1789/auth/max-failed-attempts' \
-H 'Authorization: Bearer <token>' \

getPublicKey​

GET /auth/public-key

Responses

StatusContent-TypeSchemaDescription
200/stringOK

cURL example

curl -X GET 'http://localhost:1789/auth/public-key' \
-H 'Authorization: Bearer <token>' \

refreshToken​

POST /auth/refresh-token

Responses

StatusContent-TypeSchemaDescription
200/objectOK

cURL example

curl -X POST 'http://localhost:1789/auth/refresh-token' \
-H 'Authorization: Bearer <token>' \

getRemainingAttempts​

GET /auth/remaining-attempts

Parameters

NameInRequiredTypeDescription
emailqueryyesstring

Responses

StatusContent-TypeSchemaDescription
200/integer(int32)OK

cURL example

curl -X GET 'http://localhost:1789/auth/remaining-attempts' \
-H 'Authorization: Bearer <token>' \

getRemainingLockTime​

GET /auth/remaining-lock-time

Parameters

NameInRequiredTypeDescription
emailqueryyesstring

Responses

StatusContent-TypeSchemaDescription
200/integer(int64)OK

cURL example

curl -X GET 'http://localhost:1789/auth/remaining-lock-time' \
-H 'Authorization: Bearer <token>' \

resetPassword​

POST /auth/reset-password

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
targetUserstringno
newPasswordstringno
newPasswordConfirmationstringno

Body format:

{
"targetUser": "string",
"newPassword": "string",
"newPasswordConfirmation": "string"
}

Responses

StatusContent-TypeSchemaDescription
200/objectOK

cURL example

curl -X POST 'http://localhost:1789/auth/reset-password' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"targetUser": "string",
"newPassword": "string",
"newPasswordConfirmation": "string"
}'

Broker API​

Endpoint for broker-worker communication

Delete any content set in broker files directory​

DELETE /broker/contents

Parameters

NameInRequiredTypeDescription
pathqueryyesstring

Responses

StatusContent-TypeSchemaDescription
200——OK

cURL example

curl -X DELETE 'http://localhost:1789/broker/contents' \
-H 'Authorization: Bearer <token>' \

Download any content set in broker files directory​

GET /broker/contents

Parameters

NameInRequiredTypeDescription
pathqueryyesstring

Responses

StatusContent-TypeSchemaDescription
200application/jsonstring(binary)OK

cURL example

curl -X GET 'http://localhost:1789/broker/contents' \
-H 'Authorization: Bearer <token>' \

Download logs produced by the broker​

GET /broker/download-broker-logs

Responses

StatusContent-TypeSchemaDescription
200application/jsonarray[string(byte)]OK

cURL example

curl -X GET 'http://localhost:1789/broker/download-broker-logs' \
-H 'Authorization: Bearer <token>' \

Campaign API​

Endpoint for managing campaigns

Delete campaigns by names​

DELETE /campaigns/delete-by-names

Deletes campaigns that match the list of specified campaign names and map version. Returns a multi-status response indicating the success or failure of deleting each campaign

Parameters

NameInRequiredTypeDescription
campaignsqueryyesarray[object]Campaign names to retrieve
mapVersionSerieIdquerynostringMap version series id to filter campaigns

Responses

StatusContent-TypeSchemaDescription
207application/jsonobjectServer failed to delete campaigns
200application/jsonobjectSuccessfully deleted campaigns
400——Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/campaigns/delete-by-names' \
-H 'Authorization: Bearer <token>' \

Delete campaigns by pattern​

DELETE /campaigns/delete-by-pattern

Deletes campaigns that match the specified name pattern and map version. If no name pattern is provided, all campaigns will be selected. Returns a multi-status response indicating the success or failure of deleting each campaign

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter campaign names
mapVersionSerieIdquerynostringMap version series id to filter campaigns

Responses

StatusContent-TypeSchemaDescription
207application/jsonobjectServer failed to delete campaigns
200application/jsonobjectSuccessfully deleted campaigns
400——Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/campaigns/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \

Download campaign exceptions​

GET /campaigns/download-exceptions

Downloads all exceptions thrown during a specific campaign

Parameters

NameInRequiredTypeDescription
campaignsqueryyesarray[string]
mapIdsqueryyesarray[string]

Responses

StatusContent-TypeSchemaDescription
200——Successfully downloaded exceptions
500——Server failed to download exceptions
400——Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/download-exceptions' \
-H 'Authorization: Bearer <token>' \

Get campaigns dto information by names​

GET /campaigns/dto/search-by-names

Retrieves campaigns that match the list of specified campaign names, map version and map id

Parameters

NameInRequiredTypeDescription
campaignsqueryyesarray[object]Campaign names to retrieve
mapVersionSerieIdquerynostringMap version series id to filter campaigns
mapIdquerynostringMap id to filter campaigns
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
500——Failed to retrieve campaigns
200application/jsonobjectSuccessfully retrieved campaigns
400——Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/dto/search-by-names' \
-H 'Authorization: Bearer <token>' \

Get campaigns dto information by pattern​

GET /campaigns/dto/search-by-pattern

Retrieves a list of campaigns dto that match the specified name pattern, map version and map id. If no name pattern is provided, all campaigns will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter campaign names
mapVersionSerieIdquerynostringMap version series id to filter campaigns
mapIdquerynostringMap id to filter campaigns
statusquerynostringCampaign status to filter campaigns
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
500——Server failed to retrieve campaigns
200application/jsonobjectSuccessfully retrieved campaigns
400——Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/dto/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Get campaign dto information​

GET /campaigns/dto/{campaign}

Retrieves a campaign dto from its name

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name to retrieve

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved campaign
400——Invalid request parameters
404——Campaign not found
500——Server failed to retrieve campaign

cURL example

curl -X GET 'http://localhost:1789/campaigns/dto/<campaign>' \
-H 'Authorization: Bearer <token>' \

Get campaigns information by name​

GET /campaigns/search-by-names

Retrieves campaigns that match the list of specified campaign names, map version and map id

Parameters

NameInRequiredTypeDescription
campaignsqueryyesarray[object]Campaign names to stop
mapVersionSerieIdquerynostringMap version series id to filter campaigns
mapIdquerynostringMap id to filter campaigns
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved campaigns
500——Server failed to retrieve campaigns
400——Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/search-by-names' \
-H 'Authorization: Bearer <token>' \

Get campaigns information by pattern​

GET /campaigns/search-by-pattern

Retrieves campaigns that match the specified name pattern, map version and map id. If no name pattern is provided, all campaigns will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter campaign names
mapVersionSerieIdquerynostringMap version series id to filter campaigns
mapIdquerynostringMap id to filter campaigns
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved campaigns
500——Server failed to retrieve campaigns
400——Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Stop campaigns by names​

POST /campaigns/stop-by-names

Stops campaigns that match the specified list of campaign names and map version. Returns a multi-status response indicating the success or failure of stopping each campaign

Parameters

NameInRequiredTypeDescription
campaignsqueryyesarray[object]Campaign names to stop
mapVersionSerieIdquerynostringMap version series id to filter campaigns

Responses

StatusContent-TypeSchemaDescription
207application/jsonobjectServer failed to stop campaign
200application/jsonobjectSuccessfully stopped campaign
400——Invalid request parameters

cURL example

curl -X POST 'http://localhost:1789/campaigns/stop-by-names' \
-H 'Authorization: Bearer <token>' \

Stop campaigns by pattern​

POST /campaigns/stop-by-pattern

Stops campaigns that match the specified name pattern and map version. If no name pattern is provided, all campaigns will be selected. Returns a multi-status response indicating the success or failure of stopping each campaign

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter campaign names
mapVersionSerieIdquerynostringMap version series id to filter campaigns

Responses

StatusContent-TypeSchemaDescription
207application/jsonobjectServer failed to stop campaign
200application/jsonobjectSuccessfully stopped campaign
400——Invalid request parameters

cURL example

curl -X POST 'http://localhost:1789/campaigns/stop-by-pattern' \
-H 'Authorization: Bearer <token>' \

Delete a campaign​

DELETE /campaigns/{campaign}

Deletes a campaign from its name

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name to delete

Responses

StatusContent-TypeSchemaDescription
200——Successfully deleted campaign
400——Invalid request parameters
404——Campaign not found
500——Server failed to delete the campaign

cURL example

curl -X DELETE 'http://localhost:1789/campaigns/<campaign>' \
-H 'Authorization: Bearer <token>' \

deleteCampaignParameter​

DELETE /campaigns/{campaign}/parameter/{campaignParameter}

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name
campaignParameterpathyesstringCampaign parameter key

Responses

StatusContent-TypeSchemaDescription
200——OK

cURL example

curl -X DELETE 'http://localhost:1789/campaigns/<campaign>/parameter/<campaignParameter>' \
-H 'Authorization: Bearer <token>' \

deleteAllCampaignParameters​

DELETE /campaigns/{campaign}/parameters

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name

Responses

StatusContent-TypeSchemaDescription
200——OK

cURL example

curl -X DELETE 'http://localhost:1789/campaigns/<campaign>/parameters' \
-H 'Authorization: Bearer <token>' \

getCampaignParameters​

GET /campaigns/{campaign}/parameters

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/campaigns/<campaign>/parameters' \
-H 'Authorization: Bearer <token>' \

createCampaignParameters​

POST /campaigns/{campaign}/parameters

Parameters

NameInRequiredTypeDescription
mapIdqueryyesobjectMap Id
campaignpathyesobjectCampaign name

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
emptybooleanno

Body format:

{
"empty": true
}

Responses

StatusContent-TypeSchemaDescription
200——OK

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/parameters' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"empty": true
}'

Resume a campaign​

POST /campaigns/{campaign}/resume

Resumes a campaign from its name. Only stopped campaigns can be resumed

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name

Responses

StatusContent-TypeSchemaDescription
400——Campaign not stopped
404——Campaign not found
500——Server failed to resume campaign
200application/jsonobjectSuccessfully resumed campaign

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/resume' \
-H 'Authorization: Bearer <token>' \

Retry punnets​

POST /campaigns/{campaign}/retry-punnets

Retry punnets in any step for a specific campaign. You can filter the punnets to retry by status and metadata values

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name of the punnets to retry
mapIdqueryyesobjectMap id related to the campaign
stepIdqueryyesobjectStep id containing the punnets to retry
statusquerynoarray[string]Status to filter punnets to retry

Responses

StatusContent-TypeSchemaDescription
500——Server failed to retry punnets
400——Invalid request parameters
200——Successfully retried campaign

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/retry-punnets' \
-H 'Authorization: Bearer <token>' \

Start a campaign​

POST /campaigns/{campaign}/start

Starts a campaign from its name and a map id. Can be a new campaign or a rerun

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name
mapIdqueryyesobjectMap Id
newCampaignquerynobooleanNew campaign

Responses

StatusContent-TypeSchemaDescription
400——Invalid request parameters
404——Map not found
200application/jsonobjectSuccessfully started campaign
500——Server failed to start campaign

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/start' \
-H 'Authorization: Bearer <token>' \

Get campaign stats​

GET /campaigns/{campaign}/stats

Retrieves stats of specified campaign

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name to retrieve

Responses

StatusContent-TypeSchemaDescription
500——Server failed to retrieve campaign stats
200application/jsonobjectSuccessfully retrieved campaign stats
400——Invalid request parameters
404——Campaign or stats not found

cURL example

curl -X GET 'http://localhost:1789/campaigns/<campaign>/stats' \
-H 'Authorization: Bearer <token>' \

Get campaign status​

GET /campaigns/{campaign}/status

Retrieves status of specified campaign

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name to retrieve

Responses

StatusContent-TypeSchemaDescription
404——Campaign or status not found
200application/jsonstringSuccessfully retrieved campaign status
400——Invalid request parameters
500——Server failed to retrieve campaign status

cURL example

curl -X GET 'http://localhost:1789/campaigns/<campaign>/status' \
-H 'Authorization: Bearer <token>' \

Download step result​

GET /campaigns/{campaign}/step/{stepId}/download-result

Downloads step result for a specific campaign. You can filter the punnets to download by status and metadata values

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name of the step
mapIdqueryyesobjectMap id related to the campaign
stepIdpathyesobjectStep id to download result
statusquerynoarray[string]Status to filter punnets to download

Responses

StatusContent-TypeSchemaDescription
200——Successfully downloaded step result
500——Server failed to download step result
400——Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/<campaign>/step/<stepId>/download-result' \
-H 'Authorization: Bearer <token>' \

Pause a step​

POST /campaigns/{campaign}/step/{stepId}/pause

Pause a step by providing the campaign name, map ID, and step ID. These parameters define the exact context of the task to pause.

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectThe campaign name to identify the task context
mapIdqueryyesobjectThe map Id related to the campaign
stepIdpathyesobjectThe step Id defining the specific task to pause

Responses

StatusContent-TypeSchemaDescription
204application/jsonobjectSuccessfully paused step
400——Invalid request parameters
404——Campaign not found
500——Failed to pause step

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/step/<stepId>/pause' \
-H 'Authorization: Bearer <token>' \

Resume a step​

POST /campaigns/{campaign}/step/{stepId}/resume

Resume a step by providing the campaign name, map ID, and step ID. These parameters define the exact context of the task to resume.

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectThe campaign name to identify the task context
mapIdqueryyesobjectThe map Id related to the campaign
stepIdpathyesobjectThe step Id defining the specific task to resume

Responses

StatusContent-TypeSchemaDescription
500——Failed to resume step
400——Invalid request parameters
404——Campaign not found
204application/jsonobjectSuccessfully resumed step

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/step/<stepId>/resume' \
-H 'Authorization: Bearer <token>' \

Stop a campaign​

POST /campaigns/{campaign}/stop

Stop a campaign from its name

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully stopped campaign
400——Campaign not started
500——Failed to resume campaign
404——Campaign not found

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/stop' \
-H 'Authorization: Bearer <token>' \

Catalog API​

Endpoint to retrieve catalog tasks

getCatalog​

GET /catalog

Parameters

NameInRequiredTypeDescription
namequerynostring
classNamesquerynoarray[string]
allTaskquerynoboolean

Responses

StatusContent-TypeSchemaDescription
200application/jsonarray[object]OK

cURL example

curl -X GET 'http://localhost:1789/catalog' \
-H 'Authorization: Bearer <token>' \

getCatalogDto​

GET /catalog/dto

Parameters

NameInRequiredTypeDescription
namequerynostring
classNamesquerynoarray[string]
allTaskquerynoboolean

Responses

StatusContent-TypeSchemaDescription
200application/jsonarray[object]OK

cURL example

curl -X GET 'http://localhost:1789/catalog/dto' \
-H 'Authorization: Bearer <token>' \

Email API​

Endpoint for managing emails

createEmail​

POST /emails

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
emailstringno
activebooleanno
emailIdobjectno

Body format:

{
"email": "string",
"active": true,
"emailId": {}
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X POST 'http://localhost:1789/emails' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"active": true,
"emailId": {}
}'

updateEmail​

PUT /emails

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
emailstringno
activebooleanno
emailIdobjectno

Body format:

{
"email": "string",
"active": true,
"emailId": {}
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X PUT 'http://localhost:1789/emails' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"active": true,
"emailId": {}
}'

deleteEmails_byNames​

DELETE /emails/delete-by-names

Parameters

NameInRequiredTypeDescription
emailsqueryyesarray[string]

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
frominteger(int32)no
sizeinteger(int32)no
orderBystringno
ascendingbooleanno

Body format:

{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X DELETE 'http://localhost:1789/emails/delete-by-names' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}'

deleteEmails_byPattern​

DELETE /emails/delete-by-pattern

Parameters

NameInRequiredTypeDescription
namePatternquerynostring

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
frominteger(int32)no
sizeinteger(int32)no
orderBystringno
ascendingbooleanno

Body format:

{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X DELETE 'http://localhost:1789/emails/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}'

getEmailsByNames​

GET /emails/search-by-names

Parameters

NameInRequiredTypeDescription
emailsqueryyesarray[string]
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/emails/search-by-names' \
-H 'Authorization: Bearer <token>' \

getEmails​

GET /emails/search-by-pattern

Parameters

NameInRequiredTypeDescription
namePatternquerynostring
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/emails/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

deleteEmail​

DELETE /emails/{email}

Parameters

NameInRequiredTypeDescription
emailpathyesstring

Responses

StatusContent-TypeSchemaDescription
200——OK

cURL example

curl -X DELETE 'http://localhost:1789/emails/<email>' \
-H 'Authorization: Bearer <token>' \

getEmail​

GET /emails/{email}

Parameters

NameInRequiredTypeDescription
emailpathyesstring

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/emails/<email>' \
-H 'Authorization: Bearer <token>' \

Job API​

Endpoint for managing jobs

Create a job​

POST /jobs

Creates a new job for a map with its cron expression

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
jobIdobjectno
jobNamestringno
campaignobjectno
taskFlowMapRefobjectno
maxNumberExecutionsinteger(int32)no
actionstringno
activebooleanno
cronExpressionstringno

Body format:

{
"jobId": {},
"jobName": "string",
"campaign": {
"name": "string",
"index": "string",
"prefix": "string",
"suffix": 0
},
"taskFlowMapRef": {},
"maxNumberExecutions": 0,
"action": "STOP",
"active": true,
"cronExpression": "string"
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully created job
400——Invalid request parameters
409——Job name already taken
500——Server failed to create job

cURL example

curl -X POST 'http://localhost:1789/jobs' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"jobId": {},
"jobName": "string",
"campaign": {
"name": "string",
"index": "string",
"prefix": "string",
"suffix": 0
},
"taskFlowMapRef": {},
"maxNumberExecutions": 0,
"action": "STOP",
"active": true,
"cronExpression": "string"
}'

Update a job​

PUT /jobs

Updates a job. The job must have a name and an Id are required

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
jobIdobjectno
jobNamestringno
campaignobjectno
taskFlowMapRefobjectno
maxNumberExecutionsinteger(int32)no
actionstringno
activebooleanno
cronExpressionstringno

Body format:

{
"jobId": {},
"jobName": "string",
"campaign": {
"name": "string",
"index": "string",
"prefix": "string",
"suffix": 0
},
"taskFlowMapRef": {},
"maxNumberExecutions": 0,
"action": "STOP",
"active": true,
"cronExpression": "string"
}

Responses

StatusContent-TypeSchemaDescription
500——Server failed to update job
404——Provided job not found
400——Invalid request parameters
409——Job name already taken
200application/jsonobjectSuccessfully updated job

cURL example

curl -X PUT 'http://localhost:1789/jobs' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"jobId": {},
"jobName": "string",
"campaign": {
"name": "string",
"index": "string",
"prefix": "string",
"suffix": 0
},
"taskFlowMapRef": {},
"maxNumberExecutions": 0,
"action": "STOP",
"active": true,
"cronExpression": "string"
}'

Delete jobs by name​

DELETE /jobs/delete-by-name

Deletes jobs that match the list of specified job names. Returns a multi-status response indicating the success or failure of deleting each job

Parameters

NameInRequiredTypeDescription
jobNamesqueryyesarray[string]Job names to delete

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully deleted jobs
400——Invalid request parameters
207application/jsonobjectServer failed to delete campaigns

cURL example

curl -X DELETE 'http://localhost:1789/jobs/delete-by-name' \
-H 'Authorization: Bearer <token>' \

Delete jobs by pattern​

DELETE /jobs/delete-by-pattern

Deletes jobs that match the specified name pattern. If no name pattern is provided, all jobs will be selected. Returns a multi-status response indicating the success or failure of deleting each job

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter job names

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully deleted jobs
400——Invalid request parameters
207application/jsonobjectServer failed to delete campaigns

cURL example

curl -X DELETE 'http://localhost:1789/jobs/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \

Get jobs by name​

GET /jobs/search-by-names

Retrieves jobs that match the list of specified job names

Parameters

NameInRequiredTypeDescription
jobNamesqueryyesarray[string]Job names to retrieve
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
400——Invalid request parameters
500——Server failed to retrieve jobs
200application/jsonobjectSuccessfully retrieved jobs

cURL example

curl -X GET 'http://localhost:1789/jobs/search-by-names' \
-H 'Authorization: Bearer <token>' \

Get jobs by pattern​

GET /jobs/search-by-pattern

Retrieves jobs that match the specified name pattern. If no name pattern is provided, all jobs will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter job names
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
400——Invalid request parameters
500——Server failed to retrieve jobs
200application/jsonobjectSuccessfully retrieved jobs

cURL example

curl -X GET 'http://localhost:1789/jobs/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

isCronValidFromString​

GET /jobs/validateCron

Parameters

NameInRequiredTypeDescription
cronExpressionqueryyesstring

Responses

StatusContent-TypeSchemaDescription
200application/jsonbooleanOK

cURL example

curl -X GET 'http://localhost:1789/jobs/validateCron' \
-H 'Authorization: Bearer <token>' \

Delete a job​

DELETE /jobs/{jobName}

Deletes a job from its name

Parameters

NameInRequiredTypeDescription
jobNamepathyesstringThe name of the job

Responses

StatusContent-TypeSchemaDescription
400——Invalid request parameters
404——Job not found
200——Successfully deleted job
500——Server failed to delete job

cURL example

curl -X DELETE 'http://localhost:1789/jobs/<jobName>' \
-H 'Authorization: Bearer <token>' \

Get job from name​

GET /jobs/{jobName}

Retrieves a job from its name

Parameters

NameInRequiredTypeDescription
jobNamepathyesstringThe name of the job

Responses

StatusContent-TypeSchemaDescription
500——Server failed to retrieve job
400——Invalid request parameters
404——Job not found
200application/jsonobjectSuccessfully retrieved job

cURL example

curl -X GET 'http://localhost:1789/jobs/<jobName>' \
-H 'Authorization: Bearer <token>' \

Map API​

Endpoint for managing maps

Create a map​

POST /maps

Creates a new map with an id and a unique name

Request Body

Content-Type: application/json

Responses

StatusContent-TypeSchemaDescription
409——Map name already taken
500——Server failed to create map
400——Invalid request parameters
200application/jsonstringSuccessfully created map

cURL example

curl -X POST 'http://localhost:1789/maps' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '"string"'

Save a map​

PUT /maps

Saves a whole map including step configurations

Request Body

Content-Type: application/json

Responses

StatusContent-TypeSchemaDescription
500——Server failed to save map
200application/jsonstringSuccessfully saved maps
409——New map name already taken
400——Invalid request parameters
404——Map not found from provided mapId or map versions weren't matching between provided and found map

cURL example

curl -X PUT 'http://localhost:1789/maps' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '"string"'

Delete maps by Ids​

DELETE /maps/delete-by-ids

Deletes maps that match the list of specified map Ids

Parameters

NameInRequiredTypeDescription
mapIdsqueryyesarray[object]Map ids of the maps to delete

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully deleted maps
500——Server failed to delete maps
400——Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/maps/delete-by-ids' \
-H 'Authorization: Bearer <token>' \

Delete maps by pattern​

DELETE /maps/delete-by-pattern

Deletes maps that match the specified name pattern. If no name pattern is provided, all maps will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter map names

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully deleted maps
500——Server failed to delete maps
400——Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/maps/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \

Delete maps by version​

DELETE /maps/delete-by-version

Deletes maps summary that match the specified map version Ids

Parameters

NameInRequiredTypeDescription
mapVersionSerieIdqueryyesobjectThe mapVersionSerieId attached to the map

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
frominteger(int32)no
sizeinteger(int32)no
orderBystringno
ascendingbooleanno

Body format:

{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully deleted maps
500——Server failed to delete maps
400——Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/maps/delete-by-version' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}'

Download map​

GET /maps/download/{mapId}

Downloads map file from provided map id

Parameters

NameInRequiredTypeDescription
mapIdpathyesobjectThe map Id of the map to download

Responses

StatusContent-TypeSchemaDescription
500——Server failed to download maps
200application/jsonobjectSuccessfully downloaded maps
400——Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/maps/download/<mapId>' \
-H 'Authorization: Bearer <token>' \

Assert map name availability​

GET /maps/name-availability

Checks that provided map name is available

Parameters

NameInRequiredTypeDescription
mapNamequeryyesstringThe map name to check availability

Responses

StatusContent-TypeSchemaDescription
200application/jsonbooleanSuccessfully checked map name availability
500——Server failed to check map name
400——Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/maps/name-availability' \
-H 'Authorization: Bearer <token>' \

Get maps by Ids​

GET /maps/search-by-ids

Retrieves maps that match the list of specified map Ids

Parameters

NameInRequiredTypeDescription
mapIdsqueryyesarray[object]Map ids of the maps to retrieve
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
400——Invalid request parameters
200application/jsonstringSuccessfully retrieved maps
500——Server failed to retrieve maps

cURL example

curl -X GET 'http://localhost:1789/maps/search-by-ids' \
-H 'Authorization: Bearer <token>' \

Get maps by pattern​

GET /maps/search-by-pattern

Retrieves maps that match the specified name pattern. If no name pattern is provided, all maps will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter map names
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
200application/jsonstringSuccessfully retrieved maps
400——Invalid request parameters
500——Server failed to retrieve maps

cURL example

curl -X GET 'http://localhost:1789/maps/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Get maps by version Id​

GET /maps/search-by-version

Retrieves maps summary that match the list of specified map Ids

Parameters

NameInRequiredTypeDescription
mapVersionSerieIdqueryyesobjectThe mapVersionSerieId attached to the map
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
400——Invalid request parameters
200application/jsonstringSuccessfully retrieved maps
404——Provided mapVersionSerieId not found
500——Server failed to retrieve maps

cURL example

curl -X GET 'http://localhost:1789/maps/search-by-version' \
-H 'Authorization: Bearer <token>' \

Get maps summaries by Id​

GET /maps/summary/search-by-ids

Retrieves maps summaries that match the list of specified map Ids

Parameters

NameInRequiredTypeDescription
mapIdsqueryyesarray[object]Map ids of the maps to retrieve
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved maps
400——Invalid request parameters
500——Server failed to retrieve maps

cURL example

curl -X GET 'http://localhost:1789/maps/summary/search-by-ids' \
-H 'Authorization: Bearer <token>' \

Get maps summaries by pattern​

GET /maps/summary/search-by-pattern

Retrieves maps summaries that match the specified name pattern. If no name pattern is provided, all maps will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter map names
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved maps
400——Invalid request parameters
500——Server failed to retrieve maps

cURL example

curl -X GET 'http://localhost:1789/maps/summary/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Upload a map​

POST /maps/upload/{mapName}

Created a new map from file and associates it with the given map name

Parameters

NameInRequiredTypeDescription
mapNamepathyesstringThe map name to associates

Request Body

Content-Type: multipart/form-data

FieldTypeRequiredDescription
filestring(binary)yesThe file to be uploaded

Body format:

{
"file": "string"
}

Responses

StatusContent-TypeSchemaDescription
409——Map name already taken
400——Invalid request parameters
200application/jsonstringSuccessfully uploaded map
500——Server failed to upload maps

cURL example

curl -X POST 'http://localhost:1789/maps/upload/<mapName>' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: multipart/form-data' \
-d '{
"file": "string"
}'

Delete a map from its Id​

DELETE /maps/{mapId}

Deletes one map from provided map Id

Parameters

NameInRequiredTypeDescription
mapIdpathyesobjectMap Id attached to the map to delete

Responses

StatusContent-TypeSchemaDescription
500——Server failed to delete maps
400——Invalid request parameters
404——Map not found
200——Successfully deleted maps

cURL example

curl -X DELETE 'http://localhost:1789/maps/<mapId>' \
-H 'Authorization: Bearer <token>' \

Get a map from its id​

GET /maps/{mapId}

Retrieves one map from its map Id

Parameters

NameInRequiredTypeDescription
mapIdpathyesobjectThe map Id attached to the map

Responses

StatusContent-TypeSchemaDescription
404——Map not found from provided mapId
400——Invalid request parameters
500——Server failed to retrieve map
200application/jsonstringSuccessfully retrieved map

cURL example

curl -X GET 'http://localhost:1789/maps/<mapId>' \
-H 'Authorization: Bearer <token>' \

Punnet API​

Endpoint to retrieve punnets

Get index mapping campaign​

GET /punnets/mapping

Retrieves all field mappings (structure of documents) for the OpenSearch index related to the specified campaign

Parameters

NameInRequiredTypeDescription
campaignqueryyesobjectCampaign name

Responses

StatusContent-TypeSchemaDescription
500——Server failed to retrieve mapping
200application/jsonobjectSuccessfully retrieved fields mapping
400——Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/punnets/mapping' \
-H 'Authorization: Bearer <token>' \

Get all punnet contexts​

GET /punnets/punnet-contexts

Retrieves all punnet contexts from a campaign and a stepId. You can filter results by punnet metadata

Parameters

NameInRequiredTypeDescription
campaignqueryyesobjectCampaign name
stepIdqueryyesobjectThe step Id that processed the punnet
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
500——Server failed to retrieve punnet contexts
200application/jsonobjectSuccessfully retrieve punnet contexts
400——Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/punnets/punnet-contexts' \
-H 'Authorization: Bearer <token>' \

Get values of a metadata​

GET /punnets/values

Retrieves all values of a given metadata

Parameters

NameInRequiredTypeDescription
campaignqueryyesobjectCampaign name
mapIdqueryyesobjectMap Id reference
stepIdqueryyesobjectThe step Id that processed the punnet
fieldqueryyesstringThe metadata key to retrieve values

Responses

StatusContent-TypeSchemaDescription
500——Server failed to retrieve values
400——Invalid request parameters
200application/jsonobjectSuccessfully retrieved values

cURL example

curl -X GET 'http://localhost:1789/punnets/values' \
-H 'Authorization: Bearer <token>' \

Get punnet context from its id​

GET /punnets/{punnetContextId}

Retrieves PunnetContext information from its PunnetContextId

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
404——PunnetContextId did not exist
200application/xmlobjectSuccessfully retrieve punnet
400——Invalid request parameters
500——Server failed to transform punnet as xml

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>' \
-H 'Authorization: Bearer <token>' \

Get punnet exception​

GET /punnets/{punnetContextId}/exception

Retrieves exception of any punnet from its PunnetContextId

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
404——PunnetContextId not found
200application/jsonobjectSuccessfully retrieved exception
400——Invalid request parameters
500——Server failed to retrieve exception

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>/exception' \
-H 'Authorization: Bearer <token>' \

Get next punnets​

GET /punnets/{punnetContextId}/history/next

Retrieves next PunnetContext information from a PunnetContextId. Finding several punnets comes from a duplication of punnets in the map. Can be empty if punnet context does not have any next punnet context

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
500——Server failed to retrieve punnet contexts
200application/jsonobjectSuccessfully retrieved punnet contexts
400——Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>/history/next' \
-H 'Authorization: Bearer <token>' \

Get previous punnet​

GET /punnets/{punnetContextId}/history/previous

Retrieves previous PunnetContext information from a PunnetContextId. Unlike the next route, it is only possible to find a single punnet context. Can be null if punnet context does not have any previous punnet context

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved the punnet context
400——Invalid request parameters
500——Server failed to retrieve the punnet context

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>/history/previous' \
-H 'Authorization: Bearer <token>' \

Get punnet logs​

GET /punnets/{punnetContextId}/logs

Retrieves logs of any punnet from its PunnetContextId

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
500——Server failed to retrieve logs
400——Invalid request parameters
200application/jsonobjectSuccessfully retrieved logs

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>/logs' \
-H 'Authorization: Bearer <token>' \

Get punnet as xml​

GET /punnets/{punnetContextId}/xml

Retrieves a punnet from its PunnetContextId and prints it as an XML file

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
404——PunnetContextId not found
400——Invalid request parameters
200application/xmlobjectSuccessfully retrieve punnet
500——Server failed to transform punnet as xml

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>/xml' \
-H 'Authorization: Bearer <token>' \

Queue API​

Endpoint for managing queues

getQueues​

GET /queues

Parameters

NameInRequiredTypeDescription
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/queues' \
-H 'Authorization: Bearer <token>' \

createQueue​

POST /queues

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
queueIdobjectno
numberOfSourceThreadsinteger(int32)no
numberOfTaskThreadsinteger(int32)no

Body format:

{
"queueId": {},
"numberOfSourceThreads": 0,
"numberOfTaskThreads": 0
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X POST 'http://localhost:1789/queues' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"queueId": {},
"numberOfSourceThreads": 0,
"numberOfTaskThreads": 0
}'

updateQueue​

PUT /queues

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
queueIdobjectno
numberOfSourceThreadsinteger(int32)no
numberOfTaskThreadsinteger(int32)no

Body format:

{
"queueId": {},
"numberOfSourceThreads": 0,
"numberOfTaskThreads": 0
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X PUT 'http://localhost:1789/queues' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"queueId": {},
"numberOfSourceThreads": 0,
"numberOfTaskThreads": 0
}'

deleteQueues_byIds​

DELETE /queues/delete-by-ids

Parameters

NameInRequiredTypeDescription
queueIdsqueryyesarray[object]

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X DELETE 'http://localhost:1789/queues/delete-by-ids' \
-H 'Authorization: Bearer <token>' \

deleteQueues_byPattern​

DELETE /queues/delete-by-pattern

Parameters

NameInRequiredTypeDescription
namePatternquerynostring

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X DELETE 'http://localhost:1789/queues/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \

deleteQueue​

DELETE /queues/{queueId}

Parameters

NameInRequiredTypeDescription
queueIdpathyesobject

Responses

StatusContent-TypeSchemaDescription
200——OK

cURL example

curl -X DELETE 'http://localhost:1789/queues/<queueId>' \
-H 'Authorization: Bearer <token>' \

getQueue​

GET /queues/{queueId}

Parameters

NameInRequiredTypeDescription
queueIdpathyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/queues/<queueId>' \
-H 'Authorization: Bearer <token>' \

Shared Objects API​

Endpoint for managing shared objects

Delete shared objects by names​

DELETE /shared-objects/delete-by-names

Deletes shared objects that match the list of specified shared objects names. Returns a multi-status response indicating the success or failure of deleting each shared objects

Parameters

NameInRequiredTypeDescription
sharedObjectNamesqueryyesarray[string]Shared object names to delete

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
frominteger(int32)no
sizeinteger(int32)no
orderBystringno
ascendingbooleanno

Body format:

{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}

Responses

StatusContent-TypeSchemaDescription
400——Invalid request parameters
207application/jsonobjectServer failed to delete shared objects
200application/jsonobjectSuccessfully deleted shared objects

cURL example

curl -X DELETE 'http://localhost:1789/shared-objects/delete-by-names' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}'

Delete shared objects by pattern​

DELETE /shared-objects/delete-by-pattern

Deletes shared objects that match the specified name pattern. If no name pattern is provided, all shared objects will be selected. Returns a multi-status response indicating the success or failure of deleting each shared object

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter shared objects

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
frominteger(int32)no
sizeinteger(int32)no
orderBystringno
ascendingbooleanno

Body format:

{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}

Responses

StatusContent-TypeSchemaDescription
207application/jsonobjectServer failed to delete shared objects
200application/jsonobjectSuccessfully deleted shared objects
400——Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/shared-objects/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}'

Get shared objects by names​

GET /shared-objects/search-by-names

Retrieves shared objects that match the list of specified shared object names

Parameters

NameInRequiredTypeDescription
sharedObjectNamesqueryyesarray[string]Shared object names to retrieve
mapIdquerynoobjectIdentifier of the map from which to retrieve shared objects
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
500——Server failed to retrieve shared object
400——Invalid request parameters
200application/jsonobjectSuccessfully retrieved shared object

cURL example

curl -X GET 'http://localhost:1789/shared-objects/search-by-names' \
-H 'Authorization: Bearer <token>' \

Get shared objects by pattern​

GET /shared-objects/search-by-pattern

Retrieves shared objects that match the specified name pattern. If no name pattern is provided, all shared objects will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter shared objects
mapIdquerynoobjectIdentifier of the map from which to retrieve shared objects
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
400——Invalid request parameters
500——Server failed to update shared object
200application/jsonobjectSuccessfully retrieved shared object

cURL example

curl -X GET 'http://localhost:1789/shared-objects/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Delete a shared object​

DELETE /shared-objects/{sharedObjectName}

Deletes a shared object from its name

Parameters

NameInRequiredTypeDescription
sharedObjectNamepathyesstringShared object name

Responses

StatusContent-TypeSchemaDescription
400——Invalid request parameters
500——Server failed to delete the shared object
200——Successfully deleted the shared object
404——Shared object not found

cURL example

curl -X DELETE 'http://localhost:1789/shared-objects/<sharedObjectName>' \
-H 'Authorization: Bearer <token>' \

Get specific shared object​

GET /shared-objects/{sharedObjectName}

Retrieve one shared object configuration from its name

Parameters

NameInRequiredTypeDescription
sharedObjectNamepathyesstringShared object name

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved shared object
500——Server failed to retrieve shared object
400——Invalid request parameters
404——Shared object not found

cURL example

curl -X GET 'http://localhost:1789/shared-objects/<sharedObjectName>' \
-H 'Authorization: Bearer <token>' \

Create a shared object​

POST /shared-objects/{sharedObjectName}

Creates a shared object from its object configuration and a provided name

Parameters

NameInRequiredTypeDescription
sharedObjectNamepathyesstringShared object name

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
fieldsobjectno
classNamestringno
scopestringno
fullyConfiguredbooleanno
singletonbooleanno
objectNamestringno
objectConfigurationIdstringno
constructorArgumentsarray[object]no
fieldConfigurationTypestringno

Body format:

{
"fields": {},
"className": "string",
"scope": "MAP",
"fullyConfigured": true,
"singleton": true,
"objectName": "string",
"objectConfigurationId": "string",
"constructorArguments": [
{
"fieldConfigurationType": "Primitive"
}
],
"fieldConfigurationType": "Primitive"
}

Responses

StatusContent-TypeSchemaDescription
500——Server failed to create shared object
400——Invalid request parameters
201application/jsonobjectSuccessfully created shared object

cURL example

curl -X POST 'http://localhost:1789/shared-objects/<sharedObjectName>' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"fields": {},
"className": "string",
"scope": "MAP",
"fullyConfigured": true,
"singleton": true,
"objectName": "string",
"objectConfigurationId": "string",
"constructorArguments": [
{
"fieldConfigurationType": "Primitive"
}
],
"fieldConfigurationType": "Primitive"
}'

Update a shared object​

PUT /shared-objects/{sharedObjectName}

Updates the configuration or the name of a shared object

Parameters

NameInRequiredTypeDescription
sharedObjectNamepathyesstringShared object name

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
fieldsobjectno
classNamestringno
scopestringno
fullyConfiguredbooleanno
singletonbooleanno
objectNamestringno
objectConfigurationIdstringno
constructorArgumentsarray[object]no
fieldConfigurationTypestringno

Body format:

{
"fields": {},
"className": "string",
"scope": "MAP",
"fullyConfigured": true,
"singleton": true,
"objectName": "string",
"objectConfigurationId": "string",
"constructorArguments": [
{
"fieldConfigurationType": "Primitive"
}
],
"fieldConfigurationType": "Primitive"
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully updated shared object
400——Invalid request parameters
500——Server failed to update shared object

cURL example

curl -X PUT 'http://localhost:1789/shared-objects/<sharedObjectName>' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"fields": {},
"className": "string",
"scope": "MAP",
"fullyConfigured": true,
"singleton": true,
"objectName": "string",
"objectConfigurationId": "string",
"constructorArguments": [
{
"fieldConfigurationType": "Primitive"
}
],
"fieldConfigurationType": "Primitive"
}'

User API​

Endpoint for managing users

Delete all users​

DELETE /users

Deletes all users

Parameters

NameInRequiredTypeDescription
Authorizationheaderyesstring

Request Body

Content-Type: application/json

Responses

StatusContent-TypeSchemaDescription
200——Successfully created user

cURL example

curl -X DELETE 'http://localhost:1789/users' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '[
"string"
]'

Get number of users per role​

GET /users/count-by-role

Retrieves the number of users for each role

Responses

StatusContent-TypeSchemaDescription
200——Successfully found number of users

cURL example

curl -X GET 'http://localhost:1789/users/count-by-role' \
-H 'Authorization: Bearer <token>' \

Check if user exists​

GET /users/does-user-exist/{userEmail}

Checks if a user with the given email exists

Parameters

NameInRequiredTypeDescription
userEmailpathyesstring

Responses

StatusContent-TypeSchemaDescription
200/booleanOK

cURL example

curl -X GET 'http://localhost:1789/users/does-user-exist/<userEmail>' \
-H 'Authorization: Bearer <token>' \

Update current user​

PATCH /users/me

Updates information of the currently authenticated user

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
firstnamestringno
lastnamestringno
rolestringno

Body format:

{
"firstname": "string",
"lastname": "string",
"role": "USER"
}

Responses

StatusContent-TypeSchemaDescription
200——Successfully updated user

cURL example

curl -X PATCH 'http://localhost:1789/users/me' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"firstname": "string",
"lastname": "string",
"role": "USER"
}'

Create a user or an admin​

POST /users/register

Creates a user from its password, firstname, lastname and email. You cannot create super admin with this endpoint

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
passwordstringno
firstnamestringno
lastnamestringno
emailstringno
rolestringno

Body format:

{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}

Responses

StatusContent-TypeSchemaDescription
200——Successfully created user
403——User creation is restricted to a single user in the configuration
500——Server failed to create user
409——An account with this email already exists

cURL example

curl -X POST 'http://localhost:1789/users/register' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}'

Create a super admin​

POST /users/register-super-admin

Creates a user from its password, firstname, lastname and email

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
passwordstringno
firstnamestringno
lastnamestringno
emailstringno
rolestringno

Body format:

{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}

Responses

StatusContent-TypeSchemaDescription
200——Successfully created user
403——User creation is restricted to a single user in the configuration
500——Server failed to create user
409——An account with this email already exists

cURL example

curl -X POST 'http://localhost:1789/users/register-super-admin' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}'

Register a worker​

POST /users/register-worker

Creates a worker as member to allow broker communication

Parameters

NameInRequiredTypeDescription
X-Register-Tokenheaderyesstring

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
passwordstringno
firstnamestringno
lastnamestringno
emailstringno
rolestringno

Body format:

{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}

Responses

StatusContent-TypeSchemaDescription
200——Successfully created user
403——User creation is restricted to a single user in the configuration
500——Server failed to create user
409——An account with this email already exists

cURL example

curl -X POST 'http://localhost:1789/users/register-worker' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}'

getUsersByPattern​

GET /users/search-by-pattern

Parameters

NameInRequiredTypeDescription
namePatternquerynostring
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200/objectOK

cURL example

curl -X GET 'http://localhost:1789/users/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Check admin existence​

GET /users/super-admin-exists

Checks if super admin is registered

Responses

StatusContent-TypeSchemaDescription
200——Successfully found admin

cURL example

curl -X GET 'http://localhost:1789/users/super-admin-exists' \
-H 'Authorization: Bearer <token>' \

Delete a user​

DELETE /users/{userEmail}

Deletes a user from its email

Parameters

NameInRequiredTypeDescription
userEmailpathyesstring

Responses

StatusContent-TypeSchemaDescription
200——Successfully deleted user

cURL example

curl -X DELETE 'http://localhost:1789/users/<userEmail>' \
-H 'Authorization: Bearer <token>' \

Get a user​

GET /users/{userEmail}

Retrieves user information from its email

Parameters

NameInRequiredTypeDescription
userEmailpathyesstring

Responses

StatusContent-TypeSchemaDescription
200——Successfully retrieved user

cURL example

curl -X GET 'http://localhost:1789/users/<userEmail>' \
-H 'Authorization: Bearer <token>' \

Update another user​

PATCH /users/{userEmail}

Admin updates any user's information

Parameters

NameInRequiredTypeDescription
userEmailpathyesstring

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
firstnamestringno
lastnamestringno
rolestringno

Body format:

{
"firstname": "string",
"lastname": "string",
"role": "USER"
}

Responses

StatusContent-TypeSchemaDescription
200——Successfully updated user

cURL example

curl -X PATCH 'http://localhost:1789/users/<userEmail>' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"firstname": "string",
"lastname": "string",
"role": "USER"
}'

Worker API​

API for managing workers

deleteWorkers​

DELETE /workers

Parameters

NameInRequiredTypeDescription
workerIdsquerynoarray[object]

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X DELETE 'http://localhost:1789/workers' \
-H 'Authorization: Bearer <token>' \

getWorkers​

GET /workers

Parameters

NameInRequiredTypeDescription
workerIdsquerynoarray[object]
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/workers' \
-H 'Authorization: Bearer <token>' \

spawnWorker​

POST /workers

Responses

StatusContent-TypeSchemaDescription
200——OK

cURL example

curl -X POST 'http://localhost:1789/workers' \
-H 'Authorization: Bearer <token>' \

getLibraries​

GET /workers/libraries

Parameters

NameInRequiredTypeDescription
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/workers/libraries' \
-H 'Authorization: Bearer <token>' \

getLibraryVersions​

GET /workers/library-versions/{libraryName}

Parameters

NameInRequiredTypeDescription
libraryNamepathyesstring

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/workers/library-versions/<libraryName>' \
-H 'Authorization: Bearer <token>' \

restartWorkers​

POST /workers/restart

Parameters

NameInRequiredTypeDescription
workerIdsquerynoarray[object]

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X POST 'http://localhost:1789/workers/restart' \
-H 'Authorization: Bearer <token>' \

restartWorkerById​

POST /workers/restart/{workerId}

Parameters

NameInRequiredTypeDescription
workerIdpathyesobject

Responses

StatusContent-TypeSchemaDescription
200——OK

cURL example

curl -X POST 'http://localhost:1789/workers/restart/<workerId>' \
-H 'Authorization: Bearer <token>' \

uploadLibrary​

POST /workers/upload-library

Request Body

Content-Type: multipart/form-data

FieldTypeRequiredDescription
filestring(binary)yes

Body format:

{
"file": "string"
}

Responses

StatusContent-TypeSchemaDescription
200——OK

cURL example

curl -X POST 'http://localhost:1789/workers/upload-library' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: multipart/form-data' \
-d '{
"file": "string"
}'

deleteWorkerById​

DELETE /workers/{workerId}

Parameters

NameInRequiredTypeDescription
workerIdpathyesobject

Responses

StatusContent-TypeSchemaDescription
200——OK

cURL example

curl -X DELETE 'http://localhost:1789/workers/<workerId>' \
-H 'Authorization: Bearer <token>' \

getWorkerById​

GET /workers/{workerId}

Parameters

NameInRequiredTypeDescription
workerIdpathyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/workers/<workerId>' \
-H 'Authorization: Bearer <token>' \

getWorkerLogs​

GET /workers/{workerId}/logs

Parameters

NameInRequiredTypeDescription
workerIdpathyesobject
resultsquerynointeger(int32)

Responses

StatusContent-TypeSchemaDescription
200application/jsonarray[object]OK

cURL example

curl -X GET 'http://localhost:1789/workers/<workerId>/logs' \
-H 'Authorization: Bearer <token>' \