The PMOS API.
~70 routes covering products, sources, modules, aggregate, PRDs and GitHub integration. Long-running jobs stream progress via text/event-stream.
Products
CRUD + analyze. Analyze uses an agent to propose description, target audience, competitors, and topics from a name + optional URLs.
/api/productsList products.
/api/productsCreate a product with its initial config.
/api/products/{id}Read a product (with masked GitHub token).
/api/products/{id}Update identity, topics, competitors, agent settings, GitHub integration.
/api/products/{id}Delete a product and cascading rows.
/api/products/analyze/streamStream agent-proposed description / audience / competitors / topics from a name + URLs.
Sources
Source instances per (product, module, type). Collect, pre-filter, inspect items, and use search helpers to discover new ones.
/api/products/{id}/sourcesList activated sources for a product.
/api/products/{id}/sourcesActivate a new source instance with config.
/api/products/{id}/sources/{sid}Update a source's config.
/api/products/{id}/sources/{sid}Deactivate a source.
/api/products/{id}/sources/{sid}/collectCollect now (fresh run).
/api/products/{id}/sources/{sid}/pre-filterRun the pre-filter LLM pass on recent items.
/api/github/searchDiscover GitHub sources by keyword / owner / topic.
/api/reddit/searchDiscover subreddits matching keywords.
/api/youtube/searchDiscover YouTube channels matching keywords.
/api/linkedin/searchDiscover LinkedIn companies / handles.
Modules — Discover · Listen · Compare
Per-module feed, stats, chat, report generation, and smart-configure. Generate streams step events over SSE.
/api/products/{id}/modules/{module}/feedPaginated feed of labeled items in the module.
/api/products/{id}/modules/{module}/statsStats block: item count, per-label counts, last run.
/api/products/{id}/modules/{module}/collectTrigger a collection run across the module's sources.
/api/products/{id}/modules/{module}/collection-progressSubscribe to live collection progress events.
/api/products/{id}/modules/{module}/generateGenerate a fresh module report.
/api/products/{id}/modules/{module}/generate/streamStream report generation step events.
/api/products/{id}/modules/{module}/reportsList historical reports.
/api/products/{id}/modules/{module}/chatQ&A chat scoped to the module's filtered items.
/api/products/{id}/modules/{module}/smart-configureAuto-fill sources and topics from the product profile.
Aggregate
Cross-module synthesis — generate snapshot batches of feature suggestions with evidence, and write a PRD from any suggestion.
/api/products/{id}/aggregateList suggestions in the current batch.
/api/products/{id}/aggregate/generateGenerate a fresh aggregate batch.
/api/products/{id}/aggregate/batchesList prior batches (history).
/api/products/{id}/aggregate/suggestions/{sid}/evidenceEvidence items that back a suggestion.
/api/products/{id}/aggregate/suggestions/{sid}/write-prdGenerate a PRD from a suggestion (competitor research included).
/api/products/{id}/aggregate/prompt-previewInspect the exact prompt that will be sent to the agent.
PRDs & GitHub handoff
CRUD on PRDs plus the GitHub issue handoff. Duplicate sends are blocked (409); issue URL persists back on the source suggestion.
/api/products/{id}/prdsList PRDs (manual + from suggestions).
/api/products/{id}/prdsCreate a blank manual PRD.
/api/products/{id}/prds/{pid}Read a PRD (title + markdown content).
/api/products/{id}/prds/{pid}Update title / content (debounced autosave client-side).
/api/products/{id}/prds/{pid}Delete a PRD.
/api/products/{id}/github/issuesCreate a GitHub issue from a PRD. Persists URL back on the suggestion.
Ops & registry
Health, setup, global stats, and the source registry used by the UI to discover what's available.
/api/healthLiveness probe.
/api/setup/checkReport Claude CLI availability + setup status.
/api/statsGlobal counts (products, items, runs).
/api/settingsRead global key-value settings.
/api/settingsUpdate global settings.
/api/registryFull source registry (all collectors + capabilities).
/api/registry/groupsRegistry grouped into Research / Industry / GitHub / Social / Trends.
/api/sourcesFlat list of available source types.
/api/url/checkValidate and normalize a URL (used in onboarding).
