Download OpenAPI specification:Download
This is the Signaloid Cloud Compute Engine API OpenAPI specification. Signaloid provides a computing platform to quantify, transmit, and track data uncertainty dynamically and throughout computations in unmodified computing workloads. The Signaloid Cloud Compute Engine API enables you to interface with the Signaloid Cloud Compute Engine programmatically.
The Signaloid Cloud Compute Engine API currently offers authentication
using API keys. Authentication is required for all API requests and the
request must include the API key in the Authorization header.
Read more about how to obtain an API key in the
Authentication guide.
The Signaloid Cloud Compute Engine API is in beta. We make every effort to maintain backwards compatibility, but we reserve the right to make breaking changes to the API while still in beta. We will announce breaking changes in the Signaloid Cloud Platform Release Notes.
The current page is the API reference. For more information about how to use the Signaloid Cloud API in your application and combine different requests, see the API Guides.
Connect a blob storage bucket from a third-party creating a Bucket resource. Currently supports Amazon S3 buckets.
| Name required | string |
| Account required | string |
| MountPath | string Default: "/" Where the bucket is mounted inside the execution environment.
Defaults to |
| Read | boolean Default: true Whether the bucket is readable from the execution environment.
Defaults to |
| Write | boolean Default: false Whether the bucket is writable from the execution environment.
Defaults to |
{- "Name": "string",
- "Account": "string",
- "MountPath": "/",
- "Read": true,
- "Write": false
}{- "Object": "Bucket",
- "BucketID": "string",
- "Owner": "string",
- "CreatedAt": 0,
- "UpdatedAt": 0,
- "Name": "string",
- "Account": "string",
- "MountPath": "string",
- "Read": true,
- "Write": true
}| bucketID required | string (bucketID) bkt_[a-z0-9]{32} The identifier of the Bucket resource. |
{- "Object": "Bucket",
- "BucketID": "string",
- "Owner": "string",
- "CreatedAt": 0,
- "UpdatedAt": 0,
- "Name": "string",
- "Account": "string",
- "MountPath": "string",
- "Read": true,
- "Write": true
}| bucketID required | string (bucketID) bkt_[a-z0-9]{32} The identifier of the Bucket resource. |
| Name | string |
| Account | string |
| MountPath | string |
| Read | boolean |
| Write | boolean |
{- "Name": "string",
- "Account": "string",
- "MountPath": "string",
- "Read": true,
- "Write": true
}{- "Object": "Bucket",
- "BucketID": "string",
- "Owner": "string",
- "CreatedAt": 0,
- "UpdatedAt": 0,
- "Name": "string",
- "Account": "string",
- "MountPath": "string",
- "Read": true,
- "Write": true
}Creates a new build from the specified repository.
| RepositoryID required | string (RepositoryID) rep_[a-z0-9]{32} The identifier of the connected Repository resource. |
| DiscoverVariables | string Default: "false" Enum: "true" "false" If set to the string |
| CoreID | stringcor_[a-z0-9]{32} The Core to build for. Defaults to the Repository's | ||||||||
Array of objects (TraceVariableRequest) Variables to trace in the built application. Defaults to
the Repository's | |||||||||
Array
| |||||||||
Array of objects (DataSource) [ 0 .. 5 ] items Data sources to use with this build. Defaults to the
Repository's | |||||||||
Array ([ 0 .. 5 ] items)
| |||||||||
| Arguments | string Command-line arguments to pass to the application.
Defaults to the Repository's | ||||||||
| IsPublic | boolean Default: false Marks the build as publicly accessible. When enabled, other users can run tasks based on this build without requiring authorization.
Only the literal value | ||||||||
{- "CoreID": "string",
- "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "Arguments": "string",
- "IsPublic": false
}{- "BuildID": "string"
}Returns the list of builds.
| startKey | string Where to resume the list of Builds. Use for paginating responses.
Pass back the |
| from | string <date-time> Filter builds by creation date - only include builds created on or after this date. |
| to | string <date-time> Filter builds by creation date - only include builds created on or before this date. |
| status | Array of strings (BuildStatus) Default: "" Items Enum: "Accepted" "Initialising" "Rescheduled" "In Progress" "Completed" "Cancelled" "Stopped" Filter the list of builds by status. By default the list includes
all Builds. Repeat the parameter to filter on more than one
status, for example |
| noexpand | string Default: "false" Enum: "true" "false" By default each entry in |
| limit | integer [ 1 .. 500 ] Default: 25 The maximum number of Builds to return in one page. The effective
maximum — and the value used when this parameter is omitted, is
not a number, or exceeds the maximum — is 25 for expanded
responses and 500 when |
{- "UserID": "string",
- "Builds": [
- {
- "Object": "Build",
- "BuildID": "string",
- "Owner": "string",
- "Status": "Accepted",
- "StatusTransitions": [
- {
- "Status": "string",
- "Timestamp": 0,
- "Message": "string"
}
], - "StartedAt": 0,
- "DefaultArguments": "string",
- "DefaultDataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "Application": {
- "Type": "SourceCode",
- "SourceCode": {
- "Object": "SourceCode",
- "Code": "string",
- "Language": "C",
- "Arguments": ""
}, - "Repository": {
- "Object": "Repository",
- "RepositoryID": "string",
- "Owner": "string",
- "Commit": "string",
- "Branch": "string",
- "BuildDirectory": "string",
- "Arguments": "string",
- "Core": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "CreatedAt": 0,
- "UpdatedAt": 0
}
}, - "UpdatedAt": 0,
- "CreatedAt": 0,
- "FinishedAt": 0,
- "BuildArtifactAvailable": true,
- "IsPublic": true,
- "BuildCoreSpecs": {
- "Class": "string",
- "Precision": 0,
- "MemorySize": 0,
- "Microarchitecture": "string",
- "CorrelationTracking": "string"
}, - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "Stats": {
- "BuildTimeInMilliseconds": 0,
- "BuildSizeInBytes": 0,
- "CreatedAt": 0
}
}
], - "Count": 0,
- "ContinuationKey": "string"
}Returns the build resource identified by the BuildID path parameter.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
{- "Object": "Build",
- "BuildID": "string",
- "Owner": "string",
- "Status": "Accepted",
- "StatusTransitions": [
- {
- "Status": "string",
- "Timestamp": 0,
- "Message": "string"
}
], - "StartedAt": 0,
- "DefaultArguments": "string",
- "DefaultDataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "Application": {
- "Type": "SourceCode",
- "SourceCode": {
- "Object": "SourceCode",
- "Code": "string",
- "Language": "C",
- "Arguments": ""
}, - "Repository": {
- "Object": "Repository",
- "RepositoryID": "string",
- "Owner": "string",
- "Commit": "string",
- "Branch": "string",
- "BuildDirectory": "string",
- "Arguments": "string",
- "Core": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "CreatedAt": 0,
- "UpdatedAt": 0
}
}, - "UpdatedAt": 0,
- "CreatedAt": 0,
- "FinishedAt": 0,
- "BuildArtifactAvailable": true,
- "IsPublic": true,
- "BuildCoreSpecs": {
- "Class": "string",
- "Precision": 0,
- "MemorySize": 0,
- "Microarchitecture": "string",
- "CorrelationTracking": "string"
}, - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "Stats": {
- "BuildTimeInMilliseconds": 0,
- "BuildSizeInBytes": 0,
- "CreatedAt": 0
}
}Updates the build resource identified by the BuildID path parameter.
Currently supports updating the IsPublic field to control public accessibility of the build.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
| IsPublic | boolean Marks the build as publicly accessible. When enabled, other users can run tasks based on this build without requiring authorization. |
{- "IsPublic": true
}{- "Object": "Build",
- "BuildID": "string",
- "Owner": "string",
- "Status": "Accepted",
- "StatusTransitions": [
- {
- "Status": "string",
- "Timestamp": 0,
- "Message": "string"
}
], - "StartedAt": 0,
- "DefaultArguments": "string",
- "DefaultDataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "Application": {
- "Type": "SourceCode",
- "SourceCode": {
- "Object": "SourceCode",
- "Code": "string",
- "Language": "C",
- "Arguments": ""
}, - "Repository": {
- "Object": "Repository",
- "RepositoryID": "string",
- "Owner": "string",
- "Commit": "string",
- "Branch": "string",
- "BuildDirectory": "string",
- "Arguments": "string",
- "Core": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "CreatedAt": 0,
- "UpdatedAt": 0
}
}, - "UpdatedAt": 0,
- "CreatedAt": 0,
- "FinishedAt": 0,
- "BuildArtifactAvailable": true,
- "IsPublic": true,
- "BuildCoreSpecs": {
- "Class": "string",
- "Precision": 0,
- "MemorySize": 0,
- "Microarchitecture": "string",
- "CorrelationTracking": "string"
}, - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "Stats": {
- "BuildTimeInMilliseconds": 0,
- "BuildSizeInBytes": 0,
- "CreatedAt": 0
}
}Permanently deletes the build asset identified by the BuildID path parameter.
This operation cannot be performed on active builds.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
{- "error": "Bad Request",
- "message": "string"
}Returns a pre-signed URL to download the binary artifact for the build identified by the BuildID path parameter.
This is only available for builds with C0-microSD core class.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
{
}Returns URLs to the output files associated with the build.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
{- "Build": "string"
}Returns the list of variables discovered in the build.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
| startKey | string The key to start from when returning the list of variables. Used for paginating responses. |
{- "BuildID": "string",
- "Variables": [
- {
- "Object": "Variable",
- "Name": "string",
- "Type": "Variable",
- "File": "string",
- "Line": 0,
- "Function": "string"
}
], - "Count": 0,
- "ContinuationKey": "string"
}Cancels an active build identified by the BuildID path parameter.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
{- "Message": "Cancel Build Signal sent"
}Returns the list of tasks associated with the specified build.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
| startKey | string The key to start from when returning the list of tasks. Used for paginating responses. |
| from | string <date-time> Filter tasks by creation date - only include tasks created on or after this date. |
| to | string <date-time> Filter tasks by creation date - only include tasks created on or before this date. |
{- "BuildID": "string",
- "Tasks": [
- {
- "Object": "Task",
- "TaskID": "string",
- "BuildID": "string",
- "Owner": "string",
- "Status": "Accepted",
- "StatusTransitions": [
- {
- "Status": "string",
- "Timestamp": 0,
- "Message": "string"
}
], - "Arguments": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "StartedAt": 0,
- "UpdatedAt": 0,
- "CreatedAt": 0,
- "FinishedAt": 0,
- "Stats": {
- "DynamicInstructions": 0,
- "ProcessorTime": 0,
- "ExecutionTimeInMilliseconds": 0
}
}
], - "Count": 0,
- "ContinuationKey": "string"
}Creates a new task using the specified build.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
| Arguments | string Command-line arguments to pass to the application.
Defaults to the Build's | ||||||||
Array of objects (DataSource) [ 0 .. 5 ] items Data sources to attach to the Task. Defaults to the
Build's | |||||||||
Array ([ 0 .. 5 ] items)
| |||||||||
{- "Arguments": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
]
}{- "TaskID": "string"
}Creates a new build from a single-file source code. The source code is compiled and built using the specified core.
| DiscoverVariables | string Default: "false" Enum: "true" "false" If set to the string |
| Code required | string The source code to build. Can be provided as plain text or Base64 encoded. | ||||||||
| Language required | string Enum: "C" "C++" "Fortran" The programming language of the source code. | ||||||||
| CoreID | string The ID of the core to use for building. If omitted, the Signaloid Cloud Platform assigns the default Core with the lowest precision that is available to your account. | ||||||||
Array of objects (TraceVariableRequest) Default: [] Variables to trace in the built application. Defaults to an empty list. | |||||||||
Array
| |||||||||
Array of objects (DataSource) [ 0 .. 5 ] items Default: [] Data sources to use with this build. Defaults to an empty
list. Must be empty for the | |||||||||
Array ([ 0 .. 5 ] items)
| |||||||||
| Arguments | string Default: "" Command-line arguments to pass to the compiled program at runtime. Defaults to the empty string. | ||||||||
| IsPublic | boolean Default: false Marks the build as publicly accessible. When enabled, other users can run tasks based on this build without requiring authorization.
Only the literal value | ||||||||
| ConfigMk | string Contents of a | ||||||||
{- "Code": "string",
- "Language": "C",
- "CoreID": "string",
- "TraceVariables": [ ],
- "DataSources": [ ],
- "Arguments": "",
- "IsPublic": false,
- "ConfigMk": "string"
}{- "BuildID": "string"
}Creates a new task from a publicly accessible build. You can use this endpoint only with builds marked as public and does not require authorization.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
| Arguments | string Command-line arguments to pass to the application.
Defaults to the Build's | ||||||||
Array of objects (DataSource) [ 0 .. 5 ] items Data sources to attach to the Task. Defaults to the
Build's | |||||||||
Array ([ 0 .. 5 ] items)
| |||||||||
{- "Arguments": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
]
}{- "TaskID": "string"
}| path | string Default: "" Directory to list, relative to the authenticated user's storage
root. Defaults to the empty string, which — like |
| startKey | string Continuation token for paginated results. Omit on the first
request; on subsequent requests pass the URL-encoded
|
{- "count": 0,
- "items": [
- {
- "path": "string",
- "last_modified": 0,
- "size": 0,
- "etag": "string"
}
], - "nextContinuationToken": "string"
}| path required | string The relative path to the file or directory. |
| download | boolean Default: false If provided, returns a pre-signed download URL for the specified file instead of its metadata. This is a presence flag: the parameter is enabled by being
present, whatever its value. |
{- "count": 6,
- "items": [
- {
- "etag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
- "last_modified": 1665672906000,
- "path": "",
- "size": 0
}, - {
- "etag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
- "last_modified": 1665672906000,
- "path": "Signaloid/",
- "size": 0
}, - {
- "etag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
- "last_modified": 1665672906000,
- "path": "Signaloid/example-loadDistFromFile/",
- "size": 0
}, - {
- "etag": "\"18cedf0c989594d5d7b66d58ac2a499d\"",
- "last_modified": 1665672906000,
- "path": "Signaloid/example-loadDistFromFile/example.csd",
- "size": 4205
}, - {
- "etag": "\"3c41b0823f05cf86da0d560b0e033c03\"",
- "last_modified": 1665672907000,
- "path": "Signaloid/example-loadDistFromFile/example.csv",
- "size": 21
}, - {
- "etag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
- "last_modified": 1666947334000,
- "path": "sampleDir/",
- "size": 0
}
]
}| path required | string The relative path where the file or directory will be created. |
| directory | boolean Default: false If provided, creates a directory at the specified path instead of uploading a file. This is a presence flag: the parameter is enabled by being
present, whatever its value. |
| size | integer [ 1 .. 5368709120 ] The size of the file to be uploaded, in bytes. Required for file
uploads: when |
{- "message": "string",
- "upload_url": "string"
}| path required | string The relative path to the file or directory to delete. |
| recursive | boolean Default: false If provided, deletes directories and their contents recursively.
Valid only together with This is a presence flag: the parameter is enabled by being
present, whatever its value. |
| directory | boolean Default: false If provided, specifies that the path refers to a directory. This is a presence flag: the parameter is enabled by being
present, whatever its value. |
{- "message": "string"
}Returns the list of custom Signaloid cores available to the account. The response does not include the default cores available to all accounts.
| default | boolean Default: false By default this API will return your custom cores. By providing this parameter you will get back the default cores, created and managed by Signaloid for you. This is a presence flag: the parameter is enabled by being
present, whatever its value. |
{- "UserID": "usr_b0bf834b1ec54d6cb332cc1300efdcba",
- "Count": 3,
- "ContinuationKey": "cor_051481609fe04665b576ab066e378257",
- "Cores": [
- {
- "Object": "Core",
- "CoreID": "cor_051481609fe04665b576ab066e378257",
- "Owner": "usr_b0bf834b1ec54d6cb332cc1300efdcba",
- "CreatedAt": 1670405103,
- "UpdatedAt": 1670405103,
- "Name": "My Custom Athens Core",
- "Class": "C0",
- "Microarchitecture": "Athens",
- "CorrelationTracking": "Disable",
- "MemorySize": 2000000,
- "Precision": 32
}, - {
- "Object": "Core",
- "CoreID": "cor_3c336f8d8dd343a2b91ca278de0ba32c",
- "Owner": "usr_b0bf834b1ec54d6cb332cc1300efdcba",
- "CreatedAt": 1669821723,
- "UpdatedAt": 1669908393,
- "Name": "Custom Reference Core",
- "Class": "C0",
- "Microarchitecture": "Reference",
- "CorrelationTracking": "Disable",
- "MemorySize": 32000000,
- "Precision": 8
}, - {
- "Object": "Core",
- "CoreID": "cor_cd6071a8c67f4a8caad3a8950417d703",
- "Owner": "usr_b0bf834b1ec54d6cb332cc1300efdcba",
- "CreatedAt": 1669822394,
- "UpdatedAt": 1669822394,
- "Name": "Enceladus",
- "Class": "C0",
- "Microarchitecture": "Athens",
- "CorrelationTracking": "Autocorrelation",
- "MemorySize": 2000000,
- "Precision": 512
}
]
}Creates a new custom Signaloid Core. The new Core becomes available to the account and is returned in the response.
| Name required | string non-empty |
| Class required | string Enum: "C0" "C0Pro" "C0-microSD" "C0-microSD-plus" |
| Precision required | integer [ 4 .. 1000000 ] The precision of the core. The minimum value is 4. The maximum value is 8000 for the Athens Microarchitecture, and 1000000 (1M) for the Reference Microarchitecture. |
| MemorySize required | integer [ 256000 .. 4000000000 ] |
| Microarchitecture required | string (Microarchitecture) Enum: "Athens" "Atlas" "Jupiter" "Bypass" "Reference" The Core microarchitecture. The value is case-sensitive.
Note that the |
| CorrelationTracking required | string (CorrelationTracking) Enum: "Autocorrelation" "Disable" The value is case-sensitive. |
{- "Name": "My New Custom Core",
- "Class": "C0",
- "Microarchitecture": "Athens",
- "CorrelationTracking": "Autocorrelation",
- "MemorySize": 256000,
- "Precision": 128
}{- "Object": "Core",
- "CoreID": "cor_3ff9395ee9494f3d91a8e1b5999d737e",
- "Owner": "usr_b0bf834b1ec54d6cb332cc1300efdcba",
- "CreatedAt": 1677025457,
- "UpdatedAt": 1677025457,
- "Name": "My New Custom Core",
- "Class": "C0",
- "Microarchitecture": "Athens",
- "CorrelationTracking": "Autocorrelation",
- "MemorySize": 256000,
- "Precision": 128
}Returns the custom Signaloid core identified by the CoreID path
parameter.
| CoreID required | string (CoreID) cor_[a-z0-9]{32} The identifier of the Core resource. |
| default | boolean Default: false By default this API looks up a custom core owned by your account. By providing this parameter you look up a default core, created and managed by Signaloid. This is a presence flag: the parameter is enabled by being
present, whatever its value. |
{- "Object": "Core",
- "CoreID": "string",
- "Owner": "string",
- "Name": "string",
- "Class": "C0",
- "Precision": 4,
- "Microarchitecture": "Athens",
- "MemorySize": 256000,
- "CorrelationTracking": "Autocorrelation",
- "CreatedAt": 0,
- "UpdatedAt": 0
}Permanently deletes the custom Signaloid core identified by the CoreID
parameter.
| CoreID required | string (CoreID) cor_[a-z0-9]{32} The identifier of the Core resource. |
{- "message": "OK"
}Updates the custom Signaloid core identified by the CoreID parameter.
This method is useful for updating the core of a specific CoreID
without having to edit integrations that use this core. The request must
change at least one of the editable Core properties for the Signaloid
Cloud API to accept it. The response is the edited core.
| CoreID required | string (CoreID) cor_[a-z0-9]{32} The identifier of the Core resource. |
| Name required | string non-empty |
| Class required | string Enum: "C0" "C0Pro" "C0-microSD" "C0-microSD-plus" |
| Precision required | integer [ 4 .. 1000000 ] The precision of the core. The minimum value is 4. The maximum value is 8000 for the Athens Microarchitecture, and 1000000 (1M) for the Reference Microarchitecture. |
| MemorySize required | integer [ 256000 .. 4000000000 ] |
| Microarchitecture required | string (Microarchitecture) Enum: "Athens" "Atlas" "Jupiter" "Bypass" "Reference" The Core microarchitecture. The value is case-sensitive.
Note that the |
| CorrelationTracking required | string (CorrelationTracking) Enum: "Autocorrelation" "Disable" The value is case-sensitive. |
{- "Name": "string",
- "Class": "C0",
- "Precision": 4,
- "MemorySize": 256000,
- "Microarchitecture": "Athens",
- "CorrelationTracking": "Autocorrelation"
}{- "message": "OK"
}required | Array of objects (DataSources) [ 0 .. 5 ] items | ||||||||
Array ([ 0 .. 5 ] items)
| |||||||||
| Name required | string | ||||||||
{- "DataSources": [
- {
- "Location": "/mountPoint",
- "Object": "DataSource",
- "ResourceID": "signaloid-cloud-storage:/usr_000000000000000000000000000000ab",
- "ResourceType": "SignaloidCloudStorage"
}
], - "Name": "sampleDrive"
}{- "CreatedAt": 1666947436,
- "DataSources": [
- {
- "Location": "/mountPoint",
- "Object": "DataSource",
- "ResourceID": "signaloid-cloud-storage:/usr_000000000000000000000000000000ab",
- "ResourceType": "SignaloidCloudStorage"
}
], - "DriveID": "drv_c5ef68a00ba445ca8b191e4d24224002",
- "Name": "sampleDrive",
- "Object": "Drive",
- "Owner": "usr_000000000000000000000000000000ab",
- "UpdatedAt": 1666947436
}| driveID required | string (driveID) drv_[a-z0-9]{32} The identifier of the Drive resource. |
{- "CreatedAt": 1666947436,
- "DataSources": [ ],
- "DriveID": "drv_c5ef68a00ba445ca8b191e4d24224002",
- "Name": "sampleDrive",
- "Object": "Drive",
- "Owner": "usr_000000000000000000000000000000ab",
- "UpdatedAt": 1666947455
}| driveID required | string (driveID) drv_[a-z0-9]{32} The identifier of the Drive resource. |
Array of objects (DataSources) [ 0 .. 5 ] items | |||||||||
Array ([ 0 .. 5 ] items)
| |||||||||
| Name | string | ||||||||
{- "DataSources": [ ],
- "Name": "sampleDrive"
}{- "error": "Bad Request",
- "message": "Missing or malformed 'Name' field"
}Returns the health status of Signaloid Cloud services.
The health check system monitors:
{- "timestamp": "2025-05-16T13:55:25.605Z",
- "services": [
- {
- "service": "scdp",
- "status": "healthy",
- "timestamp": "2025-05-16T13:55:13.205Z",
- "details": {
- "responseTime": 147
}
}, - {
- "service": "scce-api",
- "status": "healthy",
- "timestamp": "2025-05-16T13:54:55.718Z",
- "details": {
- "responseTime": 1103,
- "endpoints": {
- "builds": {
- "status": 200,
- "responseTime": 810
}, - "tasks": {
- "status": 200,
- "responseTime": 182
}
}
}
}, - {
- "service": "scce-compute",
- "status": "healthy",
- "timestamp": "2025-05-16T13:45:51.347Z",
- "details": {
- "responseTime": 5660,
- "taskStatus": {
- "id": "tsk_54b1033f215343ecb714c687eee74220",
- "status": "Completed",
- "duration": 5506
}
}
}, - {
- "service": "scce-build",
- "status": "healthy",
- "timestamp": "2025-05-16T13:45:44.654Z",
- "details": {
- "responseTime": 14263,
- "buildStatus": {
- "id": "bld_2858641292e34c3186ae0058526fcccd",
- "status": "Completed",
- "duration": 14170
}, - "repoBuildStatus": {
- "id": "bld_765567fee84f4f47838ffee7e16c9ca7",
- "status": "Completed",
- "duration": 13423
}
}
}
]
}Returns the list of API keys for the authenticated user.
{- "UserID": "usr_000000000000000000000000000000ab",
- "Keys": [
- {
- "Object": "Key",
- "KeyID": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
- "Name": "My API Key",
- "Owner": "usr_000000000000000000000000000000ab",
- "CreatedAt": 1698241879,
- "ValidUntil": null
}
], - "Count": 1
}Creates a new API key for the authenticated user. The full API key is only returned once upon creation and cannot be retrieved again.
| Name required | string non-empty |
| ValidUntil | integer or null >= 0 |
{- "Name": "My New API Key",
- "ValidUntil": 1735689600
}{- "Object": "Key",
- "Key": "scce_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2_12345678",
- "KeyID": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
- "Name": "My New API Key",
- "Owner": "usr_000000000000000000000000000000ab",
- "ValidUntil": 1735689600,
- "CreatedAt": 1698241879
}Deletes an API key for the authenticated user. The key will be immediately invalidated and can no longer be used for authentication.
| KeyID required | string^[a-f0-9]{32}$ The identifier of the API Key resource. |
{- "message": "OK"
}Creates a new organization. Only users with an Enterprise tier subscription can create organizations. A user may only belong to one organization.
| Name required | string The display name of the organization. |
| DedicatedInstanceName | string Optional dedicated compute instance name. |
{- "Name": "string",
- "DedicatedInstanceName": "string"
}{- "OrganizationID": "string",
- "Name": "string",
- "Object": "Organization",
- "Owner": "string",
- "CreatedAt": 0,
- "UpdatedAt": 0,
- "DedicatedInstanceName": "string"
}Returns all pending organization invitations for the currently authenticated user.
{- "Invitations": [
- {
- "OrganizationID": "string",
- "OrganizationName": "string",
- "InvitedBy": "string"
}
], - "Count": 0
}Returns the organization resource identified by the OrganizationID path parameter.
| OrganizationID required | string The identifier of the Organization resource. |
{- "OrganizationID": "string",
- "Name": "string",
- "Object": "Organization",
- "Owner": "string",
- "CreatedAt": 0,
- "UpdatedAt": 0,
- "DedicatedInstanceName": "string"
}Returns the list of users belonging to the specified organization.
| OrganizationID required | string The identifier of the Organization resource. |
{- "OrganizationID": "string",
- "Users": [
- {
- "UserID": "string",
- "Username": "string",
- "Role": "Owner"
}
], - "Count": 0
}Invites a user to join the specified organization, sending an invitation email.
| OrganizationID required | string The identifier of the Organization resource. |
| Email required | string <email> Email address of the user to invite. |
| Role | string Enum: "Owner" "Member" Role to assign to the user. Defaults to Member. |
{- "Email": "user@example.com",
- "Role": "Owner"
}{- "error": "Bad Request",
- "message": "string"
}Updates the role of a user within the specified organization.
| OrganizationID required | string The identifier of the Organization resource. |
| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
| Role | string Enum: "Owner" "Member" |
{- "Role": "Owner"
}{- "error": "Bad Request",
- "message": "string"
}Removes the specified user from the organization.
| OrganizationID required | string The identifier of the Organization resource. |
| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
{- "error": "Bad Request",
- "message": "string"
}Plot a Reference Core run output value identified by the TaskID and ValueID path parameters.
Returns a PlotID and a direct URL that can be used to retrieve the
plot image.
| TaskID required | string (TaskID) tsk_[a-z0-9]{32} The identifier of the Task resource. |
| ValueID required | string (valueID) val_[a-z0-9]{32} The identifier of the Value resource. |
Plot a Laplace Core run Ux string by passing into the body of the request.
Returns a PlotID and a direct URL that can be used to retrieve the
plot image.
| payload required | string |
{- "payload": "string"
}Returns the list of git repositories available to the account.
| startKey | string (RepositoryID) rep_[a-z0-9]{32} Where to resume the list of Repositories. Use for paginating
responses. Pass back the |
{- "UserID": "string",
- "Repositories": [
- {
- "Object": "Repository",
- "RepositoryID": "string",
- "Owner": "string",
- "Commit": "string",
- "Branch": "string",
- "BuildDirectory": "string",
- "Arguments": "string",
- "Core": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "CreatedAt": 0,
- "UpdatedAt": 0
}
], - "Count": 0,
- "ContinuationKey": "string"
}Creates a new connection to a git repository. The request must contain
the URL of the repository, commit, branch, build directory, and default
command-line arguments. The Arguments field is required but may be the
empty string. The response is the created connected repository resource.
| RemoteURL required | string <uri> The URL of the git repository. | ||||||||
| Commit required | string The commit hash to check out. | ||||||||
| Branch required | string The branch name to check out. | ||||||||
| BuildDirectory required | string The directory in the repository where the Signaloid Cloud Engine should use as working directory when attempting to build the repository application. This directory is relative to the root of the repository. | ||||||||
| Arguments required | string or null Default: "" Default command-line arguments that the Signaloid Cloud
Engine should pass when executing the built repository
application. This field is required, but may be the empty
string. If sent as | ||||||||
| Core | stringcor_[a-z0-9]{32} The ID of the core to use for building. If omitted, the Signaloid Cloud Platform assigns the default Core with the lowest precision that is available to your account. | ||||||||
Array of objects (DataSource) [ 0 .. 5 ] items Default: [] Default data sources to use with this repository. Defaults to an empty list. | |||||||||
Array ([ 0 .. 5 ] items)
| |||||||||
Array of objects (TraceVariableRequest) Default: [] The default variables that the Signaloid Cloud Compute Engine should trace when executing the Repository application. Defaults to an empty list. | |||||||||
Array
| |||||||||
{- "Commit": "string",
- "Branch": "string",
- "BuildDirectory": "string",
- "Arguments": "",
- "Core": "string",
- "DataSources": [ ],
- "TraceVariables": [ ]
}{- "Object": "Repository",
- "RepositoryID": "string",
- "Owner": "string",
- "Commit": "string",
- "Branch": "string",
- "BuildDirectory": "string",
- "Arguments": "string",
- "Core": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "CreatedAt": 0,
- "UpdatedAt": 0
}Returns the connected git repository resource identified by the
RepositoryID parameter.
| RepositoryID required | string (RepositoryID) rep_[a-z0-9]{32} The identifier of the connected Repository resource. |
{- "Object": "Repository",
- "RepositoryID": "string",
- "Owner": "string",
- "Commit": "string",
- "Branch": "string",
- "BuildDirectory": "string",
- "Arguments": "string",
- "Core": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "CreatedAt": 0,
- "UpdatedAt": 0
}Permanently deletes the connected git repository resource identified by
the RepositoryID parameter.
| RepositoryID required | string (RepositoryID) rep_[a-z0-9]{32} The identifier of the connected Repository resource. |
{- "message": "OK"
}Updates the connected git repository resource identified by the
RepositoryID parameter. This method is useful for updating the
connected repository resource of a specific RepositoryID (e.g., to
change the branch it points at) without having to edit integrations that
use this repository. The request must change at least one of the
editable repository properties for the Signaloid Cloud API to accept it.
The response is the edited repository resource.
| RepositoryID required | string (RepositoryID) rep_[a-z0-9]{32} The identifier of the connected Repository resource. |
| RemoteURL | string <uri> | ||||||||
| Commit | string | ||||||||
| Branch | string | ||||||||
| BuildDirectory | string The directory in the repository where the Signaloid Cloud Engine should use as working directory when attempting to build the repository application. This directory is relative to the root of the repository. | ||||||||
| Arguments | string Default command-line arguments that the Signaloid Cloud Engine should pass when executing the built repository application. | ||||||||
| Core | string (CoreID) cor_[a-z0-9]{32} | ||||||||
Array of objects (DataSources) [ 0 .. 5 ] items | |||||||||
Array ([ 0 .. 5 ] items)
| |||||||||
Array of objects (TraceVariableRequest) The default variables that the Signaloid Cloud Compute Engine should trace when executing the Repository application. | |||||||||
Array
| |||||||||
{- "Commit": "string",
- "Branch": "string",
- "BuildDirectory": "string",
- "Arguments": "string",
- "Core": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
]
}{- "Object": "Repository",
- "RepositoryID": "string",
- "Owner": "string",
- "Commit": "string",
- "Branch": "string",
- "BuildDirectory": "string",
- "Arguments": "string",
- "Core": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "CreatedAt": 0,
- "UpdatedAt": 0
}Returns the list of Builds created from the Repository identified by
the RepositoryID path parameter. The list is sorted by field
CreatedAt in descending order and is limited to 25 Builds per page.
| RepositoryID required | string (RepositoryID) rep_[a-z0-9]{32} The identifier of the connected Repository resource. |
| startKey | string Where to resume the list of Builds. Use for paginating responses.
Pass back the |
| from | string <date-time> Filter Builds by creation date - only include Builds created on or after this date. |
| to | string <date-time> Filter Builds by creation date - only include Builds created on or before this date. |
{- "RepositoryID": "string",
- "Builds": [
- {
- "Object": "Build",
- "BuildID": "string",
- "Owner": "string",
- "Status": "Accepted",
- "StatusTransitions": [
- {
- "Status": "string",
- "Timestamp": 0,
- "Message": "string"
}
], - "StartedAt": 0,
- "DefaultArguments": "string",
- "DefaultDataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "Application": {
- "Type": "SourceCode",
- "SourceCode": {
- "Object": "SourceCode",
- "Code": "string",
- "Language": "C",
- "Arguments": ""
}, - "Repository": {
- "Object": "Repository",
- "RepositoryID": "string",
- "Owner": "string",
- "Commit": "string",
- "Branch": "string",
- "BuildDirectory": "string",
- "Arguments": "string",
- "Core": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "CreatedAt": 0,
- "UpdatedAt": 0
}
}, - "UpdatedAt": 0,
- "CreatedAt": 0,
- "FinishedAt": 0,
- "BuildArtifactAvailable": true,
- "IsPublic": true,
- "BuildCoreSpecs": {
- "Class": "string",
- "Precision": 0,
- "MemorySize": 0,
- "Microarchitecture": "string",
- "CorrelationTracking": "string"
}, - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "Stats": {
- "BuildTimeInMilliseconds": 0,
- "BuildSizeInBytes": 0,
- "CreatedAt": 0
}
}
], - "Count": 0,
- "ContinuationKey": "string"
}Creates a new build from the specified repository.
| RepositoryID required | string (RepositoryID) rep_[a-z0-9]{32} The identifier of the connected Repository resource. |
| DiscoverVariables | string Default: "false" Enum: "true" "false" If set to the string |
| CoreID | stringcor_[a-z0-9]{32} The Core to build for. Defaults to the Repository's | ||||||||
Array of objects (TraceVariableRequest) Variables to trace in the built application. Defaults to
the Repository's | |||||||||
Array
| |||||||||
Array of objects (DataSource) [ 0 .. 5 ] items Data sources to use with this build. Defaults to the
Repository's | |||||||||
Array ([ 0 .. 5 ] items)
| |||||||||
| Arguments | string Command-line arguments to pass to the application.
Defaults to the Repository's | ||||||||
| IsPublic | boolean Default: false Marks the build as publicly accessible. When enabled, other users can run tasks based on this build without requiring authorization.
Only the literal value | ||||||||
{- "CoreID": "string",
- "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "Arguments": "string",
- "IsPublic": false
}{- "BuildID": "string"
}Looks up a connected repository by its remote URL and branch. Returns the RepositoryID if a matching connected repository is found.
| remoteURL required | string The remote URL of the repository (e.g., https://github.com/owner/repo.git). |
| branch required | string The branch name to look up. |
{- "RepositoryID": "string"
}Returns the list of samples that were generated for the provided ValueID during the Reference Core task with the provided TaskID. In Reference Core Tasks, the Value identifiers (ValueID) are part of the standard output streams.
| TaskID required | string (TaskID) tsk_[a-z0-9]{32} The identifier of the Task resource. |
| ValueID required | string (valueID) val_[a-z0-9]{32} The identifier of the Value resource. |
| count | integer [ 0 .. 100000 ] Default: 10000 By default this API will return up to 10000 samples. By providing this parameter you can specify the number of samples returned. This parameter has a maximum limit of 100000. |
| continuationToken | string Opaque pagination token. Omit on the first request; on subsequent
requests pass the |
{- "Samples": [
- -1.0824527064791272,
- -1.1310969119258107,
- -1.0961994836548592,
- -1.0720671348781252,
- -1.1521749654880011,
- -1.1528152657116664,
- -1.1087047905171288,
- -1.1326621923296623,
- -1.0653820188992815,
- -1.0858505883930254,
- -1.1296963560287887,
- -1.1013858150162135,
- -1.0817764623439143,
- -1.1775805891128661,
- -1.070222023706863,
- -1.0750953816720847,
- -1.1568745145008779,
- -1.1036719268767403,
- -1.0878985057236494,
- -1.0993357638716614,
- -1.1407131752971837,
- -1.1437027951679817,
- -1.0901123548429996,
- -1.0891835247279822,
- -1.1566131594680455,
- -1.1163989797228004,
- -1.1022456684084043,
- -1.1367967100453717,
- -1.0960555317070564,
- -1.112673925381313,
- -1.1045915034476725,
- -1.1336645059101502
], - "Count": 32
}Returns a list of random samples from the provided Hexadecimal ("Ux") Data Format (Ux string). In non-Reference Core Tasks, distributions encoded as Ux strings are part of the standard output streams."
| count | integer [ 0 .. 100000 ] Default: 10000 By default this API will return up to 10000 samples. By providing this parameter you can specify the number of samples returned. This parameter has a maximum limit of 100000. |
The request body is required on this operation. A request without a
payload field is rejected with 400 Bad Request.
| payload required | string |
{- "payload": "string"
}{- "Samples": [
- -1.0824527064791272,
- -1.1310969119258107,
- -1.0961994836548592,
- -1.0720671348781252,
- -1.1521749654880011,
- -1.1528152657116664,
- -1.1087047905171288,
- -1.1326621923296623,
- -1.0653820188992815,
- -1.0858505883930254,
- -1.1296963560287887,
- -1.1013858150162135,
- -1.0817764623439143,
- -1.1775805891128661,
- -1.070222023706863,
- -1.0750953816720847,
- -1.1568745145008779,
- -1.1036719268767403,
- -1.0878985057236494,
- -1.0993357638716614,
- -1.1407131752971837,
- -1.1437027951679817,
- -1.0901123548429996,
- -1.0891835247279822,
- -1.1566131594680455,
- -1.1163989797228004,
- -1.1022456684084043,
- -1.1367967100453717,
- -1.0960555317070564,
- -1.112673925381313,
- -1.1045915034476725,
- -1.1336645059101502
], - "Count": 32
}Returns the list of Tasks in the account. The list is sorted by field
CreatedAt in descending order. To learn more about Tasks, see the Tasks section
in the Signaloid Cloud Platform Documentation.
| status | Array of strings (TaskStatus) Default: "" Items Enum: "Accepted" "Initialising" "Rescheduled" "In Progress" "Completed" "Cancelled" "Stopped" Filter the list of Tasks by status. By default the list includes
all Tasks. Repeat the parameter to filter on more than one status,
for example |
| startKey | string^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}... Where to resume the list of Tasks. Use for paginating responses.
Pass back the |
| from | string <date-time> Filter tasks by creation date - only include tasks created on or after this date. |
| to | string <date-time> Filter tasks by creation date - only include tasks created on or before this date. |
| noexpand | string Default: "false" Enum: "true" "false" By default each entry in |
| limit | integer [ 1 .. 500 ] Default: 25 The maximum number of Tasks to return in one page. The effective
maximum — and the value used when this parameter is omitted, is
not a number, or exceeds the maximum — is 25 for expanded
responses and 500 when |
{- "UserID": "string",
- "Count": 0,
- "ContinuationKey": "string",
- "Tasks": [
- {
- "Object": "Task",
- "TaskID": "string",
- "BuildID": "string",
- "Owner": "string",
- "Status": "Accepted",
- "StatusTransitions": [
- {
- "Status": "string",
- "Timestamp": 0,
- "Message": "string"
}
], - "Arguments": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "StartedAt": 0,
- "UpdatedAt": 0,
- "CreatedAt": 0,
- "FinishedAt": 0,
- "Stats": {
- "DynamicInstructions": 0,
- "ProcessorTime": 0,
- "ExecutionTimeInMilliseconds": 0
}
}
]
}Returns the Task resource identified by the TaskID path parameter. To
learn more about Tasks, see the Tasks section in the Signaloid Cloud
Developer Platform Documentation.
| TaskID required | string (TaskID) tsk_[a-z0-9]{32} The identifier of the Task resource. |
{- "Object": "Task",
- "TaskID": "string",
- "BuildID": "string",
- "Owner": "string",
- "Status": "Accepted",
- "StatusTransitions": [
- {
- "Status": "string",
- "Timestamp": 0,
- "Message": "string"
}
], - "Arguments": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "StartedAt": 0,
- "UpdatedAt": 0,
- "CreatedAt": 0,
- "FinishedAt": 0,
- "Stats": {
- "DynamicInstructions": 0,
- "ProcessorTime": 0,
- "ExecutionTimeInMilliseconds": 0
}
}Permanently deletes the Task identified by the TaskID path parameter.
This operation cannot be performed on active tasks.
| TaskID required | string (TaskID) tsk_[a-z0-9]{32} The identifier of the Task resource. |
{- "error": "Bad Request",
- "message": "string"
}Returns the Task resource identified by the TaskID path parameter.
You can only use this authentication-free endpoint for tasks created from public builds.
To learn more about Tasks, see the Tasks section in the Signaloid Cloud Developer Platform Documentation.
| TaskID required | string (TaskID) tsk_[a-z0-9]{32} The identifier of the Task resource. |
{- "Object": "Task",
- "TaskID": "string",
- "BuildID": "string",
- "Owner": "string",
- "Status": "Accepted",
- "StatusTransitions": [
- {
- "Status": "string",
- "Timestamp": 0,
- "Message": "string"
}
], - "Arguments": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Gateway"
}
], - "StartedAt": 0,
- "UpdatedAt": 0,
- "CreatedAt": 0,
- "FinishedAt": 0,
- "Stats": {
- "DynamicInstructions": 0,
- "ProcessorTime": 0,
- "ExecutionTimeInMilliseconds": 0
}
}Cancels the active Task identified by the TaskID path parameter.
| TaskID required | string (TaskID) tsk_[a-z0-9]{32} The identifier of the Task resource. |
{- "Message": "Cancel Task Signal sent"
}Returns URLs to the output files associated with the task.
| TaskID required | string (TaskID) tsk_[a-z0-9]{32} The identifier of the Task resource. |
{- "Stdout": "string",
- "Stderr": "string",
- "StdoutChunks": [
- "string"
]
}Returns URLs to the output files for the specified task. This endpoint is authentication-free and you can only use it for tasks created from public builds.
| TaskID required | string (TaskID) tsk_[a-z0-9]{32} The identifier of the Task resource. |
{- "Stdout": "string",
- "Stderr": "string",
- "StdoutChunks": [
- "string"
]
}Returns the requested output (Stdout or Stderr) for a specific task. Returns the plain text output, or a redirect to a download URL if output is larger than 5 MB. Optional query param to skip cache.
| TaskID required | string Task ID |
| Stream required | string Enum: "Stdout" "Stderr" Output stream (Stdout or Stderr) |
| skipCache | boolean Default: false If true, bypass the cached copy of the output. |
"string"Returns an output stream (Stdout or Stderr) for a Task that belongs to a public Build. This endpoint is authentication-free. It returns the output as plain text, or redirects to a download URL if the output exceeds 5 MB.
Note: this operation is currently non-functional. The deployed route exposes no way to select the output stream, so every request is rejected with
400 Bad Request. UseGET /tasks/{TaskID}/outputs/publicuntil this is resolved.
| TaskID required | string (TaskID) tsk_[a-z0-9]{32} The identifier of the Task resource. |
| skipCache | boolean Default: false If true, bypass the cached copy of the output. |
"string"| thingID required | string (thingID) thg_[a-z0-9]{32} The identifier of the Thing resource. |
{- "CreatedAt": 1641031200,
- "Name": "My Signaloid Test Thing (John Doe)",
- "Object": "Thing",
- "Owner": "usr_000000000000000000000000000000ab",
- "ThingID": "thg_2cb6173b9248462d8c5c21e5e683cadc",
- "ThingStatus": {
- "local_ipv4_address": "172.22.22.66",
- "updated_at": 1645177974
}, - "Topics": [
- "thg_2cb6173b9248462d8c5c21e5e683cadc/stream",
- "thg_2cb6173b9248462d8c5c21e5e683cadc/device"
], - "UpdatedAt": 0
}| thingID required | string (thingID) thg_[a-z0-9]{32} The identifier of the Thing resource. |
{- "items": [ ],
- "thing_id": "thg_2cb6173b9248462d8c5c21e5e683cadc",
- "user_id": "usr_000000000000000000000000000000ab"
}Returns the profile of the currently authenticated user. This is a convenience endpoint that does not require knowing your own UserID.
{- "CreatedAt": 1642170191405,
- "Object": "User",
- "Preferences": {
- "Editor_Execution_Arguments": "",
- "Editor_Execution_Core": "cor_0d65d1e8f57459079c0a036a3e09ae1d",
- "Editor_Execution_DataSources": "{\"Location\":\"sd0\",\"ResourceID\":\"signaloid-cloud-storage:/usr_000000000000000000000000000000ab\",\"ResourceType\":\"SignaloidCloudStorage\"}",
- "Editor_Layout": "vertical",
- "Editor_Layout_VariableViewer": false,
- "Editor_SourceCode": "CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8dXhody5oPgoKaW50Cm1haW4oaW50IGFyZ2MsIGNoYXIgKiAgYXJndltdKQp7Cglkb3VibGUJYSwgYiwgYzsKCglhID0gVXhId0RvdWJsZUdhdXNzRGlzdCgxMCwyKTsKCWIgPSBVeEh3RG91YmxlVW5pZm9ybURpc3QoMiwxMik7CglwcmludGYoImEgPSAlbGZcbiIsIGEpOwoJcHJpbnRmKCJiID0gJWxmXG4iLCBiKTsKCXByaW50ZigiYSA9ICVsZlxuIiwgYSk7CglwcmludGYoImIgPSAlbGZcbiIsIGIpOwoJcHJpbnRmKCJhID0gJWxmXG4iLCBhKTsKCXByaW50ZigiYiA9ICVsZlxuIiwgYik7CglwcmludGYoImEgPSAlbGZcbiIsIGEpOwoJcHJpbnRmKCJiID0gJWxmXG4iLCBiKTsKCgljID0gKGErYikvKGEtYik7CglwcmludGYoImMgPSAlbGZcbiIsIGMpOwoKCXJldHVybiAwOwp9",
- "Editor_Theme": "dawn",
- "Execution_DefaultCore": "cor_0d65d1e8f57459079c0a036a3e09ae1d",
- "Execution_DefaultDataSources": "{\"Location\":\"sd0\",\"ResourceID\":\"signaloid-cloud-storage:/usr_000000000000000000000000000000ab\",\"ResourceType\":\"SignaloidCloudStorage\"}",
- "Execution_DefaultReferenceCore": "cor_9a3efb0094405df5aeb61cf1f29606a0",
- "UpdatedAt": 1666627357
}, - "ResourceUsage": {
- "APIAccessCount": 1,
- "BucketCount": 0,
- "CloudStorageBytes": 16738,
- "ConcurrentTaskCount": 0,
- "CoreCount": 1,
- "DataDriveCount": 1,
- "DataSourceCount": 0,
- "DynamicInstructionCount": 32507228791,
- "GatewayCount": 0,
- "KeyCount": 1,
- "PlotCount": 127,
- "RepositoryCount": 0,
- "ResetsAt": 1698800400,
- "TaskCount": 181,
- "UpdatedAt": 1698241879
}, - "UserID": "usr_000000000000000000000000000000ab",
- "Username": "firstname.lastname@example.com"
}| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
{- "CreatedAt": 1642170191405,
- "Object": "User",
- "Preferences": {
- "Editor_Execution_Arguments": "",
- "Editor_Execution_Core": "cor_0d65d1e8f57459079c0a036a3e09ae1d",
- "Editor_Execution_DataSources": "{\"Location\":\"sd0\",\"ResourceID\":\"signaloid-cloud-storage:/usr_000000000000000000000000000000ab\",\"ResourceType\":\"SignaloidCloudStorage\"}",
- "Editor_Layout": "vertical",
- "Editor_Layout_VariableViewer": false,
- "Editor_SourceCode": "CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8dXhody5oPgoKaW50Cm1haW4oaW50IGFyZ2MsIGNoYXIgKiAgYXJndltdKQp7Cglkb3VibGUJYSwgYiwgYzsKCglhID0gVXhId0RvdWJsZUdhdXNzRGlzdCgxMCwyKTsKCWIgPSBVeEh3RG91YmxlVW5pZm9ybURpc3QoMiwxMik7CglwcmludGYoImEgPSAlbGZcbiIsIGEpOwoJcHJpbnRmKCJiID0gJWxmXG4iLCBiKTsKCXByaW50ZigiYSA9ICVsZlxuIiwgYSk7CglwcmludGYoImIgPSAlbGZcbiIsIGIpOwoJcHJpbnRmKCJhID0gJWxmXG4iLCBhKTsKCXByaW50ZigiYiA9ICVsZlxuIiwgYik7CglwcmludGYoImEgPSAlbGZcbiIsIGEpOwoJcHJpbnRmKCJiID0gJWxmXG4iLCBiKTsKCgljID0gKGErYikvKGEtYik7CglwcmludGYoImMgPSAlbGZcbiIsIGMpOwoKCXJldHVybiAwOwp9",
- "Editor_Theme": "dawn",
- "Execution_DefaultCore": "cor_0d65d1e8f57459079c0a036a3e09ae1d",
- "Execution_DefaultDataSources": "{\"Location\":\"sd0\",\"ResourceID\":\"signaloid-cloud-storage:/usr_000000000000000000000000000000ab\",\"ResourceType\":\"SignaloidCloudStorage\"}",
- "Execution_DefaultReferenceCore": "cor_9a3efb0094405df5aeb61cf1f29606a0",
- "UpdatedAt": 1666627357
}, - "ResourceUsage": {
- "APIAccessCount": 1,
- "BucketCount": 0,
- "CloudStorageBytes": 16738,
- "ConcurrentTaskCount": 0,
- "CoreCount": 1,
- "DataDriveCount": 1,
- "DataSourceCount": 0,
- "DynamicInstructionCount": 32507228791,
- "GatewayCount": 0,
- "KeyCount": 1,
- "PlotCount": 127,
- "RepositoryCount": 0,
- "ResetsAt": 1698800400,
- "TaskCount": 181,
- "UpdatedAt": 1698241879
}, - "UserID": "usr_000000000000000000000000000000ab",
- "Username": "firstname.lastname@example.com"
}| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
| remove | Array of strings Default: "" Names of preference keys to delete. Repeat the parameter to remove
more than one key, for example
When this parameter is present the request body is ignored, and
the operation only removes keys. A request that supplies neither a
body nor this parameter is rejected with |
| Preferences required | object |
{- "Preferences": {
- "Editor_Layout_VariableViewer": "true"
}
}{- "error": "Bad Request",
- "message": "Missing or malformed 'Name' field"
}Deletes the user account identified by the UserID path parameter. This operation initiates account deletion by disabling the account, invalidating all sessions, and scheduling data cleanup.
| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
{- "error": "Bad Request",
- "message": "string"
}Signs out the user from all devices by invalidating all active sessions. This operation revokes all refresh tokens associated with the user, requiring re-authentication on all devices. Only the authenticated user can perform this action on their own account.
| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
{- "message": "Successfully logged out from all sessions"
}Returns the customization settings for the specified user, including logo URL and organization membership.
| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
{- "UserID": "string",
- "Object": "Customization",
- "AtomicNetworks": true,
- "Organizations": [
- "string"
]
}Returns the GitHub integration status and details for the specified user.
| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
{- "UserID": "string",
- "Object": "GitHubIntegration",
- "GitHubLogin": "string"
}Creates or updates the GitHub integration for the specified user using an OAuth authorization code.
| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
| Code required | string GitHub OAuth authorization code. |
{- "Code": "string"
}{- "error": "Bad Request",
- "message": "string"
}Removes the GitHub OAuth integration for the specified user.
| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
{- "error": "Bad Request",
- "message": "string"
}Returns the activity logs for the specified user, queried from
CloudWatch Logs. Logs are available only for your own account;
requesting another user's logs returns 403 Forbidden.
| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
| startTime | integer <int64> Start of the query window, as a Unix timestamp in milliseconds. Defaults to seven days before the time of the request. |
| endTime | integer <int64> End of the query window, as a Unix timestamp in milliseconds. Defaults to the time of the request. |
| limit | integer >= 1 Default: 100 The maximum number of log entries to return. Defaults to 100. |
{- "logs": [
- { }
]
}Returns the current subscription information for the authenticated user, including tier and billing period.
{- "subscription": {
- "Tier": "string",
- "BillingPeriod": "monthly",
- "Status": "string"
}
}Updates the subscription tier or billing period for the authenticated user.
| freeTrialOption | boolean Default: false Request the change as a free trial. This is a presence flag: any non-empty value enables it. Omitting the parameter, or sending it empty, requests a normal subscription change. |
| PriceID | string Stripe price ID for the new subscription plan. |
{- "PriceID": "string"
}{- "error": "Bad Request",
- "message": "string"
}Sent when the status of a task changes. This webhook is triggered for all task status transitions.
The webhook endpoint must be configured with a valid API key or JWT token.
| version required | string Webhook payload version | ||||||||
| eventType required | string Type of the event | ||||||||
| userId required | string^usr_[a-zA-Z0-9]{32}$ ID of the user who owns the task | ||||||||
| timestamp required | string <date-time> Time when the event occurred | ||||||||
required | object | ||||||||
| |||||||||
{- "version": "1.0",
- "eventType": "task-status",
- "userId": "usr_1234567890abcdef1234567890abcdef",
- "timestamp": "2024-03-20T10:00:00Z",
- "data": {
- "taskId": "tsk_1234567890abcdef1234567890abcdef",
- "status": "In Progress",
- "message": "Task started successfully",
- "updatedAt": "2024-03-20T10:00:00Z"
}
}Sent when the status of a build changes. This webhook is triggered for all build status transitions.
The webhook endpoint must be configured with a valid API key or JWT token.
| version required | string Webhook payload version | ||||||||
| eventType required | string Type of the event | ||||||||
| userId required | string^usr_[a-zA-Z0-9]{32}$ ID of the user who owns the build | ||||||||
| timestamp required | string <date-time> Time when the event occurred | ||||||||
required | object | ||||||||
| |||||||||
{- "version": "1.0",
- "eventType": "build-status",
- "userId": "usr_1234567890abcdef1234567890abcdef",
- "timestamp": "2024-03-20T10:00:00Z",
- "data": {
- "buildId": "bld_1234567890abcdef1234567890abcdef",
- "status": "In Progress",
- "message": "Build started successfully",
- "updatedAt": "2024-03-20T10:00:00Z"
}
}Sent when a user's task count changes. This webhook is triggered when tasks are created or completed.
The webhook endpoint must be configured with a valid API key or JWT token.
| version required | string Webhook payload version | ||||||||||||
| eventType required | string Type of the event | ||||||||||||
| userId required | string^usr_[a-zA-Z0-9]{32}$ ID of the user whose task count changed | ||||||||||||
| timestamp required | string <date-time> Time when the event occurred | ||||||||||||
required | object | ||||||||||||
| |||||||||||||
{- "version": "1.0",
- "eventType": "task-count",
- "userId": "usr_1234567890abcdef1234567890abcdef",
- "timestamp": "2024-03-20T10:00:00Z",
- "data": {
- "UserID": "usr_1234567890abcdef1234567890abcdef",
- "Object": "User",
- "ResourceUsage": {
- "IncrementTaskCount": 1,
- "DecrementTaskCount": 0
}
}
}Sent when a user's build count changes. This webhook is triggered when builds are created or completed.
The webhook endpoint must be configured with a valid API key or JWT token.
| version required | string Webhook payload version | ||||||||||||
| eventType required | string Type of the event | ||||||||||||
| userId required | string^usr_[a-zA-Z0-9]{32}$ ID of the user whose build count changed | ||||||||||||
| timestamp required | string <date-time> Time when the event occurred | ||||||||||||
required | object | ||||||||||||
| |||||||||||||
{- "version": "1.0",
- "eventType": "build-count",
- "userId": "usr_1234567890abcdef1234567890abcdef",
- "timestamp": "2024-03-20T10:00:00Z",
- "data": {
- "UserID": "usr_1234567890abcdef1234567890abcdef",
- "Object": "User",
- "ResourceUsage": {
- "IncrementBuildCount": 1,
- "DecrementBuildCount": 0
}
}
}Sent when a user's task stats are updated. This webhook is triggered when task execution metrics change.
The webhook endpoint must be configured with a valid API key or JWT token.
| version required | string Webhook payload version | ||||||||||||
| eventType required | string Type of the event | ||||||||||||
| userId required | string^usr_[a-zA-Z0-9]{32}$ ID of the user whose task stats changed | ||||||||||||
| timestamp required | string <date-time> Time when the event occurred | ||||||||||||
required | object | ||||||||||||
| |||||||||||||
{- "version": "1.0",
- "eventType": "task-stats",
- "userId": "usr_1234567890abcdef1234567890abcdef",
- "timestamp": "2024-03-20T10:00:00Z",
- "data": {
- "UserID": "usr_1234567890abcdef1234567890abcdef",
- "Object": "User",
- "ResourceUsage": {
- "TotalDynamicInstructions": 1000000,
- "TotalExecutionTime": 5000
}
}
}Sent when a user's build stats are updated. This webhook is triggered when build metrics like size and time change.
The webhook endpoint must be configured with a valid API key or JWT token.
| version required | string Webhook payload version | ||||||||||||
| eventType required | string Type of the event | ||||||||||||
| userId required | string^usr_[a-zA-Z0-9]{32}$ ID of the user whose build stats changed | ||||||||||||
| timestamp required | string <date-time> Time when the event occurred | ||||||||||||
required | object | ||||||||||||
| |||||||||||||
{- "version": "1.0",
- "eventType": "build-stats",
- "userId": "usr_1234567890abcdef1234567890abcdef",
- "timestamp": "2024-03-20T10:00:00Z",
- "data": {
- "UserID": "usr_1234567890abcdef1234567890abcdef",
- "Object": "User",
- "ResourceUsage": {
- "TotalBuildSize": 1048576,
- "TotalBuildTime": 5000
}
}
}Creates a new webhook endpoint for receiving event notifications.
The infrastructure API supports webhook notifications for the following events:
task-status)Triggered when a task's status changes through any of these states:
Initializing - Task is being set upIn Progress - Task is actively runningCompleted - Task finished successfullyCancelled - Task was cancelled by userStopped - Task was stopped by systemFailed - Task encountered an errorPayload includes: taskId, status, message, and updatedAt.
build-status)Triggered when a build's status changes through any of these states:
Initializing - Build is being set upIn Progress - Build is actively runningCompleted - Build finished successfullyCancelled - Build was cancelled by userStopped - Build was stopped by systemFailed - Build encountered an errorPayload includes: buildId, status, message, and updatedAt.
task-count)Triggered when a user's task count changes (tasks created or completed).
Payload includes: userId, IncrementTaskCount, and DecrementTaskCount.
build-count)Triggered when a user's build count changes (builds created or completed).
Payload includes: userId, IncrementBuildCount, and DecrementBuildCount.
task-stats)Triggered when a user's task execution stats are updated.
Payload includes: userId, TotalDynamicInstructions, and TotalExecutionTime.
build-stats)Triggered when a user's build stats are updated.
Payload includes: userId, TotalBuildSize, and TotalBuildTime.
All webhook payloads follow this consistent structure:
{
"version": "1.0",
"eventType": "task-status|build-status|task-count|build-count|task-stats|build-stats",
"userId": "usr_[32-char-alphanumeric]",
"timestamp": "2024-03-20T10:00:00Z",
"data": {
// Event-specific data varies by event type
}
}
| url required | string <uri> The URL where webhook events will be sent |
| events required | Array of strings Items Enum: "task-status" "build-status" "task-stats" "build-stats" "task-count" "build-count" List of events to subscribe to |
| description | string Default: "" Optional description of the webhook. Defaults to the empty
string. A newly created webhook always starts with |
{- "events": [
- "task-status",
- "build-status"
], - "description": "Test webhook"
}{- "WebhookID": "wh-1234567890abcdef1234567890abcdef",
- "Events": [
- "task-status",
- "build-status"
], - "Description": "Test webhook",
- "Status": "active",
- "Secret": "whsec_1234567890abcdef1234567890abcdef",
- "CreatedAt": "2025-05-19T16:37:44.962Z",
- "UpdatedAt": "2025-05-19T16:37:44.962Z",
- "FailureCount": 0,
- "LastDeliveryStatus": null,
- "LastDeliveryTime": null,
- "Object": "webhook"
}Retrieves a list of all webhooks for the authenticated user
{- "webhooks": [
- {
- "WebhookID": "wh-1234567890abcdef1234567890abcdef",
- "Events": [
- "task-status",
- "build-status"
], - "Description": "Test webhook",
- "Status": "active",
- "Secret": "whsec_1234567890abcdef1234567890abcdef",
- "CreatedAt": "2025-05-19T16:37:44.962Z",
- "UpdatedAt": "2025-05-19T16:37:44.962Z",
- "FailureCount": 0,
- "LastDeliveryStatus": null,
- "LastDeliveryTime": null,
- "Object": "webhook"
}
], - "count": 4
}Retrieves details of a specific webhook.
| WebhookID required | string The webhook ID |
{- "WebhookID": "wh-1234567890abcdef1234567890abcdef",
- "Events": [
- "task-status",
- "build-status"
], - "Description": "Test webhook",
- "Status": "active",
- "Secret": "whsec_1234567890abcdef1234567890abcdef",
- "CreatedAt": "2025-05-19T16:37:44.962Z",
- "UpdatedAt": "2025-05-19T16:37:44.962Z",
- "FailureCount": 0,
- "LastDeliveryStatus": null,
- "LastDeliveryTime": null,
- "Object": "webhook"
}Updates the configuration of an existing webhook.
| WebhookID required | string The webhook ID |
| url | string <uri> |
| events | Array of strings Items Enum: "task-status" "build-status" "task-stats" "build-stats" "task-count" "build-count" |
| description | string |
| status | string Enum: "active" "disabled" |
{- "events": [
- "task-status",
- "build-status"
], - "description": "Updated test webhook",
- "status": "disabled"
}{- "WebhookID": "wh-1234567890abcdef1234567890abcdef",
- "Events": [
- "task-status",
- "build-status"
], - "Description": "Test webhook",
- "Status": "active",
- "Secret": "whsec_1234567890abcdef1234567890abcdef",
- "CreatedAt": "2025-05-19T16:37:44.962Z",
- "UpdatedAt": "2025-05-19T16:37:44.962Z",
- "FailureCount": 0,
- "LastDeliveryStatus": null,
- "LastDeliveryTime": null,
- "Object": "webhook"
}WebSocket connections to receive real-time events. This is a WebSocket-only endpoint that supports both JWT and API Key authentication.
The infrastructure API supports real-time events through the following channels:
build-status/{userId})Notifies about build lifecycle state changes:
Accepted - Build request has been acceptedInitializing - Build environment is being set upIn Progress - Build is actively runningRescheduled - Build has been rescheduledCompleted - Build finished successfullyCancelled - Build was cancelled by userStopped - Build was stopped by systemPayload includes: buildId, status, message, and timestamp.
task-status/{userId})Notifies about task lifecycle state changes:
Accepted - Task request has been acceptedInitializing - Task environment is being set upIn Progress - Task is actively runningRescheduled - Task has been rescheduledCompleted - Task finished successfullyCancelled - Task was cancelled by userStopped - Task was stopped by systemPayload includes: taskId, status, message, and timestamp.
build-stats/{userId})Provides build stats updates:
TotalBuildSize - Size of the build in bytesTotalBuildTime - Total build time in secondsPayload includes: buildId, TotalBuildSize, and TotalBuildTime.
task-stats/{userId})Provides task stats updates:
TotalDynamicInstructions - Number of dynamic instructions executedTotalExecutionTime - Total execution time in millisecondsPayload includes: taskId, TotalDynamicInstructions, and TotalExecutionTime.
build-count/{userId})Updates about build count changes:
IncrementBuildCount - Number of builds addedDecrementBuildCount - Number of builds removedPayload includes: userId, IncrementBuildCount, and DecrementBuildCount.
task-count/{userId})Updates about task count changes:
IncrementTaskCount - Number of tasks addedDecrementTaskCount - Number of tasks removedPayload includes: userId, IncrementTaskCount, and DecrementTaskCount.
Use the following helper function to extract the correct portion of IDs:
function idToChannel(signaloidUserId) {
return id.split("_")[1];
}
The WebSocket endpoint must be configured with a valid API key or JWT token. All messages are signed for verification.
All WebSocket messages follow this consistent structure:
{
"type": "connection_init|connection_ack|subscribe|subscribe_success|data|error|ka",
"id": "123e4567-e89b-12d3-a456-426614174000",
"channel": "builds/bld_123/status",
"payload": {
// Channel-specific data varies by event type
}
}
const WebSocket = require("ws");
const { v4: uuidv4 } = require("uuid");
const HTTP_DOMAIN = "realtime.signaloid.io";
const REALTIME_ENDPOINT = "wss://realtime.signaloid.io/event/realtime";
const SIGNALOID_API_KEY = "scce_xxx";
const USER_ID = "usr_xxx";
function getBase64URLEncoded(obj) {
return Buffer.from(JSON.stringify(obj)).toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
}
function getAuthProtocol() {
const header = getBase64URLEncoded({ host: HTTP_DOMAIN, authorization: SIGNALOID_API_KEY });
return [`header-${header}`, "aws-appsync-event-ws"];
}
function idToChannel(id) { return id.split("_")[1]; }
let ws = null;
let ready = false;
function subscribe(channel) {
if (!ws || !ready) return;
ws.send(JSON.stringify({
id: uuidv4(),
type: "subscribe",
channel,
authorization: { host: HTTP_DOMAIN, authorization: SIGNALOID_API_KEY }
}));
console.log("Subscribed:", channel);
}
async function connect() {
return new Promise((resolve, reject) => {
ws = new WebSocket(REALTIME_ENDPOINT, getAuthProtocol());
ws.on("open", () => ws.send(JSON.stringify({ type: "connection_init" })));
ws.on("message", (buf) => {
const msg = JSON.parse(buf.toString());
if (msg.type === "connection_ack") {
ready = true;
const uid = idToChannel(USER_ID);
subscribe(`build-status/${uid}`);
subscribe(`task-status/${uid}`);
subscribe(`build-stats/${uid}`);
subscribe(`task-stats/${uid}`);
subscribe(`build-count/${uid}`);
subscribe(`task-count/${uid}`);
resolve();
}
if (msg.type === "data") console.log("Event:", msg.payload || msg.event || msg);
});
ws.on("error", reject);
});
}
(async () => { await connect(); })();
| Authorization required | string Base64 URL encoded authorization header. Format:
{
"host": "realtime.signaloid.io",
"authorization": "Bearer |
| Sec-WebSocket-Protocol required | string WebSocket protocol header. Must include:
|
{- "type": "connection_init"
}WebSocket connections to receive real-time events.
The infrastructure API supports real-time events through the following channels:
public-task-status/{taskId})Notifies about task lifecycle state changes:
Accepted - Task request has been acceptedInitializing - Task environment is being set upIn Progress - Task is actively runningRescheduled - Task has been rescheduledCompleted - Task finished successfullyCancelled - Task was cancelled by userStopped - Task was stopped by systemPayload includes: taskId, status, message, and timestamp.
public-build-status/{buildId})Notifies about build lifecycle state changes.
Payload includes: buildId, status, message, and timestamp.
public-task-stats/{taskId})Notifies about task execution metric updates.
Payload includes: taskId, TotalDynamicInstructions, TotalExecutionTime.
public-build-stats/{buildId})Notifies about build metric updates.
Payload includes: buildId, TotalBuildSize, TotalBuildTime.
public-task-count/{userId})Notifies about changes to a user's running task count.
public-build-count/{userId})Notifies about changes to a user's running build count.
Use the following helper function to extract the correct portion of IDs:
function idToChannel(signaloidUserId) {
return id.split("_")[1];
}
All WebSocket messages follow this consistent structure:
{
"type": "connection_init|connection_ack|subscribe|subscribe_success|data|error|ka",
"id": "123e4567-e89b-12d3-a456-426614174000",
"channel": "builds/bld_123/status",
"payload": {
// Channel-specific data varies by event type
}
}
const WebSocket = require("ws");
const { v4: uuidv4 } = require("uuid");
const HTTP_DOMAIN = "public.realtime.signaloid.io";
const REALTIME_ENDPOINT = "wss://public.realtime.signaloid.io/event/realtime";
const TASK_ID = "tsk_xxx";
const SIGNALOID_API_KEY = "scce_xxx";
function getBase64URLEncoded(obj) {
return Buffer.from(JSON.stringify(obj)).toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
}
function getAuthProtocol() {
const header = getBase64URLEncoded({ host: HTTP_DOMAIN, authorization: "public" });
return [`header-${header}`, "aws-appsync-event-ws"];
}
function idToChannel(id) { return id.split("_")[1]; }
let ws = null;
let ready = false;
function subscribe(channel) {
if (!ws || !ready) return;
ws.send(JSON.stringify({
id: uuidv4(),
type: "subscribe",
channel,
authorization: { host: HTTP_DOMAIN, authorization: "public" }
}));
console.log("Subscribed:", channel);
}
async function connect() {
return new Promise((resolve, reject) => {
ws = new WebSocket(REALTIME_ENDPOINT, getAuthProtocol());
ws.on("open", () => ws.send(JSON.stringify({ type: "connection_init" })));
ws.on("message", (buf) => {
const msg = JSON.parse(buf.toString());
if (msg.type === "connection_ack") {
ready = true;
const taskId = idToChannel(TASK_ID);
subscribe(`task-status/${taskId}`);
resolve();
}
if (msg.type === "data") console.log("Event:", msg.payload || msg.event || msg);
});
ws.on("error", reject);
});
}
(async () => { await connect(); })();
| Authorization required | string Base64 URL encoded authorization header. Format: { "host": "public.realtime.signaloid.io", "authorization": "public" } |
| Sec-WebSocket-Protocol required | string WebSocket protocol header. Must include:
|
{- "type": "connection_init"
}