---
title: "The judged text of the caller's own intervals in a range, for the words a split or a merge proposes"
method: GET
path: "/v1/intervals/text"
tags: ["entries"]
---

# The judged text of the caller's own intervals in a range, for the words a split or a merge proposes

`GET /v1/intervals/text`

## 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/text`
- Auth: HTTP bearer

Device-bound, and from R1 a desktop older than R1 only: a call naming R1 or later in `X-Six-Minute-Version`, or none, a call carrying `Origin`, or one from a device whose credential a daemon has used or that was exchanged is 403. Deleted at phase 7. The text the judgment read for each of the caller's intervals starting in `[from, to)` that a live draft of theirs covers, in time order; an interval with no text is left out. THE AUTHOR AND NOBODY ELSE: the range is always the caller's own. A released entry of the caller covering any of the range is a 409: its text was cleared at release, and nothing is split or merged after it. `activity_type` is always null: activity types are gone, and the field stays only for desktops from before the stream-only release, which require it (COMPAT(#180)). With `uncovered=true` the draft condition is dropped: the text of every one of the caller's own intervals starting in the range, covered or not, which is what the device reads back for intervals whose local text it no longer keeps (the 31-day rule) and to propose an entry over any range of intervals. Only then, each item also carries `summary` (the interval's stored plain summary, or null) and `windows` (the interval's screen evidence), and the answer carries `entries`: one item per part of each of the caller's own live entries, not deleted, that overlaps the range, the part's span and the entry's `matter_id` (null on no matter), in time order. A draft covers an interval, and a released entry makes the range a 409, only where one of its parts holds the time: the gap between two parts is no entry's.

## Query parameters

- `from` string, date-time, required
- `to` string, date-time, required
- `uncovered` 'true' | 'false'

## Response `200`

The judged text, by interval start.

- object
  - `text` object[], required
    - `t_start` string, date-time, required
    - `text` string, required
    - `summary` string, nullable
    - `t_end` string, date-time
    - `windows` object[]
      - `t_start` string, date-time, required
      - `t_end` string, date-time, required
      - `app` string, required
      - `bundle` string
      - `title` string, required
      - `host` string, nullable, required
      - `source` 'screen', required
      - `microphone` boolean
      - `camera` boolean
  - `activity_type` string, nullable, required
  - `entries` object[]
    - `t_start` string, date-time, required
    - `t_end` string, date-time, required
    - `matter_id` string, nullable, required

## Other responses

- `204`: Never answered: the confidential tier is gone (D-249); the follow-up removes it with the route.
- `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.
- `409`: The id or the email already belongs to something else.

---

[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)
