Create Lab
const url = 'https://api.exolink.cloud/tenant/example/lab';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"displayName":"example","appId":"example","profileId":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.exolink.cloud/tenant/example/lab \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "displayName": "example", "appId": "example", "profileId": 1 }'Create a new lab environment, optionally as a hardcoded app (see GET …/app)
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Tenant domain prefix
Request Bodyrequired
Section titled “Request Bodyrequired”object
Lab display name
Id of an app returned by GET /tenant/{tenantId}/app. Omit for a classic lab. Entitlement is re-checked server-side regardless of what that list returned.
Profile ID
Example generated
{ "displayName": "example", "appId": "example", "profileId": 1}Responses
Section titled “Responses”Lab created successfully
Lab environment for testing and development
object
Lab ID
Tenant ID
Lab display name
Set when this lab is a hardcoded app rather than a designer-built flow (see GET /tenant/{tenantId}/app). Null for a classic lab.
Lab software version
Associated subscription ID
CPU units of the lab
Memory of the lab in MiB
Lab health status
Lab status, such as PENDING, RUNNING, STOPPED, PAUSED or DELETED
Why the lab is not healthy, if it is not
Set while the lab is paused
Lab access URL
Example
{ "health": "healthy", "status": "RUNNING", "reason": "Lab is starting up"}Malformed request
Error response. Some rejections carry only message.
object
Error message
Error code
Failed validations, for requests checked against a schema
object
Path of the invalid field
Example
{ "message": "Bad Request", "errorCode": "ERR_API_BAD_REQUEST"}Missing, invalid or expired credentials
Error response. Some rejections carry only message.
object
Error message
Error code
Failed validations, for requests checked against a schema
object
Path of the invalid field
Example
{ "message": "Not authorized", "errorCode": "ERR_API_NOT_AUTHORIZED"}The required product is not subscribed
Error response. Some rejections carry only message.
object
Error message
Error code
Failed validations, for requests checked against a schema
object
Path of the invalid field
Example
{ "message": "No Connect product subscribed", "errorCode": "ERR_API_PAYMENT_REQUIRED"}AppId is unknown or the tenant is not entitled to it. Both cases return the same status so a client cannot enumerate app ids that exist but aren’t theirs.
Error response. Some rejections carry only message.
object
Error message
Error code
Failed validations, for requests checked against a schema
object
Path of the invalid field
Example
{ "errorCode": "ERR_API_BAD_REQUEST", "details": [ { "code": "unrecognized_keys" } ]}Validation or verification failed
Error response. Some rejections carry only message.
object
Error message
Error code
Failed validations, for requests checked against a schema
object
Path of the invalid field
Example
{ "message": "Missing parameter: displayName", "errorCode": "ERR_API_VALIDATION_FAILED"}