Drafter.lol is desktop only for now
Open this page on a computer to create and run drafts.
Drafter.lol is desktop only for now
Open this page on a computer to create and run drafts.
Welcome to the Drafter.lol API documentation. Our API provides programmatic access to create and manage draft series, enabling seamless integration for tournament organizers, discord bots, and event management systems.
Need help?
Join our Discord for direct support from the developers.
Programmatically create a new draft series. This endpoint is ideal for automating match generation for tournaments.
Send a JSON object with the following parameters:
Use internal champion keys, not display names (e.g. Wukong = MonkeyKing).
Important
Fearless and Ironman modes are mutually exclusive.
Returns the created series ID and direct URL:
Create a standalone draft room without series features.
Send a JSON object with the following parameters:
Use internal champion keys, not display names (e.g. Wukong = MonkeyKing).
Returns the created draft ID and direct URL:
Fetch recent Drafts created by your account.
Returns a list of drafts created by your account (limited by amount):
Ordered from most recent to oldest.
Fetch completed draft results for a single draft or a series by ID. The response shape depends on the draft type.
Missing or unavailable IDs return 404 Draft not found.
Single draft response:
disabledChampions contains champion keys (for example, Wukong is MonkeyKing).
Series response:
For series, only drafts that are completed are included in the drafts array.
In fearless or ironman mode, fearlessUsedChampions tracks champions that were picked (and banned if ironman mode) by each team across the series.
This endpoint is limited to 100 requests per minute per API key.
Missing draft lookups are additionally limited to 10 per hour.
Instead of polling for results, we can push them to you. Every draft you create through the API sends two POST requests to a URL of your choice: one the moment all picks and bans are locked in, and one when role confirmation resolves. Only drafts created with your API key are sent, and only after webhooks have been enabled for your account.
Send us the URL you want to receive events on and we will attach it to your account. If you want to verify that a request really came from us, send a token along with it and we will put it on every delivery as Authorization: Bearer …. You can confirm what we have on file, and send yourself a test event, with these endpoints:
GET https://api.drafter.lol/api/webhooks
POST https://api.drafter.lol/api/webhooks/test
Every delivery carries an event field, so you can react to only the ones you care about:
A finished draft always produces exactly two deliveries: draft.completed followed by one of the two role_confirmation.* events. Drafts that are abandoned before the last pick send nothing.
data matches the single draft shape of Get Draft Data, so you can reuse the same parsing:
roleAssignments is null on draft.completed and role_confirmation.skipped. draftId is only set for standalone drafts. Series games use seriesId plus gameNumber instead.
If you gave us a token, compare it against your copy and reject anything that does not match. Use a constant-time comparison if your language offers one. We only ever send it over HTTPS and we never follow redirects, so your endpoint is the only thing that sees it.
Without a token the requests are unauthenticated, so keep your endpoint URL private and treat every payload as unverified input: look the draft or series up by draftId or seriesId if you need to be sure it is one of yours. Requests are never signed, so a token proves who sent the request but not that the body is unmodified.
Answer with any 2xx status within 10 seconds. Timeouts, network errors and 429/5xx responses are retried twice more (after 2 and 8 seconds); other 4xx responses are treated as a permanent rejection and are not retried. Redirects are not followed, so give us the final URL.
Retries mean deliveries can arrive out of order, so use event and sentAt rather than arrival order.
Note that draft.completed is sent before the draft is marked as complete, so fetching it from Get Draft Data right away can still 404. The payload already contains the full result.
You can test integration using our dedicated test endpoints and key. This allows you to verify your integration without an active subscription.
For Series Creation:
For Single Draft Creation:
For Draft Data:
Allowed IDs: test-series-id (returns series data) and test-draft-id (returns single draft data).
These endpoints mimic the behavior of the production API. They are rate-limited to 100 requests per minute.