[{"data":1,"prerenderedAt":1188},["ShallowReactive",2],{"navigation_docs":3,"-docs-operator-api-staffs":352,"-docs-operator-api-staffs-surround":1183},[4,22,35,60,81,137,223,254,282,306,327],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[9,13,17],{"title":10,"path":11,"stem":12},"Overview","\u002Fdocs\u002Fgetting-started\u002Foverview","docs\u002F1.getting-started\u002F1.overview",{"title":14,"path":15,"stem":16},"Integration checklist","\u002Fdocs\u002Fgetting-started\u002Fintegration-checklist","docs\u002F1.getting-started\u002F2.integration-checklist",{"title":18,"path":19,"stem":20},"Environments and base URLs","\u002Fdocs\u002Fgetting-started\u002Fenvironments-and-base-urls","docs\u002F1.getting-started\u002F3.environments-and-base-urls",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Troubleshooting","\u002Fdocs\u002Ftroubleshooting","docs\u002F10.troubleshooting",[27,31],{"title":28,"path":29,"stem":30},"Common errors","\u002Fdocs\u002Ftroubleshooting\u002Fcommon-errors","docs\u002F10.troubleshooting\u002F1.common-errors",{"title":32,"path":33,"stem":34},"Support escalation","\u002Fdocs\u002Ftroubleshooting\u002Fsupport-escalation","docs\u002F10.troubleshooting\u002F2.support-escalation",{"title":36,"path":37,"stem":38,"children":39,"page":21},"Polyflight","\u002Fdocs\u002Fpolyflight","docs\u002F11.polyflight",[40,44,48,52,56],{"title":41,"path":42,"stem":43},"Polyflight overview and launch","\u002Fdocs\u002Fpolyflight\u002Foverview-and-launch","docs\u002F11.polyflight\u002F1.overview-and-launch",{"title":45,"path":46,"stem":47},"Native wallet contract","\u002Fdocs\u002Fpolyflight\u002Fnative-wallet-contract","docs\u002F11.polyflight\u002F2.native-wallet-contract",{"title":49,"path":50,"stem":51},"API, events, and proof","\u002Fdocs\u002Fpolyflight\u002Fapi-events-and-proof","docs\u002F11.polyflight\u002F3.api-events-and-proof",{"title":53,"path":54,"stem":55},"Terms, statements, and settlement","\u002Fdocs\u002Fpolyflight\u002Fterms-statements-and-settlement","docs\u002F11.polyflight\u002F4.terms-statements-and-settlement",{"title":57,"path":58,"stem":59},"Operations, reconciliation, and rollback","\u002Fdocs\u002Fpolyflight\u002Foperations-reconciliation-and-rollback","docs\u002F11.polyflight\u002F5.operations-reconciliation-and-rollback",{"title":61,"path":62,"stem":63,"children":64,"page":21},"Integration Flow","\u002Fdocs\u002Fintegration-flow","docs\u002F2.integration-flow",[65,69,73,77],{"title":66,"path":67,"stem":68},"Architecture","\u002Fdocs\u002Fintegration-flow\u002Farchitecture","docs\u002F2.integration-flow\u002F1.architecture",{"title":70,"path":71,"stem":72},"Launch session model","\u002Fdocs\u002Fintegration-flow\u002Flaunch-session-model","docs\u002F2.integration-flow\u002F2.launch-session-model",{"title":74,"path":75,"stem":76},"Order and wallet saga","\u002Fdocs\u002Fintegration-flow\u002Forder-and-wallet-saga","docs\u002F2.integration-flow\u002F3.order-and-wallet-saga",{"title":78,"path":79,"stem":80},"FX fees and rounding","\u002Fdocs\u002Fintegration-flow\u002Ffx-fees-and-rounding","docs\u002F2.integration-flow\u002F4.fx-fees-and-rounding",{"title":82,"path":83,"stem":84,"children":85,"page":21},"Dashboard","\u002Fdocs\u002Fdashboard","docs\u002F3.dashboard",[86,89,93,97,101,105,109,113,117,121,125,129,133],{"title":10,"path":87,"stem":88},"\u002Fdocs\u002Fdashboard\u002Foverview","docs\u002F3.dashboard\u002F1.overview",{"title":90,"path":91,"stem":92},"Webhook Deliveries","\u002Fdocs\u002Fdashboard\u002Fwebhook-deliveries","docs\u002F3.dashboard\u002F10.webhook-deliveries",{"title":94,"path":95,"stem":96},"Staffs","\u002Fdocs\u002Fdashboard\u002Fstaffs","docs\u002F3.dashboard\u002F11.staffs",{"title":98,"path":99,"stem":100},"Simulator","\u002Fdocs\u002Fdashboard\u002Fsimulator","docs\u002F3.dashboard\u002F12.simulator",{"title":102,"path":103,"stem":104},"API Playground","\u002Fdocs\u002Fdashboard\u002Fapi-playground","docs\u002F3.dashboard\u002F13.api-playground",{"title":106,"path":107,"stem":108},"API keys","\u002Fdocs\u002Fdashboard\u002Fapi-keys","docs\u002F3.dashboard\u002F2.api-keys",{"title":110,"path":111,"stem":112},"Wallet adapter settings","\u002Fdocs\u002Fdashboard\u002Fwallet-adapter-settings","docs\u002F3.dashboard\u002F3.wallet-adapter-settings",{"title":114,"path":115,"stem":116},"Webhook endpoints","\u002Fdocs\u002Fdashboard\u002Fwebhook-endpoints","docs\u002F3.dashboard\u002F4.webhook-endpoints",{"title":118,"path":119,"stem":120},"Markets and visibility","\u002Fdocs\u002Fdashboard\u002Fmarket-visibility","docs\u002F3.dashboard\u002F5.market-visibility",{"title":122,"path":123,"stem":124},"Users","\u002Fdocs\u002Fdashboard\u002Fusers","docs\u002F3.dashboard\u002F6.users",{"title":126,"path":127,"stem":128},"Trades","\u002Fdocs\u002Fdashboard\u002Ftrades","docs\u002F3.dashboard\u002F7.trades",{"title":130,"path":131,"stem":132},"Resolutions","\u002Fdocs\u002Fdashboard\u002Fresolutions","docs\u002F3.dashboard\u002F8.resolutions",{"title":134,"path":135,"stem":136},"Balance Operations","\u002Fdocs\u002Fdashboard\u002Fbalance-operations","docs\u002F3.dashboard\u002F9.balance-operations",{"title":138,"path":139,"stem":140,"children":141,"page":21},"Operator Api","\u002Fdocs\u002Foperator-api","docs\u002F4.operator-api",[142,146,149,153,156,160,163,167,171,175,179,183,186,190,194,198,202,206,209,213,216,219],{"title":143,"path":144,"stem":145},"Authentication","\u002Fdocs\u002Foperator-api\u002Fauthentication","docs\u002F4.operator-api\u002F1.authentication",{"title":114,"path":147,"stem":148},"\u002Fdocs\u002Foperator-api\u002Fwebhook-endpoints","docs\u002F4.operator-api\u002F10.webhook-endpoints",{"title":150,"path":151,"stem":152},"Webhook deliveries","\u002Fdocs\u002Foperator-api\u002Fwebhook-deliveries","docs\u002F4.operator-api\u002F11.webhook-deliveries",{"title":98,"path":154,"stem":155},"\u002Fdocs\u002Foperator-api\u002Fsimulator","docs\u002F4.operator-api\u002F12.simulator",{"title":157,"path":158,"stem":159},"Wallet adapter","\u002Fdocs\u002Foperator-api\u002Fwallet-adapter","docs\u002F4.operator-api\u002F13.wallet-adapter",{"title":94,"path":161,"stem":162},"\u002Fdocs\u002Foperator-api\u002Fstaffs","docs\u002F4.operator-api\u002F14.staffs",{"title":164,"path":165,"stem":166},"Error codes","\u002Fdocs\u002Foperator-api\u002Ferror-codes","docs\u002F4.operator-api\u002F15.error-codes",{"title":168,"path":169,"stem":170},"Redemptions","\u002Fdocs\u002Foperator-api\u002Fredemptions","docs\u002F4.operator-api\u002F16.redemptions",{"title":172,"path":173,"stem":174},"Polyflight overview","\u002Fdocs\u002Foperator-api\u002Fpolyflight","docs\u002F4.operator-api\u002F17.polyflight",{"title":176,"path":177,"stem":178},"Polyflight flights","\u002Fdocs\u002Foperator-api\u002Fpolyflight-flights","docs\u002F4.operator-api\u002F18.polyflight-flights",{"title":180,"path":181,"stem":182},"Polyflight tickets","\u002Fdocs\u002Foperator-api\u002Fpolyflight-tickets","docs\u002F4.operator-api\u002F19.polyflight-tickets",{"title":106,"path":184,"stem":185},"\u002Fdocs\u002Foperator-api\u002Fapi-keys","docs\u002F4.operator-api\u002F2.api-keys",{"title":187,"path":188,"stem":189},"Polyflight balance operations","\u002Fdocs\u002Foperator-api\u002Fpolyflight-balance-operations","docs\u002F4.operator-api\u002F20.polyflight-balance-operations",{"title":191,"path":192,"stem":193},"Polyflight terms","\u002Fdocs\u002Foperator-api\u002Fpolyflight-terms","docs\u002F4.operator-api\u002F21.polyflight-terms",{"title":195,"path":196,"stem":197},"Polyflight settlement reports","\u002Fdocs\u002Foperator-api\u002Fpolyflight-settlement-reports","docs\u002F4.operator-api\u002F22.polyflight-settlement-reports",{"title":199,"path":200,"stem":201},"Session","\u002Fdocs\u002Foperator-api\u002Fsession","docs\u002F4.operator-api\u002F3.session",{"title":203,"path":204,"stem":205},"Launch","\u002Fdocs\u002Foperator-api\u002Flaunch","docs\u002F4.operator-api\u002F4.launch",{"title":122,"path":207,"stem":208},"\u002Fdocs\u002Foperator-api\u002Fusers","docs\u002F4.operator-api\u002F5.users",{"title":210,"path":211,"stem":212},"Markets","\u002Fdocs\u002Foperator-api\u002Fmarkets","docs\u002F4.operator-api\u002F6.markets",{"title":126,"path":214,"stem":215},"\u002Fdocs\u002Foperator-api\u002Ftrades","docs\u002F4.operator-api\u002F7.trades",{"title":130,"path":217,"stem":218},"\u002Fdocs\u002Foperator-api\u002Fresolutions","docs\u002F4.operator-api\u002F8.resolutions",{"title":220,"path":221,"stem":222},"Balance operations","\u002Fdocs\u002Foperator-api\u002Fbalance-operations","docs\u002F4.operator-api\u002F9.balance-operations",{"title":224,"path":225,"stem":226,"children":227,"page":21},"Wallet Adapter","\u002Fdocs\u002Fwallet-adapter","docs\u002F5.wallet-adapter",[228,231,234,238,242,246,250],{"title":10,"path":229,"stem":230},"\u002Fdocs\u002Fwallet-adapter\u002Foverview","docs\u002F5.wallet-adapter\u002F1.overview",{"title":143,"path":232,"stem":233},"\u002Fdocs\u002Fwallet-adapter\u002Fauthentication","docs\u002F5.wallet-adapter\u002F2.authentication",{"title":235,"path":236,"stem":237},"Balance","\u002Fdocs\u002Fwallet-adapter\u002Fbalance","docs\u002F5.wallet-adapter\u002F3.balance",{"title":239,"path":240,"stem":241},"Debit","\u002Fdocs\u002Fwallet-adapter\u002Fdebit","docs\u002F5.wallet-adapter\u002F4.debit",{"title":243,"path":244,"stem":245},"Credit","\u002Fdocs\u002Fwallet-adapter\u002Fcredit","docs\u002F5.wallet-adapter\u002F5.credit",{"title":247,"path":248,"stem":249},"Debit reversal","\u002Fdocs\u002Fwallet-adapter\u002Fdebit-reversal","docs\u002F5.wallet-adapter\u002F6.debit-reversal",{"title":251,"path":252,"stem":253},"Idempotency","\u002Fdocs\u002Fwallet-adapter\u002Fidempotency","docs\u002F5.wallet-adapter\u002F7.idempotency",{"title":255,"path":256,"stem":257,"children":258,"page":21},"Webhooks","\u002Fdocs\u002Fwebhooks","docs\u002F6.webhooks",[259,262,266,270,274,278],{"title":10,"path":260,"stem":261},"\u002Fdocs\u002Fwebhooks\u002Foverview","docs\u002F6.webhooks\u002F1.overview",{"title":263,"path":264,"stem":265},"Signatures","\u002Fdocs\u002Fwebhooks\u002Fsignatures","docs\u002F6.webhooks\u002F2.signatures",{"title":267,"path":268,"stem":269},"Event envelope","\u002Fdocs\u002Fwebhooks\u002Fevent-envelope","docs\u002F6.webhooks\u002F3.event-envelope",{"title":271,"path":272,"stem":273},"Event types","\u002Fdocs\u002Fwebhooks\u002Fevent-types","docs\u002F6.webhooks\u002F4.event-types",{"title":275,"path":276,"stem":277},"Retry and replay","\u002Fdocs\u002Fwebhooks\u002Fretry-and-replay","docs\u002F6.webhooks\u002F5.retry-and-replay",{"title":279,"path":280,"stem":281},"Receiver examples","\u002Fdocs\u002Fwebhooks\u002Freceiver-examples","docs\u002F6.webhooks\u002F6.receiver-examples",{"title":283,"path":284,"stem":285,"children":286,"page":21},"Testing And Staging","\u002Fdocs\u002Ftesting-and-staging","docs\u002F7.testing-and-staging",[287,291,294,298,302],{"title":288,"path":289,"stem":290},"Staging overview","\u002Fdocs\u002Ftesting-and-staging\u002Fstaging-overview","docs\u002F7.testing-and-staging\u002F1.staging-overview",{"title":98,"path":292,"stem":293},"\u002Fdocs\u002Ftesting-and-staging\u002Fsimulator","docs\u002F7.testing-and-staging\u002F2.simulator",{"title":295,"path":296,"stem":297},"Wallet failure drills","\u002Fdocs\u002Ftesting-and-staging\u002Fwallet-failure-drills","docs\u002F7.testing-and-staging\u002F3.wallet-failure-drills",{"title":299,"path":300,"stem":301},"Webhook drills","\u002Fdocs\u002Ftesting-and-staging\u002Fwebhook-drills","docs\u002F7.testing-and-staging\u002F4.webhook-drills",{"title":303,"path":304,"stem":305},"Production cutover rehearsal","\u002Fdocs\u002Ftesting-and-staging\u002Fproduction-cutover-rehearsal","docs\u002F7.testing-and-staging\u002F5.production-cutover-rehearsal",{"title":307,"path":308,"stem":309,"children":310,"page":21},"Production Readiness","\u002Fdocs\u002Fproduction-readiness","docs\u002F8.production-readiness",[311,315,319,323],{"title":312,"path":313,"stem":314},"Checklist","\u002Fdocs\u002Fproduction-readiness\u002Fchecklist","docs\u002F8.production-readiness\u002F1.checklist",{"title":316,"path":317,"stem":318},"Operational runbook","\u002Fdocs\u002Fproduction-readiness\u002Foperational-runbook","docs\u002F8.production-readiness\u002F2.operational-runbook",{"title":320,"path":321,"stem":322},"Security","\u002Fdocs\u002Fproduction-readiness\u002Fsecurity","docs\u002F8.production-readiness\u002F3.security",{"title":324,"path":325,"stem":326},"Rollback","\u002Fdocs\u002Fproduction-readiness\u002Frollback","docs\u002F8.production-readiness\u002F4.rollback",{"title":328,"path":329,"stem":330,"children":331,"page":21},"Reference","\u002Fdocs\u002Freference","docs\u002F9.reference",[332,336,340,344,348],{"title":333,"path":334,"stem":335},"Statuses","\u002Fdocs\u002Freference\u002Fstatuses","docs\u002F9.reference\u002F1.statuses",{"title":337,"path":338,"stem":339},"Scopes","\u002Fdocs\u002Freference\u002Fscopes","docs\u002F9.reference\u002F2.scopes",{"title":341,"path":342,"stem":343},"Units and money","\u002Fdocs\u002Freference\u002Funits-and-money","docs\u002F9.reference\u002F3.units-and-money",{"title":345,"path":346,"stem":347},"Changelog","\u002Fdocs\u002Freference\u002Fchangelog","docs\u002F9.reference\u002F4.changelog",{"title":349,"path":350,"stem":351},"Virtual AMM","\u002Fdocs\u002Freference\u002Fvirtual-amm","docs\u002F9.reference\u002F5.virtual-amm",{"id":353,"title":94,"body":354,"description":1176,"extension":1177,"links":1178,"meta":1179,"navigation":1180,"path":161,"seo":1181,"stem":162,"__hash__":1182},"docs\u002Fdocs\u002F4.operator-api\u002F14.staffs.md",{"type":355,"value":356,"toc":1167},"minimark",[357,361,365,368,373,403,413,418,479,486,511,521,525,551,554,570,577,581,584,637,641,700,704,801,866,869,892,896,899,986,996,1029,1033,1036,1155,1163],[358,359,94],"h1",{"id":360},"staffs",[362,363,364],"p",{},"Staff endpoints manage human Operator Dashboard accounts.",[362,366,367],{},"These endpoints require a staff-session bearer token. Operator API keys cannot call them even if the API key has broad scopes.",[369,370,372],"h2",{"id":371},"auth-paths","Auth paths",[374,375,380],"pre",{"className":376,"code":377,"language":378,"meta":379,"style":379},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","POST \u002Fapi\u002Foperator\u002Fauth\u002Fstaff-login\nPOST \u002Fapi\u002Foperator\u002Fauth\u002Fstaff-change-password\nPOST \u002Fapi\u002Foperator\u002Fauth\u002Flogout\n","http","",[381,382,383,391,397],"code",{"__ignoreMap":379},[384,385,388],"span",{"class":386,"line":387},"line",1,[384,389,390],{},"POST \u002Fapi\u002Foperator\u002Fauth\u002Fstaff-login\n",[384,392,394],{"class":386,"line":393},2,[384,395,396],{},"POST \u002Fapi\u002Foperator\u002Fauth\u002Fstaff-change-password\n",[384,398,400],{"class":386,"line":399},3,[384,401,402],{},"POST \u002Fapi\u002Foperator\u002Fauth\u002Flogout\n",[362,404,405,408,409,412],{},[381,406,407],{},"staff-login"," returns a bearer token with prefix ",[381,410,411],{},"pmost."," and a 12-hour expiry.",[362,414,415,417],{},[381,416,407],{}," does not require an existing bearer token. Its JSON body is:",[419,420,421,440],"table",{},[422,423,424],"thead",{},[425,426,427,431,434,437],"tr",{},[428,429,430],"th",{},"Field",[428,432,433],{},"Type",[428,435,436],{},"Requirement",[428,438,439],{},"Notes",[441,442,443,463],"tbody",{},[425,444,445,451,454,460],{},[446,447,448],"td",{},[381,449,450],{},"email",[446,452,453],{},"string",[446,455,456],{},[457,458,459],"strong",{},"Required",[446,461,462],{},"Valid email address.",[425,464,465,470,472,476],{},[446,466,467],{},[381,468,469],{},"password",[446,471,453],{},[446,473,474],{},[457,475,459],{},[446,477,478],{},"Non-empty password.",[362,480,481,482,485],{},"Login is limited to 5 failed attempts per normalized email and source identifier in a 15-minute window. A blocked attempt returns ",[381,483,484],{},"429 RATE_LIMIT_EXCEEDED","; wait for the window instead of retrying unchanged credentials.",[362,487,488,491,492,495,496,499,500,495,503,506,507,510],{},[381,489,490],{},"staff-change-password"," is available only to staff sessions. ",[381,493,494],{},"newPassword"," is ",[457,497,498],{},"required"," and must contain at least 8 characters. ",[381,501,502],{},"oldPassword",[457,504,505],{},"conditionally required"," when ",[381,508,509],{},"must_change_password"," is false; it is optional for a forced first change. Successful change returns a replacement staff token and expiry because all previous sessions are revoked.",[362,512,513,516,517,520],{},[381,514,515],{},"logout"," requires a valid bearer token and has no body. It revokes the current staff session when the bearer token is a staff token. An API-key call returns ",[381,518,519],{},"ok: true"," without revoking the key.",[369,522,524],{"id":523},"staff-management-paths","Staff management paths",[374,526,528],{"className":376,"code":527,"language":378,"meta":379,"style":379},"GET \u002Fapi\u002Foperator\u002Fstaff\nPOST \u002Fapi\u002Foperator\u002Fstaff\nPATCH \u002Fapi\u002Foperator\u002Fstaff\u002F{membership_id}\nPOST \u002Fapi\u002Foperator\u002Fstaff\u002F{membership_id}\u002Freset-password\n",[381,529,530,535,540,545],{"__ignoreMap":379},[384,531,532],{"class":386,"line":387},[384,533,534],{},"GET \u002Fapi\u002Foperator\u002Fstaff\n",[384,536,537],{"class":386,"line":393},[384,538,539],{},"POST \u002Fapi\u002Foperator\u002Fstaff\n",[384,541,542],{"class":386,"line":399},[384,543,544],{},"PATCH \u002Fapi\u002Foperator\u002Fstaff\u002F{membership_id}\n",[384,546,548],{"class":386,"line":547},4,[384,549,550],{},"POST \u002Fapi\u002Foperator\u002Fstaff\u002F{membership_id}\u002Freset-password\n",[362,552,553],{},"Required scopes:",[555,556,557,564],"ul",{},[558,559,560,563],"li",{},[381,561,562],{},"staffs:read"," for list",[558,565,566,569],{},[381,567,568],{},"staffs:write"," for create, patch, and reset password",[362,571,572,573,576],{},"All staff management paths also require ",[381,574,575],{},"auth_type = staff",".",[369,578,580],{"id":579},"list-query-params","List query params",[362,582,583],{},"Both list query parameters are optional:",[419,585,586,599],{},[422,587,588],{},[425,589,590,593,595,597],{},[428,591,592],{},"Parameter",[428,594,433],{},[428,596,436],{},[428,598,439],{},[441,600,601,616],{},[425,602,603,608,610,613],{},[446,604,605],{},[381,606,607],{},"search",[446,609,453],{},[446,611,612],{},"Optional",[446,614,615],{},"Case-insensitive match against email or display name.",[425,617,618,623,625,627],{},[446,619,620],{},[381,621,622],{},"status",[446,624,453],{},[446,626,612],{},[446,628,629,632,633,636],{},[381,630,631],{},"active"," or ",[381,634,635],{},"disabled","; an omitted or unrecognized value returns all.",[369,638,640],{"id":639},"staff-fields","Staff fields",[555,642,643,648,653,657,662,667,671,676,681,685,690,695],{},[558,644,645],{},[381,646,647],{},"membership_id",[558,649,650],{},[381,651,652],{},"admin_user_id",[558,654,655],{},[381,656,450],{},[558,658,659],{},[381,660,661],{},"display_name",[558,663,664],{},[381,665,666],{},"role",[558,668,669],{},[381,670,622],{},[558,672,673],{},[381,674,675],{},"account_status",[558,677,678],{},[381,679,680],{},"scopes",[558,682,683],{},[381,684,509],{},[558,686,687],{},[381,688,689],{},"last_login_at",[558,691,692],{},[381,693,694],{},"created_at",[558,696,697],{},[381,698,699],{},"updated_at",[369,701,703],{"id":702},"create-body","Create body",[374,705,709],{"className":706,"code":707,"language":708,"meta":379,"style":379},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"email\": \"ops@example.com\",\n  \"display_name\": \"Ops User\",\n  \"scopes\": [\"users:read\", \"trades:read\"]\n}\n","json",[381,710,711,717,743,762,795],{"__ignoreMap":379},[384,712,713],{"class":386,"line":387},[384,714,716],{"class":715},"sMK4o","{\n",[384,718,719,722,725,728,731,734,738,740],{"class":386,"line":393},[384,720,721],{"class":715},"  \"",[384,723,450],{"class":724},"spNyl",[384,726,727],{"class":715},"\"",[384,729,730],{"class":715},":",[384,732,733],{"class":715}," \"",[384,735,737],{"class":736},"sfazB","ops@example.com",[384,739,727],{"class":715},[384,741,742],{"class":715},",\n",[384,744,745,747,749,751,753,755,758,760],{"class":386,"line":399},[384,746,721],{"class":715},[384,748,661],{"class":724},[384,750,727],{"class":715},[384,752,730],{"class":715},[384,754,733],{"class":715},[384,756,757],{"class":736},"Ops User",[384,759,727],{"class":715},[384,761,742],{"class":715},[384,763,764,766,768,770,772,775,777,780,782,785,787,790,792],{"class":386,"line":547},[384,765,721],{"class":715},[384,767,680],{"class":724},[384,769,727],{"class":715},[384,771,730],{"class":715},[384,773,774],{"class":715}," [",[384,776,727],{"class":715},[384,778,779],{"class":736},"users:read",[384,781,727],{"class":715},[384,783,784],{"class":715},",",[384,786,733],{"class":715},[384,788,789],{"class":736},"trades:read",[384,791,727],{"class":715},[384,793,794],{"class":715},"]\n",[384,796,798],{"class":386,"line":797},5,[384,799,800],{"class":715},"}\n",[419,802,803,815],{},[422,804,805],{},[425,806,807,809,811,813],{},[428,808,430],{},[428,810,433],{},[428,812,436],{},[428,814,439],{},[441,816,817,832,853],{},[425,818,819,823,825,829],{},[446,820,821],{},[381,822,450],{},[446,824,453],{},[446,826,827],{},[457,828,459],{},[446,830,831],{},"Valid, globally unused email.",[425,833,834,838,842,846],{},[446,835,836],{},[381,837,680],{},[446,839,453,840],{},[384,841],{},[446,843,844],{},[457,845,459],{},[446,847,848,849,852],{},"Non-empty assignable scope list; ",[381,850,851],{},"*"," is forbidden.",[425,854,855,859,861,863],{},[446,856,857],{},[381,858,661],{},[446,860,453],{},[446,862,612],{},[446,864,865],{},"Stored display name.",[362,867,868],{},"Rules:",[555,870,871,874,879,884,887],{},[558,872,873],{},"email must be valid and globally unused",[558,875,876,878],{},[381,877,680],{}," must be non-empty",[558,880,881,883],{},[381,882,851],{}," is not assignable in staff create\u002Fupdate",[558,885,886],{},"write scopes normalize to include the matching read scope when available",[558,888,889,890],{},"staff can assign only scopes they already hold, unless they have ",[381,891,851],{},[369,893,895],{"id":894},"patch-body","Patch body",[362,897,898],{},"All fields are optional, but at least one update is required.",[374,900,902],{"className":706,"code":901,"language":708,"meta":379,"style":379},"{\n  \"display_name\": \"Ops Lead\",\n  \"status\": \"disabled\",\n  \"scopes\": [\"users:read\", \"trades:read\", \"webhooks:read\"]\n}\n",[381,903,904,908,927,945,982],{"__ignoreMap":379},[384,905,906],{"class":386,"line":387},[384,907,716],{"class":715},[384,909,910,912,914,916,918,920,923,925],{"class":386,"line":393},[384,911,721],{"class":715},[384,913,661],{"class":724},[384,915,727],{"class":715},[384,917,730],{"class":715},[384,919,733],{"class":715},[384,921,922],{"class":736},"Ops Lead",[384,924,727],{"class":715},[384,926,742],{"class":715},[384,928,929,931,933,935,937,939,941,943],{"class":386,"line":399},[384,930,721],{"class":715},[384,932,622],{"class":724},[384,934,727],{"class":715},[384,936,730],{"class":715},[384,938,733],{"class":715},[384,940,635],{"class":736},[384,942,727],{"class":715},[384,944,742],{"class":715},[384,946,947,949,951,953,955,957,959,961,963,965,967,969,971,973,975,978,980],{"class":386,"line":547},[384,948,721],{"class":715},[384,950,680],{"class":724},[384,952,727],{"class":715},[384,954,730],{"class":715},[384,956,774],{"class":715},[384,958,727],{"class":715},[384,960,779],{"class":736},[384,962,727],{"class":715},[384,964,784],{"class":715},[384,966,733],{"class":715},[384,968,789],{"class":736},[384,970,727],{"class":715},[384,972,784],{"class":715},[384,974,733],{"class":715},[384,976,977],{"class":736},"webhooks:read",[384,979,727],{"class":715},[384,981,794],{"class":715},[384,983,984],{"class":386,"line":797},[384,985,800],{"class":715},[362,987,988,989,992,993,576],{},"A staff member cannot update their own access status or scopes. The implemented error is ",[381,990,991],{},"SELF_ACCESS_UPDATE_FORBIDDEN",". A staff member also cannot reset their own password through the management endpoint; that returns ",[381,994,995],{},"SELF_PASSWORD_RESET_FORBIDDEN",[362,997,998,999,495,1001,1003,1004,1006,1007,1009,1010,1012,1013,1015,1016,1006,1019,1006,1022,1009,1025,1028],{},"Patch path ",[381,1000,647],{},[457,1002,498],{}," and must be a positive integer. ",[381,1005,661],{},", ",[381,1008,622],{},", and ",[381,1011,680],{}," are individually optional, but at least one must be supplied. Reset-password also requires the positive ",[381,1014,647],{}," path parameter and has no body. Validation failures include ",[381,1017,1018],{},"INVALID_STAFF_ID",[381,1020,1021],{},"INVALID_STATUS",[381,1023,1024],{},"NO_UPDATES",[381,1026,1027],{},"CANNOT_ASSIGN_SCOPE",". Access or password mutations revoke active sessions for the target staff account; changing only the display name does not.",[369,1030,1032],{"id":1031},"password-reset-response","Password reset response",[362,1034,1035],{},"Create and reset responses include onboarding metadata:",[374,1037,1039],{"className":706,"code":1038,"language":708,"meta":379,"style":379},"{\n  \"ok\": true,\n  \"item\": {},\n  \"onboarding\": {\n    \"email_sent\": false,\n    \"email_error\": \"provider error\",\n    \"temp_password\": \"returned-only-when-email-fails\"\n  }\n}\n",[381,1040,1041,1045,1059,1073,1087,1103,1124,1144,1150],{"__ignoreMap":379},[384,1042,1043],{"class":386,"line":387},[384,1044,716],{"class":715},[384,1046,1047,1049,1052,1054,1056],{"class":386,"line":393},[384,1048,721],{"class":715},[384,1050,1051],{"class":724},"ok",[384,1053,727],{"class":715},[384,1055,730],{"class":715},[384,1057,1058],{"class":715}," true,\n",[384,1060,1061,1063,1066,1068,1070],{"class":386,"line":399},[384,1062,721],{"class":715},[384,1064,1065],{"class":724},"item",[384,1067,727],{"class":715},[384,1069,730],{"class":715},[384,1071,1072],{"class":715}," {},\n",[384,1074,1075,1077,1080,1082,1084],{"class":386,"line":547},[384,1076,721],{"class":715},[384,1078,1079],{"class":724},"onboarding",[384,1081,727],{"class":715},[384,1083,730],{"class":715},[384,1085,1086],{"class":715}," {\n",[384,1088,1089,1092,1096,1098,1100],{"class":386,"line":797},[384,1090,1091],{"class":715},"    \"",[384,1093,1095],{"class":1094},"sBMFI","email_sent",[384,1097,727],{"class":715},[384,1099,730],{"class":715},[384,1101,1102],{"class":715}," false,\n",[384,1104,1106,1108,1111,1113,1115,1117,1120,1122],{"class":386,"line":1105},6,[384,1107,1091],{"class":715},[384,1109,1110],{"class":1094},"email_error",[384,1112,727],{"class":715},[384,1114,730],{"class":715},[384,1116,733],{"class":715},[384,1118,1119],{"class":736},"provider error",[384,1121,727],{"class":715},[384,1123,742],{"class":715},[384,1125,1127,1129,1132,1134,1136,1138,1141],{"class":386,"line":1126},7,[384,1128,1091],{"class":715},[384,1130,1131],{"class":1094},"temp_password",[384,1133,727],{"class":715},[384,1135,730],{"class":715},[384,1137,733],{"class":715},[384,1139,1140],{"class":736},"returned-only-when-email-fails",[384,1142,1143],{"class":715},"\"\n",[384,1145,1147],{"class":386,"line":1146},8,[384,1148,1149],{"class":715},"  }\n",[384,1151,1153],{"class":386,"line":1152},9,[384,1154,800],{"class":715},[362,1156,1157,1158,495,1160,576],{},"If email sends successfully, ",[381,1159,1131],{},[381,1161,1162],{},"null",[1164,1165,1166],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":379,"searchDepth":393,"depth":393,"links":1168},[1169,1170,1171,1172,1173,1174,1175],{"id":371,"depth":393,"text":372},{"id":523,"depth":393,"text":524},{"id":579,"depth":393,"text":580},{"id":639,"depth":393,"text":640},{"id":702,"depth":393,"text":703},{"id":894,"depth":393,"text":895},{"id":1031,"depth":393,"text":1032},"Manage human Operator Dashboard staff accounts through staff-session APIs.","md",null,{},true,{"title":94,"description":1176},"XgPgGK1m6tkB9ZMBYtFpAXWqOmuhspNdU9g1Tx1cu6A",[1184,1186],{"title":157,"path":158,"stem":159,"description":1185,"children":-1},"Read, update, and validate operator wallet adapter settings.",{"title":164,"path":165,"stem":166,"description":1187,"children":-1},"Common error codes returned by the operator-facing API surface.",1789570129132]