Biblioteca
O que o dono está jogando, já jogou e quer jogar.
A nota rápida é a escala de um a dez que os cards mostram, guardada dez vezes maior: de 10 a 100 em passos de 10.
/api/ v1/ library/ seriesProgresso de todas as séries do solicitante. Índice compacto global e detalhes de uma página. Ignore altera o denominador; variantes explícitas contam pelo jogo original. Não aceita outro dono.
Parâmetros
| Campo | Tipo | Observações |
|---|---|---|
summary | integer | 1: resumo de até seis séries com duas partes na biblioteca. |
keys | string | Até seis chaves collection:id ou franchise:id, separadas por vírgulas, para carregar detalhes. |
filter | string | all, progress ou completed; contagens são globais. |
q | string | Nome da série, até 200 caracteres. |
sort | string | progress (padrão) ou name. |
page | integer | Página a partir de 1, seis séries por página. |
/api/ v1/ library/ ignoredOs jogos que o dono decidiu não jogar. Eles saem da conta das séries e continuam aparecendo na fileira: uma transmissão via satélite de 1997 que não existe mais é um fato sobre a série, e contá-la para sempre diria que a pessoa está atrasada em algo que ninguém alcança. Não é DROPPED, que é sobre um jogo que foi jogado, e não é lista de desejos ao contrário. Só do solicitante: não há como ler a de outra pessoa.
Parâmetros
| Campo | Tipo | Observações |
|---|---|---|
games | string | Até 200 ids separados por vírgula, para uma página que vai desenhar justamente esses. Sem isso, responde a lista toda. |
/api/ v1/ library/ ignoredIgnora um jogo, ou muda a nota de um já ignorado. Apertar duas vezes quer dizer a mesma coisa nas duas, então é um upsert e não uma segunda linha.
Corpo
| Campo | Tipo | Observações |
|---|---|---|
igdb_idobrigatório | integer | O id do jogo no catálogo. |
game_slugobrigatório | string | O slug do jogo. |
note | string | Por quê, nas palavras de quem escreve, até 140 caracteres. O site não oferece uma lista de motivos porque estaria errado sobre o terceiro. |
/api/ v1/ library/ ignored/ {id}Volta a contar o jogo. Nada mais sobre ele muda, porque nada mais tinha mudado: ignorar é uma frase sobre a barra de progresso, não sobre a biblioteca.
/api/ v1/ library/ poolBiblioteca do solicitante com capas e nomes para seleção de jogos.
/api/ v1/ library/ cardsEstado dos jogos na biblioteca do solicitante e contagens da biblioteca. ids: 1 a 200 ids; sem ids, responde só as contagens; all=1 responde a biblioteca inteira, até três mil linhas, para as leituras que são sobre a estante e não sobre uma tela dela.
/api/ v1/ discovery/ libraryJogos em andamento e na fila da biblioteca do solicitante.
/api/ v1/ libraryA biblioteca do dono, alteração mais recente primeiro.
Parâmetros
| Campo | Tipo | Observações |
|---|---|---|
page | integer | De 1 a 1000. |
/api/ v1/ libraryAdiciona ou altera um jogo. Pelo menos um entre status, clear_status, nota, capa ou marcador é obrigatório. clear_status desliga aquele status e devolve o jogo ao que ele era antes.
Corpo
| Campo | Tipo | Observações |
|---|---|---|
igdb_idobrigatório | integer | O id do jogo no catálogo. |
game_slugobrigatório | string | O slug do jogo. |
status | string | BACKLOG, PLAYING, ON_HOLD, COMPLETED, DROPPED ou WISHLIST. |
rating | integer | A nota rápida, de 10 a 100 em passos de 10. É a escala de um a dez que os cards mostram, guardada dez vezes maior. Envie null para apagar a nota. |
cover_url | string | A capa que este jogo mostra para você: um endereço de imagem do IGDB como o site monta, https://images.igdb.com/igdb/image/upload/t_{size}/{image_id}.jpg, em que size é cover_big, 1080p, logo_med, thumb ou original, image_id tem de 1 a 64 letras, algarismos, - ou _, e o fim é .jpg ou .png. Espaços nas pontas são ignorados; qualquer outro endereço, ou um com caractere de controle, responde 400 com reason invalid_cover_url. É mais estreito do que antes, quando valia qualquer endereço em https://images.igdb.com/ de até 2048 caracteres; as capas já salvas continuam, menos as que tinham um caractere de controle, que voltaram para a capa do catálogo. O jogo não precisa estar na biblioteca ainda. |
playing | boolean | Se você está jogando agora. É independente do status: um replay de um jogo já zerado é as duas coisas ao mesmo tempo. |
backlog | boolean | Marcador rápido. |
wishlist | boolean | Marcador rápido. |
liked | boolean | Marcador rápido. |
Exemplo
{
"data": {
"igdb_id": 14593,
"game_slug": "hollow-knight",
"status": "PLAYING",
"quick_rating": 90
}
}/api/ v1/ library/ {igdb_id}Altera um jogo que já está na biblioteca. Aceita os mesmos campos do POST, sem game_slug: a linha já diz qual jogo é. Um jogo que ainda não está lá responde 404, e entra pelo POST.
Corpo
| Campo | Tipo | Observações |
|---|---|---|
cover_url | string | A capa escolhida para este jogo, com a regra do POST: só um endereço de imagem do IGDB como o site monta (https://images.igdb.com/igdb/image/upload/t_cover_big/{image_id}.jpg); qualquer outro responde 400 com reason invalid_cover_url, uma regra mais estreita do que a de antes (veja o POST). A capa vem do catálogo, não de qualquer lugar. Os outros só a veem se escolheram ver as capas dos outros jogadores (custom_cover_scope EVERYONE no próprio perfil). |
/api/ v1/ library/ {igdb_id}Tira um jogo da biblioteca, com a nota e os marcadores dele.
/api/ v1/ library/ copies/ {id}Altera uma cópia. O que não vier no corpo fica como está. A coleção também aceita id no POST, e continua aceitando.
Corpo
| Campo | Tipo | Observações |
|---|---|---|
platform_id | integer | O id da plataforma no catálogo. |
platform_name | string | Até 120 caracteres. |
storefront | string | Mesma lista do POST da coleção. |
ownership | string | OWNED, SUBSCRIPTION, BORROWED, RENTED, SHARED ou PREVIOUSLY_OWNED. |
medium | string | PHYSICAL ou DIGITAL. |
edition | string | Até 120 caracteres. |
region | string | Até 60 caracteres. |
note | string | Até 300 caracteres. |
acquired_on | string | AAAA-MM-DD. |
/api/ v1/ library/ copies/ {id}Esquece uma cópia. As jornadas jogadas nela ficam sem plataforma registrada e mantêm as sessões: apagar a cópia não apaga o que foi jogado.
/api/ v1/ library/ copiesAs cópias do dono, de página em página: o que ele tem, ou a que tem acesso. Uma jornada aponta para a cópia em que foi jogada. Com game, responde as cópias daquele jogo inteiras e sem cursor, que é o que a página de um jogo pergunta.
Parâmetros
| Campo | Tipo | Observações |
|---|---|---|
game | integer | Só as cópias desse jogo. |
games | integer | games=1 traz também os jogos do catálogo, no formato de /api/v1/games (com type), para quem desenha cópias de vários jogos de uma vez. |
limit | integer | Quantas cópias por página: 1 a 100, 24 por padrão. Não vale com game, que responde as cópias daquele jogo inteiras. |
cursor | string | O next_cursor da página anterior. Esta coleção anda por cursor e não por número de página, porque uma prateleira muda enquanto se anda por ela e um deslocamento repetiria ou pularia linhas. Um cursor sem sentido começa do início. |
sort | string | newest (padrão), oldest, title ou acquired. Em acquired, as cópias sem data vêm por último: quem nunca anotou quando conseguiu uma não foi quem a conseguiu primeiro. O cursor pertence à ordem, então trocar de sort é começar de novo. |
platform | integer | Só as cópias dessa plataforma, pelo id do catálogo. O facet devolve o id em value e o nome em label: o nome é apresentação, e filtrar por ele seria filtrar por algo que muda de escrita. |
medium | string | PHYSICAL ou DIGITAL. Os filtros se somam com e, nunca com ou: medium e storefront juntos respondem o que atende aos dois. |
ownership | string | OWNED, SUBSCRIPTION, BORROWED, RENTED, SHARED ou PREVIOUSLY_OWNED. |
storefront | string | Mesma lista do POST. Um valor fora dela é ignorado em vez de virar erro, para que um filtro nunca seja algo que alguém digitou. |
q | string | Busca no título, na edição e na plataforma das cópias. Não passa pelo catálogo: é a prateleira que responde. |
facets | integer | facets=1 traz as contagens por plataforma, mídia, posse e loja, e os totais. Cada facet é contado com os outros filtros aplicados e o seu próprio ignorado, então escolher uma plataforma não zera as demais e sempre há caminho de volta. Já os totais são do resultado filtrado, busca incluída: uma tela que mostra 22 cópias da Steam nunca diz "de 100 jogos". Eles separam duas perguntas parecidas: jogos que se tem mais de uma vez, e jogos que se tem em mais de uma plataforma. Quem tem dois discos iguais de PS5 conta na primeira e não na segunda. |
group | string | platform, medium, ownership ou storefront. Traz group_counts: o tamanho de cada grupo no resultado inteiro, e não na página. Uma prateleira com 40 cópias da Steam diz 40 enquanto mostra as primeiras 24, e continua dizendo 40 depois de carregar mais. Respeita todos os filtros, inclusive o próprio: com medium=PHYSICAL, um grupo Steam de 5 cópias físicas diz 5, e não as 25 que existem. |
Exemplo
{
"data": [
{
"id": "0f0b8e2c-…",
"igdb_id": 14593,
"game_slug": "hollow-knight",
"platform_name": "Nintendo Switch",
"medium": "PHYSICAL",
"acquired_on": "2024-03-02"
}
],
"page": { "size": 24, "has_more": true },
"next_cursor": "WyIyMDI2LTA5LTI3…"
}/api/ v1/ library/ copiesRegistra uma cópia, encontra a que já corresponde, ou altera uma existente enviando id. Tudo além do jogo é opcional: 'joguei no PS5' é uma linha com a plataforma e mais nada. `created` diz o que aconteceu, e `duplicate: true` força uma segunda cópia igual.
Corpo
| Campo | Tipo | Observações |
|---|---|---|
igdb_idobrigatório | integer | O id do jogo no catálogo. |
game_slugobrigatório | string | O slug do jogo. |
id | string | A cópia a alterar. Sem ele, cria outra. |
platform_id | integer | O id da plataforma no catálogo. |
platform_name | string | Até 120 caracteres. |
storefront | string | STEAM, PLAYSTATION, NINTENDO, XBOX, GOG, EPIC, ITCH, NUUVEM, BATTLE_NET, UBISOFT, EA, AMAZON, HUMBLE, GOOGLE_PLAY, APP_STORE, RETAIL ou OTHER. |
ownership | string | OWNED, SUBSCRIPTION, BORROWED, RENTED, SHARED ou PREVIOUSLY_OWNED. |
medium | string | PHYSICAL ou DIGITAL. |
edition | string | Até 120 caracteres. |
region | string | Até 60 caracteres. |
note | string | Até 300 caracteres. |
acquired_on | string | AAAA-MM-DD. |