Skip to content

News

A bilingual (Arabic / English) news corpus tagged to markets, sectors, instruments, and asset classes. The feed is ordered strictly by published_at descending — newest first, always. There is no relevance, sentiment, trending, or "for you" ordering, and no such field is ever returned.

The absence of a sentiment / score / relevance column is the contract (FRA Decision 332). News is time-ordered information, not a signal. There is no sort=relevance and no personalized curation.

GET /v1/news

List headlines, newest first. Optional filters narrow the set but never change the ordering:

QueryEffect
languagear | en
tag_type + tag_valuefilter by an entity tag (e.g. tag_type=sector&tag_value=banking)
symbolshorthand for an instrument tag on one symbol
json
{
  "news": [
    {
      "id": "nws_…",
      "headline": "EGX30 closes higher as banking sector leads volume",
      "headline_ar": "إيجي إكس ٣٠ يغلق مرتفعًا مع تصدر قطاع البنوك للتداول",
      "summary": "A one-line factual summary of the article.",
      "publisher": "EGX Newswire",
      "url": "https://…",
      "image_url": "https://…",
      "language": "en",
      "published_at": "2026-06-17T13:05:00+03:00"
    }
  ],
  "ordering": "published_at_desc"
}

The list endpoint returns headline-level fields only. The body is fetched per-article so that per-publisher redistribution licensing can gate it.

GET /v1/news/{id}

One article with its body and entity tags.

json
{
  "id": "nws_…",
  "headline": "…",
  "headline_ar": "…",
  "summary": "…",
  "body": "Full article text (when the publisher license permits redistribution).",
  "publisher": "EGX Newswire",
  "url": "https://…",
  "image_url": "https://…",
  "language": "en",
  "published_at": "2026-06-17T13:05:00+03:00",
  "tags": [
    { "tag_type": "market", "tag_value": "EGX" },
    { "tag_type": "sector", "tag_value": "banking" },
    { "tag_type": "instrument", "tag_value": "COMI" }
  ]
}
Tag tag_typeExample tag_value
marketEGX
sectorbanking
instrumentCOMI
asset_classbonds

No holdings-personalized curation. Filtering by symbol or tag is an explicit, user-supplied query. Caravan does not silently re-order or weight the feed by what an investor holds — "because you hold banks, here is bank news" is not a behaviour the API offers.

Embedded investing infrastructure for the Egyptian Exchange. Sandbox runs on simulated money.