PrivSource Menu

REST API

Deals API Reference

Complete reference for buyer-perspective deal discovery. API IDs are resource-prefixed with dl_.

Overview

Search live lower middle market M&A deal listings from the buyer perspective. Filter by industry, location, and financials, paginate results, and pull full deal detail including seller contact info.

Who can access

Available to all buyers with a paid subscription.

GET

List deals

/v1/buyer/deals

Returns a paginated list of live deals from the buyer perspective. Supports natural language filtering by industry and location, plus financial filters and sorting.

Query Parameters

Parameter Type Description
industry string Natural language industry filter. Example: "healthcare" or "SaaS".
location string Natural language location filter. Example: "Northeast" or "Texas".
revenue_min integer Minimum annual revenue in dollars.
revenue_max integer Maximum annual revenue in dollars.
ebitda_min integer Minimum EBITDA in dollars.
ebitda_max integer Maximum EBITDA in dollars.
margin_percent_min integer Minimum margin percentage from 0 to 100.
margin_percent_max integer Maximum margin percentage from 0 to 100.
deal_type enum Deal type filter. Defaults to both.
sort enum Sort order. Default: date_added_desc.
page integer Page number.
per_page integer Results per page. Maximum 100.

Code Sample

curl "https://api.privsource.com/v1/buyer/deals?industry=healthcare&revenue_min=1000000&sort=revenue_desc&per_page=10" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Example Response

{
  "deals": [
    {
      "id": "dl_gkqMKZ9x",
      "name": "Healthcare Services Company",
      "privsource_link": "https://privsource.com/buyer/deals/dl_gkqMKZ9x",
      "teaser_link": "https://privsource.com/buyer/deals/dl_gkqMKZ9x/view",
      "date_added": "2025-01-15",
      "revenue": 5000000,
      "ebitda": 1200000,
      "margin_percent": 24,
      "deal_type": "buyout",
      "outreach_available": true,
      "primary_industry": "Healthcare",
      "sub_industry": "Outpatient Services",
      "secondary_industry": "Business Services",
      "industries": [
        "Healthcare",
        "Business Services"
      ],
      "location": "Northeast"
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 5,
    "total_count": 47,
    "per_page": 10,
    "filters": {
      "industries": [
        "Healthcare"
      ],
      "revenue_min": 1000000
    }
  }
}

Response Codes

200 A paginated list of deals
400 Bad request - invalid or unknown query parameter
401 Unauthorized - invalid or missing API token
402 Payment required - no active subscription
429 Rate limit exceeded
GET

Get a deal

/v1/buyer/deals/:id

Returns full details for a single live deal from the buyer perspective.

Path Parameters

Parameter Type Description
id required string Deal ID with a dl_ prefix.

Code Sample

curl "https://api.privsource.com/v1/buyer/deals/dl_gkqMKZ9x" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Example Response

{
  "deal": {
    "id": "dl_gkqMKZ9x",
    "name": "Healthcare Services Company",
    "privsource_link": "https://privsource.com/buyer/deals/dl_gkqMKZ9x",
    "teaser_link": "https://privsource.com/buyer/deals/dl_gkqMKZ9x/view",
    "date_added": "2025-01-15",
    "revenue": 5000000,
    "ebitda": 1200000,
    "margin_percent": 24,
    "deal_type": "buyout",
    "outreach_available": true,
    "primary_industry": "Healthcare",
    "sub_industry": "Outpatient Services",
    "secondary_industry": "Business Services",
    "industries": [
      "Healthcare",
      "Business Services"
    ],
    "location": "Northeast",
    "description": "Full-service healthcare company specializing in outpatient care.",
    "reason_for_sale": "Owner retirement",
    "growth_opportunities": "Expand into adjacent markets and acquire smaller clinics.",
    "deal_link": "https://example.com/deal-profile",
    "nda_link": "https://example.com/nda",
    "contacts": [
      {
        "name": "John Smith",
        "email": "[email protected]",
        "phone": "555-123-4567",
        "title": "Managing Director"
      }
    ]
  }
}

Response Codes

200 Deal details
401 Unauthorized
402 Payment required - no active subscription
404 Deal not found
429 Rate limit exceeded

Schemas

Contact

Deal contact details.

Field Type Description
name required string Contact name.
email required string Contact email.
phone string Phone number when available.
title string Job title when available.

DealDetailResponse

Single-deal response for the deal detail endpoint.

Field Type Description
deal DealFull

DealFull

Full deal shape returned by the deal detail endpoint.

Field Type Description
id string Deal ID with a dl_ prefix.
name string Deal name.
privsource_link string Authenticated PrivSource buyer deal URL using the deal hashid.
teaser_link string? Authenticated PrivSource buyer teaser URL using the deal hashid. Redirects to the teaser document or external material when available and visible.
date_added string Date the deal was added.
revenue integer? Annual revenue in dollars when available.
ebitda integer? EBITDA in dollars when available.
margin_percent integer? Margin percentage from 0 to 100 when available.
deal_type enum Deal type.
outreach_available boolean Whether this deal currently has recipients available for buyer outreach.
primary_industry string? Primary industry label when available.
sub_industry string? Sub-industry label when available.
secondary_industry string? Secondary industry label when available.
industries string[] Matched industry labels for the deal.
location string? Location label when available.
description string Long-form deal description.
reason_for_sale string Seller's reason for sale when available.
growth_opportunities string Growth opportunities when available.
deal_link string? URL to the teaser or external deal material when available and visible.
nda_link string? URL to the NDA document when available.
contacts Contact[] Deal contacts. Empty array if contacts are not available for this deal.

DealListResponse

Paginated list response for the deals index endpoint.

Field Type Description
deals DealSummary[] Deal summaries for the current page.
meta PaginationMeta

DealSummary

Summary shape returned in the deals index response.

Field Type Description
id string Deal ID with a dl_ prefix.
name string Deal name.
privsource_link string Authenticated PrivSource buyer deal URL using the deal hashid.
teaser_link string? Authenticated PrivSource buyer teaser URL using the deal hashid. Redirects to the teaser document or external material when available and visible.
date_added string Date the deal was added.
revenue integer? Annual revenue in dollars when available.
ebitda integer? EBITDA in dollars when available.
margin_percent integer? Margin percentage from 0 to 100 when available.
deal_type enum Deal type.
outreach_available boolean Whether this deal currently has recipients available for buyer outreach.
primary_industry string? Primary industry label when available.
sub_industry string? Sub-industry label when available.
secondary_industry string? Secondary industry label when available.
industries string[] Matched industry labels for the deal.
location string? Location label when available.

ErrorResponse

Error response returned by authenticated API endpoints.

Field Type Description
errors required string[] One or more human-readable error messages.

PaginationMeta

Pagination metadata returned by list endpoints.

Field Type Description
current_page integer Current page number.
total_pages integer Total number of pages.
total_count integer Total matching record count.
per_page integer Results returned per page.
filters object Applied filters. Only present when filters are active.