curl --request GET \
--url https://api.citadel.example/api/v1/runs/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.citadel.example/api/v1/runs/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.citadel.example/api/v1/runs/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.citadel.example/api/v1/runs/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflow": "<string>",
"network": "mainnet",
"status": "running",
"event": "<string>",
"idempotency_key": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"failure_reason": "<string>",
"finished_at": "2023-11-07T05:31:56Z",
"outputs": {}
}Get a workflow run
Where a run is, what started it, what it produced, why it stopped. It takes no
network: the id is enough, and the answer carries the network the run’s workflow is
on.
Needs the read scope. A key limited to vaults is refused with 403 vault_limited.
curl --request GET \
--url https://api.citadel.example/api/v1/runs/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.citadel.example/api/v1/runs/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.citadel.example/api/v1/runs/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.citadel.example/api/v1/runs/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflow": "<string>",
"network": "mainnet",
"status": "running",
"event": "<string>",
"idempotency_key": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"failure_reason": "<string>",
"finished_at": "2023-11-07T05:31:56Z",
"outputs": {}
}Authorizations
An API key minted in the console (ctd_…). Authenticates; never authorizes funds. A key
carries scopes (read, wallets.write, transactions.write, events.write,
webhooks.write, policy.write) and may be limited to vaults, to IP addresses, and in
lifetime — see Authentication.
Path Parameters
Response
The run.
The network the data lives on. Required wherever it appears in a request — there is no
default network. One your installation does not serve: 422 network_not_served.
mainnet, testnet running, waiting, completed, failed, cancelled The name of the POST /events/{name} call that started the run, as the workflow listens on it; null for a run Citadel started (a deposit, a schedule) or another workflow called.
That call's idempotency key; null when it sent none, or when Citadel started the run.
What the steps produced.