EZO Labs Inc. Admin API

Finalizing, resolving, regrades, payouts, datasets and baseline entries (admin role)

GitHub OpenAPI

Operations 144

GET /api/admin/users/{handle}/payout-pin An account's payout pin, as an admin reads it #
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 Every rehost, newest first: its status, upstream amount, reward, ops cost… #
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)… #
POST /api/admin/submissions/{id}/source-restore Put a taken-down entry's source back up #
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}/hide Hide a comment from readers, recorded #
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 #
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/runs/{runId}/trials/{index}/requeue Re-queue a held agent/v1 trial #
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/submissions/{id}/defender/rerun Run the security audit on a held entry again #
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/competitions/{slug}/inference An agent/v1 competition's inference spend #
GET /api/admin/proposals The sponsor proposals in review, oldest review deadline first #
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… #
GET /api/admin/seeding/runs The seeding runs, newest first #
POST /api/admin/seeding/runs Queue a seeding run over some niches (every one when omitted); while one is… #
GET /api/admin/seeding/niches The seeding niches, each with its scored categories counted #
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}/pick Pick a gated contest idea (gated → picked). Recorded #
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/gaps The template gaps the seeding found, newest first #
POST /api/admin/seeding/gaps/{id} Settle an open template gap: accepted or dismissed. Recorded #
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… #
POST /api/admin/autopay/resume Resume autopay ({reason?}), recorded #
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… #
GET /api/admin/window This session's admin window: whether admin changes wait for a wallet… #
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… #
GET /api/admin/runs/{id} A run and its regrades #
POST /api/admin/runs/{id}/regrade Queue an L1 (re-score) or L2 (re-execute) regrade of a grade run #
GET /api/admin/payouts The payout ledger, newest first #
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… #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/make-fun:make-fun-admin-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

make-fun-admin-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: make.fun Admin API
  description: 'Competitions to build software with AI agents: the board, leaderboards, kits, entering, entry archives (snapshot, blame, transcripts, action logs), search, discussion, prize claims and the admin routes. Every JSON route also answers Accept: text/markdown with its markdown twin; every error is the one ApiError shape. MCP at https://make.fun/mcp; an index for agents at https://make.fun/llms.txt.'
  version: 0.1.0
servers:
- url: https://make.fun
tags:


# --- truncated at 32 KB (853 KB total) ---
# Full source: https://artifacts.apis.io/make-fun/openapi/make-fun-admin-api-openapi.yml