Readable endpoint index
GET /api/v1/products/{slug}/trafficQuery product traffic
Organization members and admins only. From/to are UTC ISO timestamps; defaults to the last 30 days, maximum 90 days, no future timestamps. Counts NLB product page traffic, not the external product website. Visitors rotate daily; summed across days they are not unique people. Top 10 referrers, countries and devices describe page views. Active visitors is always the current 5-minute window, independent of from/to.
GET /api/v1/products/{slug}/traffic/publicRead published Analytics block totals
Available only when the latest public document (approved or published) contains an Analytics block. Draft changes do not change this opt-in. Returns totals and daily series; referrers/countries/devices are private.
GET /api/v1/products/{slug}/pulseRead product website health history
Read saved samples for a published product with a Pulse block. No probe is performed. Uptime is the percentage of successful measured samples, not continuous availability; unknown samples are excluded. History contains at most 100 samples and becomes stale after 15 minutes.
POST /api/v1/products/{slug}/pulseSample the product's published website
Send an empty body. Checks the saved website URL, never a caller-supplied URL. A five-minute per-product cooldown and global concurrent-probe limit apply. Returns sampled=false when a new probe is not due or capacity is full. Probes are on-view, not scheduled continuous monitoring.
GET /api/v1/statsDirectory statistics
POST /api/v1/media/uploadUpload product media
Upload an image (up to 10 MB) or video (up to 100 MB). The current endpoint accepts draft creators without a session.
GET /api/v1/api-keysList your API keys
Returns key metadata only, never the raw secret.
POST /api/v1/api-keysCreate an API key
Requires a browser session. The raw key is returned only once; store it securely.
DELETE /api/v1/api-keys/{id}Revoke your API key
GET /api/v1/admin/queueRead moderation queue
Admin browser session required.
POST /api/v1/admin/decideRecord a human moderation decision
Admin browser session required. Reviewer identity is derived from the session.
GET /api/v1/productsList Published Directory Products
Retrieve a paginated list of human-verified and published products ordered by trust score and rank.
POST /api/v1/productsCreate Product Draft
Initialize a new product draft under an organization. Requires a session or API key and organization membership.
GET /api/v1/products/{slug}Get Product by Slug
Retrieve public verified product listing and its active revision document.
POST /api/v1/products/{slug}/revisionsCreate Product Document Revision
Save a new block-based document revision. Validates against the official block schema contract (including Activities, Pulse and Analytics). Publishing an Analytics block opts into public traffic totals for that product.
POST /api/v1/products/{slug}/submitSubmit Product Revision for Review
Submit a revision for automated pre-screening and board moderation.
GET /api/v1/products/{slug}/markdownExport Product as LLM Markdown
Markdown structured feed formatted for AI agents and LLM context windows.
GET /api/v1/rankingsGet Community Rankings
Fetch transparent daily, weekly, or monthly organic community leaderboard rankings.
POST /api/v1/votesCast Vote for Product
Cast an organic community vote for a product in the current 24-hour UTC window. One vote per product per user per day.
GET /api/healthService & Database Health Probe
Live health status check across Cloudflare Workers runtime and Hyperdrive PostgreSQL.