uloggdDesarrolladores
Portal de desarrolladoresuloggd
EmpezarRecursosArcade
Portal de desarrolladoresuloggdIdentidadCatálogoPerfilBibliotecaReseñasDiarioListasPremiosCapturasSocialCuentaNotificacionesComentariosMe gustaHistorialPersonasMineralesArcade

Biblioteca

Lo que el dueño está jugando, ya jugó y quiere jugar.

La nota rápida es la escala de uno a diez que muestran las tarjetas, guardada diez veces mayor: de 10 a 100 en pasos de 10.

GET/api/v1/library/series

Progreso de todas las series del solicitante. Índice compacto global y detalles de una página. Ignorar cambia el denominador; variantes explícitas cuentan por el juego original. No acepta otro dueño.

Permiso library.read · Cuenta en la cuota read

Parámetros

CampoTipoNotas
summaryinteger1: resumen de hasta seis series con dos partes en biblioteca.
keysstringHasta seis claves collection:id o franchise:id separadas por comas para cargar detalles.
filterstringall, progress o completed; contadores globales.
qstringNombre de serie, hasta 200 caracteres.
sortstringprogress (predeterminado) o name.
pageintegerPágina desde 1, seis series por página.
GET/api/v1/library/ignored

Los juegos que el dueño decidió no jugar. Salen de la cuenta de las series y siguen en la fila: una transmisión por satélite de 1997 que ya no existe es un hecho sobre la serie, y contarla para siempre diría que alguien está atrasado en algo que nadie alcanza. No es DROPPED, que trata de un juego que se jugó, ni una lista de deseos al revés. Solo la del solicitante: no hay forma de leer la de otra persona.

Permiso library.read · Cuenta en la cuota read

Parámetros

CampoTipoNotas
gamesstringHasta 200 ids separados por comas, para una página que va a dibujar justamente esos. Sin eso, responde la lista entera.
POST/api/v1/library/ignored

Ignora un juego, o cambia la nota de uno ya ignorado. Apretarlo dos veces significa lo mismo las dos, así que es un upsert y no una segunda fila.

Permiso library.write · Cuenta en la cuota write

Cuerpo

CampoTipoNotas
igdb_idobligatoriointegerEl id del juego en el catálogo.
game_slugobligatoriostringEl slug del juego.
notestringPor qué, en las palabras de quien escribe, hasta 140 caracteres. El sitio no ofrece una lista de motivos porque se equivocaría con el tercero.
DELETE/api/v1/library/ignored/{id}

Vuelve a contar el juego. Nada más sobre él cambia, porque nada más había cambiado: ignorar es una frase sobre la barra de progreso, no sobre la biblioteca.

Permiso library.write · Cuenta en la cuota write

GET/api/v1/library/pool

Biblioteca del solicitante con portadas y nombres para seleccionar juegos.

Permiso library.read · Cuenta en la cuota read

GET/api/v1/library/cards

Estado de los juegos en la biblioteca del solicitante y conteos. ids: 1 a 200 ids; sin ids, responde solo los conteos; all=1 responde la biblioteca entera, hasta tres mil filas, para las lecturas que tratan del estante y no de una pantalla de él.

Permiso library.read · Cuenta en la cuota read

GET/api/v1/discovery/library

Juegos en curso y en la cola de la biblioteca del solicitante.

Permiso library.read · Cuenta en la cuota read

GET/api/v1/library

La biblioteca del dueño, con el cambio más reciente primero.

Permiso library.read · Cuenta en la cuota read

Parámetros

CampoTipoNotas
pageintegerDe 1 a 1000.
POST/api/v1/library

Agrega o cambia un juego. Se exige al menos uno entre status, clear_status, nota, portada o marcador. clear_status apaga ese status y devuelve el juego a lo que era antes.

Permiso library.write · Cuenta en la cuota write

Cuerpo

CampoTipoNotas
igdb_idobligatoriointegerEl id del juego en el catálogo.
game_slugobligatoriostringEl slug del juego.
statusstringBACKLOG, PLAYING, ON_HOLD, COMPLETED, DROPPED o WISHLIST.
ratingintegerLa nota rápida, de 10 a 100 en pasos de 10. Es la escala de uno a diez que muestran las tarjetas, guardada diez veces mayor. Envía null para borrarla.
cover_urlstringLa portada que este juego te muestra: una dirección de imagen de IGDB como la arma el sitio, https://images.igdb.com/igdb/image/upload/t_{size}/{image_id}.jpg, donde size es cover_big, 1080p, logo_med, thumb u original, image_id tiene de 1 a 64 letras, dígitos, - o _, y el final es .jpg o .png. Los espacios en los extremos se ignoran; cualquier otra dirección, o una con un carácter de control, responde 400 con reason invalid_cover_url. Es más estrecho que antes, cuando valía cualquier dirección bajo https://images.igdb.com/ de hasta 2048 caracteres; las portadas ya guardadas siguen, salvo las que tenían un carácter de control, que volvieron a la portada del catálogo. El juego no necesita estar en la biblioteca todavía.
playingbooleanSi lo estás jugando ahora. Es independiente del estado: una repetición de un juego terminado es ambas cosas a la vez.
backlogbooleanMarcador rápido.
wishlistbooleanMarcador rápido.
likedbooleanMarcador rápido.

Ejemplo

{
  "data": {
    "igdb_id": 14593,
    "game_slug": "hollow-knight",
    "status": "PLAYING",
    "quick_rating": 90
  }
}
PATCH/api/v1/library/{igdb_id}

Cambia un juego que ya está en la biblioteca. Acepta los mismos campos que el POST, sin game_slug: la fila ya dice qué juego es. Un juego que aún no está responde 404, y entra por el POST.

Permiso library.write · Cuenta en la cuota write

Cuerpo

CampoTipoNotas
cover_urlstringLa portada elegida para este juego, con la regla del POST: solo una dirección de imagen de IGDB como la arma el sitio (https://images.igdb.com/igdb/image/upload/t_cover_big/{image_id}.jpg); cualquier otra responde 400 con reason invalid_cover_url, una regla más estrecha que la de antes (ver el POST). La portada viene del catálogo, no de cualquier sitio. Los demás solo la ven si eligieron ver las portadas de otros jugadores (custom_cover_scope EVERYONE en su propio perfil).
DELETE/api/v1/library/{igdb_id}

Saca un juego de la biblioteca, con su nota y sus marcadores.

Permiso library.write · Cuenta en la cuota write

PATCH/api/v1/library/copies/{id}

Cambia una copia. Lo que el cuerpo omite queda como está. La colección también acepta id en POST, y lo sigue aceptando.

Permiso library.write · Cuenta en la cuota write

Cuerpo

CampoTipoNotas
platform_idintegerEl id de la plataforma en el catálogo.
platform_namestringHasta 120 caracteres.
storefrontstringLa misma lista del POST de la colección.
ownershipstringOWNED, SUBSCRIPTION, BORROWED, RENTED, SHARED o PREVIOUSLY_OWNED.
mediumstringPHYSICAL o DIGITAL.
editionstringHasta 120 caracteres.
regionstringHasta 60 caracteres.
notestringHasta 300 caracteres.
acquired_onstringAAAA-MM-DD.
DELETE/api/v1/library/copies/{id}

Olvida una copia. Los recorridos jugados en ella quedan sin plataforma registrada y conservan sus sesiones: borrar la copia no borra lo jugado.

Permiso library.write · Cuenta en la cuota write

GET/api/v1/library/copies

Las copias del dueño, de página en página: lo que tiene, o a lo que tiene acceso. Un recorrido apunta a la copia en que se jugó. Con game, responde las copias de ese juego enteras y sin cursor, que es lo que pregunta la página de un juego.

Permiso library.read · Cuenta en la cuota read

Parámetros

CampoTipoNotas
gameintegerSolo las copias de ese juego.
gamesintegergames=1 trae también los juegos del catálogo, con la forma de /api/v1/games (type incluido), para quien dibuja copias de varios juegos a la vez.
limitintegerCopias por página: 1 a 100, 24 por defecto. No aplica con game, que responde las copias de ese juego enteras.
cursorstringEl next_cursor de la página anterior. Esta colección anda por cursor y no por número de página, porque un estante cambia mientras se recorre y un desplazamiento repetiría o saltaría filas. Un cursor sin sentido empieza desde el principio.
sortstringnewest (por defecto), oldest, title o acquired. En acquired las copias sin fecha van al final: quien nunca anotó cuándo consiguió una no fue quien la consiguió primero. El cursor pertenece al orden, así que cambiar sort es empezar de nuevo.
platformintegerSolo las copias de esa plataforma, por id del catálogo. El facet devuelve el id en value y el nombre en label: el nombre es presentación, y filtrar por él sería filtrar por algo que cambia de escritura.
mediumstringPHYSICAL o DIGITAL. Los filtros se suman con y, nunca con o: medium y storefront juntos responden lo que cumple ambos.
ownershipstringOWNED, SUBSCRIPTION, BORROWED, RENTED, SHARED o PREVIOUSLY_OWNED.
storefrontstringLa misma lista del POST. Un valor fuera de ella se ignora en vez de dar error, para que un filtro nunca sea algo que alguien escribió.
qstringBusca en el título, la edición y la plataforma de las copias. No pasa por el catálogo: responde el estante.
facetsintegerfacets=1 trae los conteos por plataforma, medio, posesión y tienda, y los totales. Cada facet se cuenta con los demás filtros aplicados y el propio ignorado, así que elegir una plataforma no deja las otras en cero y siempre hay vuelta atrás. Los totales, en cambio, son del resultado filtrado, búsqueda incluida: una pantalla que muestra 22 copias de Steam nunca dice "de 100 juegos". Separan dos preguntas parecidas: juegos que se tienen más de una vez, y juegos que se tienen en más de una plataforma. Quien tiene dos discos iguales de PS5 cuenta en la primera y no en la segunda.
groupstringplatform, medium, ownership o storefront. Trae group_counts: el tamaño de cada grupo en todo el resultado, no en la página. Un estante con 40 copias de Steam dice 40 mientras muestra las primeras 24, y sigue diciendo 40 después de cargar más. Respeta todos los filtros, incluido el propio: con medium=PHYSICAL, un grupo Steam de 5 copias físicas dice 5 y no las 25 que existen.

Ejemplo

{
  "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 una copia, encuentra la que ya corresponde, o cambia una enviando id. Todo salvo el juego es opcional: «lo jugué en PS5» es una fila con la plataforma y nada más. `created` dice qué pasó, y `duplicate: true` fuerza una segunda copia igual.

Permiso library.write · Cuenta en la cuota write

Cuerpo

CampoTipoNotas
igdb_idobligatoriointegerEl id del juego en el catálogo.
game_slugobligatoriostringEl slug del juego.
idstringLa copia a cambiar. Sin él, se crea otra.
platform_idintegerEl id de la plataforma en el catálogo.
platform_namestringHasta 120 caracteres.
storefrontstringSTEAM, PLAYSTATION, NINTENDO, XBOX, GOG, EPIC, ITCH, NUUVEM, BATTLE_NET, UBISOFT, EA, AMAZON, HUMBLE, GOOGLE_PLAY, APP_STORE, RETAIL u OTHER.
ownershipstringOWNED, SUBSCRIPTION, BORROWED, RENTED, SHARED o PREVIOUSLY_OWNED.
mediumstringPHYSICAL o DIGITAL.
editionstringHasta 120 caracteres.
regionstringHasta 60 caracteres.
notestringHasta 300 caracteres.
acquired_onstringAAAA-MM-DD.

Perfil

El perfil del propio dueño.

Reseñas

Las reseñas del dueño.