AI-powered B2B company research engine. REST API + MCP server.
Base URL: https://research-agent.net
All requests require an API key passed via header:
X-Auth-Token: your_api_key_here
Get your API key from the dashboard. For MCP connections, use X-API-Key header instead.
POST /research call costs 1 creditPOST /agents/{id}/run costs 1 creditX-OpenRouter-API-Key headerControl how deep the agent researches. Available on /research, /agents/{id}/run, and /agents/{id}/bulk-run.
| quick | Fast lookup. 1-3 tool calls, ~45s timeout, 8 iterations max. Best for simple questions, basic company info, quick fact checks. |
| standard | Balanced (default). 3-8 tool calls, ~2min timeout, 25 iterations max. Good for most research tasks. |
| deep | Thorough research. 8-15 tool calls, ~5min timeout, 40 iterations max. Cross-references multiple sources, checks secondary pages. Best for detailed company profiles, competitive analysis. |
You can also set max_iterations (1-50) directly to override the depth preset.
Run a deep research query with web search, news, and scraping. Returns structured or free-text output. Costs 1 credit.
Parameters (query string or JSON body)
Accepts both query string params and JSON body. Use JSON body for long prompts and schemas (query strings have URL length limits).
| prompt | Required. The research instruction. |
| model | OpenRouter model ID. Included: deepseek/deepseek-v4-flash (default), deepseek/deepseek-v4-pro, google/gemini-3.1-flash-lite, google/gemini-2.5-flash-lite, google/gemini-3.5-flash, google/gemini-2.5-flash, google/gemini-2.5-pro. With BYOK: any OpenRouter model. |
| schema | JSON schema for structured output. Accepts a JSON object or a JSON string. |
| depth | Research depth: quick (fast, 1-3 tools, ~45s), standard (default, balanced), or deep (thorough, 8-15 tools, up to 5min). |
| max_iterations | Override max agent iterations (1-50). Overrides depth preset if both are set. |
| temperature | 0.0-2.0. Default: 0.1 |
Headers
| X-Auth-Token | Required. Your API key. |
| X-OpenRouter-API-Key | Optional. BYOK — use any model. Scale plan: no credits deducted. |
# Quick lookup — minimal params curl -X POST "https://research-agent.net/research" \ -H "X-Auth-Token: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "prompt": "What does Stripe do and how many employees do they have?", "depth": "quick" }' # Full example — all params curl -X POST "https://research-agent.net/research" \ -H "X-Auth-Token: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "prompt": "Research Stripe Inc. Find their ICP, tech stack, total funding, and recent news.", "model": "google/gemini-2.5-flash", "depth": "deep", "max_iterations": 35, "temperature": 0.1, "schema": { "type": "object", "properties": { "company": { "type": "string", "description": "Company name" }, "icp": { "type": "string", "description": "Ideal customer profile" }, "tech_stack": { "type": "array", "items": { "type": "string" } }, "funding_total": { "type": "string", "description": "Total funding raised" }, "recent_news": { "type": "array", "items": { "type": "string" } } } } }'
Response
{
"output": {
"company": "Stripe",
"icp": "Internet businesses needing payment infrastructure...",
"tech_stack": ["Ruby", "Go", "React", "AWS"],
"funding_total": "$8.7B",
"recent_news": ["Stripe launches new billing product..."]
},
"model_used": "google/gemini-2.5-flash",
"execution_time_seconds": 42.1
}
List all your agents.
Response
{ "agents": [{ "id": "uuid", "name": "...", "model": "...", "input_variables": [...], "is_active": true, ... }] }
Create a new agent.
Request body (JSON)
{
"name": "Company Enrichment",
"description": "Enrich company data",
"prompt_template": "Research {{company_name}} at {{website}} and find their ICP, tech stack, and funding.",
"input_variables": ["company_name", "website"],
"model": "google/gemini-2.5-flash",
"temperature": 0.1,
"output_schema": null
}
Get agent details by ID.
Update agent configuration. Only provided fields are changed.
Permanently delete an agent.
Execute an agent with input variables. Costs 1 credit.
Request body (JSON) — input variables + optional depth/max_iterations
# Standard depth (default) { "company_name": "Stripe", "website": "https://stripe.com" } # Quick lookup { "company_name": "Stripe", "website": "https://stripe.com", "depth": "quick" } # Deep research { "company_name": "Stripe", "website": "https://stripe.com", "depth": "deep" }
Response
{
"agent_id": "uuid",
"agent_name": "Company Enrichment",
"output": { "icp": "...", "tech_stack": [...] },
"execution_time_seconds": 12.5,
"request_id": "A1B2C3D4"
}
List past runs for an agent.
Query parameters
| limit | Max results (default 50, max 200) |
List available pre-built agent templates. Each template comes in lean (quick) and standard variants.
Pre-built agents for common GTM use cases. Each comes in two variants: Lean (quick depth, minimal output, fast) and Standard (deeper research, richer output). Create from template via POST /agents with template_key.
| Template | Depth | Use Case |
| company_enrichment_lean | quick | Fast firmographics — industry, HQ, size. Bulk pipelines. |
| company_enrichment | standard | Full profile — funding, tech stack, executives. CRM enrichment. |
| icp_check_lean | quick | Quick ICP score + one-line reasoning. Filtering large lists. |
| icp_check | standard | Detailed ICP scoring with signals. Account prioritization. |
| buying_signals_lean | quick | Signal strength + top 3 signals. Daily bulk monitoring. |
| buying_signals | standard | Full signal detection with sources and relevance scoring. |
| lead_qualifier_lean | quick | Quick score + next step. High-volume inbound filtering. |
| lead_qualifier | standard | Full qualification — seniority, title, reasoning. |
| competitor_analysis_lean | quick | Top 3 competitors + positioning. Sales battlecards. |
| competitor_analysis | deep | Full competitive landscape — strengths, weaknesses, trends. |
| news_monitor_lean | quick | Top headlines + sentiment. Daily account monitoring. |
| news_monitor | standard | Categorized news digest with sources and key takeaway. |
| outbound_personalization_lean | quick | One hook + one pain point. Bulk cold outreach prep. |
| outbound_personalization | standard | Pain points, hooks, competitor context, talking points. |
| pre_call_briefing | deep | Full account briefing — news, decision makers, talking points. |
Run an agent on hundreds of inputs asynchronously. Items execute concurrently (up to 5 at a time). Poll for progress and retrieve results when done.
Submit a bulk run job. Costs 1 credit per item (deducted upfront). Max 1000 items.
Request body (JSON)
{
"items": [
{ "company_name": "Stripe", "website": "https://stripe.com" },
{ "company_name": "Notion", "website": "https://notion.so" },
{ "company_name": "Linear", "website": "https://linear.app" }
],
"depth": "deep"
}
Response
{
"job_id": "uuid",
"total_items": 3,
"status": "running"
}
List all bulk run jobs for an agent. Returns job_id, status, progress counts, timestamps.
Get bulk job status and progress.
Response
{
"id": "uuid",
"agent_id": "uuid",
"status": "running",
"total_items": 100,
"completed_items": 45,
"failed_items": 2,
"created_at": "2026-03-04T12:00:00Z",
"completed_at": null
}
Get individual item results (paginated).
Query parameters
| offset | Skip N items (default 0) |
| limit | Max items to return (default 50, max 100) |
Response
{
"job_id": "uuid",
"offset": 0,
"items": [
{
"id": "uuid",
"input_variables": { "company_name": "Stripe", "website": "https://stripe.com" },
"status": "completed",
"output": { "icp": "...", "tech_stack": [...] },
"execution_time_seconds": 11.2
}
]
}
Cancel a running bulk job. Completed items are kept.
Get current credit balance and recent transactions.
List available credit packs with prices.
Create a Stripe checkout session to purchase credits.
Get current user identity.
{ "id": "uuid", "email": "user@example.com", "display_name": "John", "created_at": "..." }
Get usage statistics.
| days | Lookback period in days (default 30) |
Regenerate your API key. Old key is deactivated.
Connect via MCP (Model Context Protocol) at https://research-agent.net/mcp
Auth: pass API key as X-API-Key header.
Research & Enrichment
| research | Deep multi-source research query (1 credit) |
| search_web | Quick web search without full agent loop (1 credit) |
| scrape_page | Scrape and summarize a URL (1 credit) |
| enrich_company | Structured company enrichment — industry, size, funding, tech stack (1 credit) |
| find_buying_signals | Detect funding rounds, hires, launches, expansions (1 credit) |
| score_icp_fit | Score company against ICP criteria, 1-10 with reasoning (1 credit) |
| enrich_leads_bulk | Batch enrichment — creates agent, submits bulk run (1 credit/lead) |
Agent Management
| list_agents | List all configured agents |
| get_agent | Get agent details by ID |
| create_agent | Create agent with prompt template and optional schema |
| create_agent_from_template | Create from pre-built template (ICP check, enrichment, etc.) |
| update_agent | Update agent configuration |
| delete_agent | Delete an agent |
| run_agent | Execute agent with input variables (1 credit) |
| list_agent_runs | List past runs for an agent |
| list_templates | List available agent templates |
Bulk Runs
| bulk_run_agent | Submit bulk job (1 credit/item) |
| get_bulk_run_status | Check bulk job progress |
| get_bulk_run_results | Get results (paginated) |
| cancel_bulk_run | Cancel a running bulk job |
| list_bulk_runs | List all bulk jobs for an agent |
Account & Billing
| check_credits | Check credit balance and transactions |
| get_usage | Usage statistics (requests, costs, daily breakdown) |
| get_me | Current user identity |
| list_models | Available AI models and default |
| get_plans | Pricing plans with BYOK info |