Welcome to Scrollrack.gg Documentation

Scrollrack.gg is a high-speed deck validation platform for trading card games (TCGs), currently supporting Magic: The Gathering (MTG) and Yu-Gi-Oh! with a simple, powerful API.

๐Ÿš€ Quick Start

# Validate a Commander deck
curl -X POST https://scrollrack.topdeck.gg/api/validate \
  -H "Content-Type: application/json" \
  -d '{
    "game": "mtg",
    "format": "commander",
    "list": "~~Commanders~~\n1 Atraxa, Praetors Voice\n\n~~Mainboard~~\n99 Forest"
  }'

๐Ÿ“˜ Core Concepts

Deck Validation

Scrollrack validates decklists against format-specific rules, checking:

Decklist Formatting

Decklists use a simple text format with section markers:

~~Mainboard~~
4 Lightning Bolt
20 Mountain

~~Sideboard~~
3 Blood Moon

Section markers use double tildes (~~Section Name~~) to define different parts of your deck.

๐ŸŽฎ Supported Games

Currently supported games:

๐Ÿ” Magic: The Gathering Features

๐Ÿ” Yu-Gi-Oh! Features

๐Ÿ“‹ Supported Formats

MTG Pre-configured formats:

MTG Default rules (applied to standard, modern, legacy, etc.):

Yu-Gi-Oh! Supported formats:

โš™๏ธ How It Works

Scrollrack processes decklists in the following steps:

  1. Parse the decklist: Text is parsed into sections with cards and quantities
  2. Normalize card names: Names are standardized for matching
  3. Database lookup: Cards are verified against game-specific databases
  4. Rule checking: Format-specific rules are applied
  5. Response generation: Results are formatted as JSON

๐Ÿ“ฌ API Reference

The Scrollrack API provides a simple RESTful interface for deck validation.

See the detailed API Reference for request/response formats, examples, and error handling.

๐Ÿงช Try It Live

Test the validation API with our interactive web interface:

Our live demo is available at: https://scrollrack.topdeck.gg/

๐Ÿ’ป Integration Examples

JavaScript

async function validateDeck(decklist) {
  const response = await fetch('https://scrollrack.topdeck.gg/api/validate', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      game: 'mtg',
      format: 'modern',
      list: decklist
    })
  });
  
  return await response.json();
}

Python

import requests

def validate_deck(decklist):
    response = requests.post(
        'https://scrollrack.topdeck.gg/api/validate',
        json={
            'game': 'mtg',
            'format': 'modern',
            'list': decklist
        }
    )
    
    return response.json()