start_research

Monitoring & Reporting Write

Start an AI-powered research job (runs in background)

Endpoint

POST https://api.adspirer.ai/api/v1/tools/start_research/execute

Headers

Description

Start an AI-powered research job (runs in background). **What it does:** - Performs deep analysis that takes 5 minutes to 2 hours - Runs asynchronously - you'll be notified when complete - Provides comprehensive insights and recommendations **Research Types:** 1. **competitor_analysis** - Analyze competitor ad strategies Required context: competitors (list of competitor domains/names) 2. **keyword_research** - Discover high-value keywords Required context: seed_keywords (list of starting keywords) 3. **market_landscape** - Industry overview and trends Required context: industry (industry name) 4. **audience_insights** - Target audience analysis Required context: target_audience (description of audience) 5. **campaign_strategy** - Strategic recommendations Required context: campaign_goals (what you want to achieve) **Depth Levels:** - quick: 5-10 minutes - standard: 15-30 minutes - comprehensive: 1-2 hours **Example:** User: "Research my competitors" → Call start_research with: - research_type: "competitor_analysis" - depth: "standard" - context: {"competitors": ["competitor1.com", "competitor2.com"]}

Request body

All tool arguments are wrapped in an arguments object.

FieldTypeDescription
research_typestring requiredType: 'competitor_analysis', 'keyword_research', 'market_landscape', 'audience_insights', 'campaign_strategy'
depthstring optionalDepth: 'quick' (5-10 min), 'standard' (15-30 min), 'comprehensive' (1-2 hours) default: "standard"
contextobject requiredResearch context (varies by type). See tool description for required fields.
notify_methodstring optionalHow to notify when complete: 'email', 'slack', 'in_app' default: "email"
notify_destinationstring optionalEmail address or Slack channel for notification

Example request

{
  "arguments": {
    "research_type": "string",
    "context": {
      "industry": "ecommerce",
      "target_audience": "runners aged 25-45",
      "goals": [
        "increase brand awareness",
        "drive purchases"
      ]
    },
    "depth": "standard",
    "notify_method": "email",
    "notify_destination": "string"
  }
}

Example responses

200 — Success

{
  "success": true,
  "data": {
    "text": "(tool-specific textual output for start_research)",
    "quota": {
      "used": 42,
      "limit": 150,
      "tier": "plus",
      "period_end": "2026-05-01"
    }
  },
  "tool": "start_research"
}

400 — Tool-level error (bad arguments / multi-account selection)

{
  "success": false,
  "error": "You have 25 meta_ads accounts connected. Please specify which account to use by passing the ad_account_id parameter:\n  - Acme Holdings (ad_account_id=\"act_123456789\")\n  - Acme EU (ad_account_id=\"act_987654321\")",
  "is_error": true,
  "tool": "start_research"
}

402 — Quota exhausted

{
  "success": false,
  "error": "\ud83d\udea8 Monthly limit reached (150/150 tool calls on Plus tier).\nUpgrade to Pro at https://adspirer.ai to keep building.",
  "is_error": true,
  "tool": "start_research",
  "quota": {
    "used": 150,
    "limit": 150,
    "tier": "plus",
    "period_end": "2026-05-01",
    "upgrade_url": "https://adspirer.ai"
  }
}

Try it live


Adspirer REST API — get an API key at adspirer.ai/keys · adspirer.ai