capsule

List capsules visible to the caller

Changed on
get/api/preview/capsules

Request

  • Base URL
    https://symbol.chat (the document declares no server; this is the origin it was published from)
  • URL
    https://symbol.chat/api/preview/capsules
  • Auth
    • HTTP bearer
    • or API key in cookie __Secure-next-auth.session-token
    • or OAuth 2
      Authorization code: https://mcp.symbol.chat/authorize
      Token URL: https://mcp.symbol.chat/token

Query parameters

typeIdstring

Filter to a single Type by id.

collectionIdstring

Filter to a collection by id. Requires typeId.

archived'true' | 'false'

Set to true to list archived capsules instead of active ones.

projectIdstring

Filter to a single Project by id.

skillstring

Set to true (or 1) to return only capsules that are Skills.

tagstring

Filter to capsules carrying this tag.

categorystring

Filter to capsules in this category slug.

created_withinstring

Relative window on creation date: an integer 1-9999 followed by h, d, or w (e.g. 8h, 3d, 2w). The legacy 24h/7d/30d values still work.

created_period'today' | 'yesterday' | 'this_week' | 'last_week' | 'this_month' | 'last_month' | 'this_year'

Named calendar window on creation date, resolved in the effective timezone.

created_afterstring

Inclusive lower bound on creation date. An ISO-8601 instant (2026-09-01T00:00:00Z), or an offset-less date or date-time (2026-09-01) read in the effective timezone.

created_beforestring

Exclusive upper bound on creation date. Same spellings as created_after.

updated_withinstring

Relative window on last-updated date (same grammar as created_within).

updated_period'today' | 'yesterday' | 'this_week' | 'last_week' | 'this_month' | 'last_month' | 'this_year'

Named calendar window on last-updated date, resolved in the effective timezone.

updated_afterstring

Inclusive lower bound on last-updated date. Same spellings as created_after.

updated_beforestring

Exclusive upper bound on last-updated date. Same spellings as created_after.

archived_withinstring

Relative window on archived date. Only valid with archived=true.

archived_period'today' | 'yesterday' | 'this_week' | 'last_week' | 'this_month' | 'last_month' | 'this_year'

Named calendar window on archived date. Only valid with archived=true.

archived_afterstring

Inclusive lower bound on archived date. Same spellings as created_after. Only valid with archived=true.

archived_beforestring

Exclusive upper bound on archived date. Same spellings as created_after. Only valid with archived=true.

tzstring

IANA timezone name (e.g. America/New_York) that named calendar periods resolve in for this request, overriding the caller's stored timezone.

stale'true' | 'false'

Set to true to return only stale capsules, or false to exclude stale ones. Absent leaves staleness unfiltered. true is not valid with archived=true — archived capsules are never stale.

incomplete'true' | 'false'

Set to true to list only unfinished (capture-first) capsules still awaiting completion. Honoured on the active list only; the archived view is history, not a work queue.

filterstring[]

Field-value filter, <field>:<op>:<value> where op is eq, in, contains, contains_any, gte, lte or covers (per the field's kind). Repeat the parameter to AND several filters; a range is a gte and an lte on the same field. in and contains_any are the any-of forms of eq and contains: the value is a JSON array of 1 to 100 strings, e.g. agent:in:["gaffer","all"], and every element is validated like a single value. covers reads a text field's stored value as a scope pattern (a/b, a/* or *) and matches when it covers the filter value; with no sort it orders the most specific pattern first. Requires typeId; a derived field is refused. On a reference (eq, in) or multi_reference (contains, contains_any) field the value is matched by the capsule it names, in any accepted form (@type/ref, @type/alias, a bare alias, or the capsule's id), so all of them match the same rows and a renamed alias still matches; an archived target is matched too. A value that names no capsule you can read is refused.

aggregatestring

Total over ALL matching capsules: count, or <op>:<field> where op is sum, avg, min or max over a number field. Returned as a top-level aggregate object; an empty match gives count 0 and value null. Requires typeId; a derived field is refused.

cursorstring

Opaque keyset cursor from a previous page's nextCursor.

limitinteger

Page size, 1–100. Defaults to 30.

sortstring

Sort order. Either a context key or a field sort. The context keys each listing accepts, its default marked: All capsules: newest (default), oldest, updated, title_asc. Within a Type (typeId): ref_desc (default), ref_asc, newest, updated, title_asc. Archived (archived=true): archived_newest (default), archived_oldest, newest, title_asc. A field sort is field:<name>:asc|desc (issue #2105), valid only with typeId, over a sortable non-derived field. An out-of-context key or an unsortable/derived field is rejected.

maxBytesinteger

Opt-in response size budget in bytes (size-budgeted paging).

contentLevel'metadata' | 'full'

Row content projection on the size-budgeted path. Defaults to metadata.

fieldsstring

Comma-separated opt-in heavy columns to include on full rows.

shape'mcp'

Assistant row shape for the size-budgeted page (maxBytes). Rows leave out keys at their default value and display-only keys, attachment previews carry only attachment facts, and on a typeId listing that returned rows the rows leave out their Type identity, which the page then carries once as type. No effect on a select page: its rows carry exactly the named fields and the page gets no type. No effect for a caller that does not reach the size-budgeted page.

selectstring

Comma-separated row selection: each row carries only id, ref and the named fields, for example title,summary,field_values.status. Accepts any full-listing field, content_excerpt, ref, bare field_values (every value) or field_values.<name> (one declared, non-derived field; requires typeId). Cannot be combined with contentLevel or fields. A selected page is size-budgeted and may return up to limit rows. API-key and MCP callers only; a web session gets a 400.

includestring

Opt-in enrichments. cover attaches each card's featured image (web only).

wsstring

Optional workspace context for the request. Same value rules as the MCP workspace tool argument. Omit to use the caller's default workspace.

Response

Successful response

hasMoreboolean
nextCursorstring nullable
typeobject

Present only on a shape=mcp page filtered by typeId that returned rows: the listed Type's id, name and slug, which the rows then leave out.

Changes

    • info

      added the new optional query request parameter shape

    • info

      added the optional property /// to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property // to the response with the status