uloggdDevelopers
Developer portaluloggd
Get startedResourcesArcade
Developer portaluloggdIdentityCatalogProfileLibraryReviewsJournalListsAwardsScreenshotsSocialAccountNotificationsCommentsLikesHistoryPeopleMineralsArcade

Journal

Sessions, and the journeys that group them.

A journey is one passage through a game. A session can mark the start or the finish of one.

GET/api/v1/journal/entries

Logged sessions, most recently played first.

Scope journal.read · Counted against the read allowance

Query

FieldTypeNotes
gameintegerFilter by game id.
limitinteger1 to 1000, default 50.
POST/api/v1/journal/entries

Log a session. Answers 201.

Scope journal.write · Counted against the write allowance

Body

FieldTypeNotes
igdb_idrequiredintegerThe game's catalog id.
game_slugrequiredstringThe game's slug.
played_ondateYYYY-MM-DD. Defaults to today.
ended_ondateFor a session spanning days.
minutesinteger0 to 100000.
notestringMarkdown, up to 5000 characters.
visibilitystringPUBLIC, FOLLOWERS or PRIVATE.
marks_startbooleanThis session started the game.
marks_finishbooleanThis session finished it.
started_atstringThe time of day the session began, HH:MM or HH:MM:SS. Optional: a whole day is a session too.
journey_idstringThe journey this session belongs to. It has to be your own journey, on the same game; without it the session stands loose.
comments_scopestringWho may reply: EVERYONE, FOLLOWERS or NOBODY.
PATCH/api/v1/journal/entries/{id}

Change a session. It takes the same fields as the POST, without igdb_id or game_slug, plus two that only make sense once the session exists.

Scope journal.write · Counted against the write allowance

Body

FieldTypeNotes
sensitivebooleanHides the images behind a warning. Turning it off does not erase the record of an automatic mark: that is what leaves the decision reviewable afterwards.
image_orderarrayThe ids of the session's images, in the order they should appear, up to 12. The images themselves are added on the website; this only orders what is already there.
DELETE/api/v1/journal/entries/{id}

Remove a session.

Scope journal.write · Counted against the write allowance

PUT/api/v1/journal/days

Mark several days at once as played, without describing any of them. It is the stroke across the calendar: a day already covered by a session is left alone, and added counts what changed rather than what was asked for.

Scope journal.write · Counted against the write allowance

Body

FieldTypeNotes
igdb_idrequiredintegerThe game's catalog id.
game_slugrequiredstringThe game's slug.
daysrequiredarray1 to 366 dates as YYYY-MM-DD. None of them may be in the future.
journey_idstringThe journey the days belong to. Without it, they stand loose.

Example response

{
  "data": { "igdb_id": 14593, "days": ["2026-09-01", "2026-09-02"], "added": 1 }
}
DELETE/api/v1/journal/days

Remove the sessions covering those days. It goes by parameter rather than by body, because a DELETE with a body does not survive every intermediary.

Scope journal.write · Counted against the write allowance

Query

FieldTypeNotes
igdb_idrequiredintegerThe game's catalog id.
daysrequiredstringThe dates separated by commas, 1 to 366 of them.
journey_idstringLimits the removal to that journey's sessions.
GET/api/v1/journal/entries/{id}

A visible entry, author, gallery and interaction context.

Scope journal.read · Counted against the read allowance

GET/api/v1/journal/journeys/{id}

Public journey metadata and public session count.

Scope journal.read · Counted against the read allowance

GET/api/v1/journal/journeys/{id}/entries

Visible journey sessions, 40 per page, with images and summary. page: 1 to 1000.

Scope journal.read · Counted against the read allowance

GET/api/v1/journal/journeys

The owner's journeys.

Scope journal.read · Counted against the read allowance

Query

FieldTypeNotes
gameintegerFilter by game id.
limitinteger1 to 1000, default 50.
POST/api/v1/journal/journeys

Start a journey through a game. Answers 201.

Scope journal.write · Counted against the write allowance

Body

FieldTypeNotes
igdb_idrequiredintegerThe game's catalog id.
game_slugrequiredstringThe game's slug.
titlerequiredstringUp to 120 characters.
PATCH/api/v1/journal/journeys/{id}

Renames a run, or says what kind of run it was. One field at a time: what the body leaves out stays as it is, and what clear names is emptied. Finishing before starting is refused.

Scope journal.write · Counted against the write allowance

Body

FieldTypeNotes
titlestringUp to 120 characters.
statusstringPLANNED, PLAYING, ON_HOLD, COMPLETED or DROPPED. It is the run's state, not the game's.
started_onstringYYYY-MM-DD.
finished_onstringYYYY-MM-DD.
library_entry_idstringThe copy this run was played on.
replaybooleanWhether the game had been played before this one.
masteredbooleanWhether the platinum or the 100% came out of this run.
difficultystringUp to 80 characters.
progressstringUp to 160 characters.
cleararrayFields to empty: status, started_on, finished_on, difficulty, progress, replay, mastered or library_entry_id. A field cannot carry a value and be in clear at once.
DELETE/api/v1/journal/journeys/{id}

Remove a journey.

Scope journal.write · Counted against the write allowance

GET/api/v1/journal/sessions

The owner's open session, with its game and its events. Answers data: null when there is none.

Scope journal.read · Counted against the read allowance

POST/api/v1/journal/sessions

Opens a session. One per account: answers 409 when another is already open. Answers 201.

Scope journal.write · Counted against the write allowance

Body

FieldTypeNotes
igdb_idrequiredintegerThe game's catalog id.
game_slugrequiredstringThe game's slug.
journey_idstringAttaches the session to a journey of yours.
visibilitystringPUBLIC, FOLLOWERS or PRIVATE.
POST/api/v1/journal/sessions/{id}/events

Notes something that happened in the open session. Append only: an event is not edited. Answers 201.

Scope journal.write · Counted against the write allowance

Body

FieldTypeNotes
kindrequiredstringNOTE, PROGRESS, SHOT or STOP. NOTE and STOP need body, PROGRESS needs marker, SHOT needs screenshot_id.
bodystringUp to 500 characters.
markerstringUp to 80 characters.
screenshot_idstringA screenshot of yours.
PATCH/api/v1/journal/sessions/{id}

Closes the session, which is what turns it into an entry. With no minutes, the elapsed time counts, capped at 16 hours.

Scope journal.write · Counted against the write allowance

Body

FieldTypeNotes
minutesinteger0 to 100000. The clock counts, you confirm.
notestringUp to 5000 characters.
marks_finishbooleanMarks that the game was finished in this session.
DELETE/api/v1/journal/sessions/{id}

Discards an open session that recorded nothing. Answers 409 once it has events: closing is the way out then.

Scope journal.write · Counted against the write allowance

Reviews

The owner's reviews.

Lists

Collections and rankings, and the games in them.