API-key reference

List the research portfolio

Read a bounded page of the caller's active Research threads and receive a cursor for the next page. Use it to build a durable list of investigations without requesting an unbounded collection in one response.

GET/api/v1/research/portfolio
API keyAPI key with research:read

Required boundary headers

x-api-key or Authorization: Bearer
Overview

What this route does

Use the portfolio route to build a caller-owned thread list. Pass the returned cursor to the next request rather than choosing an unbounded page size.

Contract

Request parameters

Query parameters

These are the query parameters the route reads; it ignores any other. An out-of-range `limit` or an over-long `cursor` returns 422.

cursorOptionalquery string

Continues a portfolio list from the position returned by the previous page. Pass it back unchanged and keep it within the 128-character limit so paging remains stable and owner-scoped.

limitOptionalquery integer

Controls how many thread summaries the page should return. The value can be from 1 through 100, and the server returns 20 when no limit is supplied.

Default: 20

Examples

Request and response

Example request

bash
curl "https://vidbyte-backend.onrender.com/api/v1/research/portfolio?limit=20" \ -H "x-api-key: $VIDBYTE_API_KEY"

Example response

JSON
{ "threads": [{ "encrypted_id": "3f2504e0-4f89-41d3-9a0c-0305e82c3301", "thread_id": "rth_...", "title": "AI tutoring evidence", "run_count": 2, "source_count": 12, "artifact_count": 8, "latest_run_id": "rrun_example", "latest_run_status": "completed", "created_at": "2026-08-10T10:00:00Z", "updated_at": "2026-08-10T12:00:00Z" }], "next_cursor": "opaque_cursor_reference" }
Response

Response and errors

  • Returns bounded thread summaries and next_cursor.
  • Deleted threads are excluded. Each row also carries the internal thread_id (rth_...), which no route accepts, and latest_run_id, which the run status route accepts; address a thread by its encrypted_id.