Skip to main content
POST
Search Episodes

Authorizations

Authorization
string
header
required

Bearer token issued by Softmax

Body

application/json
where
Where · object | null

Filter AST. Composites: {op: and|or, clauses: [node, ...]} and {op: not, clause: node}. Leaves: {op: eq|ne|gt|gte|lt|lte|in|like|ilike|exists|contains|includes|excludes, field: , value: }. 'includes'/'excludes' take a list: the episode must include all / none of the values (e.g. all of these policy.version_id values participated). See GET /v2/episodes/search/fields for the queryable field paths. Example: {"op": "and", "clauses": [{"op": "eq", "field": "coworld.name", "value": "crewrift_prime"}, {"op": "includes", "field": "policy.version_id", "value": ["", ""]}]}

order_by
string
default:created_at

Episodes are ordered by creation time (id as tiebreak); order_dir picks the direction. This is the only supported order: it is what an index can serve, and it is what a keyset cursor will page over.

Allowed value: "created_at"
order_dir
enum<string>
default:desc
Available options:
asc,
desc
mine
boolean
default:false

Only episodes requested by the authenticated User or exact Player credential.

limit
integer
default:50
Required range: 1 <= x <= 500
cursor
string | null

Opaque keyset cursor from a previous page's next_cursor. Bound to the query that issued it: reuse with a different where/order_dir/mine (or a different caller) is rejected.

Maximum string length: 4096

Response

Successful Response

entries
EpisodeSearchResult · object[]
required
next_cursor
string | null
required

Cursor for the page after this one; non-null means more episodes match, null means this is the last page.

limit
integer
required