---
title: "LLM-narrated competitive-intelligence BRIEFING — for human consumption (board meeting, pitch prep). Pair tool: `competit"
method: POST
path: "/api/v1/call/competitor_intel"
tags: ["expertise"]
---

# LLM-narrated competitive-intelligence BRIEFING — for human consumption (board meeting, pitch prep). Pair tool: \`competit

`POST /api/v1/call/competitor_intel`

## Request

- Base URL: `https://mcp.gapup.io`
- URL: `https://mcp.gapup.io/api/v1/call/competitor_intel`
- Auth: HTTP bearer

LLM-narrated competitive-intelligence BRIEFING — for human consumption (board meeting, pitch prep). Pair tool: `competitive_deep_dive` for raw structured multi-source data (agent-shaped JSON). Returns: recent competitor moves with severity (critical/high/medium/low), prioritised signals, pricing-radar comparison, 3-6 quantified recommendations (impact in € or %, 7/30/90/180-day horizons), and an 8-12 slide presenter script. Use when the buyer wants a narrative briefing or a deck. Inputs: your company (name + one-paragraph pitch) + 1-10 competitors. Delivered by Manue, AI CMO of the Gapup portfolio.

## Request body

- object
  - `selfCompany` object, required: Your company info
    - `name` string, required
    - `url` string, uri
    - `pitch` string, required: One-paragraph pitch
  - `competitors` object[], required: 1-10 competitors to analyze
    - `name` string, required
    - `url` string, uri, required
  - `focus` string: Optional — what the buyer wants to track first (e.g. pricing moves, hiring patterns)
  - `async` boolean: If true, returns a job_id immediately (<200ms) instead of waiting for the result. Poll the result with job_result(job_id). Use for slow tools to avoid client timeouts.

## Response `200`

Tool result

- object
  - `tool` string
  - `result` object
    - `executiveSummary` string, required: Board-ready prose summary (120-400 chars)
    - `competitorMoves` object[], required: Recent moves per competitor with severity rating
      - `competitor` string, required
      - `move` string, required
      - `severity` 'critical' | 'high' | 'medium' | 'low', required
      - `date` string
      - `source` string
    - `pricingRadar` object[]: Pricing comparison across competitors
      - `competitor` string, required
      - `tier` string
      - `priceEur` number
      - `features` string[]
    - `recommendations` object[], required: 3-6 actionable strategic recommendations
      - `action` string, required
      - `expectedImpact` string, required
      - `horizon` '7d' | '30d' | '90d' | '180d', required
      - `priority` 'critical' | 'high' | 'medium' | 'low'
    - `presenterScript` object[], required: 8-12 slide board presenter script
      - `slide` integer, required
      - `title` string, required
      - `keyPoints` string[], required
      - `speakerNote` string, required
      - `visualHint` string
    - `kpis` object[]: 3-5 headline KPI bubbles
      - `label` string, required
      - `value` string, required
      - `trend` 'up' | 'down' | 'stable'
    - `sources` object[]: Cited sources
      - `url` string, required
      - `excerpt` string
  - `request_id` string
  - `source` 'rest-api'
  - `ms` number

## Other responses

- `400`: Invalid arguments
- `401`: Unauthorized
- `402`: Payment Required — pay via x402 (USDC on Base) then retry with X-Payment header
- `404`: Tool not found
- `429`: Rate limited
- `500`: Internal error

---

[API](https://skmtc.dev/gapup/apis/gapup-mcp-rest-api.md) · [All operations](https://skmtc.dev/gapup/apis/gapup-mcp-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/gapup/apis/gapup-mcp-rest-api/revisions/afb9da3b98f4?raw)
