Send a batch of the organization's own scores
const url = 'https://your-tenant-host/v1/streaming/example';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"rows":[{"user_id":"01928c4e-7d3a-7b2e-9f10-3c5d2a1b0e9f","window_end":"2026-10-17T00:00:00Z","churn":0.42}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://your-tenant-host/v1/streaming/example \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "rows": [ { "user_id": "01928c4e-7d3a-7b2e-9f10-3c5d2a1b0e9f", "window_end": "2026-10-17T00:00:00Z", "churn": 0.42 } ] }'Writes per-user values from the organization’s own model, read by rules as streaming.<pipeline>.<field>. Needs a key holding streaming:write, and a pipeline EdgeKit declared with source organization. The site is the key’s pin. 200 means read: each row landed or is counted under rejected. Safe to retry: a row older than the stored window_end is stale, never written over a fresher one.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Body
Section titled “Request Body”object
At most 1000. Each carries user_id (EdgeKit’s), window_end (ISO-8601 UTC, or epoch milliseconds) and the pipeline’s declared columns. A declared column the row omits keeps its stored value; an explicit null clears it. Undeclared columns are ignored. A site_id is ignored: the site is the key’s.
object
Example
[ { "user_id": "01928c4e-7d3a-7b2e-9f10-3c5d2a1b0e9f", "window_end": "2026-10-17T00:00:00Z", "churn": 0.42 }]Responses
Section titled “Responses”Read. Landed rows counted in received, the rest by reason.
object
Rows that landed.
Rows that did not land, by reason: missing_user_id, missing_window_end, unknown_site, unknown_user, erased, stale (older than the stored window_end), type_mismatch. Open: accept an unknown reason. received plus every count is the batch size.
object
Example
{ "rejected": { "unknown_user": 2, "stale": 1 }}Missing or invalid credential.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}Not allowed.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}Resource not found.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}Request body too large.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}Request validation failed.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}Unexpected error.
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}