Dashboard Live Theater
1 endpoints from the published OpenAPI import.
GET/api/v1/dashboard/client/events/recent
List Recent Events
Synthesize the last N campaign-lifecycle events from existing tables and return them in SSE-envelope shape. Skips events fired in the last 60 seconds — the SSE stream handles those, prevents double-render when prefill + live race.
V1.2: enriched payloads + card variety:
campaign.location.completednow JOINscampaign_workflow_jobsfor real per-locationsitesCrawled/emailsVerifiedcounts (previously hardcoded 0 → all KPIs except BUSINESSES showed 0).- Synthesized
campaign.vayapin.exportedevents frompublic.resultsworker_type='vayapin' so PINS KPI ticks and the Intel Feed has VayapinExportedCard variety. - Synthesized
campaign.business.foundevents fromcampaign_workflow_jobs(capped per campaign so business cards don't dominate the rolling buffer). - Per-event-type response quota — instead of chronological top-N biased toward whichever type has highest cadence, return up to
per_typeof each type. Keeps the Intel Feed visually varied.
Default window 7 days, max 30 days. Default 50 events, max 200.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
limit | query | integer | false | |
hours | query | integer | false |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/client/events/recent' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/client/events/recent",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/client/events/recent", {
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/client/events/recent", 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 |