Skip to content
Deal Intelligence

API and integrations

Deal Intelligence in your own tools.

A REST API for African deals, corporate events, investors, countries and market prices, and watchlist alerts delivered to Slack, Microsoft Teams, Discord, Google Chat or any webhook. Create a key on the API keys page once you have an account.

Free during early access. Paid plans are coming soon; everyone who joins before then gets founding-member pricing, kept for as long as they stay subscribed.

Quick start

Send your key in the Authorization header (or X-API-Key). Every response is JSON.

curl "https://api.deal-intelligence.app/v1/deals?country=KE&type=equity_funding&limit=5" \
  -H "Authorization: Bearer di_live_..."
import requests

r = requests.get("https://api.deal-intelligence.app/v1/events",
                 params={"country": "NG", "type": "m_and_a_activity", "limit": 20},
                 headers={"Authorization": "Bearer di_live_..."})
r.raise_for_status()
print(r.headers["X-RateLimit-Remaining"], "requests left this month")
for e in r.json()["events"]:
    print(e["day"], e["headline"])

Keys belong on servers and in your tools' secret settings. Never put a key in a web page, a public repository or a chat message: anyone with it can use your allowance. Revoke a leaked key on the API keys page and create a new one.

Plans and limits

PlanAllowanceKeys
Free30 requests a month2 keys
Pro3,000 requests a month5 keys
Team15,000 requests a month10 keys
Institutional100,000 requests a month25 keys

Every request made with a key counts, whatever its result, except /v1/usage. Usage is per account and shared by all its keys. The allowance resets on the 1st of each month (UTC). Each response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix time). Bursts above 120 requests a minute from one address are slowed down.

Every plan is free during early access, with founding-member pricing for everyone who joins before paid plans launch. Need more than 30 requests a month for a team, an integration or research? Request Pro access from the API keys page or write to info@deal-intelligence.app.

Endpoints

All endpoints are GET under https://api.deal-intelligence.app/v1. Dates are YYYY-MM-DD; countries take ISO codes or names; list endpoints page with limit and offset.

Deal type: acquisition, merger, equity_funding, debt_financing, fund_raise, exit, ipo, joint_venture. Event type: m_and_a_activity, credit_risk, distressed_asset, earnings_surprise, leadership_change, regulatory_action, debt_restructuring, insider_activity.

/v1/usage

This month's allowance and use. Not counted.

/v1/deals

Search deals, newest and most relevant first.

q, country, type, sector, investor, since, until, min_usd, limit (≤100), offset

/v1/deals/{id}

One deal with its sources, verification, parties and comparable deals.

/v1/events

Corporate events (M&A, credit, distress, leadership, regulatory and more).

country, type, since, q, limit (≤200), offset

/v1/investors

Investors ranked on the deals that match the filters.

role, kind, sector, country, stage, type, since, until, min_usd, max_usd, lead_only, limit, offset

/v1/investors/{name}

An investor's profile, portfolio and fund lifecycle.

/v1/countries

Deal and event activity and risk for all 54 African countries.

/v1/countries/{code}

One country in detail (ISO code, e.g. NG, KE, ZA).

/v1/markets/overview

Exchanges, movers, most traded and currency moves.

/v1/markets/screener

Listed shares across African exchanges, filtered and sorted.

exchange, sector, min_mcap_usd, q, sort, include_stale, limit (≤200), offset

/v1/markets/search

Find a listing by company name or ticker.

q (required), limit (≤25)

/v1/markets/quote

Latest price for one listing.

exchange, symbol (both required)

Errors

Errors share one shape: {"error": {"code": "...", "message": "...", "docs": "..."}}

401missing_key / invalid_keyNo key, a mistyped key, or a revoked key.
404not_foundThe deal, investor or listing does not exist.
422invalid_requestA parameter is out of range or missing.
429quota_exceededThe month's allowance is used. Retry-After says when it resets.
503unavailableA temporary problem on our side. Retry after the Retry-After seconds.

Alerts in Slack, Teams, Discord and Google Chat

Create a watchlist on the Alerts page and paste the channel's webhook URL. The format is chosen from the URL, and Send test message shows what alerts will look like before you save. Alerts arrive daily after each update, or as a Friday digest. Chat delivery does not use your API allowance.

  1. Slack: at api.slack.com/apps create an app, turn on Incoming Webhooks, choose Add New Webhook to Workspace, pick the channel and copy the URL (starts with https://hooks.slack.com/).
  2. Microsoft Teams: in the channel open Workflows and choose the template Post to a channel when a webhook request is received. Finish the steps and copy the URL it gives you.
  3. Discord: Channel settings, Integrations, Webhooks, New Webhook, then Copy Webhook URL.
  4. Google Chat: in the space open Apps and integrations, Webhooks, add one and copy its URL.
  5. Zapier, Make, n8n or your own server: use any HTTPS webhook URL. It receives the JSON payload below, so you can route alerts to email, a CRM, a spreadsheet or anywhere else.

Treat a webhook URL like a password: anyone with it can post into that channel.

Webhook payload

Webhooks that are not a chat tool receive this JSON as a POST. The Idempotency-Key header is the same on retries of the same batch, so you can ignore repeats.

{
  "watchlist": {"id": "...", "name": "Nigerian fintech", "url": "https://deal-intelligence.app/app/watchlists/..."},
  "generated_at": "2026-11-09T06:30:00+00:00",
  "alerts": [
    {"kind": "deal", "id": "...", "day": "2026-11-08", "title": "...",
     "deal_type": "equity_funding", "amount_usd": 12000000,
     "url": "https://...", "publisher": "TechCabal",
     "why": ["company: Moniepoint"], "change_type": "new"}
  ]
}