Dealert. Data API · v1 Get an API key →

Dealert Data API

Programmatic access to the Dealert M&A deals database — browse with filters, run semantic search, fetch a single deal, and pull the reference vocabularies you need to build queries. A simple, read-only REST API returning JSON.

BASE https://dealert.ai/api/v1

Introduction

All endpoints are GET requests and return JSON. Successful list responses are shaped { "data": [...], "pagination": {...} }; single-object responses are { "data": {...} }. Access requires an active Data API add-on on your account and an API key.

Don't have access yet? Enable the add-on and create a key →

Authentication

Send your secret key on every request, in either header:

# Recommended
curl -H "X-API-Key: YOUR_KEY" "https://dealert.ai/api/v1/deals?limit=5"

# Or a bearer token
curl -H "Authorization: Bearer YOUR_KEY" "https://dealert.ai/api/v1/deals?limit=5"
Keys look like dk_live_… and are shown once at creation — store them securely. Manage and revoke keys anytime in Settings. A revoked key stops working immediately.

Rate limits & quota

Each account has a monthly request quota that resets on the 1st of the month. Every response includes your current standing:

HeaderMeaning
X-Quota-LimitRequests allowed this month
X-Quota-RemainingRequests left in the current period
X-Quota-ResetDate the quota resets (YYYY-MM-DD)

When the quota is exhausted, requests return 429 until the reset date. Requests rejected before authentication (unknown route, missing key) do not count against your quota.

Per-minute rate limit

In addition to the monthly quota, each API key is limited to 100 requests per minute. Every response carries your current standing, and throttled requests do not consume monthly quota:

HeaderMeaning
X-RateLimit-LimitRequests allowed per minute (100)
X-RateLimit-RemainingRequests left in the current minute
Retry-AfterSeconds to wait (sent on a 429)

Exceeding the limit returns 429 with type: "rate_limited". Back off for the number of seconds in Retry-After and retry.

Errors

Errors use a consistent envelope and standard HTTP status codes:

{ "error": { "type": "quota_exceeded", "message": "Monthly API quota exceeded. Resets on 2026-08-01." } }
StatustypeWhen
400missing_queryA required parameter is absent (e.g. q on search)
401no_key / invalid_keyMissing, invalid, or revoked key
403addon_inactiveThe Data API add-on isn't active on your account
404not_foundUnknown endpoint, or no deal with that code
405method_not_allowedOnly GET is supported
429quota_exceededMonthly quota used up
429rate_limitedOver 100 requests/minute — see Retry-After
500/502/503variousServer-side / upstream issue — retry shortly

List deals

GET /deals

Browse and filter the deals database, most recent first. Paginated.

Query parameters

ParamTypeDescription
pageintPage number (default 1)
limitintResults per page, 1–100 (default 25)
target_countryint[]Country id(s) — see reference. Repeat to OR: target_country=1&target_country=5
deal_typeint[]Deal type id(s)
seller_typeint[]Seller type id(s)
target_industrystring[]Industry code(s) at any level (l1/l3/l5)
min_deal_year, max_deal_yearintDeal year range
min_deal_month, max_deal_monthintMonth bounds (1–12), applied within the year range
min_ev/max_ev, min_revenue/max_revenue, min_ebitda/max_ebitda, min_ebit/max_ebit, min_transaction_size/max_transaction_sizenumberFinancial filters (USD millions)
min_evr/max_evr, min_evebitda/max_evebitda, min_evebit/max_evebitnumberValuation-multiple filters
buyer_name, target_namestringPrefix match on buyer / target name
data_sourcestringestimates (default, uses Dealert estimates where disclosed data is missing), confirmed (disclosed figures only), or confirmed_strict (must have ≥1 disclosed figure)

Example

curl -H "X-API-Key: YOUR_KEY" \
  "https://dealert.ai/api/v1/deals?target_country=1&min_ev=50&data_source=confirmed&limit=2"
{
  "data": [
    {
      "deal_code": "GCXI",
      "buyer_name": "Baladna Q.P.S.C., Algerian National Investment Fund",
      "target_name": "Baladna Algeria S.P.A.",
      "deal_year": 2025,
      "target_country": "Algeria",
      "target_industry": "Dairy Products",
      "deal_type": "Strategic Partnership",
      "transaction_size": "155.00",
      "ev": null, "revenue": null, "ebitda": null,
      "ev_est_min": "160.0", "ev_est_max": "190.0"
      /* …more fields — see "The deal object" */
    }
  ],
  "pagination": { "page": 1, "limit": 2, "total": 33, "total_pages": 17 }
}
GET /deals/search

Hybrid keyword + semantic (vector) search, ordered by relevance. Accepts the same filter parameters as List deals (except buyer_name/target_name).

ParamTypeDescription
q requiredstringNatural-language or keyword query
page, limitintPagination (limit 1–100, default 25)
curl -H "X-API-Key: YOUR_KEY" \
  "https://dealert.ai/api/v1/deals/search?q=AI%20infrastructure%20acquisitions&limit=5"

Response adds the echoed query alongside data and pagination.

Get a deal

GET /deals/{deal_code}

Fetch a single deal by its deal_code. Returns 404 if no match.

curl -H "X-API-Key: YOUR_KEY" "https://dealert.ai/api/v1/deals/GCXI"
{ "data": { "deal_code": "GCXI", "buyer_name": "…", /* …full deal object */ } }

Reference data

Lookups for building filter queries. Each returns { "data": [...] }.

EndpointReturns
GET /reference/countries{ id, name } — use id with target_country
GET /reference/deal-types{ id, name } — use id with deal_type
GET /reference/seller-types{ id, name } — use id with seller_type
GET /reference/industries{ code, name, lvl, l1p, l3p } — use code with target_industry. lvl is the hierarchy level (1/3/5); l1p/l3p are parent codes.
curl -H "X-API-Key: YOUR_KEY" "https://dealert.ai/api/v1/reference/countries"

Likely buyers

GET /likely-buyers

Find the acquirers and investors most likely to buy a target with a given profile, ranked by historical deal fit with supporting evidence.

ParamTypeDescription
niche requiredstring[]Industry code(s) — see reference/industries. Repeat: niche=5010101010&niche=50
country requiredint[]Target country id(s)
size_band requiredstringTarget EV band: micro (<$10M), small ($10–50M), medium ($50–200M), large ($200M+)
niche_modestringexact (default), balanced (one level broader), adjacent (whole sector)
geo_modestringdomestic (default, filter to countries) or cross_border
buyer_typestringall (default), strategic, financial
size_modestringstrict (default), flexible (±1 band), broad (ignore size)
recently_activestringyes (default, last 5 years) or no
use_deal_type_filter + deal_typesbool + int[]Restrict to specific deal types
curl -H "X-API-Key: YOUR_KEY" \
  "https://dealert.ai/api/v1/likely-buyers?niche=50&country=1&size_band=large&buyer_type=financial"

Returns { "data": [ … ] } — each buyer has buyer_name, match_strength_label, score_pct, supporting_deal_count, reasoning, and up to 3 supporting_deals. Up to 100 results.

Instant comps

GET /comps

Resolve a company by name and return a set of AI-ranked comparable transactions. This runs a live analysis and typically takes ~30 seconds — set a generous client timeout.

ParamTypeDescription
company requiredstringCompany name (or website URL for precision)
curl -H "X-API-Key: YOUR_KEY" "https://dealert.ai/api/v1/comps?company=Salesforce"

Returns { "data": [ … ], "company": "…", "website": "…", "logic": { … } }. Each item in data is a comparable deal with relevancy_pct, relevancy_label, and the standard deal fields. logic describes the inferred industry/geography used for matching. 404 if the company can't be resolved.

The deal object

Financial figures are in USD millions. Disclosed fields are null when not publicly reported; the matching *_est_min/*_est_max pair carries Dealert's estimated range for that metric.

FieldDescription
deal_codeStable unique identifier
buyer_name, target_nameParties to the deal
deal_yearYear of the deal
target_country, target_industry, deal_type, seller_typeClassifier names
transaction_size, ev, revenue, ebitda, ebitDisclosed figures (nullable)
evr, evebitda, evebitComputed multiples (EV/Revenue, EV/EBITDA, EV/EBIT)
trsize_est_min/max, ev_est_min/max, rev_est_min/max, ebitda_est_min/max, ebit_est_min/maxEstimated ranges for each metric
evrevenue_est_min/max, evebitda_est_min/max, evebit_est_min/maxEstimated multiple ranges
aiconf, reasoningModel confidence and rationale behind the estimates
© 2026 Dealert · Home · API keys · Questions? [email protected]