The Alethinx API is the same AI deal-scoring engine that powers app.alethinx.ai — exposed as a clean REST endpoint. Submit a deal listing (URL or pasted text), receive a structured assessment: composite score, four-dimensional analysis, an explainable verdict, and the strengths and risks your team needs to make a go/no-go call.
Base URL · https://api.alethinx.aiCurrent version · v1Auth · Bearer tokenPayload · JSON
Every scored deal returns a four-dimensional analysis derived from our CLAW Architecture — the same patent-pending framework underwriters and search funds use inside the Alethinx web app.
Composite score — single 0–100 number summarizing the opportunity.
Dimension scores — independent 0–100 scores across Financial, Operational, Strategic, and Risk dimensions.
Verdict — PURSUE, INVESTIGATE, or PASS with a one-sentence rationale.
Highlighted strengths & risks — surfaced findings ready to drop into your underwriting memo.
Normalized financials — extracted TTM revenue, SDE, asking price, and industry classification when available.
Need an API key? Access is currently invite-based for strategic partners and pilot customers. Reach out to partnerships@alethinx.ai with a brief description of your use case and expected volume.
A successful response includes data.composite_score, data.dimension_scores, data.verdict, and data.highlighted_risks / data.highlighted_strengths — everything you need to populate an IC memo or trigger a pursuit workflow.
All requests must include a Bearer token in the Authorization header. Keys are issued per organization and are prefixed with ax_pen_live_ so they're easy to identify in logs and secret scanners.
Header
Authorization: Bearer ax_pen_live_a1b2c3d4e5f6...
Never expose your API key client-side. Treat it like a database password: keep it in server-side environment variables or a secret manager. Any key observed in browser network traffic, public repositories, or client bundles will be revoked without notice.
Access tiers
Every key is scoped to a tier that determines monthly and hourly quotas. The tier is returned in every response as the X-Alethinx-Tier header.
Tier
Monthly quota
Hourly quota
Intended for
free
100
10
Evaluation and integration testing
pro
5,000
100
Individual searchers and small funds
founder
25,000
500
Strategic channel partners and platforms
enterprise
Custom
Custom
High-volume integrations, white-label, SLA
Quotas are enforced per calendar month (UTC) and per rolling hour. See Rate limits for details on how to read and respect quota headers.
The Alethinx API exposes a single production base URL. We deliberately do not operate a separate sandbox environment — instead, your free-tier key issues real scoring requests against production at a sufficient volume to integrate and test end-to-end.
PRODhttps://api.alethinx.ai
All endpoints are versioned under /v1. We will never make breaking changes within a major version — see Versioning for our compatibility policy.
Every successful response includes rate-limit headers so you can introspect your remaining quota and plan accordingly:
Header
Description
X-RateLimit-Limit
Your hourly quota.
X-RateLimit-Remaining
Requests remaining in the current hour.
X-RateLimit-Reset
Unix timestamp (seconds) when the hourly window resets.
X-Alethinx-Tier
The tier of the key making the request (free, pro, founder, enterprise).
X-Request-ID
Unique ID for this request — include in support tickets.
When you exceed your hourly or monthly quota, the API returns 429 Too Many Requests with a Retry-After header indicating the number of seconds until your next allowable request.
Recommended backoff
For production integrations, implement exponential backoff with jitter on 429 and 5xx responses. A reasonable policy: retry up to 3 times with delays of 1s, 2s, 4s plus 0–500ms of random jitter, abandoning after the third failure and surfacing the underlying error.
The API uses standard HTTP status codes. The response body for any non-2xx status follows a consistent error envelope:
Error response
{
"request_id": "req_01HXYZ8K3Q4M7P2N1R6T9V0W3X",
"error": {
"code": "invalid_api_key",
"message": "The API key provided is malformed or has been revoked.",
"details": null
}
}
Status codes
Status
Meaning
200
Request succeeded.
400
The request was malformed — usually a missing required field or invalid JSON.
401
Authentication failed — missing, malformed, revoked, or expired API key.
403
Authenticated but not authorized for this resource or tier feature.
413
Payload exceeded the maximum size (50 KB for deal_text).
429
Rate limit or monthly quota exceeded — back off and retry.
500
An unexpected internal error occurred. Safe to retry.
502
An upstream model or extraction service timed out. Safe to retry.
Error codes
Code
Description
invalid_request
The request body is not valid JSON or has the wrong shape.
missing_required_field
Required field absent — typically deal_text or deal_url.
invalid_api_key
API key is malformed or does not exist.
key_revoked
The key was valid but has been revoked.
key_expired
The key has passed its expiration date.
rate_limit_exceeded
Hourly quota exhausted — see Retry-After.
monthly_quota_exceeded
Monthly quota exhausted — resets on the 1st of the next month (UTC).
payload_too_large
The deal_text field exceeded 50 KB.
upstream_timeout
A dependency timed out. Safe to retry with backoff.
internal_error
Something unexpected — include the request_id when contacting support.
Every successful response shares the same top-level shape: a request_id for tracing, a data object containing the endpoint-specific payload, and a meta object with timing and version information.
Submit a deal listing — either as pasted text or a public URL — and receive a structured assessment in under 8 seconds.
POSThttps://api.alethinx.ai/v1/deals/score
Request body
Send a JSON body. You must provide either deal_text or deal_url — providing both is allowed and the text takes precedence. All other fields are optional and, when provided, are used as hints to bias and validate the scoring.
Field
Type
Description
deal_textrequired*
string
The full text of the deal listing, CIM excerpt, or investment memo. Maximum 50 KB. Required if deal_url is not provided.
deal_urlrequired*
string
A public URL to an M&A listing or company page. Required if deal_text is not provided. Alethinx fetches and parses the page on your behalf.
ttm_revenueoptional
number
Trailing-twelve-month revenue in USD. Used to validate extracted figures.
sdeoptional
number
Seller's Discretionary Earnings in USD.
ebitdaoptional
number
EBITDA in USD. Used when SDE is not applicable (typically deals above $5M revenue).
gross_marginoptional
number
Gross margin as a decimal (e.g., 0.45 for 45%).
asking_priceoptional
number
Listed asking price in USD.
industryoptional
string
Free-text industry classification. Examples: "HVAC Services", "SaaS", "Distribution".
geooptional
string
Geographic region in ISO 3166-2 format. Examples: "US-TX", "US-CA".
Response fields
On success (200 OK), the data object contains:
Field
Type
Description
composite_score
integer
Overall opportunity score from 0 (avoid) to 100 (exceptional).
dimension_scores
object
Four independent 0–100 scores: financial, operational, strategic, risk.
verdict
enum
One of PURSUE, INVESTIGATE, or PASS.
summary
string
A two-to-three-sentence rationale for the verdict.
highlighted_strengths
string[]
Up to five surfaced strengths, ranked by materiality.
highlighted_risks
string[]
Up to five surfaced risks, ranked by materiality.
ttm_revenue
number | null
Extracted or echoed TTM revenue in USD.
sde
number | null
Extracted or echoed SDE in USD.
asking_price
number | null
Extracted or echoed asking price in USD.
industry
string | null
Normalized industry classification.
Verdict semantics
Verdict
When returned
PURSUE
Composite score ≥ 75 and no critical risk flags. Worth immediate pursuit.
INVESTIGATE
Composite score 50–74, or score ≥ 75 with one or more critical risk flags. Promising but warrants additional diligence before committing time.
PASS
Composite score below 50, or risk flags severe enough to disqualify the deal regardless of headline score.
Full example
Request
Request body
{
"deal_text": "Established commercial HVAC services business in DFW. 12 years operating history with consistent YoY growth. $1.85M TTM revenue, $520K SDE, asking $2.4M. Recurring B2B service contracts make up 60% of revenue but top 3 customers represent 47% of total billings. Owner-operator currently working 35hrs/week. No identified successor.",
"ttm_revenue": 1850000,
"sde": 520000,
"asking_price": 2400000,
"industry": "HVAC Services",
"geo": "US-TX"
}
Response
200 OK
{
"request_id": "req_01HXYZ8K3Q4M7P2N1R6T9V0W3X",
"data": {
"composite_score": 72,
"dimension_scores": {
"financial": 81,
"operational": 68,
"strategic": 74,
"risk": 64
},
"verdict": "INVESTIGATE",
"summary": "Strong cash conversion (28% SDE margin) and recurring revenue mix offset by meaningful customer concentration and key-person risk. Worth a deeper financial diligence pass before LOI.",
"highlighted_strengths": [
"12-year operating history with consistent YoY revenue growth",
"28% SDE margin is above industry median for residential/light-commercial HVAC",
"60% of revenue is recurring B2B service contracts (vs one-time installs)",
"Multiple at 1.3x revenue / 4.6x SDE is reasonable for the geography and category"
],
"highlighted_risks": [
"Customer concentration: top 3 customers represent 47% of billings",
"Owner-operator with no identified successor — transition risk on close",
"35hr/week owner workload likely understates true operating hours; verify in QoE"
],
"ttm_revenue": 1850000,
"sde": 520000,
"asking_price": 2400000,
"industry": "HVAC Services"
},
"meta": {
"latency_ms": 5840,
"api_version": "v1",
"timestamp": "2026-05-26T07:42:18.342Z"
}
}
Scoring is deterministic per input. The same deal_text and optional hints will produce the same composite, dimensions, and verdict on every call within a major version. We surface model improvements through version bumps, not silent changes — your historical scores remain comparable.
Real-time API status and historical uptime are published at status.alethinx.ai. Enterprise customers receive a contractual SLA with uptime commitments, incident credits, and dedicated escalation paths — contact partnerships@alethinx.ai to discuss.
When opening a support ticket, please include the X-Request-ID header from the response (or the request_id in the response body) — it lets us trace your request end-to-end through our infrastructure within seconds.