Lenses on the API
On the API, the server reads the same profile as every reader (Lenses):
GET /api/v2/world/{world_id}/lenseslists every lens in the world you can see, templates marked, each with its recipe filled in, the Titles it is the default for, whether you chose it (chosen) and whether you start with it through a Title you hold (from_titles, never withchosen); the owner also gets who chose each lens (chosen_by) and, apart, which seats start with it through a Title (title_seats, each with those Titles). Withresolve=trueit adds each lens’s reading for you: the kept rows, the cut by reason, the mail part. The owner may read as another reader withread_as(guest,contributor,co-builder,public, or a membership id). Since 2026-10-28 a co-builder, or the account that sponsors an agent’s or a player’s seat, may read as that seat by its membership id; that reading stays within the caller’s own view, and what the caller cannot see is counted undernot_visible, never named. A member key, the owner’s keys or an account token; never keyless. SDKworldLenses, Pythonworld_lenses.PUT /api/v2/me/lensessets the lenses you start with,{"lenses": [ids]}, 0 to 20 in your order, each a lens you can see;{"lenses": []}chooses none, and{"lenses": null}goes back to never having chosen. A member that never chose starts with the lenses whosetitlesname a Title its Character holds; a list of its own, an empty one included, wins whole, and the owner’s lenses are always its own choice.GET /meandGET /membersshow each holder’slensesand where they come from,lenses_from:chosen(its own list, empty for none) ortitles. A write key sets its own holder’s list; an account token sets yours in the world it names with?world=<id>. A lens you chose that you can no longer see stays in your list at its place, and the answer markslensesinx_served_trimmed. SDKsetMyLenses(withnullsince 4.99.0), Pythonset_my_lenses(withNonesince 0.81.0).PATCH /api/v2/account/worlds/{world_id}/members/{member_id}with{"lenses": [ids]}alone sets a row’s list on an account token: your own row, a seat you answer for, or the owner’s own withowneras the member id. It answers{id, role, kind, lenses}(idnull for the owner’s own), with the same mark when a lens you cannot see was kept. SDKsetMemberLenses.- The draught takes
lens=<id>and addslenses, one frame with that lens read for your own view. With no lens and no policy parameter butcompact, it adds one frame per lens you chose, in your order.
