Skip to main content
Some picks never exist in a Drip source — they live in a subscriber’s own newsletter, a transcript, a research note, or a post they read somewhere else. /api/v2/extract-picks takes that text and returns the same structured shape as GET /api/v2/stock-picks: ticker, action, direction, conviction, evidence quote, thesis, price target. No credits are spent — the call is included in the plan. The API key mount only (Bearer pk_drip_… or an MCP OAuth token); there is no wallet twin.
The pasted text is never stored. It travels to the extraction job and is gone when the job ends — we keep the picks, not the article. Results are advisory and never enter the public picks product, the leaderboard, or consensus.

POST /api/v2/extract-picks

Submits a paste and returns immediately. The extraction runs as a background job (30–90 seconds), so poll the result endpoint until the status is terminal.
Re-posting identical text returns the stored result instantly (200 with the picks) instead of running a new job — the text is hashed, never stored.

Limits

  • 5 extractions/day on Personal, 10/day on Enterprise (UTC day).
  • One extraction at a time per account — a second submit while a job is running is refused.
  • 400 when the text is empty or over the cap, 403 without a plan, 429 when the daily quota is spent.

GET /api/v2/extract-picks/{id}

Polls one extraction. status is PENDING, READY, or FAILED.
Polling is free: it does not consume the monthly API request allowance, and only a submitted extraction counts against the daily quota. Another account’s id returns 404.

GET /api/v2/extract-picks

Lists the caller’s own extractions, newest first.

Hosted MCP

Two tools mirror the routes:
  • extract_picks — {"text": "...", "title": "..."} → {"id": "...", "status": "PENDING"}
  • get_extraction — {"id": "..."} → the result above
Submit, then poll get_extraction until the status is terminal. Do not wait inside one tool call — the job takes longer than any MCP client timeout.