EZO Labs Inc. Admin API
Finalizing, resolving, regrades, payouts, datasets and baseline entries (admin role)
Operations 144
POST
/api/admin/users/{handle}/payout-pin/clear
Clear an account's payout pin ({payout, reason}), whatever its delegations…
#
DELETE
/api/admin/profiles/{handle}/avatar
Remove an account's picture (admin, signed-in session; recorded in the audit…
#
DELETE
/api/admin/profiles/{handle}/bio
Remove an account's bio (admin, signed-in session; recorded in the audit log)
#
POST
/api/admin/competitions/{slug}/arbiter
The arbiter_resolve(choice, commitment) instruction for a Frozen escrow's…
#
GET
/api/admin/competitions/{slug}/ai-review
The advisory AI review's flags on a competition's reward-placed entries (a flag…
#
GET
/api/admin/holds
The claims held on chain on this cluster, oldest first, each with the screen…
#
POST
/api/admin/holds/{claimId}/release
Lift a claim's sanctions, geo or review hold after review: release_hold, signed…
#
POST
/api/admin/holds/release-bulk
Release the claims held for one reason under one escrow, each as POST…
#
POST
/api/admin/holds/{claimId}/uphold
Uphold a claim's sanctions, geo or review hold after review: nothing on chain…
#
GET
/api/admin/rehosts/{slug}/attempts/{id}/patch
An attempt's patch.diff and its provenance (entry message, signature, receipt…
#
GET
/api/admin/rehosts/{slug}/entries/{submission_id}/patch
An entry's patch.diff and its provenance before any attempt sends it: one of…
#
POST
/api/admin/rehosts/{slug}/attempts
Record a patch sent upstream ({submission_id | house: true, pr_url…
#
POST
/api/admin/rehosts/{slug}/attempts/{id}/decision
Record the owner's decision on the pending attempt ({outcome, ground?…
#
POST
/api/admin/rehosts/{slug}/receipt
Record the upstream bounty's receipt ({amount_usd, received_at, reference}) on…
#
POST
/api/admin/rehosts/{slug}/lapse
Lapse a rehost with nothing accepted once submit_by plus review_days has…
#
POST
/api/admin/rehosts/{slug}/publish
Publish a rehost decided or over (accepted, paid, lapsed or withdrawn)…
#
POST
/api/admin/rehosts/{slug}/withdraw
Withdraw a listed or rejected rehost, never with an attempt pending: status…
#
GET
/api/admin/rehost-candidates
The rehost discovery queue: outside bounties a sweep found, in one triage…
#
POST
/api/admin/rehost-candidates/{id}/dismiss
Dismiss a rehost candidate, new or drafted: status 'dismissed', which a later…
#
POST
/api/admin/rehost-candidates/{id}/draft
Mark a rehost candidate, new or dismissed, drafted: status 'drafted', with the…
#
POST
/api/admin/submissions/{id}/source-remove
Take an entry's source down (hidden from everyone but admins, never deleted)…
#
GET
/api/admin/comments
The comment moderation queues (?queue=held|reported|hidden), each comment with…
#
POST
/api/admin/comments/{id}/publish
Publish a held comment (409 while a link or email domain of it is denied, or…
#
POST
/api/admin/comments/{id}/restore
Put a hidden comment back up, or keep a reported one up: never auto-hidden…
#
POST
/api/admin/users/{handle}/comment-mute
Mute an account from commenting ({duration: 24h|7d|indefinite, reason})…
#
DELETE
/api/admin/users/{handle}/comment-mute
Unmute an account (comment posts go through the pipeline again), recorded
#
GET
/api/admin/settings/comment-links
The comment link allow and deny lists (site_setting comment-links), and who set…
#
POST
/api/admin/settings/comment-links
Set the comment link allow and deny lists ({allow[], deny[]}, both whole): a…
#
POST
/api/admin/competitions/{slug}/sealed-window/draw
Draw a sealed-window competition's scored window with its drand beacon round…
#
POST
/api/admin/competitions/{slug}/instance/draw
Draw (or redraw) an instance-drawn competition's scored instance (an agent/v1…
#
POST
/api/admin/competitions/{slug}/bars/replacement
Replace a bars or clmm competition's rejected final window under its gap rule…
#
POST
/api/admin/submissions/{id}/hindsight
Give the verdict on an entry the hindsight check audited: clear (pass) or…
#
POST
/api/admin/runs/{id}/voids-review
Clear a scrape/v1 run's voids review hold, or rule its entry did-not-finish
#
POST
/api/admin/runs/{id}/rejudge
Send a scrape/v1 run its scorer left unscored to the grading host, to judge its…
#
GET
/api/admin/runs/{id}/rejudge/{attempt}
Where a re-judging of a scrape/v1 run stands, and its answer once it ends
#
POST
/api/admin/submissions/{id}/grade/resend
Send a grade job that died for good again, under a fresh job id
#
POST
/api/admin/phases/{id}/scrape-heat/resend
Send a scrape/v1 final phase's heat job that died for good again, under a fresh…
#
POST
/api/admin/phases/{id}/code-heat/resend
Send a code-fastest or judged final phase's heat job that died for good again…
#
POST
/api/admin/competitions/{slug}/rejudge-provisional
Judge a judged competition's provisional dev verdicts again on its bundle's…
#
POST
/api/admin/submissions/{id}/held-secrets/refuse
Refuse an entry held on entry secrets that will never open (the keys lost for…
#
GET
/api/admin/defender/holds
The entries the security audit holds, the oldest hold first, each with its hold…
#
POST
/api/admin/submissions/{id}/defender/approve
Clear an entry the security audit holds, and send its snapshot on
#
POST
/api/admin/submissions/{id}/defender/refuse
Refuse an entry the security audit holds: it fails, with the reason the entrant…
#
POST
/api/admin/competitions/{slug}/clusters/scan
Run the cluster scan: one place per entrant on the ranking phase, written as…
#
POST
/api/admin/submissions/{id}/distinct-entrant
Decide an entry the cluster scan joined to another account's higher entry…
#
GET
/api/admin/proposals/setup-requests
The custom scoring briefs waiting for the team's setup (setup_requested, or…
#
GET
/api/admin/proposals/baselines
Every approved proposal's listed competition on a baseline template, with where…
#
POST
/api/admin/proposals/{id}/baselines
Send the house baselines job of an approved proposal's listed competition now…
#
GET
/api/admin/proposals/{id}
A proposal as the desk decides on it: the rendered bundle, checks, AI flags…
#
POST
/api/admin/proposals/{id}/approve
Approve a proposal: approve_proposal opens its escrow with the stored terms…
#
POST
/api/admin/proposals/{id}/approve/submit
Relay the desk-signed approve_proposal (the one built last, byte for byte) and…
#
POST
/api/admin/proposals/{id}/reject/preview
The rejection document the sponsor would read, and its sha256: nothing stored…
#
POST
/api/admin/proposals/{id}/reject
Reject a proposal: the rejection document stored, then close_proposal returns…
#
POST
/api/admin/proposals/{id}/reject/submit
Relay the desk-signed close_proposal (the one built last for the stored…
#
POST
/api/admin/proposals/{id}/ai-review
Run the advisory AI review of a proposal now: it flags for the reviewer, and…
#
POST
/api/admin/proposals/{id}/setup
Finish a setup request: a house template and its knobs become the proposal's…
#
POST
/api/admin/proposals/{id}/setup/return
Return a setup request to its sponsor with a note (needs_fix): what to change…
#
POST
/api/admin/proposals/{id}/setup/note
Leave the sponsor a note on a setup request and keep it waiting (no house…
#
POST
/api/admin/proposals/{id}/anchors
Store one anchor file for a judged-artifact setup (the body is the file's…
#
POST
/api/admin/proposals/{id}/ladder/calibration
Store a judged-artifact setup's ladder calibration record (the body is…
#
POST
/api/admin/proposals/{id}/ladder/rungs
Store one ladder rung file for a judged-artifact setup (the body is the file's…
#
POST
/api/admin/proposals/{id}/pack
Upload a code bounty's test pack (a tar): built in the grader's sandbox (the…
#
GET
/api/admin/proposals/{id}/packs
The test packs built for a proposal, newest first: each pack's id, digests and…
#
GET
/api/admin/settings/sponsor-intake
Whether the sponsor desk takes deposits (closed until an admin opens it)
#
POST
/api/admin/settings/sponsor-intake
Open or close the sponsor desk to deposits ({open}), recorded
#
GET
/api/admin/settings/coin-page
Whom the /coin page shows to: signed-out visitors and signed-in accounts, each…
#
POST
/api/admin/settings/coin-page
Show or hide the /coin page to signed-out visitors and to signed-in accounts…
#
GET
/api/admin/settings/hero-featured
The competitions pinned to follow the home page hero's first card (the soonest…
#
POST
/api/admin/settings/hero-featured
Pin the competitions that follow the home page hero's first card (the soonest…
#
POST
/api/admin/patch-packs
Upload a patch/v1 pack (a tar): its base sealed with the house GitHub token…
#
GET
/api/admin/patch-packs/{id}
A stored patch/v1 pack: its record (digests, runs without their per-test…
#
POST
/api/admin/seeding/runs
Queue a seeding run over some niches (every one when omitted); while one is…
#
GET
/api/admin/seeding/niches/{slug}/categories
A niche's categories, most popular first, with their popularity evidence…
#
GET
/api/admin/seeding/ideas
The contest ideas by rank (unranked last), filtered by status, niche, format…
#
GET
/api/admin/seeding/ideas/{id}
One contest idea: its baseline, gate runs, series lineage and what an admin may…
#
POST
/api/admin/seeding/ideas/{id}/reject
Reject a contest idea before it is exported, with why ({note}). Recorded
#
POST
/api/admin/seeding/ideas/{id}/recompile
Send a contest idea back to drafted at a rung of its template's axis (its own…
#
POST
/api/admin/seeding/ideas/{id}/export
Record a contest idea exported as a draft house competition, once its bundle…
#
GET
/api/admin/seeding/ideas/{id}/export.tar.gz
An exported contest idea's draft house competition (competitions//...); changes…
#
GET
/api/admin/seeding/templates
The contest template registry: each with its digest, axis and ideas counted
#
GET
/api/admin/releases
The release templates and every release lane, each with its pool, prize tables…
#
POST
/api/admin/releases/schedules
Create a release lane and its pool, each slot checked against its template's…
#
POST
/api/admin/releases/schedules/{id}
Change a release lane: the fields given, and with slots its whole pool (a…
#
POST
/api/admin/releases/schedules/{id}/launch
Launch now: a manual launch of a release lane (that slot, else a weighted…
#
GET
/api/admin/releases/launches
The release launches, newest first (one lane's or every lane's), with their…
#
GET
/api/admin/autopay
The autopay job's state: on or off, paused or not and why, its caps and what it…
#
POST
/api/admin/autopay/pause
Pause autopay ({reason}), recorded: the next run sends nothing until an admin…
#
GET
/api/admin/discord/invites
The community Discord's joins by traffic source: each class's invite, its…
#
POST
/api/admin/competitions/{slug}/force-end
Force-end a competition ({reason, pay?}): deadline pulled in, locked, and…
#
POST
/api/admin/competitions/{slug}/payouts/approve
Approve a competition's payouts ({reason}), recorded: autopay pays its claimed…
#
GET
/api/admin/referrals
The referral rewards by status (pending oldest first) and kind, one referrer's…
#
POST
/api/admin/referrals/approve
Approve pending referral rewards (one id, or up to 100 at once): each answered…
#
POST
/api/admin/referrals/reject
Reject pending or unclaimed approved referral rewards (one id, or up to 100)…
#
GET
/api/admin/referrals/claims
The referral claims by status (held by default, oldest first), each with its…
#
POST
/api/admin/referrals/claims/{id}/pay
Pay a held referral claim from the reward wallet now, or resume one still…
#
GET
/api/admin/referrals/terms
The house's default referral prize-share terms and every referrer an admin set…
#
POST
/api/admin/referrals/terms
Set a referrer's own prize-share terms (basis points and days), set whole: they…
#
GET
/api/admin/referrals/terms/{handle}
One referrer's prize-share terms: the default, its own and the ones its next…
#
POST
/api/admin/referrals/terms/clear
Clear a referrer's own prize-share terms: its sign-ups from now on bind on the…
#
GET
/api/admin/experiments
The A/B tests' readout (the Discord reward test and the tutorial test): per…
#
POST
/api/admin/payouts/screen-bulk
Record the sanctions screening of each listed payout's winner, as the…
#
GET
/api/admin/allowances
The sponsors' build allowances: each deposit, its competition's metered spend…
#
GET
/api/admin/allowances/{id}
One build allowance: each entrant's metered spend, every build key's state and…
#
POST
/api/admin/allowances/{id}/mark-refunded
Record an allowance's owed refund paid on the manual rail ({tx_ref}: the USDC…
#
POST
/api/admin/window
Open this session's admin window: a wallet on the account confirms it (403…
#
POST
/api/admin/competitions/{slug}/finalize
Finalize a phase: queue its final grading and show its scores
#
POST
/api/admin/competitions/{slug}/escrow/requeue
Queue an escrowed competition's post-result or commit-entries job again, now…
#
POST
/api/admin/competitions/{slug}/resolve
Resolve a competition: the winners from the final standings, each reward a…
#
POST
/api/admin/runs/{id}/regrade
Queue an L1 (re-score) or L2 (re-execute) regrade of a grade run
#
POST
/api/admin/payouts/{id}/mark-paid
Record a ready payout as paid with its transfer reference (manual rail)
#
GET
/api/admin/prize-wallet
The reward wallet that pays the manual rail: its address, SOL and USDC…
#
POST
/api/admin/prize-wallet/deposit
A USDC or SOL deposit into the reward wallet from the admin's own wallet…
#
POST
/api/admin/prize-wallet/deposit/submit
Relay the deposit its wallet signed, recorded before it is sent, confirm it…
#
GET
/api/admin/prize-wallet/arrivals
The latest transfers into the reward wallet, newest first, each naming its…
#
GET
/api/admin/competitions
Every competition, demo rows marked: open and closed by deadline, then drafts…
#
GET
/api/admin/competitions/{slug}/entries
Every entry of one competition, newest first: entrant, source and snapshot, the…
#
GET
/api/admin/competitions/{slug}/near-duplicates
One competition's near-duplicate sets: entries sharing most of their own code…
#
GET
/api/admin/submissions/summary
The submission explorer's bird's-eye counts: per listed competition with an…
#
GET
/api/admin/submissions
Every entry of every listed competition, newest first, each as the competition…
#
GET
/api/admin/repos
Every repository entrants submitted, one row per repo_url aggregated over the…
#
POST
/api/admin/payouts/{id}/transfer
A ready usdc-solana payout's USDC transfer from the reward wallet, unsigned…
#
POST
/api/admin/payouts/{id}/transfer/submit
Relay the reward-wallet-signed transfer of a payout, recorded sent before it is…
#
POST
/api/admin/payout-profiles/{id}/sanctions-screened
Record (or clear) a winner's sanctions screening
#
POST
/api/admin/datasets/register
Register a frozen dataset directory and optionally attach it to a phase
#
POST
/api/admin/submissions/{id}/baseline
Mark (or clear) a house account's entry as a baseline reference entry: listed…
#
POST
/api/admin/competitions/{slug}/escrow
Open a competition's on-chain reward escrow: funded by the sponsor key off…
#
POST
/api/admin/competitions/{slug}/escrow/fund
Fund an escrow's shortfall (its total less what its vault holds): sent by the…
#