{"openapi":"3.0.3","info":{"title":"CardDex API","version":"1.0.0","description":"CardDex is the public beta Pokemon TCG API for cards, sets, prices, rulings, synergies, and format data.","contact":{"name":"CardDex","url":"https://github.com/emfurgalski-beep/from-alabastia"}},"servers":[{"url":"https://api.carddex.dev","description":"Production API"}],"paths":{"/v1/cards":{"get":{"tags":["Cards"],"summary":"List or search cards","parameters":[{"name":"name","in":"query","schema":{"type":"string"},"description":"Filter by name (partial match)"},{"name":"q","in":"query","schema":{"type":"string"},"description":"Full-text search"},{"name":"set","in":"query","schema":{"type":"string"},"description":"Filter by set ID"},{"name":"type","in":"query","schema":{"type":"string"},"description":"Filter by Pokemon type"},{"name":"rarity","in":"query","schema":{"type":"string"},"description":"Filter by rarity"},{"name":"supertype","in":"query","schema":{"type":"string"},"description":"Pokemon / Trainer / Energy"},{"name":"hp_gte","in":"query","schema":{"type":"integer"},"description":"Min HP"},{"name":"hp_lte","in":"query","schema":{"type":"integer"},"description":"Max HP"},{"name":"artist","in":"query","schema":{"type":"string"},"description":"Filter by artist"},{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":250},"description":"Results per page"},{"name":"sort","in":"query","schema":{"type":"string","enum":["name","hp","number","rarity","set","artist","release_date"]}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"],"default":"asc"}},{"name":"include","in":"query","schema":{"type":"string"},"description":"Comma-separated: attacks,abilities,weaknesses,resistances,images,translations,prices,rulings,synergies,meta,variants"}],"responses":{"200":{"description":"Paginated list of cards"}}}},"/v1/cards/random":{"get":{"tags":["Cards"],"summary":"Get a random card","responses":{"200":{"description":"A random card"}}}},"/v1/cards/{id}":{"get":{"tags":["Cards"],"summary":"Get a card by ID","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Card ID (for example sv06-001)"},{"name":"include","in":"query","schema":{"type":"string"},"description":"Comma-separated includes"}],"responses":{"200":{"description":"Card details"},"404":{"description":"Card not found"}}}},"/v1/cards/{id}/prices":{"get":{"tags":["Cards"],"summary":"Get price history for a card","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Price history"}}}},"/v1/cards/{id}/rulings":{"get":{"tags":["Cards"],"summary":"Get rulings for a card","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Card rulings"}}}},"/v1/cards/{id}/synergies":{"get":{"tags":["Cards"],"summary":"Get synergies for a card","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Related cards"}}}},"/v1/sets":{"get":{"tags":["Sets"],"summary":"List all sets","responses":{"200":{"description":"All sets"}}}},"/v1/sets/{id}":{"get":{"tags":["Sets"],"summary":"Get a set by ID","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Set details"},"404":{"description":"Set not found"}}}},"/v1/sets/{id}/cards":{"get":{"tags":["Sets"],"summary":"Get cards in a set","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50}}],"responses":{"200":{"description":"Cards in set"}}}},"/v1/prices/top":{"get":{"tags":["Prices"],"summary":"Top valued cards","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":10}}],"responses":{"200":{"description":"Top priced cards"}}}},"/v1/prices/trends":{"get":{"tags":["Prices"],"summary":"Biggest price movers","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":10}}],"responses":{"200":{"description":"Price trends"}}}},"/v1/meta/formats":{"get":{"tags":["Meta"],"summary":"List competitive formats","responses":{"200":{"description":"Formats"}}}},"/v1/meta/{format}/top":{"get":{"tags":["Meta"],"summary":"Top cards in a format","parameters":[{"name":"format","in":"path","required":true,"schema":{"type":"string","enum":["standard","expanded","unlimited"]}},{"name":"limit","in":"query","schema":{"type":"integer","default":20}}],"responses":{"200":{"description":"Top cards"}}}},"/v1/auth/register":{"post":{"tags":["Auth"],"summary":"Register for a free API key","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string"},"name":{"type":"string"}}}}}},"responses":{"201":{"description":"API key created"},"409":{"description":"Email already registered"}}}},"/v1/auth/regenerate":{"post":{"tags":["Auth"],"summary":"Regenerate API key","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string"}}}}}},"responses":{"200":{"description":"New key generated"},"404":{"description":"No key found"}}}},"/v1/auth/usage":{"get":{"tags":["Auth"],"summary":"Check API usage","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Usage data"},"401":{"description":"API key required"}}}},"/v1/community/submit":{"post":{"tags":["Community"],"summary":"Submit a correction","security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["card_id","field","suggested_value"],"properties":{"card_id":{"type":"string"},"field":{"type":"string"},"current_value":{"type":"string"},"suggested_value":{"type":"string"},"reason":{"type":"string"}}}}}},"responses":{"201":{"description":"Submission created"},"401":{"description":"API key required"}}}},"/v1/community/submissions":{"get":{"tags":["Community"],"summary":"View pending submissions","responses":{"200":{"description":"Pending submissions"}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key with pk_live_ prefix"}}}}