EZO Labs Inc. Claims API
On-chain prizes: the caller's prize leaves, a leaf's claim ticket, the claim's screen and its signed claim transaction
On-chain prizes: the caller's prize leaves, a leaf's claim ticket, the claim's screen and its signed claim transaction
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/make-fun:make-fun-claims-api"
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.
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: 3.2.0
info:
title: make.fun Claims 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:
- name: Claims
description: 'On-chain prizes: the caller''s prize leaves, a leaf''s claim ticket, the claim''s screen and its signed claim transaction'
paths:
/api/claims:
get:
operationId: getApiClaims
tags:
- Claims
summary: The caller's on-chain prizes (prize leaves), newest first
responses:
'200':
description: Page<ClaimSummary>
'400':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'401':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
parameters:
- in: query
name: limit
schema:
type: string
- in: query
name: cursor
schema:
type: string
minLength: 1
maxLength: 1024
security:
- apiKey: []
- session: []
x-makefun-budget: request
/api/claims/{id}:
get:
operationId: getApiClaimsById
tags:
- Claims
summary: 'A prize leaf''s claim ticket: escrow, mint, amount, proof, the payout root in…'
responses:
'200':
description: ClaimTicket
'400':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'401':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'404':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'409':
description: Not settled yet (ApiError); the leaf not in the payout root in force (EntryProblem, claim_root, stage held)
'503':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 200
required: true
security:
- apiKey: []
- session: []
x-makefun-budget: request
/api/claims/{id}/clearance:
post:
operationId: postApiClaimsByIdClearance
tags:
- Claims
summary: 'Screen a claim (sanctions, geo, tax form): answers the claim transaction…'
responses:
'200':
description: ClearanceResponse
'400':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'401':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'403':
description: 'ClaimProblem (claim_tax_form, tax_form needed): file a W-9 with this request; ApiError: a delegated entry''s leaf, its claimant (the payout wallet W) not one of the account''s entry wallets (sign in with W, or, W an agent wallet, claim from the account its agent is connected to)'
'404':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'409':
description: A state refusal (ApiError); the leaf not in the payout root in force (EntryProblem, claim_root, stage held); held on chain for review (ClaimProblem, about:blank, stage held, hold_reason review, expected_by)
'413':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'415':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'429':
description: 'EntryProblem (claim_rate, stage held): past the clearance rate; Retry-After and its fix say when to ask again. ApiError (data.program_error FlowLimitExceeded): the escrow program''s flow limit cannot pay the claim yet; Retry-After and data.retry_at say when it has refilled enough'
'451':
description: 'ClaimProblem (claim_sanctions, claim_geo): held on chain with a compliance key, hold_reason naming the hold; with none, refused and nothing held, its fix saying so'
'503':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 200
required: true
security:
- apiKey: []
- session: []
x-makefun-budget: request
/api/claims/{id}/submit:
post:
operationId: postApiClaimsByIdSubmit
tags:
- Claims
summary: Relay the claimant-signed claim transaction and confirm it
responses:
'200':
description: ClaimSubmitResponse
'400':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'401':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'403':
description: 'ApiError: a delegated entry''s leaf, its claimant (the payout wallet W) not one of the account''s entry wallets (sign in with W, or, W an agent wallet, claim from the account its agent is connected to)'
'404':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'409':
description: A state refusal, the program refusing the claim, or the claim not landing short of a refusal of the program (ApiError); the leaf not in the payout root in force (EntryProblem, claim_root, stage held)
'415':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'422':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'429':
description: 'ApiError: past the submit rate, or (data.program_error FlowLimitExceeded) the escrow program''s flow limit cannot pay the claim yet; Retry-After (and data.retry_at) say when to ask for the clearance again'
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
'503':
description: Error (ApiError)
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: array
items:
type: object
properties:
message:
type: string
path:
type: array
items:
type:
- string
- integer
required:
- message
data: {}
required:
- success
- error
parameters:
- in: path
name: id
schema:
type: string
minLength: 1
maxLength: 200
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
transaction:
type: string
minLength: 1
maxLength: 2048
required:
- transaction
additionalProperties: false
security:
- apiKey: []
- session: []
x-makefun-budget: request
components:
securitySchemes:
apiKey:
type: apiKey
in: header
name: x-api-key
description: A personal API key (POST /api/auth/solana/key, or a session's POST /api/auth/api-key/create). Refused by the admin routes and the session-only ones.
session:
type: apiKey
in: cookie
name: __Secure-better-auth.session_token
description: 'A signed-in session: the cookie the web sign-in sets (better-auth.session_token, unprefixed, over plain http), or the same token as Authorization: Bearer.'