Skip to content

Data types

Field shapes below are taken from the live /v1/sample/news payload, which mirrors the production feed exactly.

Story object

The core record returned by /v1/news, /v1/search, and every /stories endpoint.

FieldTypeNotes
idstringStable identifier. Always present, and always returned even when fields omits it.
slugstringURL-safe identifier. Accepted anywhere {idOrSlug} appears.
titlestringHeadline.
excerptstringShort summary.
bodystringFull text. Heavy — excluded unless include=body or include=full.
categorystringNormalized category, e.g. Technology.
countrystringPrimary country, or Global.
authorstringByline, e.g. TNL Bot.
publishedAtstringISO 8601 UTC.
updatedAtstringISO 8601 UTC. Moves when the story is revised.
revisionnumberIncrements on each revision. Starts at 1.
verificationStatestringVerification status, e.g. verified.
truthPosteriornumber0–1. Modeled probability the account is accurate.
urgencyScorenumber0–1. Modeled urgency.
impactedAssetsstring[]Tickers/identifiers, e.g. ["NVDA", "ASML"].
impactedSectorsstring[]Sector names, e.g. ["Semiconductors"].
impactPathsstring[]Causal chains as prose, e.g. "Export controls -> equipment demand -> production capacity".
entitiesobject[]Entities referenced. See below.
sourcesobject[]Citations. Heavy — needs include=sources.
claimsobject[]Extracted claims. Heavy — needs include=claims.
contradictionsobject[]Conflicts between sources. Empty array when none.

truthPosterior and urgencyScore are modeled

Both are model output, not measurements. truthPosterior is a probability estimate, not a fact-check verdict. Treat them as ranking signals rather than ground truth, and do not present either as a factual guarantee to end users.

entities[]

FieldTypeNotes
idstringEntity identifier. Use with /v1/entities/{idOrSlug}/stories.
namestringDisplay name, e.g. Example Trade Authority.
typestringEntity kind, e.g. organization, country, person.

sources[]

FieldTypeNotes
idstringSource identifier.
namestringPublisher name.
urlstringCanonical URL of the cited item.

claims[]

FieldTypeNotes
idstringClaim identifier.
textstringThe extracted claim.

contradictions[]

Populated when cited sources disagree. An empty array means no contradiction was detected — not that sources were checked and agreed.

Example story

json
{
  "id": "sample-story-1",
  "slug": "sample-semiconductor-controls",
  "title": "Sample: semiconductor equipment controls expand",
  "excerpt": "A synthetic policy event illustrates source-linked claims and downstream asset paths.",
  "category": "Technology",
  "country": "Global",
  "author": "TNL Bot",
  "publishedAt": "2026-07-15T08:00:00.000Z",
  "updatedAt": "2026-07-15T08:30:00.000Z",
  "revision": 2,
  "verificationState": "verified",
  "truthPosterior": 0.94,
  "urgencyScore": 0.72,
  "impactedAssets": ["NVDA", "ASML"],
  "impactedSectors": ["Semiconductors", "Capital Equipment"],
  "impactPaths": ["Export controls -> equipment demand -> production capacity"],
  "entities": [
    { "id": "sample-entity-1", "name": "Example Trade Authority", "type": "organization" }
  ],
  "sources": [
    { "id": "sample-source-1", "name": "Synthetic Public Register", "url": "https://example.com/tnl-sample" }
  ],
  "claims": [
    { "id": "sample-claim-1", "text": "The fictional control list expands to two equipment categories." }
  ],
  "contradictions": []
}

List envelope

Every list endpoint wraps results identically:

json
{
  "data": [ /* story objects */ ],
  "page": { /* see Pagination */ }
}

See Pagination for the page object.

Conventions

Timestamps are ISO 8601 in UTC with milliseconds (2026-07-15T08:00:00.000Z). Every filter accepting a date takes the same format.

Identifiers — anywhere the path says {idOrSlug}, either the id or the slug works. Slugs are readable but can change on revision; ids are stable. Store the id.

Nullabilitycursor, next_cursor, monthlyLimit, remaining, and MCP publishedAt are nullable. Array fields are empty arrays rather than null.

ScorestruthPosterior and urgencyScore are floats in 0–1 inclusive.

The Neural Ledger API