Signals
Named time series — the data atoms everything else on the platform is built from.
A signal is a named time series: a key plus a stream of timestamped values. Signals are the platform's data atoms — every segment, pipeline, forecast, and goal ultimately reads from them.
There is no schema to declare and no create step. Push one value to a new key and the signal exists:
curl -X POST "$API_BASE/v1/signal/push" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{ "key": "daily_sales", "value": 12841.5 }'from predictai import PredictAI
client = PredictAI(token="pa_live_…", workspace_id="ws_…")
data = client.signals.post_signal_push(json={"key": "daily_sales", "value": 12841.5})
import { PredictAI } from "@predictai/sdk";
const client = new PredictAI({ token: "pa_live_…", workspaceId: "ws_…" });
const data = await client.signals.postSignalPush({ json: { key: "daily_sales", value: 12841.5 } });
{ "status": "ok" }That's it — daily_sales now shows up in /v1/signal, in the
segment builder, and in every analysis endpoint.
In this section
Concepts
Keys, types, units, groups, display names, and push vs pull.
Push & manage
Push values, list and inspect signals, delete, and manage metadata.
Events
Discrete occurrences — recorded under streams, automatically scored, listed alongside signals.
Analysis
Correlation, relevance, and causality between signals.
Bringing data in at volume — connectors, file uploads, scheduled jobs — lives in Ingestion. Turning signals into the exact table a model trains on is Segments. Training on them is Pipelines; letting the platform find what drives a target is Goals.

