Skip to content

Get Entry Detail

GET
/api/creative/lore/entries/{entry_id}/detail

Get full lore page detail: entry + relationships + related entries + linked entity.

entry_id
required
Entry Id
string

Successful Response

LorePageDetailResponse

Full lore page detail: entry + relationships + related entries + linked entity.

object
entry
required
LoreEntryResponse

Response for a single lore entry.

object
id
required
Id
string
projectId
required
Projectid
string
title
required
Title
string
content
required
Content
string
summary
Any of:
string
categoryId
Any of:
string
entryType
required
Entrytype
string
sourceFormat
required
Sourceformat
string
sourceName
Any of:
string
tags
Tags
Array<string>
aliases
Aliases
Array<string>
wordCount
required
Wordcount
integer
anomalyScore
Any of:
number
clusterId
Any of:
string
clusterLabel
Any of:
string
excerpt
Any of:
string
status
Status
string
default: draft
author
Any of:
string
birthDateDisplay
Any of:
string
birthDateSortKey
Any of:
integer
deathDateDisplay
Any of:
string
deathDateSortKey
Any of:
integer
linkedEntityId
Any of:
string
portraitAssetId
Any of:
string
visualAssetIds
Visualassetids
Array<string>
sections
Sections
Array<object>
LoreSection

A structured section within a lore entry.

object
key
required
Key

Section identifier, e.g. ‘origins’

string
>= 1 characters
label
required
Label

Display label, e.g. ‘Origins’

string
>= 1 characters
content
Content

Markdown content

string
""
status
SectionStatus

In-world knowledge status

string
default: unknown
Allowed values: known unknown secret
sortOrder
Sortorder

Display order

integer
0
voiceProfile
Any of:
VoiceProfile

Voice profile for a character, faction, species, or document.

Defines intentional language deviations so WorldSpell can suppress grammar/spelling violations that are stylistic choices, not errors.

object
allowedWords
Allowedwords

Words that are intentional (lil, ya, ain’t, finna)

Array<string>
allowedPhrases
Allowedphrases

Multi-word phrases that are intentional

Array<string>
grammarExceptions
Grammarexceptions

LanguageTool rule IDs to suppress (e.g. DOUBLE_NEGATIVES)

Array<string>
voiceRegister
VoiceRegister

Language register

string
default: informal
Allowed values: formal informal aave dialectal archaic colloquial custom
customRegisterLabel
Any of:
string
examplePassages
Examplepassages

Reference text showing how this voice sounds

Array<string>
notes
Notes

Author notes about this voice

string
""
namingConventions
Any of:
NamingConventions

Cultural naming rules attached to faction/species/culture lore entries.

Structured fields describe concrete patterns; the free-text notes field captures anything that doesn’t fit a structured field.

object
syllableRange
Any of:
array
>= 2 items <= 2 items
commonPrefixes
Commonprefixes

Common name prefixes, e.g. [“Kha”, “Mor”]

Array<string>
commonSuffixes
Commonsuffixes

Common name suffixes, e.g. [“-born”, “-kel”]

Array<string>
surnamePattern
Any of:
SurnamePattern

How surnames are formed in a culture.

string
Allowed values: patronymic clan place-based title-based none
surnameExamples
Surnameexamples

Example surnames

Array<string>
genderedPatterns
Any of:
object
key
additional properties
string
forbiddenSounds
Forbiddensounds

Sound combinations to avoid

Array<string>
exampleNames
Examplenames

Canonical example names for this culture

Array<string>
notes
Any of:
string
maturityScore
Maturityscore
number
0
maturityTier
Maturitytier
string
default: stub
maturityWordCountSignal
Maturitywordcountsignal
number
0
maturitySectionFillSignal
Maturitysectionfillsignal
number
0
maturitySectionDepthSignal
Maturitysectiondepthsignal
number
0
maturityEntityDensitySignal
Maturityentitydensitysignal
number
0
maturityRelationshipCountSignal
Maturityrelationshipcountsignal
number
0
maturityHasSummarySignal
Maturityhassummarysignal
number
0
maturityHasTagsSignal
Maturityhastagssignal
number
0
maturitySectionStatusSignal
Maturitysectionstatussignal
number
0
clusterDepth
Clusterdepth
integer
0
indexStatus
Indexstatus

Dual-write state between SQLite and ChromaDB. ‘indexed’ means both stores are in sync; ‘pending’ means ChromaDB upsert is in flight; ‘failed’ means the upsert failed and the entry will be repaired by resync_pending_entries on next search.

string
default: indexed
Allowed values: indexed pending failed
entityExtractionStatus
Entityextractionstatus

State of the background entity-extraction task kicked off by create/update. ‘pending’ means extraction is still running (UI should show a subtle indicator and refresh shortly). ‘done’ is the default for fetched entries since extraction only runs on create/update. ‘skipped’ means the caller opted out of extraction for this entry.

string
default: done
Allowed values: pending done skipped
corruptFields
Corruptfields

Names of JSON fields (tags, aliases, sections, voice_profile, naming_conventions) that failed to parse and were reset to defaults. Non-empty means the UI should warn the user before silent re-save loses the original corrupt blob.

Array<string>
createdAt
required
Createdat
integer
modifiedAt
required
Modifiedat
integer
relationships
required
Relationships
Array<object>
LorePageRelationshipResponse

Response for a single relationship between lore entries.

object
id
required
Id
string
projectId
required
Projectid
string
sourceEntryId
required
Sourceentryid
string
targetEntryId
required
Targetentryid
string
relationshipType
required
Relationshiptype
string
description
Any of:
string
weight
Weight
number
default: 1
isAuto
Isauto
boolean
sourceTitle
Sourcetitle
string
""
sourceEntryType
Sourceentrytype
string
""
targetTitle
Targettitle
string
""
targetEntryType
Targetentrytype
string
""
createdAt
required
Createdat
integer
modifiedAt
required
Modifiedat
integer
incomingRelationships
Incomingrelationships
Array<object>
LorePageRelationshipResponse

Response for a single relationship between lore entries.

object
id
required
Id
string
projectId
required
Projectid
string
sourceEntryId
required
Sourceentryid
string
targetEntryId
required
Targetentryid
string
relationshipType
required
Relationshiptype
string
description
Any of:
string
weight
Weight
number
default: 1
isAuto
Isauto
boolean
sourceTitle
Sourcetitle
string
""
sourceEntryType
Sourceentrytype
string
""
targetTitle
Targettitle
string
""
targetEntryType
Targetentrytype
string
""
createdAt
required
Createdat
integer
modifiedAt
required
Modifiedat
integer
relatedEntries
required
Relatedentries
Array<object>
LoreEntryResponse

Response for a single lore entry.

object
id
required
Id
string
projectId
required
Projectid
string
title
required
Title
string
content
required
Content
string
summary
Any of:
string
categoryId
Any of:
string
entryType
required
Entrytype
string
sourceFormat
required
Sourceformat
string
sourceName
Any of:
string
tags
Tags
Array<string>
aliases
Aliases
Array<string>
wordCount
required
Wordcount
integer
anomalyScore
Any of:
number
clusterId
Any of:
string
clusterLabel
Any of:
string
excerpt
Any of:
string
status
Status
string
default: draft
author
Any of:
string
birthDateDisplay
Any of:
string
birthDateSortKey
Any of:
integer
deathDateDisplay
Any of:
string
deathDateSortKey
Any of:
integer
linkedEntityId
Any of:
string
portraitAssetId
Any of:
string
visualAssetIds
Visualassetids
Array<string>
sections
Sections
Array<object>
LoreSection

A structured section within a lore entry.

object
key
required
Key

Section identifier, e.g. ‘origins’

string
>= 1 characters
label
required
Label

Display label, e.g. ‘Origins’

string
>= 1 characters
content
Content

Markdown content

string
""
status
SectionStatus

In-world knowledge status

string
default: unknown
Allowed values: known unknown secret
sortOrder
Sortorder

Display order

integer
0
voiceProfile
Any of:
VoiceProfile

Voice profile for a character, faction, species, or document.

Defines intentional language deviations so WorldSpell can suppress grammar/spelling violations that are stylistic choices, not errors.

object
allowedWords
Allowedwords

Words that are intentional (lil, ya, ain’t, finna)

Array<string>
allowedPhrases
Allowedphrases

Multi-word phrases that are intentional

Array<string>
grammarExceptions
Grammarexceptions

LanguageTool rule IDs to suppress (e.g. DOUBLE_NEGATIVES)

Array<string>
voiceRegister
VoiceRegister

Language register

string
default: informal
Allowed values: formal informal aave dialectal archaic colloquial custom
customRegisterLabel
Any of:
string
examplePassages
Examplepassages

Reference text showing how this voice sounds

Array<string>
notes
Notes

Author notes about this voice

string
""
namingConventions
Any of:
NamingConventions

Cultural naming rules attached to faction/species/culture lore entries.

Structured fields describe concrete patterns; the free-text notes field captures anything that doesn’t fit a structured field.

object
syllableRange
Any of:
array
>= 2 items <= 2 items
commonPrefixes
Commonprefixes

Common name prefixes, e.g. [“Kha”, “Mor”]

Array<string>
commonSuffixes
Commonsuffixes

Common name suffixes, e.g. [“-born”, “-kel”]

Array<string>
surnamePattern
Any of:
SurnamePattern

How surnames are formed in a culture.

string
Allowed values: patronymic clan place-based title-based none
surnameExamples
Surnameexamples

Example surnames

Array<string>
genderedPatterns
Any of:
object
key
additional properties
string
forbiddenSounds
Forbiddensounds

Sound combinations to avoid

Array<string>
exampleNames
Examplenames

Canonical example names for this culture

Array<string>
notes
Any of:
string
maturityScore
Maturityscore
number
0
maturityTier
Maturitytier
string
default: stub
maturityWordCountSignal
Maturitywordcountsignal
number
0
maturitySectionFillSignal
Maturitysectionfillsignal
number
0
maturitySectionDepthSignal
Maturitysectiondepthsignal
number
0
maturityEntityDensitySignal
Maturityentitydensitysignal
number
0
maturityRelationshipCountSignal
Maturityrelationshipcountsignal
number
0
maturityHasSummarySignal
Maturityhassummarysignal
number
0
maturityHasTagsSignal
Maturityhastagssignal
number
0
maturitySectionStatusSignal
Maturitysectionstatussignal
number
0
clusterDepth
Clusterdepth
integer
0
indexStatus
Indexstatus

Dual-write state between SQLite and ChromaDB. ‘indexed’ means both stores are in sync; ‘pending’ means ChromaDB upsert is in flight; ‘failed’ means the upsert failed and the entry will be repaired by resync_pending_entries on next search.

string
default: indexed
Allowed values: indexed pending failed
entityExtractionStatus
Entityextractionstatus

State of the background entity-extraction task kicked off by create/update. ‘pending’ means extraction is still running (UI should show a subtle indicator and refresh shortly). ‘done’ is the default for fetched entries since extraction only runs on create/update. ‘skipped’ means the caller opted out of extraction for this entry.

string
default: done
Allowed values: pending done skipped
corruptFields
Corruptfields

Names of JSON fields (tags, aliases, sections, voice_profile, naming_conventions) that failed to parse and were reset to defaults. Non-empty means the UI should warn the user before silent re-save loses the original corrupt blob.

Array<string>
createdAt
required
Createdat
integer
modifiedAt
required
Modifiedat
integer
linkedEntity
Any of:
LoreEntityResponse

Response for a lore entity.

object
id
required
Id
string
projectId
required
Projectid
string
name
required
Name
string
entityType
required
Entitytype
string
description
Any of:
string
attributes
Attributes
object
key
additional properties
string
aliases
Aliases
Array<string>
firstSeenIn
Any of:
string
entryCount
required
Entrycount
integer
portraitAssetId
Any of:
string
createdAt
required
Createdat
integer
modifiedAt
required
Modifiedat
integer

Validation Error

HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object