Resolutions
Resolutions
Query resolved markets where this operator has current or settlement-time Mini App exposure.
Path
GET /api/operator/resolutions
Required scope: redemptions:read
Query params
All query parameters are optional.
| Parameter | Type | Requirement | Values/default |
|---|---|---|---|
search | string | Optional | Case-insensitive match against market slug or title. |
market | string | Optional | Convenience filter: positive numeric market ID or exact market slug. |
market_id | positive integer | Optional | Exact market ID. Takes precedence over a numeric market. |
market_slug | string | Optional | Exact market slug. Takes precedence over a slug in market. |
resolved_from | ISO 8601 date-time | Optional | Include rows whose approximate resolved_at is on or after this timestamp. |
resolved_to | ISO 8601 date-time | Optional | Include rows whose approximate resolved_at is on or before this timestamp. |
resolved_from_date | date (YYYY-MM-DD) | Optional | Inclusive Operator-local approximate resolution-date lower bound. |
resolved_to_date | date (YYYY-MM-DD) | Optional | Inclusive Operator-local upper bound; cutoff is next-day local midnight. |
sort | string | Optional | resolved_at_desc (default), resolved_at_asc, net_desc, or net_asc. |
page | positive integer | Optional | Default 1. |
page_size | positive integer | Optional | Default 25, maximum 100. |
Response fields
The response-level summary contains totals across all filtered rows, not only the current page:
yes_shares_micro_totalno_shares_micro_totalnet_shares_micro_totalnet_balance_minor_totalcurrency_codetimezone
Each item contains:
- nested
market.id,market.slug,market.title resolved_atoutcome:yesornoyes_shares_microno_shares_micronet_shares_microlosing_value_minorwinning_value_minornet_balance_minorcurrency_codefx_rate_snapshot: latest snapshot used by a processed auto-redemption item for this operator and market, ornull; containsid,provider,pair,rate, andquoted_at
Calculation rules
net_shares_micro is losing-side shares minus winning-side shares.
net_balance_minor is losing_value_minor - winning_value_minor in operator currency minor units. The dashboard, CSV, and copied HTML label it Net resolution exposure; the API field is unchanged. This lifetime market exposure is not monthly settlement, closed-market principal, or realized trading P&L. Use Opinion Settlement Reports with settlements:read (or *) for monthly accounting.
losing_value_minor is the losing outcome's historical processed trade value: sum(buy wallet amount - converted fee) - sum(sell wallet amount + converted fee). It can be negative after net selling; it is not simply losing shares multiplied by a current price. winning_value_minor combines stored processed redemption payouts (preferring succeeded credits, otherwise stored item amounts) and current/pending-share projections. net_desc / net_asc sort by net_shares_micro, not currency cash PnL.
Share exposure is reconstructed from current positions plus winning shares already deducted by Mini App redemption items. This matters because midnight redemption processing can deduct winning shares before an operator reviews the resolved market.
When multiple processed auto-redemption items exist for one market, fx_rate_snapshot comes from the most recently updated item (then highest item ID). A row without processed auto-redemption returns null. Pending winning-share projections still use the current request-time FX snapshot; processed payouts retain their stored operator-currency amounts.
Actual successful reconciled wallet-credit cash is authoritative for settlement. Resolution exposure and stored payout fallbacks are not evidence that every payout has reconciled; the monthly report discloses unreconciled payouts and blocks export until reconciled.
Caveat
Current resolved_at and resolution date filters are based on markets.updated_at in v1 API. Treat them as approximations until dedicated resolved timestamp exists. Date-only filters use response summary.timezone.
Resolved-market user cash PnL
GET /api/operator/market-pnl requires both trades:read and redemptions:read (or *). It groups confirmed Opinion wallet cash by user and resolved market, including users who sold all holdings before resolution. This is a different measure from resolution exposure.
See the dedicated Market PnL reference for filters, exact integer-string cash amounts, historical quoted_fee_credits / quoted_fee_minor, warning counts, and summary/pagination shapes. Quoted fees are reference-only and must not be deducted from cash PnL again.
Cash-flow issue drill-down
GET /api/operator/market-pnl/issuesreturns paginated source records behind warnings.GET /api/operator/market-pnl/issues/{kind}/{sourceId}returns redacted wallet evidence and resolution history.
Both additionally require balance_operations:read. See Cash-flow triage for issue-state filters, source/operation fields, detail evidence, and limits. The Operator API is read-only for reconciliation; Admin confirmation permissions are a separate boundary.
