---
title: "Poll source-evidenced energy news (preview)"
method: GET
path: "/v1/context/market/news"
tags: ["Market Brief"]
---

# Poll source-evidenced energy news (preview)

`GET /v1/context/market/news`

## Request

- Base URL: `https://api.oilpriceapi.com`
- URL: `https://api.oilpriceapi.com/v1/context/market/news`
- Auth: API key in header `Authorization`

Preview RSS article feed with source excerpts, revision links and collection health. Page queries use publication windows; since/cursor queries deliver insertion-sequence revisions, including late or undated articles. Source health describes collection, not article completeness. Collection is rollout-gated and may be uninitialized. Event and facility tags are mentions, not measured disruptions or price predictions.

## Query parameters

- `hours` integer
- `per_page` integer
- `page` integer
- `commodity` string
- `region` string
- `facility` string
- `event_type` 'storage_update' | 'pipeline_constraint' | 'lng_operations' | 'production_update' | 'market_update'
- `sentiment` 'positive' | 'negative' | 'neutral'
- `summarized` 'true' | 'false'
- `since` string
- `cursor` string

## Response `200`

News evidence and source collection health.

- object
  - `status` 'success', required
  - `data` object[], required
    - `id` string
    - `title` string
    - `source` string
    - `url` string
    - `summary` string, nullable
    - `source_excerpt` string, nullable
    - `content_digest` string, nullable
    - `story_key` string, nullable
    - `event_type` string, nullable
    - `sentiment` string, nullable
    - `supersedes_id` string, nullable
    - `published_at` string, date-time, nullable: Source publication time; null when absent on new evidence records.
    - `collected_at` string, date-time, nullable
    - `effective_at` string, date-time, nullable: Always null: RSS articles do not establish an operational effective time.
    - `commodities_mentioned` string[]
    - `regions_mentioned` string[]
    - `facilities_mentioned` string[]
  - `meta` object, required
    - `freshness` 'healthy' | 'degraded'
    - `next_cursor` string, nullable
    - `has_more` boolean
    - `sources` object[]
      - `feed_id` string
      - `source` string
      - `status` 'healthy' | 'failed' | 'stale' | 'uninitialized'
      - `last_attempt_at` string, date-time, nullable
      - `last_success_at` string, date-time, nullable

## Other responses

- `400`: INVALID_NEWS_QUERY: malformed, out-of-range or incompatible filters/cursor. Restart invalid cursors with since.
- `401`: Missing or invalid API key.
- `500`: Unexpected server error. Retry transient failures with bounded backoff and retain the request ID when contacting support.

## Changes

- **2026-10-10** `b6ca5442db36`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/oilpriceapi/apis/oil-price-api-v1/changes/v1/context/market/news/get.md)

---

[API](https://skmtc.dev/oilpriceapi/apis/oil-price-api-v1.md) - [All operations](https://skmtc.dev/oilpriceapi/apis/oil-price-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/oilpriceapi/apis/oil-price-api-v1/revisions/7f8b4d763210?raw)
