Developer platform

A news wire designed for agents.

Fetch fresh, attributable journalism with stable IDs, explicit usage rights, sources, claims, correction history and machine-native formats.

Quickstart

Useful without a key. Valuable with one.

Public requests return citable metadata, summaries, provenance, rights and corrections. A licensed Bearer token adds the structured body, review details and contracted commercial scopes.

Create a governed evaluation project →

curl "https://nationaltribune.com/api/v1/content?section=politics&limit=10" \
  -H "Accept: application/json"

# Licensed response
curl "https://nationaltribune.com/api/v1/content/nt_01..." \
  -H "Authorization: Bearer nt_live_..."

API v1

Endpoints

GET/api/v1/content
GET/api/v1/content/:id
GET/api/v1/content/:id/artifacts
GET/api/v1/export.ndjson
GET/api/v1/changes?since=ISO-8601
GET/api/v1/entities
GET/api/v1/claims
GET/api/v1/events
GET/api/v1/manifest
GET/api/v1/plans
GET/api/v1/health
GET/api/v1/webhooks
POST/api/v1/webhooks
GET/feeds/ninjs
GET/feed.xml

Filters

section, type, updated_after, q and limit. Limits are capped at 100 records per request; enterprise delivery supports approved channel artifacts, signed webhooks, incremental NDJSON and correction-aware deltas.

OpenAPI 3.1 · JSON Schema 2020-12 · Dataset catalog · Pricing and rights

Canonical record

Content stays understandable outside the page.

{
  "id": "nt_01...",
  "contentType": "reportage",
  "headline": "...",
  "dek": "...",
  "version": 4,
  "contentHash": "sha256...",
  "body": [{ "type": "paragraph", "text": "..." }],
  "sources": [{ "name": "...", "url": "..." }],
  "claims": [{ "text": "...", "confidence": 92 }],
  "entities": [{ "name": "...", "kind": "organization" }],
  "events": [{ "name": "...", "status": "developing" }],
  "corrections": [],
  "provenance": { "reviewedBy": "National Desk" },
  "rights": { "retrievalAllowed": true, "trainingAllowed": false }
}

The same record renders the public page, Schema.org graph, RSS, IPTC ninjs, AI API and distribution jobs. Commercial classifications—reportage, opinion, sponsored and affiliate review—cannot disappear when the content changes format.

Rights

Permissions are data.

Each item separately declares retrieval, embeddings, model training, redistribution, commercial use and attribution requirements. The API repeats the canonical licensing URL and returns an X-Content-License header on item requests.

Corrections & deltas

Never train on yesterday by accident.

Poll /api/v1/changes?since=... to receive durable content.published, content.updated, content.corrected, content.rights_changed and archival events. Each event carries a stable content ID, monotonically increasing version and canonical content hash.

Signed delivery

Subscribe instead of polling.

Create a subscription with a licensed key that has webhooks:write. The signing secret is returned once and encrypted at rest. National Tribune retries failed delivery with exponential backoff and disables endpoints after ten consecutive failures.

curl -X POST "https://nationaltribune.com/api/v1/webhooks" \
+  -H "Authorization: Bearer nt_live_..." \
+  -H "Content-Type: application/json" \
+  -d '{"url":"https://buyer.example/news","events":["content.published","content.corrected"]}'

# Verify HMAC-SHA256 over:
# {x-nt-timestamp}.{raw_request_body}
# Compare with x-nt-signature: v1={hex_digest}

Interoperability

Use the format your system already speaks.

  • National Tribune Content API 1.0 for product-native records.
  • IPTC ninjs 3.2 for newsroom and wire interoperability.
  • Schema.org JSON-LD on every canonical article.
  • RSS, news sitemap, regular sitemap, robots.txt and llms.txt for discovery.

Request an enterprise key →