API documentation · Entity mentions

Company mentions API: overview

How the Subalytics entity mentions API works: stable IDs, freshness, typical workflow, daily sync and withdrawn mentions.

Entity mentions finds references to public companies in Substack posts, Bluesky posts and podcast episodes. It is a separate product from the other endpoints, with its own access, and every endpoint name starts with entity-.

Only content that mentions a company is returned. A post or episode appears only if it has at least one company mention. Podcast endpoints return only the transcript passages that contain a mention, never the full transcript.

IDs

Resources are linked by stable public IDs that never change for the same item, so they are safe to store as foreign keys:

IDIdentifiesNotes
symbolCompanyStock ticker, e.g. META
mention_idMentionOne mention of one company in one piece of content
content_idContentThe post or episode: post_id (Substack), post_uri (Bluesky) or episode_sub_id (podcasts)
sub_idCreator / podcastThe same Subalytics ID used by the creator and podcast endpoints, so mentions join to data you already have

To fetch one item, filter by its ID, e.g. /api/v1/entity-mentions/?mention_id=9f2c41d07ab35e18.

Freshness

  • Bluesky: posts usually appear within minutes.
  • Substack: posts appear after each collection run.
  • Podcasts: episodes appear once they have been transcribed and matched, usually within a few hours of the daily 05:00 UTC run.

Typical workflow

  • List monitored companies: GET /api/v1/entity-companies/. This is the only endpoint with CIK, exchange, sector and industry; the others identify a company by symbol and company_name.
  • Get mentions of a company: GET /api/v1/entity-mentions/?symbol=META&published_from=2026-09-01. One row per mention from every source, each with a snippet and a link to the content.
  • Get the content: GET /api/v1/entity-bluesky-posts/?symbol=META, or the Substack or podcast equivalent. Each post or episode lists every company it mentions in entities[].
  • Track volume: GET /api/v1/entity-mention-stats/?symbol=META&interval=day for a time series, or GET /api/v1/entity-trending/?sort=change for the companies whose mention volume moved most.

Daily sync

Ask only for what was added or changed since your last sync:

GET /api/v1/entity-mentions/?updated_from=2026-09-28T05:00:00
GET /api/v1/entity-bluesky-posts/?updated_from=2026-09-28T05:00:00

updated_from filters on when a record last changed, not when the content was published: a podcast episode published three days ago but matched today is included. Start each updated_from a few minutes before your previous sync; receiving the same record twice is harmless.

Mentions can be withdrawn

Matching improves over time and past content is re-checked. That can add mentions, change their confidence, or remove a mention that turned out to be wrong. A post whose last mention is removed disappears from the content endpoints. Removals don't show up in an updated_from sync, so re-pull a recent window (e.g. the last 30 days) periodically if you need an exact match with the API.