REST reference
Generated from openapi/acquestor.yaml (version 0.3.0) on 2026-10-11. Base URL https://api.acquestor.com/v1; send Authorization: Bearer <API key>. Download the public definition.
Only operations you can call are documented in full. Operations that acquestor.com alone performs (approvals, confirmations, attestations, grants, keys) are left out. Planned operations are listed at the end of each section and return 404 until they ship.
Explore#
Rates and market data for the start of a search.
Prime, SOFR, Treasury yields and SBA 7(a) rate caps as of a date#
GET /v1/explore/ratesPrime from the Federal Reserve Board's H.15, Treasury yields from the Treasury's daily par yield curve, SOFR from the New York Fed. SBA caps are base plus the spread for each loan-size tier in the rate-cap rule set in force on as_of.
Price: Lookup: 1,000 free a month, then 0.5 credits · MCP tool: get_rates · Key scope: tools:run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
as_of |
query | No | date | Date (YYYY-MM-DD) whose rules and rates apply; defaults to today. |
Responses: 200 Rates · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Planned:
| Operation | Does | Release |
|---|---|---|
GET /explore/market-stats |
Acquisition-loan statistics by NAICS and state, computed from the SBA 7(a) and 504 loan file | P2 |
GET /explore/industries/{naics} |
Industry profile for a NAICS code | P2 |
Value#
What an SBA-financed buyer can pay, and what a manager costs.
Market wage for a replacement manager, from BLS OEWS#
GET /v1/value/market-salaryPrice: Lookup: 1,000 free a month, then 0.5 credits · MCP tool: get_market_salary · Key scope: tools:run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
soc |
query | No | string | SOC code; defaults to 11-1021, general and operations managers. |
area |
query | No | string | OEWS area, 2-letter state or US; needed without state. |
naics |
query | No | string | NAICS code; area wages span all industries. |
as_of |
query | No | date | Not used; wages come from the latest OEWS release. |
county |
query | No | string | County name or 5-digit FIPS, with state. |
state |
query | No | two-letter state | 2-letter state, alone or with county. |
Responses: 200 Wage figures · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Highest price an SBA 7(a) buyer can finance#
POST /v1/value/sba-ceilingCash flow for debt service = SDE - manager salary - capex reserve. Maximum loan = that cash flow / coverage,
capitalised at the rate over the term with monthly payments. Maximum price = maximum loan / (1 - equity injection share).
Coverage, the rate cap, term and injection default to the rule sets in force on as_of and are listed as sourced inputs.
The cap spread depends on loan size (over $350,000; $250,001 to $350,000; $50,001 to $250,000), so the computation
iterates until the loan and its rate tier agree.
Flags QoE at a price of $3M or more and the internal-valuation path at $350,000 or less (SOP 50 10 8.1 as updated September 25, 2026).
Price: 5 credits · MCP tool: sba_price_ceiling · Key scope: tools:run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Acquestor-Max-Credits |
header | No | number | The most this call may charge. If its price is higher, it returns 402 over_max_credits and runs nothing. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
sde |
Yes | number | Annual SDE in whole US dollars. |
manager_salary |
No | number | Annual manager salary in whole US dollars; omit for the BLS median. |
area |
No | string | OEWS area for the BLS default salary. |
capex_reserve |
Yes | number | Annual capex reserve in whole US dollars; may be 0. |
coverage |
No | number | Debt coverage; defaults to the rule for acquisition_type. |
interest_rate |
No | number | SBA rate as a decimal; defaults to the 7(a) cap. |
term_months |
No | integer | Loan term in months; defaults to 120. |
equity_injection_share |
No | number | Buyer equity share of project cost; defaults to 0.10. |
asking_price |
No | number | Asking price in whole US dollars. |
working_capital |
No | number | Working capital in whole US dollars; defaults to 0. |
closing_costs |
No | number | Closing costs in whole US dollars; defaults to 0. |
naics |
No | string | 6-digit NAICS code for the suggested lender search. |
as_of |
No | date | Date (YYYY-MM-DD) for SBA rules; defaults to today. |
deal_id |
No | string | Granted deal id; not saved over MCP. |
county |
No | string | County for the default manager salary, with state. |
state |
No | two-letter state | State for the BLS default salary. |
acquisition_type |
No | initial_acquisition, business_expansion, owner_buyout |
Sets the coverage rule; defaults to initial_acquisition. |
Responses: 200 Ceiling · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Planned:
| Operation | Does | Release |
|---|---|---|
POST /value/addback-review |
Classify proposed add-backs as accepted, conditional or rejected, with the rule for each | P1 |
POST /value/readiness |
Seller readiness checks with what to fix first | P1 |
Market#
Listings, search and inquiries.
Planned:
| Operation | Does | Release |
|---|---|---|
POST /market/buyer-screen |
Screen a buyer against a listing | P1 |
POST /drafts |
Draft a teaser, sale memo or LOI for the user's own use | P1 |
GET /brokers |
Member broker directory by state and industry | P1 |
Offer#
After-tax proceeds and offer comparison.
Seller's after-tax proceeds by structure and state#
POST /v1/offer/after-taxFederal tax (capital gain, recapture, NIIT, corporate tax where it applies) and state tax for modelled states. Unmodelled states return a gap; entity-level state taxes such as Texas franchise tax are flagged, not computed.
Price: 5 credits · MCP tool: after_tax_proceeds · Key scope: tools:run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Acquestor-Max-Credits |
header | No | number | The most this call may charge. If its price is higher, it returns 402 over_max_credits and runs nothing. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
price |
Yes | number | Sale price in whole US dollars, equal to the allocation. |
entity_type |
Yes | sole_proprietorship, single_member_llc, partnership_llc, s_corp, c_corp |
The selling business's tax entity. |
allocation |
Yes | object | Form 8594 classes in plain terms. |
stock_or_interest_basis |
No | number | Owner's stock or LLC interest basis in whole US dollars; needed for an S corp, C corp or partnership LLC. |
corporate_asset_basis |
No | number | C corp asset basis in whole US dollars; defaults to the allocation. |
built_in_gain |
No | number | S corp built-in gain in whole US dollars. |
seller_state |
Yes | two-letter state | Seller's state as a 2-letter code. |
seller_city |
No | string | Used where a city tax applies (New York City). |
filing_status |
No | single, married_joint, married_separate, head_of_household |
Federal filing status; defaults to single. |
material_participation |
No | boolean | Whether the seller materially participated; defaults to true. |
qsbs |
No | object | Qualified small business stock (section 1202), for a C corp stock sale. |
structures |
No | array of asset, stock, deemed_asset_338h10, deemed_asset_336e, f_reorganization |
Structures to compute; defaults to all the entity allows. |
tax_year |
Yes | integer | Tax year; only 2026 is modelled. |
deal_id |
No | string | Granted deal id; not saved over MCP. |
Responses: 200 Proceeds by structure · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Rank offers by risk-adjusted present value#
POST /v1/offer/comparePrice: 5 credits · MCP tool: compare_offers · Key scope: tools:run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Acquestor-Max-Credits |
header | No | number | The most this call may charge. If its price is higher, it returns 402 over_max_credits and runs nothing. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
offers |
Yes | array of object | Offers to rank, 2 to 10. |
note_discount_rate |
No | number | Note discount rate as a decimal; you set it. |
earnout_discount_rate |
No | number | Earnout discount rate as a decimal; you set it. |
earnout_expected_payout_share |
No | number | Expected earnout payout share as a decimal; you set it. |
deal_id |
No | string | Granted deal id; not saved over MCP. |
Responses: 200 Ranked offers · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Diligence#
Checks on a deal’s records.
Reconcile bank deposits to P&L revenue and tax-return receipts, by period#
POST /v1/diligence/proof-of-cashReads extracted figures from the deal's documents. Every extracted figure cites its document and page. Transfers, loan proceeds and owner contributions are excluded only as the user confirms them.
Price: 50 credits · MCP tool: proof_of_cash · Key scope: deals:read
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Acquestor-Max-Credits |
header | No | number | The most this call may charge. If its price is higher, it returns 402 over_max_credits and runs nothing. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
deal_id |
Yes | string | The granted deal to reconcile. |
document_ids |
No | array of string | Deal documents to use; defaults to all. |
periods |
No | array of string | Years (YYYY); defaults to all the documents cover. |
confirmed_exclusions |
No | array of object | Deposits you confirm are not revenue. |
variance_threshold |
Yes | number | Variance as a decimal that flags a year; you set it. |
Responses: 200 Reconciliation · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Planned:
| Operation | Does | Release |
|---|---|---|
POST /diligence/red-flags |
Rule-based red flags | P1 |
POST /diligence/screen |
Screen people and entities against OFAC, SAM.gov exclusions and the OIG exclusion list | P2 |
Finance#
Debt coverage, the capital stack and SBA lenders.
Debt coverage under SDE declines and rate shocks#
POST /v1/finance/stress-testReturns base coverage, coverage per scenario, the SDE decline at which coverage reaches 1.00x, and whether the deal still covers debt service after a 30% SDE decline.
Price: 5 credits · MCP tool: stress_test_deal · Key scope: tools:run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Acquestor-Max-Credits |
header | No | number | The most this call may charge. If its price is higher, it returns 402 over_max_credits and runs nothing. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
sde |
Yes | number | Annual SDE in whole US dollars. |
manager_salary |
Yes | number | Annual manager salary in whole US dollars. |
capex_reserve |
Yes | number | Annual capex reserve in whole US dollars. |
loan_amount |
Yes | number | SBA loan amount in whole US dollars. |
interest_rate |
Yes | number | SBA loan rate as a decimal. |
term_months |
Yes | integer | SBA loan term in months. |
seller_note |
No | object | |
sde_declines |
No | array of number | SDE declines as decimals; defaults to 0.1, 0.2, 0.3. |
rate_shocks_bps |
No | array of integer | Rate rises in basis points; defaults to 100, 200, 300. |
as_of |
No | date | Date (YYYY-MM-DD) for SBA rules; defaults to today. |
deal_id |
No | string | Granted deal id; not saved over MCP. |
Responses: 200 Stress test · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Sources and uses, guaranty fee, debt service and coverage for an SBA acquisition#
POST /v1/finance/capital-stackPrice: 5 credits · MCP tool: build_capital_stack · Key scope: tools:run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Acquestor-Max-Credits |
header | No | number | The most this call may charge. If its price is higher, it returns 402 over_max_credits and runs nothing. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
price |
Yes | number | Purchase price in whole US dollars. |
working_capital |
No | number | Working capital in whole US dollars; defaults to 0. |
closing_costs |
No | number | Closing costs in whole US dollars; defaults to 0. |
buyer_cash |
Yes | number | Buyer cash in whole US dollars. |
seller_note |
No | object | |
interest_rate |
No | number | SBA rate as a decimal; defaults to the 7(a) cap. |
term_months |
No | integer | SBA loan term in months; defaults to 120. |
finance_guaranty_fee |
No | boolean | Add the guaranty fee to the loan; defaults to true. |
sde |
Yes | number | Annual SDE in whole US dollars. |
manager_salary |
Yes | number | Annual manager salary in whole US dollars. |
capex_reserve |
Yes | number | Annual capex reserve in whole US dollars. |
as_of |
No | date | Date (YYYY-MM-DD) for SBA rules; defaults to today. |
deal_id |
No | string | Granted deal id; not saved over MCP. |
Responses: 200 Capital stack · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Lenders ranked by SBA acquisition loans in a NAICS code and state#
GET /v1/finance/lendersComputed from the SBA 7(a) and 504 loan file, filtered to loans the file records as changes of ownership, enriched from FDIC BankFind. A list from public data, not a referral and not a prediction of approval.
Price: Lookup: 1,000 free a month, then 0.5 credits · MCP tool: find_sba_lenders · Key scope: tools:run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
naics |
query | No | string | NAICS code, 2 to 6 digits. |
state |
query | No | two-letter state | US state as a 2-letter code. |
fiscal_years |
query | No | integer | Fiscal years to count back; defaults to 5. |
min_loans |
query | No | integer | Fewest loans to list a lender; defaults to 3. |
limit |
query | No | integer | Max results; defaults to 25. |
as_of |
query | No | date | Count back from this date (YYYY-MM-DD), not the file's. |
Responses: 200 Lenders · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Planned:
| Operation | Does | Release |
|---|---|---|
POST /finance/sba-eligibility |
SOP 50 10 8.1 checks for a change of ownership | P1 |
Close#
Closing and transition checklists.
Planned:
| Operation | Does | Release |
|---|---|---|
GET /checklists |
Checklists by stage, state, industry and structure, each item cited | P1 |
Listings#
Broker-owned listings, intake and inquiries.
Search member listings#
GET /v1/listingsReturns teaser fields only; detail follows each listing's disclosure level. Every listing came from the broker who represents it. Signed-in members only, for their own use; developer keys receive no other org's listings, and listing data is never sold.
Price: Lookup: 1,000 free a month, then 0.5 credits · MCP tool: search_listings · Key scope: listings:read
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
q |
query | No | string | Words to find in listing text. |
naics |
query | No | string | NAICS code, 2 to 6 digits. |
state |
query | No | two-letter state | US state as a 2-letter code. |
price_min |
query | No | number | Lowest asking price in whole US dollars. |
price_max |
query | No | number | Highest asking price in whole US dollars. |
sde_min |
query | No | number | Lowest SDE in whole US dollars. |
sba_financeable |
query | No | boolean | Only listings within their BLS-salary SBA ceiling. |
cursor |
query | No | string | next_cursor from the previous page. |
limit |
query | No | integer | Max results; defaults to 25. |
Responses: 200 Listings · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Create a listing as a draft (brokers)#
POST /v1/listingsA listing created here starts as draft and goes live only on approval in the acquestor.com interface.
Price: Free · Key scope: listings:write
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
ListingKey |
No | string | The broker's own identifier. |
ListingId |
No | string | |
StandardStatus |
No | Active, Pending, Closed, Withdrawn, Expired |
|
ListingContractDate |
No | date | |
ExpirationDate |
No | date | |
ListingAgreement |
No | string | |
BusinessName |
No | string | Shown only when disclosure allows. |
BusinessType |
No | array of string | |
X_NAICSCode |
Yes | string | |
YearEstablished |
No | integer | |
NumberOfFullTimeEmployees |
No | integer | |
NumberOfPartTimeEmployees |
No | integer | |
HoursDaysOfOperation |
No | array of string | |
SpecialLicenses |
No | array of string | |
LaborInformation |
No | array of string | |
X_HomeBasedYN |
No | boolean | |
X_AbsenteeOwnerYN |
No | boolean | |
City |
No | string | |
CountyOrParish |
No | string | |
StateOrProvince |
Yes | two-letter state | |
PostalCode |
No | string | |
InternetAddressDisplayYN |
No | boolean | |
X_Relocatable |
No | boolean | |
ListPrice |
Yes | number | |
ListingTerms |
No | array of string | |
X_DownPayment |
No | number | |
X_SellerFinancingAvailable |
No | boolean | |
X_SellerFinancingAmount |
No | number | |
X_SBAPrequalified |
No | boolean | |
GrossIncome |
No | number | Annual revenue for the period in X_FinancialsPeriodEnd. |
X_SellersDiscretionaryEarnings |
No | number | |
X_EBITDA |
No | number | |
X_FinancialsPeriodEnd |
No | date | |
X_FinancialsPeriodType |
No | fiscal_year, trailing_12_months |
|
FinancialDataSource |
No | array of string | |
X_InventoryIncluded |
No | boolean | |
X_InventoryValue |
No | number | |
X_FFEValue |
No | number | |
X_RealEstateIncluded |
No | boolean | |
X_RealEstateValue |
No | number | |
Inclusions |
No | string | |
Exclusions |
No | string | |
LeaseAmount |
No | number | |
LeaseAmountFrequency |
No | Weekly, Monthly, Annually |
|
LeaseExpiration |
No | date | |
LeaseRenewalOptionYN |
No | boolean | |
LeaseAssignableYN |
No | boolean | |
X_Franchise |
No | object | |
PublicRemarks |
No | string | |
X_Headline |
No | string | |
X_ReasonForSale |
No | string | |
DocumentsAvailable |
No | array of string | |
X_DisclosureLevel |
Yes | teaser, financials, full |
|
X_NDAUrl |
No | string | |
ListAgentFullName |
No | string | |
ListAgentEmail |
Yes | string | |
ListAgentStateLicense |
No | string | |
ListOfficeName |
No | string |
Responses: 201 Draft created · errors as problem details.
One listing with its SBA ceiling card#
GET /v1/listings/{listing_id}Price: Lookup: 1,000 free a month, then 0.5 credits · MCP tool: get_listing · Key scope: listings:read
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
listing_id |
path | Yes | string | Listing id from search_listings. |
Responses: 200 Listing · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Edit a listing (brokers in the listing's org)#
PATCH /v1/listings/{listing_id}Edits to an active listing that change price, financials or disclosure return it to pending approval.
Price: Free · Key scope: listings:write
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
listing_id |
path | Yes | string | Listing id from search_listings. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/merge-patch+json):
| Field | Required | Type | Description |
|---|---|---|---|
ListingKey |
No | string | The broker's own identifier. |
ListingId |
No | string | |
StandardStatus |
No | Active, Pending, Closed, Withdrawn, Expired |
|
ListingContractDate |
No | date | |
ExpirationDate |
No | date | |
ListingAgreement |
No | string | |
BusinessName |
No | string | Shown only when disclosure allows. |
BusinessType |
No | array of string | |
X_NAICSCode |
Yes | string | |
YearEstablished |
No | integer | |
NumberOfFullTimeEmployees |
No | integer | |
NumberOfPartTimeEmployees |
No | integer | |
HoursDaysOfOperation |
No | array of string | |
SpecialLicenses |
No | array of string | |
LaborInformation |
No | array of string | |
X_HomeBasedYN |
No | boolean | |
X_AbsenteeOwnerYN |
No | boolean | |
City |
No | string | |
CountyOrParish |
No | string | |
StateOrProvince |
Yes | two-letter state | |
PostalCode |
No | string | |
InternetAddressDisplayYN |
No | boolean | |
X_Relocatable |
No | boolean | |
ListPrice |
Yes | number | |
ListingTerms |
No | array of string | |
X_DownPayment |
No | number | |
X_SellerFinancingAvailable |
No | boolean | |
X_SellerFinancingAmount |
No | number | |
X_SBAPrequalified |
No | boolean | |
GrossIncome |
No | number | Annual revenue for the period in X_FinancialsPeriodEnd. |
X_SellersDiscretionaryEarnings |
No | number | |
X_EBITDA |
No | number | |
X_FinancialsPeriodEnd |
No | date | |
X_FinancialsPeriodType |
No | fiscal_year, trailing_12_months |
|
FinancialDataSource |
No | array of string | |
X_InventoryIncluded |
No | boolean | |
X_InventoryValue |
No | number | |
X_FFEValue |
No | number | |
X_RealEstateIncluded |
No | boolean | |
X_RealEstateValue |
No | number | |
Inclusions |
No | string | |
Exclusions |
No | string | |
LeaseAmount |
No | number | |
LeaseAmountFrequency |
No | Weekly, Monthly, Annually |
|
LeaseExpiration |
No | date | |
LeaseRenewalOptionYN |
No | boolean | |
LeaseAssignableYN |
No | boolean | |
X_Franchise |
No | object | |
PublicRemarks |
No | string | |
X_Headline |
No | string | |
X_ReasonForSale |
No | string | |
DocumentsAvailable |
No | array of string | |
X_DisclosureLevel |
Yes | teaser, financials, full |
|
X_NDAUrl |
No | string | |
ListAgentFullName |
No | string | |
ListAgentEmail |
Yes | string | |
ListAgentStateLicense |
No | string | |
ListOfficeName |
No | string |
Responses: 200 Updated · errors as problem details.
Turn a CSV or the broker's own file into draft listings#
POST /v1/listing-importsfile drafts from the broker's own teaser, CIM or financial summary and cites a page for every figure; free to brokers (fair use: 30 file drafts a month per broker, more on request). csv takes rows in the template's columns. MCP clients send the file as base64 in the JSON body (up to 10 MB). A file that looks like a printout of a BizBuySell, BizQuest or LoopNet page is flagged, and the broker confirms the content is their own before approval. Drafts never go live without approval in the interface. Planned: url (P1), from a page on a domain verified for the broker's org; reaxml (P2).
Price: Free · MCP tool: create_listing_draft · Key scope: listings:write
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (multipart/form-data):
| Field | Required | Type | Description |
|---|---|---|---|
kind |
Yes | csv, file, reaxml |
csv for rows in the template columns; file for the broker's own teaser, CIM or financial summary; reaxml is not live yet. |
file |
Yes | string | The CSV or the broker's own file, up to 10 MB. |
Responses: 202 Import job accepted · errors as problem details.
Import job status and the drafts it produced#
GET /v1/listing-imports/{import_id}Price: Free · Key scope: listings:write
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
import_id |
path | Yes | string |
Responses: 200 Job · errors as problem details.
Withdraw a listing#
POST /v1/listings/{listing_id}/withdrawPrice: Free · Key scope: listings:write
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
listing_id |
path | Yes | string | Listing id from search_listings. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Responses: 200 Withdrawn · errors as problem details.
Send an inquiry to the listing broker#
POST /v1/listings/{listing_id}/inquiriesDelivered only to the listing broker's org, with a snapshot of the buyer's profile if the buyer chooses to share it (off by default). The platform never contacts the seller. Inquiries created with an API key or by an MCP client start as pending_confirmation and are sent only when the buyer confirms on acquestor.com. Limited per buyer per day.
Price: Free · MCP tool: contact_listing_broker · Key scope: inquiries:write
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
listing_id |
path | Yes | string | Listing id from search_listings. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
message |
Yes | string | Message to the broker, up to 4,000 characters. |
share_profile |
No | boolean | Attach the buyer's profile and email; defaults to false. |
include_eligibility |
No | boolean | Add the buyer's SBA eligibility answer; defaults to false. |
Responses: 201 Sent to the listing broker (interface) or awaiting the buyer's confirmation (API key, MCP) · errors as problem details.
The broker's inquiry inbox, or the buyer's sent inquiries#
GET /v1/inquiriesPrice: Free · Key scope: inquiries:read
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
cursor |
query | No | string | next_cursor from the previous page. |
limit |
query | No | integer | Max results; defaults to 25. |
Responses: 200 Inquiries · errors as problem details.
The broker org's own listings in every status#
GET /v1/broker/listingsPrice: Free
Responses: 200 Listings · errors as problem details.
The CSV template with the canonical column names#
GET /v1/listing-imports/template.csvPrice: Free
Responses: 200 CSV · errors as problem details.
Planned:
| Operation | Does | Release |
|---|---|---|
PUT /listing-keys/{ListingKey} |
Idempotent push from broker software, keyed by the broker's own ListingKey | P2 |
POST /feeds |
Register a feed the broker hosts (JSON, CSV or REAXML), polled every 6 hours | P2 |
GET /feeds/{feed_id} |
Feed status and last poll result | P2 |
GET /saved-searches |
The caller's saved listing searches | P1 |
POST /saved-searches |
Save a listing search, with optional email alerts (the buyer's own search; no matching by the platform) | P1 |
DELETE /saved-searches/{saved_search_id} |
Delete a saved search | P1 |
Deals#
One party’s private workspace for one transaction.
The caller's deals#
GET /v1/dealsPrice: Lookup: 1,000 free a month, then 0.5 credits · MCP tool: list_deals · Key scope: deals:read
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
cursor |
query | No | string | next_cursor from the previous page. |
limit |
query | No | integer | Max results; defaults to 25. |
Responses: 200 Deals · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
One deal with its saved runs and extracted summary figures#
GET /v1/deals/{deal_id}Price: Lookup: 1,000 free a month, then 0.5 credits · MCP tool: get_deal · Key scope: deals:read
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
deal_id |
path | Yes | string | Deal id from list_deals. |
Responses: 200 Deal · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Rename a deal, move its stage, or change outside AI access#
PATCH /v1/deals/{deal_id}Changing outside_ai_access requires a signed-in session (interface); API keys and OAuth clients cannot grant themselves deal access.
Price: Free · Key scope: deals:write
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
deal_id |
path | Yes | string | Deal id from list_deals. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/merge-patch+json):
| Field | Required | Type | Description |
|---|---|---|---|
name |
No | string | |
perspective |
No | buyer, seller, broker |
|
stage |
No | one of 8 values | |
business_id |
No | string | |
listing_id |
No | string | |
outside_ai_access |
No | boolean | Interface sessions only. Default false. |
Responses: 200 Updated · errors as problem details.
Upload a document to a deal#
POST /v1/deals/{deal_id}/documentsStored under the deal's own key. Bank statements, P&Ls and tax returns are read for figures at 3 credits a page, quoted from the page count and checked against the balance before reading; a failed read is not charged. Without the model connected, the document is stored and the user types the figures. Files that look like a marketplace printout are refused.
Price: 3 credits a page
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Acquestor-Max-Credits |
header | No | number | The most this call may charge. If its price is higher, it returns 402 over_max_credits and runs nothing. |
deal_id |
path | Yes | string | Deal id from list_deals. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (multipart/form-data):
| Field | Required | Type | Description |
|---|---|---|---|
type |
Yes | one of 11 values | |
file |
Yes | string |
Responses: 201 Stored, and read when the type supports it · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Document status and extracted figures#
GET /v1/deals/{deal_id}/documents/{document_id}Price: Lookup: 1,000 free a month, then 0.5 credits
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
deal_id |
path | Yes | string | Deal id from list_deals. |
document_id |
path | Yes | string |
Responses: 200 Document · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Save a computed result to a deal#
POST /v1/deals/{deal_id}/runsRuns a computed tool from its inputs against the granted deal and saves the result there. Charged at that tool's price; saving is free. Computed tools called through the MCP server read from a deal but don't save, so this is how an AI client keeps a result.
Price: Free · MCP tool: save_to_deal · Key scope: deals:write
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
deal_id |
path | Yes | string | Deal id from list_deals. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
operation_id |
Yes | string | Computed operation to run. |
request |
Yes | object | Its inputs, with objects such as seller_note nested. |
label |
No | string | Name for the saved run. |
Responses: 201 Saved · errors as problem details.
Type figures onto a deal (bank deposits, P&L revenue, tax-return receipts)#
POST /v1/deals/{deal_id}/figuresEach figure is user-entered and dated today; proof of cash reads them beside figures read from documents.
Price: Free
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
deal_id |
path | Yes | string | Deal id from list_deals. |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
figures |
Yes | array of DealFigureInput |
Responses: 201 Saved · errors as problem details.
Planned:
| Operation | Does | Release |
|---|---|---|
GET /deals/{deal_id}/comments |
Comments in a deal, from its owner and invited same-side collaborators | P1 |
POST /deals/{deal_id}/comments |
Comment in a deal (owners and collaborators, including advisors) | P1 |
Businesses#
The companies behind deals.
Create a business record#
POST /v1/businessesPrice: Free · Key scope: deals:write
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
name |
No | string | |
naics |
No | string | |
state |
No | two-letter state | |
county |
No | string | |
entity_type |
No | sole_proprietorship, single_member_llc, partnership_llc, s_corp, c_corp |
|
year_established |
No | integer | |
employees |
No | integer | |
financials |
No | array of FinancialPeriod | |
real_estate_included |
No | boolean | |
franchise_brand |
No | string, nullable |
Responses: 201 Created · errors as problem details.
One business record, private to the user or org that created it#
GET /v1/businesses/{business_id}Business records back deals and a broker's own listings. They are never exposed through a listing; listings carry their own disclosed fields.
Price: Lookup: 1,000 free a month, then 0.5 credits · Key scope: deals:read
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
business_id |
path | Yes | string |
Responses: 200 Business · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Edit a business record#
PATCH /v1/businesses/{business_id}Price: Free · Key scope: deals:write
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
business_id |
path | Yes | string | |
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/merge-patch+json):
| Field | Required | Type | Description |
|---|---|---|---|
name |
No | string | |
naics |
No | string | |
state |
No | two-letter state | |
county |
No | string | |
entity_type |
No | sole_proprietorship, single_member_llc, partnership_llc, s_corp, c_corp |
|
year_established |
No | integer | |
employees |
No | integer | |
financials |
No | array of FinancialPeriod | |
real_estate_included |
No | boolean | |
franchise_brand |
No | string, nullable |
Responses: 200 Updated · errors as problem details.
Comps#
Broker-contributed closed deals, give-to-get.
Contribute a closed deal (brokers); it waits for the broker's attestation in the interface#
POST /v1/comps/contributionsPrice: Free · MCP tool: contribute_closed_deal · Key scope: comps:write
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Idempotency-Key |
header | No | string | 1 to 255 characters. Recommended on every write and on priced calls: a retry with the same key and body replays the first result and isn't charged again. |
Body (application/json):
| Field | Required | Type | Description |
|---|---|---|---|
close_month |
Yes | string | Month the deal closed, YYYY-MM. |
naics |
Yes | string | NAICS code, 4 to 6 digits. |
description |
No | string | Sanitised at intake; no names or addresses. |
state |
Yes | two-letter state | The business's state as a 2-letter code. |
close_price |
Yes | number | Price at close in whole US dollars. |
asking_price |
Yes | number | Asking price in whole US dollars. |
cash_at_close |
No | number | Cash at close in whole US dollars. |
seller_note |
No | object | |
earnout_max |
No | number | Most the earnout could pay in whole US dollars. |
sba_financed |
Yes | boolean | Whether an SBA loan financed the deal. |
other_debt |
No | number | Other debt in whole US dollars. |
revenue |
No | number | Annual revenue in whole US dollars. |
sde |
Yes | number | Annual SDE in whole US dollars. |
ebitda |
No | number | Annual EBITDA in whole US dollars; may be negative. |
inventory_included |
No | boolean | Whether inventory was in the price. |
inventory_value |
No | number | Inventory amount in whole US dollars. |
ffe_value |
No | number | Furniture, fixtures and equipment in whole US dollars. |
real_estate_included |
No | boolean | Whether real estate was in the price. |
real_estate_value |
No | number | Real estate amount in whole US dollars. |
employees |
No | integer | Number of employees. |
days_on_market |
No | integer | Days listed before the sale. |
structure |
Yes | asset, stock |
Asset or stock sale. |
franchise |
No | boolean | Whether the business is a franchise. |
data_basis |
Yes | tax_return_verified, broker_recast, seller_reported |
Where the financial figures come from. |
Responses: 201 Saved as pending attestation · errors as problem details.
Planned:
| Operation | Does | Release |
|---|---|---|
GET /comps/search |
Record-level comps for brokers who qualify by contributing | P2 |
GET /comps/summary |
Aggregate comps (median, interquartile range, count) for anyone, once the pool is open | P2 |
Sources#
The source registry behind every Figure.
The source registry#
GET /v1/sourcesPrice: Lookup: 1,000 free a month, then 0.5 credits
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
licence_status |
query | No | cleared, cite_only, link_only |
|
cursor |
query | No | string | next_cursor from the previous page. |
limit |
query | No | integer | Max results; defaults to 25. |
Responses: 200 Sources · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
One source, its access route, licence status, terms and the date of its most recent data#
GET /v1/sources/{source_id}Price: Lookup: 1,000 free a month, then 0.5 credits · MCP tool: get_source
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
source_id |
path | Yes | string | Registry id, such as bls-oews. |
Responses: 200 Source · 402 Payment required. Nothing ran and nothing was charged. code is insufficient_credits (balance below the price), over_max_credits (price above Acquestor-Max-Credits) or over_limit (a grant's, key's or org member's monthly limit reached). The problem carries price, balance and, on acquestor.com, a link to buy credits. · errors as problem details.
Account#
Your profile, usage and credits.
The caller's profile, roles, org and plan#
GET /v1/mePrice: Free
Responses: 200 Profile · errors as problem details.
Usage this month by price class and by source route#
GET /v1/usagePrice: Free
Responses: 200 Usage · errors as problem details.
The published price book#
GET /v1/pricingCredits per dollar, the price of every action, monthly allowances and plans, with the date the prices took effect. Public; no sign-in. Price changes are published 30 days before they apply.
Price: Free
Responses: 200 Price book · errors as problem details.
Credit balance by bucket, with expiry dates#
GET /v1/creditsBuckets are spent in this order: the monthly allowance, then plan credits (oldest first), then top-ups. For an org member, org shows the shared balance and the member's monthly limit.
Price: Free
Responses: 200 Balance · errors as problem details.
Every grant, purchase, charge, refund and expiry, newest first#
GET /v1/credits/ledgerPrice: Free
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
from |
query | No | date | |
cursor |
query | No | string | next_cursor from the previous page. |
limit |
query | No | integer | Max results; defaults to 25. |
Responses: 200 Ledger entries · errors as problem details.
The published version of a terms document#
GET /v1/terms/{kind}Price: Free
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
kind |
path | Yes | string |
Responses: 200 Terms · errors as problem details.
Planned:
| Operation | Does | Release |
|---|---|---|
GET /webhooks |
Registered webhook endpoints | P2 |
POST /webhooks |
Register a webhook endpoint; deliveries are signed with HMAC-SHA256 | P2 |
DELETE /webhooks/{webhook_id} |
Remove a webhook endpoint | P2 |