Predict.aiDocs
Ingestion

Ingestion

Bring data in — connect databases, files, APIs, and webhooks, and keep signals flowing on a schedule.

Ingestion turns external data into signals — continuously. You connect a source once; the platform tests it, maps its fields, and syncs new rows on a schedule from then on:

Source    (a stored connection: database, file, API, webhook)
  └── Job (what to pull, how fields map, when to sync)
        └── Execution (one run of a job: progress, stats, errors)

You don't always need it. If your own code can push values, use the signal push API directly — it's one call. Use ingestion when the data lives somewhere else: a Postgres table, a CSV, a REST endpoint, or a provider that can only POST webhooks at you.

Thirty seconds of API

# 1. Inspect: paste a connection string; get back tested,
#    auto-mapped tables. Nothing is persisted.
curl -X POST "$API_BASE/v1/ingestion/connect/inspect" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Workspace-Id: $WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{ "connection_string": "postgresql://reader:[email protected]:5432/analytics" }'

# 2. Create: confirm the tables you want. One source + one sync
#    job per table; the historical backfill starts immediately.
curl -X POST "$API_BASE/v1/ingestion/connect/create" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Workspace-Id: $WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_string": "postgresql://reader:[email protected]:5432/analytics",
    "import_historical": true,
    "tables": [{ "table_name": "daily_sales", "frequency": "1h" }]
  }'
{
  "data": {
    "status": "created",
    "source_id": "3f8a1c2e-…",
    "job_ids": ["b7d94e10-…"],
    "import_historical": true,
    "message": "Connected. Importing history and syncing 1 table(s)."
  }
}

Data starts landing as signals within seconds. Ingested volume counts toward the workspace's included monthly allowance; overage bills per GB — see Billing.

In this section

Once data is in, browse it in Signals, shape it into a segment, and train on it with Pipelines.

On this page