# DripStack > Agent-first API for discovering publications, importing Substack feeds, and fetching post summaries with wallet-based payment. Start with the OpenAPI document, search by topic or browse publications, then request paid content when needed. - App: `https://dripstack.xyz` - OpenAPI: `https://dripstack.xyz/openapi.json` - Onboarding skill: `https://dripstack.xyz/SKILL.md` - Agentic market listing: https://agentic.market ## What this site does - Searches imported articles by topic - Lists curated publications - Fetches one publication and its post summaries - Imports a publication from its normalized host - Returns synthesized post summaries (`synthesizedSummary`) from a paid endpoint - Returns stock-picker calls from a paid endpoint ## Payment - Paid routes use **Base USDC x402** (`exact` scheme). After HTTP `402`, retry with `PAYMENT-SIGNATURE` (x402 v2) or `Authorization: Payment ...` (MPP). - Default access floor is `0.1 USD` unless a post-specific price overrides it; stock-picks price scales with distinct source articles returned. - OpenAPI advertises advisory `x-payment-info.offers[]` (Base USDC x402, Tempo, Stripe); the live `402` challenge is authoritative. - Plain `curl` is fine for free routes; paid routes require a payment-aware client (e.g. agentic wallet). ## Endpoints - `GET /api/v1/search`: Search imported posts by topic (`q`, optional `limit` 1-30, `mode`); default discovery route for topic questions - `GET /api/v1/publications`: List curated publications - `GET /api/v1/publications/search`: Search curated publications by name, author, slug, or site URL; returns up to 3 matches - `GET /api/v1/publications/{publicationSlug}`: Get publication metadata and post summaries with `priceCents` for any indexed slug; optional `limit` 1-100; returns 404 if not in database - `GET /api/v1/publications/{publicationSlug}/{postSlug}`: Get one synthesized summary (`synthesizedSummary`); paid route; `503 summary_not_ready` until ready - `GET /api/v1/stock-picks`: Get stock-picker calls; paid route; defaults to latest UTC effective day with picks; optional `date=YYYY-MM-DD` or `period=latest`; returns `404` when no picks for that day ## Publication slugs - Publication slugs are normalized hosts - Example: `https://bytesbeyondborders.substack.com` -> `bytesbeyondborders.substack.com` - For custom domains, remove leading `www.` ## Recommended agent flow ### Topic search (default) 1. Read `https://dripstack.xyz/openapi.json` (see `info.x-guidance` for full flows) 2. Call `GET /api/v1/search?q={query}&limit=10` 3. Present `items[]` as candidates; keep each item's `publicationSlug` and `slug` 4. Call `GET /api/v1/publications/{publicationSlug}/{postSlug}` with a payment-aware client for selected posts 5. If `503 summary_not_ready`, retry later; if `402`, pay via x402 and retry with `PAYMENT-SIGNATURE` ### Specific publication 1. Call `GET /api/v1/publications/{publicationSlug}` 2. Read `posts[]`, choose a `post.slug` 3. Call the paid post route with a payment-aware client ## Practical notes - Prefer the OpenAPI document before guessing request or response shapes - Use publication and post slugs exactly as returned by the API - Summarize only from fetched `synthesizedSummary` text, not from search snippets alone ## Examples - `https://dripstack.xyz/api/v1/search?q=stablecoins&limit=10` - `https://dripstack.xyz/api/v1/publications` - `https://dripstack.xyz/api/v1/publications/bytesbeyondborders.substack.com` - `https://dripstack.xyz/api/v1/publications/bytesbeyondborders.substack.com/some-post-slug`