Referência da API
Rotas internas de busca, decks e coleção.
Atualizado em 11 de junho de 2026
As rotas internas ficam em src/app/api. Todas que alteram dados validam a sessão e o corpo da requisição com Zod antes de gravar. As respostas são JSON, exceto as exportações, que devolvem texto para download.
Autenticação
POST /api/cadastrocria uma conta. Corpo:name,email,password. Faz hash da senha com bcrypt.GETePOST /api/auth/[...nextauth]são tratados pelo Auth.js (login, logout, sessão).
Cartas
GET /api/cards/typeahead?q=textoretorna sugestões por nome. O parâmetro opcionalidentity=GUrestringe à identidade de cor, usado pelo deck builder quando há comandante.GET /api/cards/prints?name=Nomeconsulta a Scryfall e devolve as impressões alternativas de uma carta, para a troca de arte.POST /api/cards/suggestionsrecebe identidade, formato e os ids já no deck, e devolve as cartas mais jogadas que cabem e ainda não estão na lista.
Decks
POST /api/deckscria um deck.PATCH /api/decks/[id]atualiza nome, descrição, formato ou capa.DELETE /api/decks/[id]remove o deck.POST /api/decks/[id]/cardsadiciona, ajusta, move entre boards ou define comandante. Aceitadelta(incremento) ouquantity(valor absoluto);quantityzero remove a carta.POST /api/decks/[id]/importimporta uma lista em texto, somando ou substituindo.GET /api/decks/[id]/exportbaixa a lista do deck como arquivo de texto.
Coleção
POST /api/collectionadiciona uma carta à coleção.PATCH /api/collection/[entryId]ajusta quantidade, foil, condição ou edição; quantidade zero remove.DELETE /api/collection/[entryId]remove a entrada.POST /api/collection/importimporta CSV ou lista simples.GET /api/collection/exportbaixa a coleção em CSV.
Propriedade dos recursos
Decks e entradas de coleção só podem ser lidos ou alterados pelo dono. Essa checagem é centralizada: decks usam o helper ownDeck (src/lib/deck-auth.ts), que carrega o recurso e confirma que pertence à sessão atual antes de qualquer operação.