Skip to main content
A stock pick is a ticker-level call extracted from a source article — an analyst recommendation, a long/short idea, an add, or an exit. Drip serves these as structured JSON for AI agents, separate from the newsletter/article workflow. There are two API versions. Use V2; V1 exists for existing integrations and stays available unchanged.

V2 — GET /api/v2/stock-picks

The recommended endpoint. It resolves the caller’s plan from the bearer credential first, then either serves the request from the subscription window free of charge or routes anonymous / FREE callers through the same pay-per-use flow as V1.

Subscription access (Bearer API key, OAuth token, or session JWT)

  • EXPERT readers get full history. PRO is clamped to the live 7-day window.
  • In-plan requests are never charged and count against the API key’s monthly request allowance (429 when exhausted).
  • An explicit date outside the plan window returns 403; out-of-window ranges are silently clamped — read meta.allowedRange / meta.appliedRange.

Pay-per-use (anonymous or FREE)

No free API access. Call the free quote, confirm the amountUsd, then pay. The paid path accepts date / limit only (filters and ranges are paid-tier features).

V2 query parameters

Each picks[] item includes date, ticker, direction, action, author, publicationSlug, publicationTitle, articleUrl (Drip’s sellable URL when a post is attributed), conviction, convictionLabel, evidenceQuote, rationaleSnippet, publishedAt, and prices (entry, current, returnPct — direction-adjusted). V2 errors: 400 invalid query, 401 bad bearer, 402 payment required, 403 explicit date/range outside the plan window, 404 no picks (paid path), 429 request allowance exhausted.

V1 — GET /api/v1/stock-picks (legacy, still available)

The original endpoint. It always returns one effective UTC calendar day — the latest day with picks by default, or date=YYYY-MM-DD for a specific day. Pricing is a flat unit price × the number of distinct attributed source articles in the response; call GET /api/v1/stock-picks/quote for the exact total, then pass the quoted dateUsed on the paid request. A 404 means no picks exist for that day — do not pay.
Response: dateUsed, startDate, endDate, asOf, count, and items[] with ticker, tickerExchange, instrumentType, action, direction, authorConviction, convictionLabel, activePick, evidenceQuote, rationaleSnippet, articleTitle, articleUrl, author, publishedAt, publicationSlug, and postSlug.

Migrating from V1 to V2

  1. Switch URLs/api/v1/stock-picks/api/v2/stock-picks and /api/v1/stock-picks/quote/api/v2/stock-picks/quote. Single-day callers can keep passing date=YYYY-MM-DD unchanged.
  2. Authenticate — if the caller has a PRO or EXPERT plan (Bearer API key, OAuth, or JWT), in-window reads become free, no quote or payment needed. The paid path for everyone else stays quote → confirm → pay.
  3. Adapt the responseitems[] becomes picks[], dateUsed / startDate / endDate become meta + a date on each pick, and the item fields change:
  1. Pagination — for ranges use limitDays + cursor; the response’s pagination.nextCursor continues older. Previously impossible beyond one day.
  2. Errors — keep treating 404 as “no picks, do not pay”. New: 403 for an explicit out-of-window date, 429 for an exhausted API-key allowance.
  3. MCP — prefer quote_stock_picks_v2 / list_stock_picks_v2 (confirmSpend: true on the paid path only). The V1 tools (quote_stock_picks / list_stock_picks) remain available.

Hosted MCP

The four stock-picks tools map 1:1 to these routes: MCP defaults to V2 (list_stock_picks_v2). On the paid path, always call the matching quote tool first, show amountUsd as $X.XX, confirm with the user, then call with confirmSpend: true.