Download OpenAPI specification:Download
This is the Signaloid Cloud Compute Engine (SCCE) REST 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 REST API enables you to interface with the Signaloid Cloud Compute Engine programmatically.
The Signaloid Cloud Compute Engine REST 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.
Each tier allows a number of API key requests per billing period. Once an
API key has used them, requests with that key return 403 Forbidden
until the period resets or the account is upgraded.
Read more about how to obtain an API key in the
Authentication guide.
We make every effort to maintain backwards compatibility, but we reserve the right to make breaking changes to the REST API. We will announce breaking changes in the Signaloid Cloud Platform Release Notes.
List endpoints return one page at a time, with a Pagination object that
describes it:
Pagination.Links.Next. Next is
then left out, never null. Do not stop on an empty or short page, as
one can still have a Next.Pagination.Links.Next until it is absent.
Request Links.Next.Href as it is, or pass Links.Next.Cursor unchanged
as the cursor query parameter, with the same query parameters as before.
The links carry every query parameter of the request, with the limit
used. Next.Href also carries the values that SCCE chose for filters the
request left out, such as the time window of the logs. They count as the
request's own filters, so a request that follows Next.Href is not
refused for them.limit, or none, but still has a Next,
only when a filter that the list applies after reading, such as status
on Tasks or Builds, leaves items out, when an item was deleted while the
page was read, or when the items are too large for one response.status, from, to,
path, startTime, and endTime, on the lists that support them. Other
query parameters, such as limit, may change between pages. A repeated
filter counts with the value the list uses, the last one sent, except
status, whose values count in any order. The cursors of the default
Cores, from GET /cores?default, work for any user, as all users share
that list. The API refuses with 400 Bad Request a cursor that is malformed,
belongs to another user, or is the result of other filters.limit sets the page size. If you leave it out or set it to zero or a
negative number, the endpoint's default applies. A value above the
endpoint's maximum gets the maximum. Pagination.Limit reports the
value used.startKey query parameter and the ContinuationKey response field
are deprecated. They are a separate cursor: pass ContinuationKey as
startKey, and Next.Cursor as cursor, not interchangeable. If you use
both cursor and startKey, cursor prevails. Only endpoints that used
startKey will accept it for a short amount of time. The rest refuse startKey
with 400 Bad Request. A startKey is a bare key, so it is not checked
against the query parameters. A successful response whose page starts from startKey, as
the request has startKey and no cursor, has the Deprecation header
of RFC 9745.Pagination.Links.Next.Every Task runs in an isolated sandbox with these limits:
A Task that reaches a limit is stopped. Its status becomes Stopped, and
the Message of that status transition starts with ErrTimeout for the
time limit or ErrOutOfMemory for the memory limit. When the time limit
stops a Task, SCCE uploads any outputs the Task wrote up to that point.
You cannot set a shorter time limit for a Task. To stop a Task that runs
longer than you expect, cancel it with POST /tasks/{TaskID}/cancel.
The current page is the REST API reference. For more information about how to use the Signaloid REST API in your application and combine different requests, see the API Guides.
Returns the Buckets of the account. This list is paginated.
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| startKey | string (bucketID) bkt_[a-z0-9]{32} Deprecated Deprecated. Use |
| limit | integer Default: 25 The maximum number of items to return in one page. The default is 25 and the maximum 100. See Pagination. |
{- "UserID": "usr_000000000000000000000000000000ab",
- "BucketIDs": [ ],
- "Count": 0,
- "Pagination": {
- "Limit": 25,
}
}Connect a blob storage bucket from a third-party creating a Bucket resource. Currently supports Amazon S3 buckets.
Buckets have no mount path. Where a Bucket is mounted is set by the
Location of each data source that refers to it. A request that
sends the removed MountPath field is refused with 400 Bad Request.
| Name required | string |
| Account required | string |
| 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",
- "Read": true,
- "Write": false
}{- "Object": "Bucket",
- "BucketID": "string",
- "Owner": "string",
- "CreatedAt": 0,
- "UpdatedAt": 0,
- "Name": "string",
- "Account": "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",
- "Read": true,
- "Write": true
}| BucketID required | string (bucketID) bkt_[a-z0-9]{32} The identifier of the Bucket resource. |
| Name | string |
| Account | string |
| Read | boolean |
| Write | boolean |
| Region | string Accepted but not applied yet. The stored Bucket does not change
and does not report a |
{- "Name": "string",
- "Account": "string",
- "Read": true,
- "Write": true,
- "Region": "string"
}{- "message": "OK"
}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 Using a default | ||||||||
Array of objects (TraceVariableRequest) Variables to trace in the built application. Defaults to
the Repository's A build for an | |||||||||
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": "Bucket"
}
], - "Arguments": "string",
- "IsPublic": false
}{- "BuildID": "string"
}Returns the list of builds, sorted by field CreatedAt in
descending order.
This list is paginated.
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| startKey | string^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}... Deprecated Deprecated. Use |
| 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 default
and the maximum are 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": "Bucket"
}
], - "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": "Bucket"
}
], - "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",
- "DependencyTracking": "string",
- "CorrelationTracking": "string"
}, - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "Stats": {
- "BuildTimeInMilliseconds": 0,
- "BuildSizeInBytes": 0,
- "CreatedAt": 0
}
}
], - "Count": 0,
- "Pagination": {
- "Limit": 1,
- "Links": {
- "First": {
- "Href": "string"
}, - "Next": {
- "Href": "string",
- "Cursor": "string"
}
}
}, - "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": "Bucket"
}
], - "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": "Bucket"
}
], - "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",
- "DependencyTracking": "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": "Bucket"
}
], - "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": "Bucket"
}
], - "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",
- "DependencyTracking": "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 whose Core class is one of the
SD-card classes C0-microSD, C0-microSD-plus, and C0-SD. A build
on any other class returns 400 Bad Request.
| 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. This list is paginated.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| startKey | string <= 1014 characters Deprecated Deprecated. Use |
| limit | integer Default: 100 The maximum number of items to return in one page. The default and the maximum are 100. See Pagination. |
{- "BuildID": "string",
- "Variables": [
- {
- "Object": "Variable",
- "Name": "string",
- "Type": "Variable",
- "File": "string",
- "Line": 0,
- "Function": "string"
}
], - "Count": 0,
- "Pagination": {
- "Limit": 1,
- "Links": {
- "First": {
- "Href": "string"
}, - "Next": {
- "Href": "string",
- "Cursor": "string"
}
}
}, - "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, sorted
by field CreatedAt in descending order.
This list is paginated.
| BuildID required | string (BuildID) bld_[a-z0-9]{32} The identifier of the Build resource. |
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| startKey | string^#TASK#CREATED#[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-... Deprecated Deprecated. Use |
| 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. |
| limit | integer Default: 25 The maximum number of items to return in one page. The default is 25 and the maximum 100. See Pagination. |
{- "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": "Bucket"
}
], - "StartedAt": 0,
- "UpdatedAt": 0,
- "CreatedAt": 0,
- "FinishedAt": 0,
- "Stats": {
- "DynamicInstructions": 0,
- "ProcessorTime": 0,
- "ExecutionTimeInMilliseconds": 0
}
}
], - "Count": 0,
- "Pagination": {
- "Limit": 1,
- "Links": {
- "First": {
- "Href": "string"
}, - "Next": {
- "Href": "string",
- "Cursor": "string"
}
}
}, - "ContinuationKey": "string"
}Creates a new task using the specified build.
The Signaloid Cloud Compute Engine cannot run builds of the
C0-microSD, C0-microSD-plus and C0-SD Core classes, so a Task
on one of them returns 400 Bad Request. Run the build on the
matching Signaloid Compute Module instead.
Download the binary with GET /builds/{BuildID}/binary.
| 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": "Bucket"
}
]
}{- "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 non-empty The source code to build. Can be provided as plain text or Base64 encoded.
Must be a non-empty, non-whitespace string. An empty or
whitespace-only value is rejected with A source code Build can be at most 384 KB, counting
everything stored with it. That is the decoded source code
and | ||||||||
| 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 lowest-precision
Using a default | ||||||||
Array of objects (TraceVariableRequest) Default: [] Variables to trace in the built application. Defaults to
an empty list. A build for an | |||||||||
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.
The Signaloid Cloud Compute Engine cannot run builds of the
C0-microSD, C0-microSD-plus and C0-SD Core classes, so a Task
on one of them returns 400 Bad Request. Run the build on the
matching Signaloid Compute Module instead.
| 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": "Bucket"
}
]
}{- "TaskID": "string"
}Returns the files and directories in the user's storage. This list is paginated.
| path | string Default: "" Directory to list, relative to the authenticated user's storage
root. Defaults to the empty string, which lists the root
directory, as The listing is recursive. It includes the contents of every
subdirectory and the entry of the listed directory itself, whose
|
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| startKey | string Deprecated Deprecated. Use |
| limit | integer Default: 100 The maximum number of items to return in one page. The default and the maximum are 100. See Pagination. |
{- "Count": 6,
- "Files": [
- {
- "Path": "",
- "LastModified": 1665672906000,
- "Size": 0,
- "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\""
}, - {
- "Path": "Signaloid/",
- "LastModified": 1665672906000,
- "Size": 0,
- "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\""
}, - {
- "Path": "Signaloid/example-loadDistFromFile/",
- "LastModified": 1665672906000,
- "Size": 0,
- "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\""
}, - {
- "Path": "Signaloid/example-loadDistFromFile/example.csd",
- "LastModified": 1665672906000,
- "Size": 4205,
- "ETag": "\"18cedf0c989594d5d7b66d58ac2a499d\""
}, - {
- "Path": "Signaloid/example-loadDistFromFile/example.csv",
- "LastModified": 1665672907000,
- "Size": 21,
- "ETag": "\"3c41b0823f05cf86da0d560b0e033c03\""
}, - {
- "Path": "sampleDir/",
- "LastModified": 1666947334000,
- "Size": 0,
- "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\""
}
], - "Pagination": {
- "Limit": 100,
}
}Returns the metadata of a file, or, with download, a pre-signed
download URL for it. The endpoint does not list directories. A
directory path returns 404 Not Found. List directories with
GET /files.
| path required | string The relative path to the file or directory. |
| download | boolean Default: false If provided, the response also includes This is a presence flag and all values, i.e., |
Creates a directory, or returns a URL to upload a file to.
Directory: with the directory query parameter, the API creates
the directory at path and returns 200 with no UploadURL.
File: without directory, the request does not upload the file
content. Upload it in two steps:
size set to the exact size of the file
in bytes. The API checks that your storage usage plus size
stays within your tier's limit, and returns 403 Forbidden if it
does not. Otherwise it returns 200 with an UploadURL.PUT to UploadURL. The
body must be exactly size bytes, because the URL is signed for
that length. Do not add an Authorization header. The URL
expires 15 minutes after the API creates it.Uploading a file using the path of an existing file, replaces it.
| path required | string The relative path where the file or directory will be created. The parent directories do not need to exist. |
| directory | boolean Default: false If provided, creates a directory at the specified path instead of uploading a file. This is a presence flag and all values, i.e., |
| size | integer [ 1 .. 5368709120 ] The size of the file to be uploaded, in bytes. Required for file
uploads. When |
{- "message": "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 and all values, i.e., |
| directory | boolean Default: false If provided, specifies that the path refers to a directory. This is a presence flag and all values, i.e., |
{- "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.
This list is paginated.
| 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. The default cores your tier cannot use are left out, so on the
Free tier the |
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| startKey | string (CoreID) cor_[a-z0-9]{32} Deprecated Deprecated. Use |
| limit | integer Default: 100 The maximum number of items to return in one page. The default and the maximum are 100. See Pagination. |
{- "UserID": "usr_b0bf834b1ec54d6cb332cc1300efdcba",
- "Count": 3,
- "Pagination": {
- "Limit": 100,
}, - "Cores": [
- {
- "Object": "Core",
- "CoreID": "cor_051481609fe04665b576ab066e378257",
- "Owner": "usr_b0bf834b1ec54d6cb332cc1300efdcba",
- "CreatedAt": 1670405103,
- "UpdatedAt": 1670405103,
- "Name": "My Custom Athens Core",
- "Class": "C0Pro",
- "Microarchitecture": "Athens",
- "DependencyTracking": "None",
- "MemorySize": 8589934592,
- "Precision": 32
}, - {
- "Object": "Core",
- "CoreID": "cor_3c336f8d8dd343a2b91ca278de0ba32c",
- "Owner": "usr_b0bf834b1ec54d6cb332cc1300efdcba",
- "CreatedAt": 1669821723,
- "UpdatedAt": 1669908393,
- "Name": "Custom Reference Core",
- "Class": "C0Pro",
- "Microarchitecture": "Reference",
- "DependencyTracking": "None",
- "MemorySize": 8589934592,
- "Precision": 8
}, - {
- "Object": "Core",
- "CoreID": "cor_cd6071a8c67f4a8caad3a8950417d703",
- "Owner": "usr_b0bf834b1ec54d6cb332cc1300efdcba",
- "CreatedAt": 1669822394,
- "UpdatedAt": 1669822394,
- "Name": "Enceladus",
- "Class": "C0Pro",
- "Microarchitecture": "Athens",
- "DependencyTracking": "Basic",
- "MemorySize": 8589934592,
- "Precision": 512
}
]
}Creates a new custom Signaloid Core. The response contains its Core ID and properties.
A request whose Precision exceeds your tier's limits is refused
with 403 Forbidden when some higher tier does support the value,
and with 400 Bad Request when no tier does. You can find your tier
limits in the Allowance object of GET /users/{UserID} and find
the per-tier limits using GET /tiers.
The Signaloid Cloud Platform assigns MemorySize from the Core
class. The request may include it, but the API ignores the value.
An r7i Core needs only Name, Class and Microarchitecture,
which is Native. The API sets its Precision to 0 and
its DependencyTracking to None. A Bypass Core needs no
Precision or DependencyTracking either. The API sets them to 0
and None.
The API returns 400 Bad Request for the retired C0 Core class.
| Microarchitecture required | string Enum: "Athens" "Rome" "Jupiter" "Mercury" "Europa" "Bypass" "Reference" "Native" The Core microarchitecture. The value is case-sensitive. Not every microarchitecture is available for every Core class:
Each microarchitecture accepts only some
Which of these your account may actually use is a separate, tier-level
restriction. The list for your own account is returned as
|
| Precision | integer [ 0 .. 10000000 ] Required for every class except |
| Name required | string non-empty |
| Class required | string Enum: "C0Pro" "r7i" "C0-microSD" "C0-microSD-plus" "C0-SD" The Core class. The value is case-sensitive.
The Which classes your account may use is tier-gated, except |
| MemorySize | integer >= 0 Deprecated Accepted and ignored. The Signaloid Cloud Platform assigns the memory size from the Core class, and responses report that value. |
| DependencyTracking | string Enum: "None" "Basic" "Advanced" Required for every class except |
{- "Name": "My New Custom Core",
- "Class": "C0Pro",
- "Microarchitecture": "Athens",
- "DependencyTracking": "Basic",
- "Precision": 128
}{- "Object": "Core",
- "CoreID": "cor_3ff9395ee9494f3d91a8e1b5999d737e",
- "Owner": "usr_b0bf834b1ec54d6cb332cc1300efdcba",
- "CreatedAt": 1677025457,
- "UpdatedAt": 1677025457,
- "Name": "My New Custom Core",
- "Class": "C0Pro",
- "Microarchitecture": "Athens",
- "DependencyTracking": "Basic",
- "MemorySize": 8589934592,
- "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. |
{- "Microarchitecture": "Athens",
- "Precision": 10000000,
- "Object": "Core",
- "CoreID": "string",
- "Owner": "string",
- "Name": "string",
- "Class": "C0",
- "MemorySize": 0,
- "DependencyTracking": "None",
- "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.
The request must update at least one of the editable Core properties for
the Signaloid Cloud API to accept it. The response contains the properties
of the updated core.
A request whose Precision exceeds your tier's limits is refused
with 403 Forbidden when some higher tier does support the value,
and with 400 Bad Request when no tier does. You can find your tier
limits in the Allowance object of GET /users/{UserID} and find
the per-tier limits using GET /tiers.
The Signaloid Cloud Platform assigns MemorySize from the Core
class. The request may include it, but the API ignores the value.
An r7i Core needs only Name, Class and Microarchitecture,
which is Native. The API sets its Precision to 0 and
its DependencyTracking to None. A Bypass Core needs no
Precision or DependencyTracking either. The API sets them to 0
and None.
The API returns 400 Bad Request for the retired C0 Core class.
| CoreID required | string (CoreID) cor_[a-z0-9]{32} The identifier of the Core resource. |
| Microarchitecture required | string Enum: "Athens" "Rome" "Jupiter" "Mercury" "Europa" "Bypass" "Reference" "Native" The Core microarchitecture. The value is case-sensitive. Not every microarchitecture is available for every Core class:
Each microarchitecture accepts only some
Which of these your account may actually use is a separate, tier-level
restriction. The list for your own account is returned as
|
| Precision | integer [ 0 .. 10000000 ] Required for every class except |
| Name required | string non-empty |
| Class required | string Enum: "C0Pro" "r7i" "C0-microSD" "C0-microSD-plus" "C0-SD" The Core class. The value is case-sensitive.
The Which classes your account may use is tier-gated, except |
| MemorySize | integer >= 0 Deprecated Accepted and ignored. The Signaloid Cloud Platform assigns the memory size from the Core class, and responses report that value. |
| DependencyTracking | string Enum: "None" "Basic" "Advanced" Required for every class except |
{- "Microarchitecture": "Athens",
- "Precision": 10000000,
- "Name": "string",
- "Class": "C0Pro",
- "MemorySize": 0,
- "DependencyTracking": "None"
}{- "message": "OK"
}Returns the Drives of the account. This list is paginated.
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| startKey | string (driveID) drv_[a-z0-9]{32} Deprecated Deprecated. Use |
| limit | integer Default: 25 The maximum number of items to return in one page. The default is 25 and the maximum 100. See Pagination. |
{- "UserID": "usr_000000000000000000000000000000ab",
- "DriveIDs": [ ],
- "Count": 0,
- "Pagination": {
- "Limit": 25,
}
}required | Array of objects (DataSources) [ 0 .. 5 ] items | ||||||||
Array ([ 0 .. 5 ] items)
| |||||||||
| Name required | string | ||||||||
{- "DataSources": [
- {
- "Location": "sd0",
- "Object": "DataSource",
- "ResourceID": "signaloid-cloud-storage:/usr_000000000000000000000000000000ab",
- "ResourceType": "SignaloidCloudStorage"
}
], - "Name": "sampleDrive"
}{- "CreatedAt": 1666947436,
- "DataSources": [
- {
- "Location": "sd0",
- "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. This list is paginated.
Before pagination, this list returned every item in one response. See Pagination.
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| limit | integer Default: 100 The maximum number of items to return in one page. The default and the maximum are 100. See Pagination. |
{- "UserID": "usr_000000000000000000000000000000ab",
- "Keys": [
- {
- "Object": "Key",
- "KeyID": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
- "Name": "My API Key",
- "Owner": "usr_000000000000000000000000000000ab",
- "CreatedAt": 1698241879,
- "ValidUntil": null
}
], - "Count": 1,
- "Pagination": {
- "Limit": 100,
}
}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 When the key should expire, as a Unix timestamp in seconds.
Defaults to The unit is seconds, not the milliseconds used by the Build and
Task endpoints. A millisecond value here is read as a date far in
the future. A value in the past is rejected with
|
{- "Name": "My New API Key",
- "ValidUntil": 1830297599
}{- "Object": "Key",
- "Key": "scce_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2_12345678",
- "KeyID": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
- "Name": "My New API Key",
- "Owner": "usr_000000000000000000000000000000ab",
- "ValidUntil": 1830297599,
- "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",
- "Tier": "string",
- "Allowance": {
- "DynamicInstructionCount": 1000000000,
- "ExecutionTimeInMillisecondsCount": 36000000,
- "ConcurrentTaskCount": 4,
- "ConcurrentBuildCount": 4,
- "CloudStorageBytes": 512000000,
- "DataDriveCount": 1,
- "BucketCount": 1,
- "DataSourceCount": 1,
- "PlotCount": 100,
- "CoreCount": 1000000000000000,
- "RepositoryCount": 1000000000000000,
- "APIAccessCount": 1000,
- "KeyCount": 1,
- "MaxPrecisionBits": 256,
- "MaxReferenceQuality": 1024,
- "MaximumAttachedProcessorRam": 8589934592
}, - "CoreClasses": [
- {
- "Name": "C0Pro",
- "SupportedMicroarchitectures": [
- "Athens",
- "Rome",
- "Jupiter",
- "Mercury",
- "Europa",
- "Bypass",
- "Reference"
]
}
], - "Microarchitectures": [
- {
- "Name": "Athens",
- "DistributionTracking": true,
- "CustomPrecision": true,
- "PrecisionMustBePowerOfTwo": true,
- "DependencyTracking": [
- "None",
- "Basic"
]
}
], - "FieldConstraints": {
- "MemorySize": {
- "Minimum": 131072,
- "Maximum": 8589934592
}, - "Precision": {
- "Minimum": 4,
- "Maximum": 1000000
}
}
}Returns the pending organization invitations for the currently authenticated user. This list is paginated.
Before pagination, this list returned every item in one response. See Pagination.
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| limit | integer Default: 100 The maximum number of items to return in one page. The default and the maximum are 100. See Pagination. |
{- "Invitations": [
- {
- "OrganizationID": "string",
- "OrganizationName": "string",
- "InvitedBy": "string"
}
], - "Count": 0,
- "Pagination": {
- "Limit": 1,
- "Links": {
- "First": {
- "Href": "string"
}, - "Next": {
- "Href": "string",
- "Cursor": "string"
}
}
}
}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",
- "Tier": "string",
- "Allowance": {
- "DynamicInstructionCount": 1000000000,
- "ExecutionTimeInMillisecondsCount": 36000000,
- "ConcurrentTaskCount": 4,
- "ConcurrentBuildCount": 4,
- "CloudStorageBytes": 512000000,
- "DataDriveCount": 1,
- "BucketCount": 1,
- "DataSourceCount": 1,
- "PlotCount": 100,
- "CoreCount": 1000000000000000,
- "RepositoryCount": 1000000000000000,
- "APIAccessCount": 1000,
- "KeyCount": 1,
- "MaxPrecisionBits": 256,
- "MaxReferenceQuality": 1024,
- "MaximumAttachedProcessorRam": 8589934592
}, - "CoreClasses": [
- {
- "Name": "C0Pro",
- "SupportedMicroarchitectures": [
- "Athens",
- "Rome",
- "Jupiter",
- "Mercury",
- "Europa",
- "Bypass",
- "Reference"
]
}
], - "Microarchitectures": [
- {
- "Name": "Athens",
- "DistributionTracking": true,
- "CustomPrecision": true,
- "PrecisionMustBePowerOfTwo": true,
- "DependencyTracking": [
- "None",
- "Basic"
]
}
], - "FieldConstraints": {
- "MemorySize": {
- "Minimum": 131072,
- "Maximum": 8589934592
}, - "Precision": {
- "Minimum": 4,
- "Maximum": 1000000
}
}
}Returns the active members of the specified organization with
status=Active, or its pending invitations with status=Pending.
Each list is paginated on its own.
Without status, the response is the one from before pagination,
with both lists whole, as Users and Pending, with ActiveCount,
PendingCount and TotalCount, and no Pagination. It is
deprecated. Such a request cannot send cursor or limit, and is
refused with 400 Bad Request when the two lists together do not fit
in one response.
| OrganizationID required | string The identifier of the Organization resource. |
| status | string Enum: "Active" "Pending" Which list to return, |
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| limit | integer Default: 100 The maximum number of items to return in one page. The default and the maximum are 100. See Pagination. |
{- "Users": [
- {
- "UserID": "string",
- "Email": "string",
- "Username": "string",
- "Role": "Owner",
- "Status": "Active",
- "OrganizationID": "string",
- "Tier": "string",
- "JoinedAt": "string",
- "CreatedAt": "string",
- "UpdatedAt": "string"
}
], - "Count": 0,
- "Pagination": {
- "Limit": 1,
- "Links": {
- "First": {
- "Href": "string"
}, - "Next": {
- "Href": "string",
- "Cursor": "string"
}
}
}
}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, or cancels a pending invitation.
A member invitation that has been sent but is not yet accepted has no UserID.
You can cancel the pending invitation by passing the invited email address in the
same path position.
| OrganizationID required | string The identifier of the Organization resource. |
required | UserID (string) or string The identifier of the User to remove. This is their |
{- "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.
required | string or Array of numbers A Ux string, or a list of numeric samples. |
One of string A Ux string, or a list of numeric samples. | |
{- "Payload": "string"
}Returns the list of git repositories available to the account.
This list is paginated.
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| startKey | string (RepositoryID) rep_[a-z0-9]{32} Deprecated Deprecated. Use |
| limit | integer Default: 25 The maximum number of items to return in one page. The default is 25 and the maximum 100. See Pagination. |
{- "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": "Bucket"
}
], - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "CreatedAt": 0,
- "UpdatedAt": 0
}
], - "Count": 0,
- "Pagination": {
- "Limit": 1,
- "Links": {
- "First": {
- "Href": "string"
}, - "Next": {
- "Href": "string",
- "Cursor": "string"
}
}
}, - "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> non-empty The URL of the git repository. Unlike the other required string fields on this schema, this one may not be the empty string. | ||||||||
| Commit required | string >= 0 characters The commit to check out. Required to be present, but need not be a pinned commit hash. Pass | ||||||||
| Branch required | string >= 0 characters The branch to check out. Required to be present, but may be the empty string, which selects the repository's default branch as reported by the git host. Note that the empty string and the default branch's actual name are
not interchangeable for duplicate detection. Connecting the same
repository once with | ||||||||
| BuildDirectory required | string >= 0 characters 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. Required to be present, but may be the empty string, which builds from 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 lowest-precision A value naming one of the retired | ||||||||
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. A Build for an | |||||||||
Array
| |||||||||
{- "Commit": "HEAD",
- "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": "Bucket"
}
], - "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": "Bucket"
}
], - "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. |
| remove | Array of strings Default: "" Items Enum: "DataSources" "Core" "TraceVariables" Repository fields to reset, rather than assign. Only
Removing a field restores the platform default for it. With no
When this parameter is present the request body is ignored, and
the operation only resets fields. A request that supplies neither
a body nor this parameter is rejected with |
Required unless the remove query parameter is supplied, in which
case any body is ignored.
| RemoteURL | string <uri> The URL of the git repository. Changing this or | ||||||||
| Commit | string >= 0 characters The commit to check out. May be a pinned commit hash, or | ||||||||
| Branch | string >= 0 characters The branch to check out. May be the empty string, which selects the
repository's default branch as reported by the git host. Changing this
moves the Repository's duplicate-detection slot. See | ||||||||
| BuildDirectory | string >= 0 characters The directory in the repository that the Signaloid Cloud Engine should use as working directory when building the repository application, relative to the root of the repository. May be the empty string, which builds from the root of the repository. | ||||||||
| Arguments | string >= 0 characters Default command-line arguments that the Signaloid Cloud Engine should pass when executing the built repository application. May be the empty string, meaning no arguments. | ||||||||
| Core | stringcor_[a-z0-9]{32} The ID of the Core to use for building. Use A value naming one of the retired | ||||||||
Array of objects (DataSource) [ 0 .. 5 ] items Default data sources to use with this repository. Use
| |||||||||
Array ([ 0 .. 5 ] items)
| |||||||||
Array of objects (TraceVariableRequest) The default variables that the Signaloid Cloud Compute Engine should
trace when executing the Repository application. Use
| |||||||||
Array
| |||||||||
{- "Commit": "HEAD",
- "Branch": "string",
- "BuildDirectory": "string",
- "Arguments": "string",
- "Core": "string",
- "DataSources": [
- {
- "Object": "DataSource",
- "Location": "string",
- "ResourceID": "string",
- "ResourceType": "Bucket"
}
], - "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": "Bucket"
}
], - "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.
This list is paginated.
| RepositoryID required | string (RepositoryID) rep_[a-z0-9]{32} The identifier of the connected Repository resource. |
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| startKey | string^#BUILD#CREATED#[0-9]{4}-[0-9]{2}-[0-9]{2}T[0... Deprecated Deprecated. Use |
| 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. |
| limit | integer Default: 25 The maximum number of items to return in one page. The default is 25 and the maximum 100. See Pagination. |
{- "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": "Bucket"
}
], - "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": "Bucket"
}
], - "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",
- "DependencyTracking": "string",
- "CorrelationTracking": "string"
}, - "TraceVariables": [
- {
- "File": "string",
- "LineNumber": 0,
- "Expression": "string"
}
], - "Stats": {
- "BuildTimeInMilliseconds": 0,
- "BuildSizeInBytes": 0,
- "CreatedAt": 0
}
}
], - "Count": 0,
- "Pagination": {
- "Limit": 1,
- "Links": {
- "First": {
- "Href": "string"
}, - "Next": {
- "Href": "string",
- "Cursor": "string"
}
}
}, - "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 Using a default | ||||||||
Array of objects (TraceVariableRequest) Variables to trace in the built application. Defaults to
the Repository's A build for an | |||||||||
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": "Bucket"
}
], - "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, or with any other field, is rejected with
400 Bad Request.
| Payload required | string A Ux 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.
This list is paginated.
| 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 |
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| startKey | string^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}... Deprecated Deprecated. Use |
| 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 default
and the maximum are 25 for expanded responses and 500 when
|
{- "UserID": "string",
- "Count": 0,
- "Pagination": {
- "Limit": 1,
- "Links": {
- "First": {
- "Href": "string"
}, - "Next": {
- "Href": "string",
- "Cursor": "string"
}
}
}, - "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": "Bucket"
}
], - "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": "Bucket"
}
], - "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": "Bucket"
}
], - "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.
A Task whose Build is not public returns 404 Not Found.
| 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. An optional query parameter skips the cache. If a Task did not write to a stream, then its corresponding body is empty. A failure to read the output returns 404 Not Found, and can be temporary.
| 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"Returns the profile of the currently authenticated user. This is a convenience endpoint that does not require knowing your own UserID.
{- "Allowance": {
- "APIAccessCount": 1000,
- "BucketCount": 1,
- "CloudStorageBytes": 512000000,
- "ConcurrentBuildCount": 4,
- "ConcurrentTaskCount": 4,
- "CoreCount": 1000000000000000,
- "DataDriveCount": 1,
- "DataSourceCount": 1,
- "DynamicInstructionCount": 1000000000,
- "ExecutionTimeInMillisecondsCount": 36000000,
- "KeyCount": 1,
- "MaxPrecisionBits": 256,
- "MaxReferenceQuality": 1024,
- "MaximumAttachedProcessorRam": 8589934592,
- "PlotCount": 100,
- "RepositoryCount": 1000000000000000
}, - "CoreClasses": [
- {
- "Name": "C0Pro",
- "SupportedMicroarchitectures": [
- "Athens",
- "Rome",
- "Jupiter",
- "Bypass",
- "Reference"
]
}, - {
- "Name": "r7i",
- "SupportedMicroarchitectures": [
- "Native"
]
}, - {
- "Name": "C0-microSD",
- "SupportedMicroarchitectures": [
- "Athens",
- "Rome",
- "Bypass"
]
}, - {
- "Name": "C0-microSD-plus",
- "SupportedMicroarchitectures": [
- "Athens",
- "Rome",
- "Bypass"
]
}, - {
- "Name": "C0-SD",
- "SupportedMicroarchitectures": [
- "Athens",
- "Rome",
- "Bypass"
]
}
], - "CreatedAt": 1642170191405,
- "FieldConstraints": {
- "MemorySize": {
- "Minimum": 131072,
- "Maximum": 8589934592
}, - "Precision": {
- "Minimum": 4,
- "Maximum": 1000000
}
}, - "Industry": "robotics",
- "Microarchitectures": [
- {
- "Name": "Athens",
- "DistributionTracking": true,
- "CustomPrecision": true,
- "PrecisionMustBePowerOfTwo": true,
- "DependencyTracking": [
- "None",
- "Basic"
]
}, - {
- "Name": "Rome",
- "DistributionTracking": true,
- "CustomPrecision": true,
- "PrecisionMustBePowerOfTwo": true,
- "DependencyTracking": [
- "None",
- "Basic"
]
}, - {
- "Name": "Jupiter",
- "DistributionTracking": true,
- "CustomPrecision": true,
- "PrecisionMustBePowerOfTwo": true,
- "DependencyTracking": [
- "Advanced"
]
}, - {
- "Name": "Bypass",
- "DistributionTracking": false,
- "CustomPrecision": false,
- "PrecisionMustBePowerOfTwo": false,
- "FixedPrecision": 0,
- "DependencyTracking": [
- "None"
]
}, - {
- "Name": "Reference",
- "DistributionTracking": false,
- "CustomPrecision": false,
- "PrecisionMustBePowerOfTwo": false,
- "DependencyTracking": [
- "None"
]
}, - {
- "Name": "Native",
- "DistributionTracking": false,
- "CustomPrecision": false,
- "PrecisionMustBePowerOfTwo": false,
- "FixedPrecision": 0,
- "DependencyTracking": [
- "None"
]
}
], - "Object": "User",
- "OnboardingState": {
- "Tour_QuickStart_Completed": true,
- "Tour_Detailed_Completed": false,
- "UpdatedAt": 1666627357
}, - "Preferences": {
- "Editor_Execution_Arguments": "",
- "Editor_Execution_Core": "cor_748bc0ffd0855ada8bc2da70014dd749",
- "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_748bc0ffd0855ada8bc2da70014dd749",
- "Execution_DefaultDataSources": "{\"Location\":\"sd0\",\"ResourceID\":\"signaloid-cloud-storage:/usr_000000000000000000000000000000ab\",\"ResourceType\":\"SignaloidCloudStorage\"}",
- "Execution_DefaultReferenceCore": "cor_f8e4d85980b458bda1542f7a1067ebcc",
- "UpdatedAt": 1666627357
}, - "ResourceUsage": {
- "APIAccessCount": 1,
- "BucketCount": 0,
- "BuildTimeInMillisecondsCount": 412903,
- "CloudStorageBytes": 16738,
- "ConcurrentBuildCount": 0,
- "ConcurrentTaskCount": 0,
- "CoreCount": 1,
- "DataDriveCount": 1,
- "DataSourceCount": 0,
- "DynamicInstructionCount": 32507228791,
- "ExecutionTimeInMillisecondsCount": 1794326,
- "KeyCount": 1,
- "PlotCount": 127,
- "RegistryStorageBytes": 4831838208,
- "RepositoryCount": 0,
- "ResetsAt": 1698800400,
- "TaskCount": 181,
- "UpdatedAt": 1698241879
}, - "Role": "engineering",
- "Tier": "FreeTier",
- "UserID": "usr_000000000000000000000000000000ab",
- "Username": "firstname.lastname@example.com"
}| UserID required | string (UserID) usr_[a-z0-9]{32} The identifier of the User resource. |
{- "Allowance": {
- "APIAccessCount": 1000,
- "BucketCount": 1,
- "CloudStorageBytes": 512000000,
- "ConcurrentBuildCount": 4,
- "ConcurrentTaskCount": 4,
- "CoreCount": 1000000000000000,
- "DataDriveCount": 1,
- "DataSourceCount": 1,
- "DynamicInstructionCount": 1000000000,
- "ExecutionTimeInMillisecondsCount": 36000000,
- "KeyCount": 1,
- "MaxPrecisionBits": 256,
- "MaxReferenceQuality": 1024,
- "MaximumAttachedProcessorRam": 8589934592,
- "PlotCount": 100,
- "RepositoryCount": 1000000000000000
}, - "CoreClasses": [
- {
- "Name": "C0Pro",
- "SupportedMicroarchitectures": [
- "Athens",
- "Rome",
- "Jupiter",
- "Bypass",
- "Reference"
]
}, - {
- "Name": "r7i",
- "SupportedMicroarchitectures": [
- "Native"
]
}, - {
- "Name": "C0-microSD",
- "SupportedMicroarchitectures": [
- "Athens",
- "Rome",
- "Bypass"
]
}, - {
- "Name": "C0-microSD-plus",
- "SupportedMicroarchitectures": [
- "Athens",
- "Rome",
- "Bypass"
]
}, - {
- "Name": "C0-SD",
- "SupportedMicroarchitectures": [
- "Athens",
- "Rome",
- "Bypass"
]
}
], - "CreatedAt": 1642170191405,
- "FieldConstraints": {
- "MemorySize": {
- "Minimum": 131072,
- "Maximum": 8589934592
}, - "Precision": {
- "Minimum": 4,
- "Maximum": 1000000
}
}, - "Industry": "robotics",
- "Microarchitectures": [
- {
- "Name": "Athens",
- "DistributionTracking": true,
- "CustomPrecision": true,
- "PrecisionMustBePowerOfTwo": true,
- "DependencyTracking": [
- "None",
- "Basic"
]
}, - {
- "Name": "Rome",
- "DistributionTracking": true,
- "CustomPrecision": true,
- "PrecisionMustBePowerOfTwo": true,
- "DependencyTracking": [
- "None",
- "Basic"
]
}, - {
- "Name": "Jupiter",
- "DistributionTracking": true,
- "CustomPrecision": true,
- "PrecisionMustBePowerOfTwo": true,
- "DependencyTracking": [
- "Advanced"
]
}, - {
- "Name": "Bypass",
- "DistributionTracking": false,
- "CustomPrecision": false,
- "PrecisionMustBePowerOfTwo": false,
- "FixedPrecision": 0,
- "DependencyTracking": [
- "None"
]
}, - {
- "Name": "Reference",
- "DistributionTracking": false,
- "CustomPrecision": false,
- "PrecisionMustBePowerOfTwo": false,
- "DependencyTracking": [
- "None"
]
}, - {
- "Name": "Native",
- "DistributionTracking": false,
- "CustomPrecision": false,
- "PrecisionMustBePowerOfTwo": false,
- "FixedPrecision": 0,
- "DependencyTracking": [
- "None"
]
}
], - "Object": "User",
- "OnboardingState": {
- "Tour_QuickStart_Completed": true,
- "Tour_Detailed_Completed": false,
- "UpdatedAt": 1666627357
}, - "Preferences": {
- "Editor_Execution_Arguments": "",
- "Editor_Execution_Core": "cor_748bc0ffd0855ada8bc2da70014dd749",
- "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_748bc0ffd0855ada8bc2da70014dd749",
- "Execution_DefaultDataSources": "{\"Location\":\"sd0\",\"ResourceID\":\"signaloid-cloud-storage:/usr_000000000000000000000000000000ab\",\"ResourceType\":\"SignaloidCloudStorage\"}",
- "Execution_DefaultReferenceCore": "cor_f8e4d85980b458bda1542f7a1067ebcc",
- "UpdatedAt": 1666627357
}, - "ResourceUsage": {
- "APIAccessCount": 1,
- "BucketCount": 0,
- "BuildTimeInMillisecondsCount": 412903,
- "CloudStorageBytes": 16738,
- "ConcurrentBuildCount": 0,
- "ConcurrentTaskCount": 0,
- "CoreCount": 1,
- "DataDriveCount": 1,
- "DataSourceCount": 0,
- "DynamicInstructionCount": 32507228791,
- "ExecutionTimeInMillisecondsCount": 1794326,
- "KeyCount": 1,
- "PlotCount": 127,
- "RegistryStorageBytes": 4831838208,
- "RepositoryCount": 0,
- "ResetsAt": 1698800400,
- "TaskCount": 181,
- "UpdatedAt": 1698241879
}, - "Role": "engineering",
- "Tier": "FreeTier",
- "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
This parameter can be combined with a request body, or used on
its own with an empty body. A key that appears both in the body
and in this parameter is removed. A request that supplies
neither a body nor this parameter is rejected with
|
| Preferences | object | ||
object Map of onboarding progress flags. All values must be booleans, at most 50 keys per request. | |||
| |||
| Role | string or null <= 64 characters The user's role. Free-form string of printable
characters. Send | ||
| Industry | string or null <= 64 characters The user's industry. Free-form string of printable
characters. Send | ||
{- "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.
The entries are newest first, and the list is paginated. Each page continues with the entries older than the last one of the page before.
| 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 first request. A
later page sent with |
| endTime | integer <int64> End of the query window, as a Unix timestamp in milliseconds.
Defaults to the time of the first request. A later page sent with
|
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| limit | integer Default: 100 The maximum number of log entries to return in one page. The default is 100 and the maximum 10000. See Pagination. |
{- "logs": [
- { }
], - "Pagination": {
- "Limit": 1,
- "Links": {
- "First": {
- "Href": "string"
}, - "Next": {
- "Href": "string",
- "Cursor": "string"
}
}
}
}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"
}Returns every subscription tier and its associated limits.
It describes what each tier offers, and not the tiers applied
to a specific user account. For finding out the limits applied
to a user account, use GET /users/{UserID}.
A limit that does not apply on a tier is reported as null.
[- {
- "Tier": "FreeTier",
- "Limits": {
- "APIAccessCount": 0,
- "AuditableZeroDataRetention": true,
- "BucketCount": 0,
- "BuildTimeInMillisecondsCount": 0,
- "CloudStorageBytes": 0,
- "ConcurrentBuildCount": 0,
- "ConcurrentTaskCount": 0,
- "CoreAvailableMicroarchitectures": [
- "Athens"
], - "CoreCount": 0,
- "CoreMemorySizeBytesMaximum": 0,
- "CorePrecisionBits": 0,
- "CoreReferenceQuality": 0,
- "DataDriveCount": 0,
- "DataSourceCount": 0,
- "DedicatedSingleTenancyPrivateServerOption": true,
- "ExecutionTimeInMillisecondsCount": 0,
- "KeyCount": 0,
- "PlotCount": 0,
- "ProCoreVariants": true,
- "RegistryStorageBytesMaximum": 0,
- "RepositoryCount": 0
}
}
]Sent when the status of a task changes. This webhook is triggered for all task status transitions.
InitialisingIn ProgressRescheduledCompletedCancelledStoppedNo event is sent for Accepted. A Task canceled while Accepted
sends no events at all, so also read its status.
Completed, Cancelled and Stopped are terminal. There is no
Failed status. A task that failed has status Stopped with the
reason in Message.
Each delivery is signed. See "Verifying webhook deliveries" on
POST /webhooks.
| Version required | string Webhook payload version. | ||||||||
| ID required | string^whevt_[a-f0-9]{32}$ Unique ID of this delivery. The same value is sent in the
| ||||||||
| Event required | string The event that triggered the delivery. | ||||||||
| Created required | string <date-time> Time when the event occurred. | ||||||||
required | object | ||||||||
| |||||||||
{- "Version": "2.0",
- "ID": "whevt_1234567890abcdef1234567890abcdef",
- "Event": "task-status",
- "Created": "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.
InitialisingIn ProgressRescheduledCompletedCancelledStoppedNo event is sent for Accepted. A Build canceled while Accepted
sends no events at all, so also read its status.
Completed, Cancelled and Stopped are terminal. There is no
Failed status. A build that failed has status Stopped with the
reason in Message.
Each delivery is signed. See "Verifying webhook deliveries" on
POST /webhooks.
| Version required | string Webhook payload version. | ||||||||
| ID required | string^whevt_[a-f0-9]{32}$ Unique ID of this delivery. The same value is sent in the
| ||||||||
| Event required | string The event that triggered the delivery. | ||||||||
| Created required | string <date-time> Time when the event occurred. | ||||||||
required | object | ||||||||
| |||||||||
{- "Version": "2.0",
- "ID": "whevt_1234567890abcdef1234567890abcdef",
- "Event": "build-status",
- "Created": "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.
Each delivery is signed. See "Verifying webhook deliveries" on
POST /webhooks.
| Version required | string Webhook payload version. | ||||||||||||
| ID required | string^whevt_[a-f0-9]{32}$ Unique ID of this delivery. The same value is sent in the
| ||||||||||||
| Event required | string The event that triggered the delivery. | ||||||||||||
| Created required | string <date-time> Time when the event occurred. | ||||||||||||
required | object | ||||||||||||
| |||||||||||||
{- "Version": "2.0",
- "ID": "whevt_1234567890abcdef1234567890abcdef",
- "Event": "task-count",
- "Created": "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.
Each delivery is signed. See "Verifying webhook deliveries" on
POST /webhooks.
| Version required | string Webhook payload version. | ||||||||||||
| ID required | string^whevt_[a-f0-9]{32}$ Unique ID of this delivery. The same value is sent in the
| ||||||||||||
| Event required | string The event that triggered the delivery. | ||||||||||||
| Created required | string <date-time> Time when the event occurred. | ||||||||||||
required | object | ||||||||||||
| |||||||||||||
{- "Version": "2.0",
- "ID": "whevt_1234567890abcdef1234567890abcdef",
- "Event": "build-count",
- "Created": "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.
Each delivery is signed. See "Verifying webhook deliveries" on
POST /webhooks.
| Version required | string Webhook payload version. | ||||||||||||
| ID required | string^whevt_[a-f0-9]{32}$ Unique ID of this delivery. The same value is sent in the
| ||||||||||||
| Event required | string The event that triggered the delivery. | ||||||||||||
| Created required | string <date-time> Time when the event occurred. | ||||||||||||
required | object | ||||||||||||
| |||||||||||||
{- "Version": "2.0",
- "ID": "whevt_1234567890abcdef1234567890abcdef",
- "Event": "task-stats",
- "Created": "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.
Each delivery is signed. See "Verifying webhook deliveries" on
POST /webhooks.
| Version required | string Webhook payload version. | ||||||||||||
| ID required | string^whevt_[a-f0-9]{32}$ Unique ID of this delivery. The same value is sent in the
| ||||||||||||
| Event required | string The event that triggered the delivery. | ||||||||||||
| Created required | string <date-time> Time when the event occurred. | ||||||||||||
required | object | ||||||||||||
| |||||||||||||
{- "Version": "2.0",
- "ID": "whevt_1234567890abcdef1234567890abcdef",
- "Event": "build-stats",
- "Created": "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:
Initialising - Task is being set upIn Progress - Task is actively runningRescheduled - Task has been rescheduled, and will return to InitialisingCompleted - Task finished successfullyCancelled - Task was canceled by userStopped - Task was stopped by systemNo event is sent for Accepted. A Task canceled while Accepted
sends no events at all, so also read its status.
Completed, Cancelled and Stopped are terminal and no further
status event is sent for that task. There is no separate failure
status. A task that fails is reported as Stopped, with the reason in
Message. Clients that need to tell failure apart from a deliberate
stop should read the Message rather than waiting for a status value that
will never arrive.
Data includes: TaskID, Status, Message, and UpdatedAt.
build-status)Triggered when a build's status changes through any of these states:
Initialising - Build is being set upIn Progress - Build is actively runningRescheduled - Build has been rescheduled, and will return to InitialisingCompleted - Build finished successfullyCancelled - Build was canceled by userStopped - Build was stopped by systemNo event is sent for Accepted. A Build canceled while Accepted
sends no events at all, so also read its status.
Completed, Cancelled and Stopped are terminal. No further
status event is sent for that build. There is no separate failure
status. A build that fails is reported as Stopped, with the reason in
Message.
Data includes: BuildID, Status, Message, and UpdatedAt.
task-count)Triggered when a user's task count changes (tasks created or completed).
Data includes: UserID, Object, and ResourceUsage with
IncrementTaskCount and DecrementTaskCount.
build-count)Triggered when a user's build count changes (builds created or completed).
Data includes: UserID, Object, and ResourceUsage with
IncrementBuildCount and DecrementBuildCount.
task-stats)Triggered when a user's task execution stats are updated.
Data includes: UserID, Object, and ResourceUsage with
TotalDynamicInstructions and TotalExecutionTime.
build-stats)Triggered when a user's build stats are updated.
Data includes: UserID, Object, and ResourceUsage with
TotalBuildSize and TotalBuildTime.
Every delivery is a POST with this body:
{
"Version": "2.0",
"ID": "whevt_[32-char-hex]",
"Event": "task-status|build-status|task-count|build-count|task-stats|build-stats",
"Created": "2024-03-20T10:00:00Z",
"Data": {
// Event-specific data varies by event type
}
}
Version 2.0 made every field PascalCase, including those inside
Data. Version 1.0 used version, id, event, created and
data, with taskId, buildId, status, message and updatedAt
inside data. It is no longer sent.
Each delivery carries these headers:
Signaloid-Webhook-Id: the delivery's ID.Signaloid-Webhook-Timestamp: the Unix time, in seconds, when it was signed.Signaloid-Webhook-Signature: sha256= followed by the hex
HMAC-SHA256 of <timestamp>.<raw request body>, keyed with the
Secret of the webhook.Signaloid-Webhook-Version: the payload Version.The Secret is returned only in the response that creates the webhook.
Request fields are PascalCase. A request that sends the former
lowercase fields, such as url or events, is refused with
400 Bad Request.
A webhook is set to disabled after a run of consecutive failed deliveries.
| URL required | string <uri> The |
| Events required | Array of strings non-empty Items Enum: "task-status" "build-status" "task-stats" "build-stats" "task-count" "build-count" List of events to subscribe to, at least one |
| 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": "failed-500",
- "LastDeliveryTime": null,
- "Object": "webhook"
}Retrieves the webhooks of the authenticated user. This list is paginated.
Before pagination, this list returned every item in one response. See Pagination.
| cursor | string Where to resume the listing. Omit it on the first request. On later
requests, pass |
| limit | integer Default: 100 The maximum number of items to return in one page. The default and the maximum are 100. See Pagination. |
{- "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": "failed-500",
- "LastDeliveryTime": null,
- "Object": "webhook"
}
], - "Count": 4,
- "Pagination": {
- "Limit": 1,
- "Links": {
- "First": {
- "Href": "string"
}, - "Next": {
- "Href": "string",
- "Cursor": "string"
}
}
}
}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": "failed-500",
- "LastDeliveryTime": null,
- "Object": "webhook"
}Updates the configuration of an existing webhook. Request fields are
PascalCase. A request that sends the former lowercase fields, such as
url or status, is refused with 400 Bad Request.
| WebhookID required | string The webhook ID |
| URL | string <uri> |
| Events | Array of strings non-empty 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": "failed-500",
- "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:
Initialising - Build environment is being set upIn Progress - Build is actively runningRescheduled - Build has been rescheduledCompleted - Build finished successfullyCancelled - Build was canceled by userStopped - Build was stopped by systemNo event is sent for Accepted. A Build canceled while Accepted
sends no events at all, so also read its status.
Data includes: BuildID, Status, Message, and UpdatedAt.
task-status/{userId})Notifies about task lifecycle state changes:
Initialising - Task environment is being set upIn Progress - Task is actively runningRescheduled - Task has been rescheduledCompleted - Task finished successfullyCancelled - Task was canceled by userStopped - Task was stopped by systemNo event is sent for Accepted. A Task canceled while Accepted
sends no events at all, so also read its status.
Data includes: TaskID, Status, Message, and UpdatedAt.
A public task (one run with IsPublic set) sends its status events
only to public-task-status/{taskId} on the public realtime endpoint,
not to its owner's task-status/{userId} channel.
build-stats/{userId})Provides build stats updates:
TotalBuildSize - Size of the build in bytesTotalBuildTime - Total build time in secondsData includes: UserID, Object, and ResourceUsage with
TotalBuildSize and TotalBuildTime.
task-stats/{userId})Provides task stats updates:
TotalDynamicInstructions - Number of dynamic instructions executedTotalExecutionTime - Total execution time in millisecondsData includes: UserID, Object, and ResourceUsage with
TotalDynamicInstructions and TotalExecutionTime.
build-count/{userId})Updates about build count changes:
IncrementBuildCount - Number of builds addedDecrementBuildCount - Number of builds removedData includes: UserID, Object, and ResourceUsage with
IncrementBuildCount and DecrementBuildCount.
task-count/{userId})Updates about task count changes:
IncrementTaskCount - Number of tasks addedDecrementTaskCount - Number of tasks removedData includes: UserID, Object, and ResourceUsage with
IncrementTaskCount and DecrementTaskCount.
{userId} in a channel name is your user ID without its usr_
prefix. For the user usr_1234567890abcdef1234567890abcdef, subscribe
to build-status/1234567890abcdef1234567890abcdef. The idToChannel
helper in the example below strips the prefix.
connection_init messageconnection_ackThe WebSocket endpoint must be configured with a valid API key or JWT token. All messages are signed for verification.
Each data message carries one event in its event field, as a JSON
string. Parsed, every event has this shape:
{
"EventType": "task-status",
"Timestamp": "2024-03-20T10:00:00Z",
"Data": {
"TaskID": "tsk_1234567890abcdef1234567890abcdef",
"Status": "In Progress",
"Message": "Task started successfully",
"UpdatedAt": "2024-03-20T10:00:00Z"
}
}
EventType names the channel kind, such as task-status or
build-stats. Data varies by channel, as listed above. These
fields are PascalCase. The envelope fields (type, id, channel,
event) belong to the AWS AppSync Events protocol and stay lowercase.
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": "task-status/1234567890abcdef1234567890abcdef",
"event": "<the event, as a JSON string, on data messages>"
}
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) { const parts = id.split("_"); return parts.length > 1 ? parts[1] : id; }
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:", JSON.parse(msg.event));
});
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 public endpoint carries one channel, for the status of public
tasks. The public-build-status, public-task-stats,
public-build-stats, public-task-count and public-build-count
channels accept subscriptions, but no events are published on them.
public-task-status/{taskId})Notifies about task lifecycle state changes:
Initialising - Task environment is being set upIn Progress - Task is actively runningRescheduled - Task has been rescheduledCompleted - Task finished successfullyCancelled - Task was canceled by userStopped - Task was stopped by systemNo event is sent for Accepted. A Task canceled while Accepted
sends no events at all, so also read its status.
Data includes: TaskID, Status, Message, and UpdatedAt.
{taskId} in a channel name is the task ID without its tsk_
prefix. For the task tsk_1234567890abcdef1234567890abcdef, subscribe
to public-task-status/1234567890abcdef1234567890abcdef. The idToChannel
helper in the example below strips the prefix.
connection_init messageconnection_ackEvents have the same EventType, Timestamp and Data shape as on
the private real-time endpoint.
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": "public-task-status/1234567890abcdef1234567890abcdef",
"event": "<the event, as a JSON string, on data messages>"
}
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) { const parts = id.split("_"); return parts.length > 1 ? parts[1] : id; }
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(`public-task-status/${taskId}`);
resolve();
}
if (msg.type === "data") console.log("Event:", JSON.parse(msg.event));
});
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"
}