Home / Docs / Blog Posts

Blog Posts

Public read-only endpoints for querying stored blog posts.

Blog Posts

List Blog Posts

GET /api/v1/blog-posts/

Auth: API key or logged-in browser session required.

Returns stored blog posts and analysis metadata. Response bodies exclude full post text by default.

Query parameters:

Parameter Type Default Description
company_slug string - Filter by company slug
has_summary string - Filter by summary status: true, false, or empty
weeks integer - Include posts published in the last N weeks
months integer - Include posts published in the last N months
days integer - Include posts published in the last N days
include_text boolean false Include full stored text in each result
limit integer 50 Number of results to return, max 500
offset integer 0 Result offset
random boolean false Return results in random order
order_by string -date_published One of date_parsed, -date_parsed, date_published, -date_published

Response:

{
  "total_count": 1234,
  "limit": 50,
  "offset": 0,
  "text_included": false,
  "results": [
    {
      "id": 1,
      "title": "Announcing Our New Feature",
      "slug": "announcing-our-new-feature",
      "source_url": "https://example.com/blog/new-feature",
      "author": "Jane Doe",
      "date_published": "2025-01-15",
      "date_parsed": "2025-01-16",
      "word_count": 1200,
      "summary": "A brief summary of the post.",
      "company_name": "Example Inc.",
      "company_slug": "example",
      "has_summary": true,
      "reading_time_minutes": 6,
      "is_removed": false,
      "text_available": true,
      "text_length": 8400
    }
  ]
}

Blog Post Company Activity

GET /api/v1/blog-posts/company-activity/

Auth: API key or logged-in browser session required.

Counts distinct companies with stored posts published in a recent lookback window. Blog publication timestamps are stored as dates, so this endpoint reports the calendar date window used for the count.

Query parameters:

Parameter Type Default Description
window_hours integer 48 Requested lookback window in hours, max 8760
company_slug string - Optional company slug filter
limit integer 50 Number of company rows to return, max 500
offset integer 0 Result offset

Response:

{
  "company_count": 12,
  "post_count": 18,
  "window_hours_requested": 48,
  "window_days_used": 2,
  "calendar_days_included": 3,
  "start_date": "2026-06-01",
  "end_date": "2026-06-03",
  "date_field": "date_published",
  "date_granularity": "day",
  "limit": 50,
  "offset": 0,
  "results": [
    {
      "company_name": "Example Inc.",
      "company_slug": "example",
      "post_count": 2,
      "latest_post_date": "2026-06-03"
    }
  ]
}

Blog Output Leaderboard

GET /api/v1/leaderboard/blog-output/

Auth: API key or logged-in browser session required.

Returns companies ranked by stored blog output.

Query parameters:

Parameter Type Default Description
founded_after integer - Filter by founding year
stage string - Filter by current_stage; use public for public companies
min_posts integer - Minimum posts in the current year
min_words integer - Minimum all-time stored words
sort string posts_current_year One of posts_current_year, posts_all_time, total_words, avg_posts_per_month

Response:

{
  "count": 50,
  "results": [
    {
      "company_name": "Example Inc.",
      "company_slug": "example",
      "current_stage": "series-b",
      "year_founded": 2018,
      "posts_current_year": 42,
      "posts_all_time": 180,
      "total_words": 240000,
      "avg_posts_per_month": 4.5
    }
  ]
}