Dashboard Flow Runs
4 endpoints from the published OpenAPI import.
GET/api/v1/dashboard/runs
List Runs
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
flow | query | any | false | |
status | query | any | false | |
mode | query | any | false | |
campaign_id | query | any | false | |
batch_id | query | any | false | |
limit | query | integer | false | |
offset | query | integer | false |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/runs' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/runs",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/runs", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/runs", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
GET/api/v1/dashboard/runs/{run_id}
Get Run
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
run_id | path | string | true |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/runs/{run_id}' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/runs/{run_id}",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/runs/{run_id}", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/runs/{run_id}", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
DELETE/api/v1/dashboard/runs/{run_id}
Delete Run
Soft-delete a run from the user's view.
Sets jobs.hidden_at = NOW() so the row vanishes from list_runs and get_run returns 410 Gone. Hard delete is not used because the cascade through campaign_workflow_jobs (3 FK columns ON DELETE CASCADE) would mangle finished campaigns and orphan rows in public.results / crm_sync_log (no FK guards). Soft-hide keeps audit trails and analytics intact while honoring "remove from my list" UX.
Constraints:
- Only terminal-status runs (succeeded / failed / cancelled) can be hidden — in-flight runs (queued / processing) return 422 so the user is steered to
/cancelfirst. - Tenant-scoped via
client_idfrom the cookie auth context. - Idempotent at the row level: hiding an already-hidden row is a no-op (rowcount=0 → 404 like any other not-found run).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
run_id | path | string | true |
Try it
Examples
cURL
curl -X DELETE 'https://spideriq.ai/api/v1/dashboard/runs/{run_id}' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.delete(
"https://spideriq.ai/api/v1/dashboard/runs/{run_id}",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/runs/{run_id}", {
method: "DELETE",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://spideriq.ai/api/v1/dashboard/runs/{run_id}", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
POST/api/v1/dashboard/runs/{run_id}/cancel
Cancel Run
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
run_id | path | string | true |
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/dashboard/runs/{run_id}/cancel' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/dashboard/runs/{run_id}/cancel",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/runs/{run_id}/cancel", {
method: "POST",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/dashboard/runs/{run_id}/cancel", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |