Skip to main content
DeepCurrent’s hosted growth engine handles enrichment, qualification, and execution for you. Describe your target, pick your channels, set a volume, and DeepCurrent builds and runs the campaign.

How it works

You define a goal_plan — the target company or domain, the channels you want to use (email, LinkedIn, etc.), and how many contacts you want to reach. DeepCurrent resolves your goal into a delivery plan, quotes the credit cost, and runs the enrichment pipeline when you confirm. Results land in your Downloads page when the run completes.
Quote tokens are single-use and expire. Get a fresh quote before each run. If a run fails after the token is consumed, you will need to re-quote before retrying.

The 4-step workflow

1

Resolve

Submit your growth goal. DeepCurrent validates the shape of your plan and returns a goal_plan object ready for quoting.
curl -X POST https://api.deepcurrent.app/api/v1/growth/resolve \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "goal_text": "Find and reach out to 50 decision-makers at Hyperliquid via email",
    "constraints": {},
    "input_assets": {}
  }'
You can also supply a structured goal_plan directly if you already know the target:
{
  "goal_plan": {
    "target": { "domain": "hyperliquid.xyz" },
    "channels": ["email"],
    "volume": 50
  }
}
The response includes a goal_plan you will pass to the quote step, along with quotable: true when the plan is ready.
{
  "goal_type": "targeted_outreach",
  "quotable": true,
  "suggested_next_action": "Confirm this quote to start the growth run.",
  "goal_plan": {
    "target": { "domain": "hyperliquid.xyz" },
    "channels": ["email"],
    "volume": 50,
    "pipeline_id": "full_pipeline"
  }
}
2

Quote

Pass the goal_plan from the resolve response to get a credit cost and a quote_token.
curl -X POST https://api.deepcurrent.app/api/v1/growth/quote \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "goal_plan": {
      "target": { "domain": "hyperliquid.xyz" },
      "channels": ["email"],
      "volume": 50,
      "pipeline_id": "full_pipeline"
    }
  }'
A successful quote response:
{
  "ok": true,
  "quotable": true,
  "quote_token": "eyJ...",
  "expiry": "2025-04-08T15:30:00Z",
  "credits_total": 750,
  "cost_breakdown": {
    "enrichment": 500,
    "email_verification": 250
  },
  "expected_artifacts": {
    "contacts": 50,
    "verified_emails": 40
  },
  "suggested_next_action": "Confirm this quote to start the growth run."
}
If ok is false, check error_code and detail for what to fix before re-quoting.
3

Run

Confirm the quote to start execution. You get a run_id back immediately — the job runs asynchronously.
curl -X POST https://api.deepcurrent.app/api/v1/growth/run \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "quote_token": "eyJ...",
    "goal_plan": {
      "target": { "domain": "hyperliquid.xyz" },
      "channels": ["email"],
      "volume": 50,
      "pipeline_id": "full_pipeline"
    }
  }'
{
  "status": "running",
  "run_id": "7c9e6679-...",
  "preview": {
    "message": "Enrichment has been queued.",
    "pipeline_id": "full_pipeline"
  }
}
Save the run_id — you need it to check progress.
4

Poll for status

Check progress by polling the run status endpoint. The progress field shows percentage completion (0–100).
curl https://api.deepcurrent.app/api/v1/growth/runs/7c9e6679-... \
  -H "Authorization: Bearer YOUR_API_KEY"
While running:
{
  "run_id": "7c9e6679-...",
  "status": "running",
  "progress": {
    "percent": 62,
    "message": "Enriching contacts and verifying emails..."
  }
}
When complete:
{
  "run_id": "7c9e6679-...",
  "status": "completed",
  "progress": { "percent": 100 },
  "export_handles": [
    {
      "label": "Verified contacts",
      "kind": "csv",
      "download_url": "https://..."
    }
  ],
  "preview": {
    "delivered_contacts": 50,
    "verified_emails": 43
  }
}
Completed runs are also available on your Downloads page at app.deepcurrent.app/downloads.

Worked example (Python)

import time
import requests

BASE = "https://api.deepcurrent.app/api/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

goal_plan = {
    "target": {"domain": "hyperliquid.xyz"},
    "channels": ["email"],
    "volume": 50,
    "pipeline_id": "full_pipeline"
}

# Step 1 — Resolve
resolve = requests.post(f"{BASE}/growth/resolve", headers=HEADERS, json={
    "goal_text": "Reach 50 decision-makers at Hyperliquid via email",
    "input_assets": {}
}).json()

goal_plan = resolve["goal_plan"]

# Step 2 — Quote
quote = requests.post(f"{BASE}/growth/quote", headers=HEADERS, json={
    "goal_plan": goal_plan
}).json()

assert quote["ok"], f"Quote failed: {quote.get('detail')}"

# Step 3 — Run
run = requests.post(f"{BASE}/growth/run", headers=HEADERS, json={
    "quote_token": quote["quote_token"],
    "goal_plan": goal_plan,
}).json()

run_id = run["run_id"]

# Step 4 — Poll
while True:
    status = requests.get(f"{BASE}/growth/runs/{run_id}", headers=HEADERS).json()
    print(f"Progress: {status['progress'].get('percent', 0)}%")
    if status["status"] in ("completed", "failed", "cancelled"):
        break
    time.sleep(10)

print("Done:", status["status"])