Public decks
GET https://slinglab.gg/slinglab/api/v1/decks
Send an API key with the decks:public scope. The route returns decks their owners have published. It does not include the owner's id, folder, or card art.
The key's rate limit is 60 requests a minute and 5,000 a day. Over the limit, the response is HTTP 429 with code rate_limited.
Query
The filters match the public deck browser. Omit a filter to leave it open. page starts at 1, and each page has 24 decks.
| Parameter | Value |
|---|---|
q |
Words matched against the deck name and commanders. |
family |
mtg, yugioh, pokemon, or riftbound. |
format |
A format key, such as commander. |
bracket |
Commander bracket, 1 through 5. |
commander |
Commander name. |
colors |
Comma-separated W, U, B, R, G, C. |
colorMode |
any (default) or all. |
tags |
Comma-separated tag labels. |
precon |
1 to keep preconstructed decks. |
set |
A set code that appears in the deck. |
sort |
updated (default), name, commander, color, or rating. |
page |
Page number, starting at 1. |
rated |
1 for rated decks, 0 for unrated. |
ratingMin |
Minimum average rating. |
ratingsMin |
Minimum number of ratings. |
Body
{
"decks": [
{
"id": "deck_id",
"name": "Deck name",
"game_family": "mtg",
"format": "commander",
"bracket": 3,
"description": "",
"commanders": [{ "name": "Atraxa, Praetors' Voice", "colors": ["W", "U", "B", "G"] }],
"tags": ["Tokens"],
"rating_average": 4.2,
"rating_count": 6,
"view_count": 80,
"games_played": 12,
"updated_at": "2026-01-01T00:00:00.000Z",
"url": "https://slinglab.gg/decks/deck_id"
}
],
"total_count": 120,
"page": 1,
"page_size": 24
}
url opens the deck on SlingLab. Decklists for your own decks, including private ones, are in Your decks.