uloggdDesenvolvedores
Portal do desenvolvedoruloggd
ComeçarRecursosArcade
Portal do desenvolvedoruloggdIdentidadeCatálogoPerfilBibliotecaAvaliaçõesDiárioListasPremiaçõesCapturasSocialContaNotificaçõesComentáriosCurtidasHistóricoPessoasMineraisArcade

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.

GET/api/v1/library/series

Progresso 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.

Escopo library.read · Conta na cota read

Parâmetros

CampoTipoObservações
summaryinteger1: resumo de até seis séries com duas partes na biblioteca.
keysstringAté seis chaves collection:id ou franchise:id, separadas por vírgulas, para carregar detalhes.
filterstringall, progress ou completed; contagens são globais.
qstringNome da série, até 200 caracteres.
sortstringprogress (padrão) ou name.
pageintegerPágina a partir de 1, seis séries por página.
GET/api/v1/library/ignored

Os 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.

Escopo library.read · Conta na cota read

Parâmetros

CampoTipoObservações
gamesstringAté 200 ids separados por vírgula, para uma página que vai desenhar justamente esses. Sem isso, responde a lista toda.
POST/api/v1/library/ignored

Ignora 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.

Escopo library.write · Conta na cota write

Corpo

CampoTipoObservações
igdb_idobrigatóriointegerO id do jogo no catálogo.
game_slugobrigatóriostringO slug do jogo.
notestringPor quê, nas palavras de quem escreve, até 140 caracteres. O site não oferece uma lista de motivos porque estaria errado sobre o terceiro.
DELETE/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.

Escopo library.write · Conta na cota write

GET/api/v1/library/pool

Biblioteca do solicitante com capas e nomes para seleção de jogos.

Escopo library.read · Conta na cota read

GET/api/v1/library/cards

Estado 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.

Escopo library.read · Conta na cota read

GET/api/v1/discovery/library

Jogos em andamento e na fila da biblioteca do solicitante.

Escopo library.read · Conta na cota read

GET/api/v1/library

A biblioteca do dono, alteração mais recente primeiro.

Escopo library.read · Conta na cota read

Parâmetros

CampoTipoObservações
pageintegerDe 1 a 1000.
POST/api/v1/library

Adiciona 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.

Escopo library.write · Conta na cota write

Corpo

CampoTipoObservações
igdb_idobrigatóriointegerO id do jogo no catálogo.
game_slugobrigatóriostringO slug do jogo.
statusstringBACKLOG, PLAYING, ON_HOLD, COMPLETED, DROPPED ou WISHLIST.
ratingintegerA 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_urlstringA 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.
playingbooleanSe você está jogando agora. É independente do status: um replay de um jogo já zerado é as duas coisas ao mesmo tempo.
backlogbooleanMarcador rápido.
wishlistbooleanMarcador rápido.
likedbooleanMarcador rápido.

Exemplo

{
  "data": {
    "igdb_id": 14593,
    "game_slug": "hollow-knight",
    "status": "PLAYING",
    "quick_rating": 90
  }
}
PATCH/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.

Escopo library.write · Conta na cota write

Corpo

CampoTipoObservações
cover_urlstringA 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).
DELETE/api/v1/library/{igdb_id}

Tira um jogo da biblioteca, com a nota e os marcadores dele.

Escopo library.write · Conta na cota write

PATCH/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.

Escopo library.write · Conta na cota write

Corpo

CampoTipoObservações
platform_idintegerO id da plataforma no catálogo.
platform_namestringAté 120 caracteres.
storefrontstringMesma lista do POST da coleção.
ownershipstringOWNED, SUBSCRIPTION, BORROWED, RENTED, SHARED ou PREVIOUSLY_OWNED.
mediumstringPHYSICAL ou DIGITAL.
editionstringAté 120 caracteres.
regionstringAté 60 caracteres.
notestringAté 300 caracteres.
acquired_onstringAAAA-MM-DD.
DELETE/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.

Escopo library.write · Conta na cota write

GET/api/v1/library/copies

As 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.

Escopo library.read · Conta na cota read

Parâmetros

CampoTipoObservações
gameintegerSó as cópias desse jogo.
gamesintegergames=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.
limitintegerQuantas 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.
cursorstringO 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.
sortstringnewest (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.
platformintegerSó 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.
mediumstringPHYSICAL ou DIGITAL. Os filtros se somam com e, nunca com ou: medium e storefront juntos respondem o que atende aos dois.
ownershipstringOWNED, SUBSCRIPTION, BORROWED, RENTED, SHARED ou PREVIOUSLY_OWNED.
storefrontstringMesma lista do POST. Um valor fora dela é ignorado em vez de virar erro, para que um filtro nunca seja algo que alguém digitou.
qstringBusca no título, na edição e na plataforma das cópias. Não passa pelo catálogo: é a prateleira que responde.
facetsintegerfacets=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.
groupstringplatform, 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…"
}
POST/api/v1/library/copies

Registra 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.

Escopo library.write · Conta na cota write

Corpo

CampoTipoObservações
igdb_idobrigatóriointegerO id do jogo no catálogo.
game_slugobrigatóriostringO slug do jogo.
idstringA cópia a alterar. Sem ele, cria outra.
platform_idintegerO id da plataforma no catálogo.
platform_namestringAté 120 caracteres.
storefrontstringSTEAM, PLAYSTATION, NINTENDO, XBOX, GOG, EPIC, ITCH, NUUVEM, BATTLE_NET, UBISOFT, EA, AMAZON, HUMBLE, GOOGLE_PLAY, APP_STORE, RETAIL ou OTHER.
ownershipstringOWNED, SUBSCRIPTION, BORROWED, RENTED, SHARED ou PREVIOUSLY_OWNED.
mediumstringPHYSICAL ou DIGITAL.
editionstringAté 120 caracteres.
regionstringAté 60 caracteres.
notestringAté 300 caracteres.
acquired_onstringAAAA-MM-DD.

Perfil

O perfil do próprio dono.

Avaliações

As avaliações do dono.