Tag Simulator
curl --request POST \
--url https://api.continuouslabs.ai/v1/simulators/{id}/tag \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reference": "billing:latest"
}
'package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.continuouslabs.ai/v1/simulators/{id}/tag"
payload := strings.NewReader("{\n \"reference\": \"billing:latest\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}import requests
url = "https://api.continuouslabs.ai/v1/simulators/{id}/tag"
payload = { "reference": "billing:latest" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({reference: 'billing:latest'})
};
fetch('https://api.continuouslabs.ai/v1/simulators/{id}/tag', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"artifact_digest": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
"created_at": "2026-01-15T12:00:00Z",
"id": "smr_01J8Z5X4K7M2N9P0Q1R2S3T4V5",
"instructions": "Return stable example data for every operation.",
"name": "billing-api",
"owner": "ws_01J8Z5X4K7M2N9P0Q1R2S3T4V4",
"parent": "",
"status": "ready",
"tags": [
"latest"
]
}{
"code": "auth_invalid",
"detail": "The API key is missing or invalid."
}{
"code": "auth_forbidden",
"detail": "The Simulator with ID \"smr_01J8Z5X4K7M2N9P0Q1R2S3T4V5\" belongs to the Continuous catalog and cannot be changed."
}{
"code": "simulator_not_found",
"detail": "No Simulator was found with ID \"smr_01J8Z5X4K7M2N9P0Q1R2S3T4V5\"."
}{
"code": "simulator_not_ready",
"detail": "The Simulator with ID \"smr_01J8Z5X4K7M2N9P0Q1R2S3T4V5\" is not ready. Wait for its build to finish before you retry."
}{
"code": "validation",
"detail": "The request does not satisfy the API contract."
}{
"code": "internal",
"detail": "The server encountered an unexpected error."
}Simulators
Tag Simulator
Assigns a name and tag to a ready Simulator.
POST
https://api.continuouslabs.ai
/
v1
/
simulators
/
{id}
/
tag
Tag Simulator
curl --request POST \
--url https://api.continuouslabs.ai/v1/simulators/{id}/tag \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reference": "billing:latest"
}
'package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.continuouslabs.ai/v1/simulators/{id}/tag"
payload := strings.NewReader("{\n \"reference\": \"billing:latest\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}import requests
url = "https://api.continuouslabs.ai/v1/simulators/{id}/tag"
payload = { "reference": "billing:latest" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({reference: 'billing:latest'})
};
fetch('https://api.continuouslabs.ai/v1/simulators/{id}/tag', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"artifact_digest": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
"created_at": "2026-01-15T12:00:00Z",
"id": "smr_01J8Z5X4K7M2N9P0Q1R2S3T4V5",
"instructions": "Return stable example data for every operation.",
"name": "billing-api",
"owner": "ws_01J8Z5X4K7M2N9P0Q1R2S3T4V4",
"parent": "",
"status": "ready",
"tags": [
"latest"
]
}{
"code": "auth_invalid",
"detail": "The API key is missing or invalid."
}{
"code": "auth_forbidden",
"detail": "The Simulator with ID \"smr_01J8Z5X4K7M2N9P0Q1R2S3T4V5\" belongs to the Continuous catalog and cannot be changed."
}{
"code": "simulator_not_found",
"detail": "No Simulator was found with ID \"smr_01J8Z5X4K7M2N9P0Q1R2S3T4V5\"."
}{
"code": "simulator_not_ready",
"detail": "The Simulator with ID \"smr_01J8Z5X4K7M2N9P0Q1R2S3T4V5\" is not ready. Wait for its build to finish before you retry."
}{
"code": "validation",
"detail": "The request does not satisfy the API contract."
}{
"code": "internal",
"detail": "The server encountered an unexpected error."
}Authorizations
Use a Continuous API key. Send it in the Authorization header as a Bearer token.
Path Parameters
Body
application/json
Minimum string length:
1Response
OK
Available options:
building, ready, failed Show child attributes
Show child attributes
Show child attributes
Show child attributes
