Skip to content
ThemeNord

Same themes as the MinusPod app

Default

Catppuccin

Dracula

Nord

Gruvbox

Solarized

Rose Pine

Kanagawa

Ayu

Other

History

Processing history and statistics

Get processing history

Returns processing history with pagination and filtering

  • status (query, string, one of all, completed, failed): Filter by processing status
  • podcast_slug (query, string): Filter by podcast slug
  • limit (query, integer): Maximum number of entries to return
  • offset (query, integer): Number of entries to skip
  • page (query, integer): Page number (1-based). Alternative to offset. If both provided, page takes precedence.
  • sort_by (query, string, one of processed_at, podcast_title, episode_title, processing_duration_seconds, ads_detected, reprocess_number, status, llm_cost): Column to sort by
  • sort_dir (query, string, one of asc, desc): Sort direction
Status Description Body
200 Processing history object
  • history (array of ProcessingHistoryEntry)
  • total (integer): Total number of history entries matching the filter
  • totalPages (integer): Total number of pages available
  • limit (integer)
  • offset (integer)
  • page (integer): Current page number (1-based)

Get processing statistics

Returns aggregate statistics from processing history

Status Description Body
200 Processing statistics object
  • total_processed (integer)
  • completed (integer)
  • failed (integer)
  • total_ads_detected (integer)
  • avg_processing_time (number or null): Average processing time in seconds
  • totalInputTokens (integer): Total LLM input tokens across all completed processing runs
  • totalOutputTokens (integer): Total LLM output tokens across all completed processing runs
  • totalLlmCost (number): Total estimated LLM cost in USD across all completed processing runs
  • podcasts (array of object)
  • podcasts[].id (integer)
  • podcasts[].title (string)

List episode downloads

Client downloads of episode audio, newest first by default. Range requests from one client within 15 minutes count as one row. Client IPs are stored and location is filled only when geo lookup is enabled.

  • page (query, integer)
  • limit (query, integer)
  • sortBy (query, string, one of last_seen_at, podcast, client_ip, location, subscriber)
  • sortDir (query, string, one of asc, desc)
  • podcastSlug (query, string)
  • subscriberKeyId (query, string)
  • since (query, string): First day to include (YYYY-MM-DD, UTC).
  • until (query, string): Last day to include (YYYY-MM-DD, UTC).
  • search (query, string): Substring match on client IP or user agent.
Status Description Body
200 Page of downloads object
  • downloads (array of DownloadHistoryEntry, required)
  • total (integer, required)
  • page (integer, required)
  • limit (integer, required)

Export processing history

Export processing history as CSV or JSON file

  • format (query, string, one of csv, json): Export format
  • status (query, string, one of all, completed, failed): Filter by processing status
  • podcast_slug (query, string): Filter by podcast slug
Status Description Body
200 Exported history file object