v20

latestOpenAPI 3.1.0raw.githubusercontent.com2026-08-011984401.2 MB
Tournament Free Agency

Accept or decline a free-agent pickup offer

Answers a pickup offer addressed to you as a free agent. You must be the offer's recipient - an offerId addressed to anyone else answers 403 - and the offer must still be PENDING, or the request answers 409 error_free_agent_offer_not_pending.

ACCEPTING JOINS THE TEAM. Your pool row becomes PICKED_UP, you are added to the offering team's tournament roster as a FREE_AGENT entry, and every other PENDING offer addressed to you in this tournament is expired - you are off the market. Re-read GET /tournaments/{identifier}/me afterwards rather than patching a cached offer list. Leaving that roster is also the only way back to AVAILABLE; the leave-pool endpoint refuses while you are rostered.

AN OFFER CAN LAPSE BETWEEN BEING SENT AND ANSWERED - the tournament may have started, you may have been picked up elsewhere, or the offering team may have left. When accepting finds any of those, the offer is durably marked EXPIRED and the request answers 409 error_free_agent_offer_not_pending, the same code as an already-answered offer. It never answers 200 with accepted false, so a client can rely on a 2xx meaning the pickup really happened. Retrying answers identically.

DECLINING IS ALWAYS AVAILABLE and notifies the captain who offered. The competitive-ban gate applies only to acceptance: a banned agent can clear an offer but receives 403 error_competitive_banned if they try to accept it.

Offer IDs are returned by GET /tournaments/{identifier}/me. Requires the tournaments actor free_agency capability.

post/tournaments/{identifier}/free-agency/offers/{offerId}/respond

Path parameters

identifierstring required

Tournament slug.

Tournament slug.

offerIdstring required

Free-agent pickup offer ID, as returned by GET /tournaments/{identifier}/me - inbound offers under offers.

Free-agent pickup offer ID, as returned by GET /tournaments/{identifier}/me - inbound offers under offers.

Request body

acceptboolean required

true to accept the offer and join the offering team's roster, false to decline it. A competitive ban blocks accepting but never declining.

Response

The response was recorded.

acceptedboolean required

Echoes the request's accept flag once the response has been recorded. An offer that turned out to be no longer actionable is a 409 rather than a false here - see the endpoint description.

timestampstring required

Response generation time (ISO 8601).