Personas
Lo poco que se lee sobre otra cuenta.
Conexiones, nivel y verificación. Nada aquí dice más de lo que la página de perfil ya muestra a quien la abra.
/api/ v1/ profiles/ {username}/ socialRelaciones, conversación del perfil y miembros de la organización. La cartera del visitante requiere su propia sesión o llave.
/api/ v1/ profiles/ {username}/ listsVistas previas y recuentos visibles. Filtros: visibility, mode, sort, limit (1 a 48), offset, before, q, folder. folder es el public_id de una carpeta, o NONE para las que no están en ninguna, que es una respuesta distinta de no preguntar. sort es recent (por defecto), oldest, name, likes o size: size pone primero las listas con más juegos, contados como el count de cada vista previa (en una tierlist, los juegos clasificados que el tablero aún muestra), y desempata por la actualización más reciente. offset pagina cualquier orden. before deja solo las listas actualizadas antes de ese instante, y solo sirve de cursor para recent.
/api/ v1/ profiles/ {username}/ lists/ foldersCarpetas para explorar las listas de un perfil. El autor recibe todas; visitantes reciben carpetas y recuentos de listas visibles, incluyendo listas para seguidores cuando siguen al autor. No se exponen carpetas vacías ni exclusivamente privadas. unfiled cuenta las listas visibles sin carpeta. Lectura pública sujeta a la visibilidad del perfil; editar requiere ser el autor.
/api/ v1/ activityActividad visible. Filtros: profile, profiles, game, kinds, q, rating, spoilers, order, before, limit (1 a 180), offset (un tipo). Una captura trae imageUrl, la imagen entera, y thumbnailUrl con thumbnailWidth y thumbnailHeight, una miniatura WebP de hasta 640 píxeles de ancho, o null cuando todavía no tiene una.
/api/ v1/ profiles/ {username}/ reviewsReseñas y sesiones visibles. Filtros de actividad, con autor fijado por nombre.
/api/ v1/ profiles/ {username}/ screenshotsGalería paginada (48 por página), recuentos, juegos e interacciones. Cada captura trae contains_spoilers y sensitive (verdadero cuando el autor o la verificación automática la marcó: muéstrala tras un aviso), y thumbnail_url con thumbnail_width y thumbnail_height, una miniatura WebP de hasta 640 píxeles de ancho para la cuadrícula, o null en una captura que todavía no tiene una, y entonces usa image_url. Quien lee su propia galería recibe también la visibility de cada captura. total, safe_count y spoiler_count cuentan la galería entera, y matching lo que encuentran los filtros; una captura eliminada por moderación no entra en ninguno. games son todos los juegos de la galería, no solo los de la página, por orden de nombre, cada uno con igdb_id, game_slug, name (el nombre del catálogo, o null cuando el catálogo ya no conoce el juego) y count, cuántas capturas suyas puede ver quien lee. Filtros: page, q (en la descripción, el nombre del juego o su slug, con espacios o guiones), spoilers (all/safe/spoilers), sort (new/old), game (un game_slug). games=1 añade catalog, la entrada del catálogo de cada juego de la página.
/api/ v1/ discovery/ peopleAmigos jugando y personas con gustos similares, con niveles.
/api/ v1/ search/ companiesEmpresas del catálogo. q, role: publisher o developer, status=active, sort: relevance, catalog, name, oldest o newest; page: 1 a 100. Pública.
/api/ v1/ search/ peoplePersonas visibles, niveles y relaciones con el solicitante. q, verified=1, sort: relevance, newest o name; page: 1 a 100, 24 por página. Una cuenta suspendida queda fuera, también del total, para todos salvo el equipo y ella misma.
/api/ v1/ search/ countsCuántos resultados tiene cada pestaña de búsqueda para q (juegos, reseñas, listas, tierlists, premios, personas, empresas), contados con los criterios de cada pestaña y limitados a cap (1000). Sin q, el total visible. Caché de 60 segundos.
/api/ v1/ profiles/ {username}Perfil publico y nombre actual, incluidos alias.
/api/ v1/ profiles/ {username}/ summaryRecuentos visibles y relación con el visitante. viewer_follows dice si quien lee sigue al perfil, y follows_viewer si el perfil sigue a quien lee (falso sin sesión y en el propio perfil). played, playing, backlog y wishlist cuentan los estantes de la biblioteca como la página de la biblioteca los filtra, dentro de lo que quien lee puede ver de ella: played es el estado COMPLETED, el estante Jugados; playing y backlog son las marcas; wishlist es la marca o el estado WISHLIST. Un juego que se rejuega cuenta en played y en playing.
Ejemplo
{
"data": {
"library": 42, "played": 18, "playing": 2, "backlog": 9, "wishlist": 7,
"lists": 3, "reviews": 12, "diary": 30, "journeys": 20,
"screenshots": 15, "screenshot_games": 6, "screenshot_spoilers": 1,
"followers": 10, "following": 8,
"viewer_follows": true, "follows_viewer": false
}
}/api/ v1/ profiles/ {username}/ layoutEl layout con el que se dibuja el perfil: el publicado por el dueño en Profile Studio, o el de por defecto. Nunca el borrador, ni para el propio dueño. customized dice si vino de un layout publicado. Un perfil que el lector no puede ver entero responde con el de por defecto, como un perfil sin layout. media resuelve, por id, solo las imágenes que cita el documento publicado (url, width, height, animated); una imagen subida para el borrador no aparece hasta publicarse.
Ejemplo
{
"data": {
"layout": { "schema": 2, "page": { ... }, "sections": [ ... ] },
"customized": true,
"media": {
"k3Jd8Qp2Lm": {
"url": "https://media.uloggd.com/layout/.../....avif",
"width": 1600, "height": 900, "animated": false
}
}
}
}/api/ v1/ profiles/ {username}/ libraryLa biblioteca de cualquier persona, por nombre, con tu propia clave: devuelve lo que esa persona te muestra (todo en una biblioteca pública, nada en una privada, y una solo para seguidores solo si la sigues). profile trae el nombre actual, útil cuando el pedido usó uno antiguo. has_more indica otra página.
Parámetros
| Campo | Tipo | Notas |
|---|---|---|
page | integer | De 1 a 1000. |
limit | integer | 1 a 1000, predeterminado 100. |
status | string | Solo un estado: COMPLETED, PLAYING, ON_HOLD, DROPPED, BACKLOG o WISHLIST. |
playing, backlog, wishlist, liked | boolean | true para solo los juegos con esa marca. Se combinan. |
sort | string | updated (predeterminado, lo más reciente primero) o rating (la nota más alta primero). |
games | integer | 1 para traer nombre, portada y slug de cada juego en games, en la misma respuesta. |
Ejemplo
curl "https://uloggd.com/api/v1/profiles/ada/library?playing=true&games=1" \
-H "Authorization: Bearer ulg_live_..."/api/ v1/ profiles/ {username}/ statsTodo lo que la persona jugó, sumado: totales, año a año, días de la semana, juegos con más tiempo, plataformas de las copias y la distribución de las notas. Todo contado en la base, y solo lo que el lector puede ver entra en la cuenta. taste trae los ids visibles con los minutos de cada uno, hasta mil, porque género, estudio y editora no están en la base: quien quiera esas cuentas le pregunta al catálogo una vez con esos ids.
/api/ v1/ profiles/ {username}/ journeysLos recorridos visibles de la persona, del más reciente al más antiguo, con los juegos del catálogo al lado, con la forma de /api/v1/games. Un recorrido es un paso por un juego: estado, fechas, dificultad, hasta dónde llegó y la copia en que se jugó. La regla de visibilidad es la de siempre: un recorrido es tan visible como lo que hay dentro, y siempre visible para quien lo escribió.
Parámetros
| Campo | Tipo | Notas |
|---|---|---|
page | integer | 1 a 200. |
limit | integer | 1 a 48, 24 por defecto. |
/api/ v1/ profiles/ {username}/ year/ {year}El año de alguien, de 2000 hasta el actual, con lo que quien lee puede ver: sessions, reviews, library, lists, screenshots, journeys y totals. library trae las filas de la biblioteca que se movieron en el año (terminadas, empezadas, añadidas o cambiadas), cada una con added y played. played dice si es un juego jugado ese año: terminado o empezado en él, añadido en él ya en un estado jugado (PLAYING, COMPLETED, DROPPED, ON_HOLD), o todavía marcado como jugando y cambiado por última vez en él. Añadir a deseados o al backlog, cambiar la nota o la portada mueve la fila, pero no es jugar: cuenta los juegos del año por las sesiones y las filas con played.
/api/ v1/ profiles/ {username}/ mineralsSaldos publicos de minerales y nivel, sin el historial de transferencias.
/api/ v1/ profiles/ {username}/ connectionsQuién sigue a alguien, o a quién sigue esa persona. Paginado por created_at y no por desplazamiento: la lista se recorre mientras hay cuentas siguiendo y dejando de seguir, y un desplazamiento saltaría o repetiría una fila cada vez que se movieran las de arriba. El cursor es el created_at del último elemento devuelto.
Parámetros
| Campo | Tipo | Notas |
|---|---|---|
tab | string | followers o following. Por defecto followers. |
before | string | El created_at del último elemento de la página anterior. |
limit | integer | De 1 a 50. Por defecto 20. |
q | string | Filtra por nombre de usuario o nombre visible. |
/api/ v1/ profiles/ {username}/ verificationQuién respondió por la verificación de una cuenta, y cuándo. Sin permiso: la insignia ya está en el perfil para quien quiera verla, y esto solo dice qué significa. Una cuenta que nunca fue verificada responde null, y no un rechazo: "no" es una respuesta aquí, no un secreto. Acepta el username o el id, porque uno es lo que tiene quien lee un perfil y el otro lo que tiene una página que ya cargó la fila.
/api/ v1/ profiles/ levelsEl nivel de varias cuentas a la vez. Una página dibuja muchas tarjetas queriendo lo mismo sobre personas distintas, y preguntar por tarjeta es cómo una lista de veinte se vuelve veinte peticiones.
Parámetros
| Campo | Tipo | Notas |
|---|---|---|
idsobligatorio | string | De 1 a 100 ids de cuenta, separados por comas. |
Perfil, resumen, layout, biblioteca, año, minerales, conexiones y niveles se pueden leer sin sesión. Las policies del banco deciden qué filas son visibles. Una llave necesita el permiso indicado; una llave inválida devuelve 401 incluso en lecturas públicas. La consulta acepta el nombre actual o un alias de los últimos 30 días y devuelve el nombre actual. Los saldos no incluyen transferencias.
La búsqueda de personas deja fuera las cuentas suspendidas, para todos salvo el equipo y la propia cuenta, la misma regla que oculta lo que publicaron.