All pages

Endpoints

Read what bullpen.news publishes: stories, X posts, videos and investor letters about listed companies, and its daily recap. Every endpoint is GET, and limit goes up to 100. New fields and enum values may appear; ignore the ones you don't use.

Front page

GET /v1/latest
What bullpen.news shows on its front page now, or on a past day: stories and videos, X posts, and investor letters, each list in the page's order. sector narrows the stories and X posts by their topic tags; it doesn't narrow letters. mincap and maxcap narrow all three by the market cap of the companies they're about. Any other parameter is refused.

Company

GET /v1/companies/{ticker}
Everything bullpen.news has on one company, by its ticker: its sector and market cap, the stories and X posts that mention it, and the investor letters that discuss it. days narrows the stories and X posts to the last N days, today included; it doesn't narrow letters. Any other parameter is refused.

Investor letters

GET /v1/letters
Investor letters (fund and partnership letters) bullpen.news has read, newest first: all of them, only those that discuss a ticker, or only one firm's. Any other parameter is refused.

Daily recap

GET /v1/recap
The daily recap email for a day, in full: every story, X post, video and investor letter it listed, by section. Without day, the newest recap, ordinarily yesterday's. Any other parameter is refused.

Result detail

GET /v1/items/{id}
Full detail for one result, by the id another endpoint returned: story:, x:, video: or letter:. A letter names every company it mentions, where lists name only the ones it is mainly about. Any other parameter is refused.

Firms

GET /v1/firms
Every firm with an investor letter on bullpen.news, by name, for the letters endpoint's firm. It takes no parameters, and refuses any.

Feed

GET /v1/feed
What went live on bullpen.news, oldest first: stories, X posts, videos and investor letters in one list. Poll it with the last nextCursor. It runs two minutes behind. Any other parameter is refused.

Story

FieldTypeDescription
idstringIts id, such as story:123.
kindstory
titlestring
summarystring or nullOur summary. Null until we have written one.
sourcestringThe publication.
authorstringThe writer, when the publication names one.
publishedstring (date-time)When it was published, in UTC.
wentLivestring (date-time) or nullWhen it went live on bullpen.news, in UTC.
urlstringThe story at its publisher.
companiesarray of stringThe companies it is about, by ticker. tickers says what each one is.

XPost

FieldTypeDescription
idstringIts id, such as x:456.
kindx_post
postIdstringThe post's id on X.
urlstringThe post on X.
publishedstring (date-time)When it was published, in UTC.
wentLivestring (date-time) or nullWhen it went live on bullpen.news, in UTC.
companiesarray of stringThe companies it is about, by ticker. tickers says what each one is.

Video

FieldTypeDescription
idstringIts id, such as video:789.
kindvideo
urlstringThe video on YouTube.
publishedstring (date-time)When it was published, in UTC.
wentLivestring (date-time) or nullWhen it went live on bullpen.news, in UTC.
companiesarray of stringThe companies it is about, by ticker. tickers says what each one is.

Letter

FieldTypeDescription
idstringIts id, such as letter:532.
kindletter
titlestring
firmstringThe firm that wrote it.
periodstring or nullThe period it covers, such as Q2 2026.
publishedstring (date-time)When it was published, in UTC.
wentLivestring (date-time) or nullWhen it went live on bullpen.news, in UTC.
summarystring or nullOur summary. Null until we have written one.
urlstringThe letter itself.
companiesarray of stringThe companies it is about, by ticker. tickers says what each one is.

TickerEntry

FieldTypeDescription
namestring
sectorstring or nullIts GICS sector, such as Technology. Null when we don't know it.
marketCapUsdinteger or nullIts market cap in whole US dollars. Null when we don't know it.
bullpenUrlstringIts page on bullpen.news.