Developers

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#

http
GET /v1/explore/rates

Prime 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#

http
GET /v1/value/market-salary

Price: 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#

http
POST /v1/value/sba-ceiling

Cash 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#

http
POST /v1/offer/after-tax

Federal 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#

http
POST /v1/offer/compare

Price: 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#

http
POST /v1/diligence/proof-of-cash

Reads 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#

http
POST /v1/finance/stress-test

Returns 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#

http
POST /v1/finance/capital-stack

Price: 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#

http
GET /v1/finance/lenders

Computed 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#

http
GET /v1/listings

Returns 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)#

http
POST /v1/listings

A 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#

http
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)#

http
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#

http
POST /v1/listing-imports

file 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#

http
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#

http
POST /v1/listings/{listing_id}/withdraw

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.

Responses: 200 Withdrawn · errors as problem details.

Send an inquiry to the listing broker#

http
POST /v1/listings/{listing_id}/inquiries

Delivered 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#

http
GET /v1/inquiries

Price: 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#

http
GET /v1/broker/listings

Price: Free

Responses: 200 Listings · errors as problem details.

The CSV template with the canonical column names#

http
GET /v1/listing-imports/template.csv

Price: 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#

http
GET /v1/deals

Price: 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#

http
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#

http
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#

http
POST /v1/deals/{deal_id}/documents

Stored 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#

http
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#

http
POST /v1/deals/{deal_id}/runs

Runs 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)#

http
POST /v1/deals/{deal_id}/figures

Each 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#

http
POST /v1/businesses

Price: 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#

http
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#

http
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#

http
POST /v1/comps/contributions

Price: 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#

http
GET /v1/sources

Price: 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#

http
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#

http
GET /v1/me

Price: Free

Responses: 200 Profile · errors as problem details.

Usage this month by price class and by source route#

http
GET /v1/usage

Price: Free

Responses: 200 Usage · errors as problem details.

The published price book#

http
GET /v1/pricing

Credits 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#

http
GET /v1/credits

Buckets 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#

http
GET /v1/credits/ledger

Price: 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#

http
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