---
title: "The daemon uploads one cell's context, gzip, in order"
method: POST
path: "/v1/intervals/{from}/context"
tags: ["pipeline"]
---

# The daemon uploads one cell's context, gzip, in order

`POST /v1/intervals/{from}/context`

## Request

- Base URL: `https://api.sixminute.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sixminute.ai/v1/intervals/{from}/context`
- Auth: HTTP bearer

A device route: the device credential; any request carrying `Origin` is refused. The body is the context JSON (`schema_version` 2, or 1 from a three-process desktop, and its `header`), gzip with `Content-Encoding: gzip` or plain, at most 2 MB compressed and 8 MB decompressed (413). `from` in the path must equal the header's (422). It is stored by the credential's device and its `from`: 202 stores it sealed under the tenant key and answers the run; 200 is a repeat of the same body; 409 `context-conflict` is another body for the same cell, or a cell cut on another unit than the device's day's first; 410 `context-expired` is past the firm's retention; an interval starting more than an hour after the service's clock is 425 `context-early`, which the daemon keeps and sends again later. A three-process desktop's `seq` and Stop are ignored: a gap in `seq` is no error. No route answers a context's text.

## Path parameters

- `from` string, required

## Response `200`

A repeat of a stored context; nothing changed.

- object
  - `accepted` integer, required
  - `run_id` string
  - `recording_id` string

## Other responses

- `202`: Stored; the run that decides it.
- `400`: The body, query or path did not validate; `errors` lists the fields.
- `401`: No bearer token, or one that does not verify or has expired.
- `403`: The token verified but may not do this: no organisation, not provisioned, wrong role, or a device problem.
- `404`: No such row for this tenant.
- `409`: The id or the email already belongs to something else.
- `410`: The route is gone and changes nothing; the `type` says which.
- `413`: The body is larger than this route takes.
- `415`: The body's content type is not one this route takes.
- `422`: The request is well-formed but cannot be carried out as it stands.
- `425`: Too early: send the same request again later.

---

[API](https://skmtc.dev/sixminute/apis/sixminute-api.md) - [All operations](https://skmtc.dev/sixminute/apis/sixminute-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sixminute/apis/sixminute-api/revisions/605577eadc10?raw)
