---
title: "Retrieve one stable snapshot page of workspace responses, optionally filtered by collection and acceptance time. Continue with nextCursor."
method: GET
path: "/v1/responses"
---

# Retrieve one stable snapshot page of workspace responses, optionally filtered by collection and acceptance time. Continue with nextCursor.

`GET /v1/responses`

## Request

- Base URL: `http://127.0.0.1:8080`
- URL: `http://127.0.0.1:8080/v1/responses`
- Auth: HTTP bearer

Responses are ordered by an immutable acceptance sequence. The first page fixes a snapshot boundary; responses accepted after that boundary are excluded from every continuation. nextCursor binds the original limit and filters. Supplying a different filter or limit with a cursor returns 400. acceptedFrom is inclusive and acceptedTo is exclusive.

## Query parameters

- `limit` integer
- `cursor` string
- `collectionId` string, uuid
- `acceptedFrom` string, date-time
- `acceptedTo` string, date-time

## Headers

- `X-Likerts-Workspace` string

## Response `200`

Success

- ResponsePage
  - `items` Response[], required
    - `receipt` Receipt, required: Immutable acknowledgement of one accepted response. Likerts does not meter or charge responses.
      - `responseId` string, uuid, required
      - `collectionId` string, uuid, required
      - `accepted` unknown, required
    - `answers` object, required: Question-ID keyed answers. Strings for text/date/single_choice; unique option-ID string arrays for multiple_choice; numbers for number; integers for scale. Required questions must be answered, unknown IDs rejected, bounds/options/date validity checked against published schema. Optional answers are omitted, not null.
    - `metadata` object, required: Untrusted caller metadata; compact serialized JSON must be at most 4096 bytes.
    - `acceptedAt` string, date-time, required: Server acceptance time in UTC.
  - `nextCursor` string, nullable, required: Opaque continuation cursor; null when the snapshot is exhausted.

## Other responses

- `400`: Invalid limit, time range or cursor; or cursor/query mismatch.
- `401`: Missing/invalid bearer credential, including wrong collection credential.
- `403`: The credential scope, membership or role does not permit this operation.
- `429`: Admission or collection rate limit reached. Honor Retry-After in seconds; admission usually returns1, the collection minute window returns60.
- `500`: Internal failure; do not assume a write failed. Retry only with its original idempotency key and payload.
- `503`: Distributed request admission is temporarily unavailable. No protected handler ran; honor Retry-After.

---

[API](https://skmtc.dev/likerts/apis/likerts-development-api.md) · [All operations](https://skmtc.dev/likerts/apis/likerts-development-api/llms.txt) · [OpenAPI document](https://skmtc.dev/likerts/apis/likerts-development-api/revisions/c583fa096c07?raw)
