curl --request GET \
--url https://api.pav.bio/v1/deals \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pav.bio/v1/deals"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pav.bio/v1/deals', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pav.bio/v1/deals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.pav.bio/v1/deals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pav.bio/v1/deals")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pav.bio/v1/deals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"deal_id": "ec0bcf74-fdc0-4ffa-ad04-fe25ed8d6210",
"deal_name": "Merck KGaA acquisition of Bio-Techne Corporation",
"deal_type": "acquisition",
"latest_event_type": "completed",
"latest_event_name": "<string>",
"summary": "<string>",
"source_document_count": 123,
"event_count": 123,
"latest_event_at": "2023-11-07T05:31:56Z",
"activity_date": "2023-11-07T05:31:56Z",
"announced_at": "2023-11-07T05:31:56Z",
"latest_update_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"companies": [
{
"company_id": 239,
"short_name": "merck_kgaa",
"name": "Merck KGaA",
"roles": [
"acquirer"
]
}
],
"total_value": {
"raw_text": "total enterprise value of approximately US$11.3 billion",
"amount": 11300000000,
"currency": "USD",
"percentage": null,
"not_disclosed": false,
"evidence": "<string>"
},
"upfront": {
"raw_text": "total enterprise value of approximately US$11.3 billion",
"amount": 11300000000,
"currency": "USD",
"percentage": null,
"not_disclosed": false,
"evidence": "<string>"
},
"development_milestones": {
"raw_text": "total enterprise value of approximately US$11.3 billion",
"amount": 11300000000,
"currency": "USD",
"percentage": null,
"not_disclosed": false,
"evidence": "<string>"
},
"regulatory_milestones": {
"raw_text": "total enterprise value of approximately US$11.3 billion",
"amount": 11300000000,
"currency": "USD",
"percentage": null,
"not_disclosed": false,
"evidence": "<string>"
},
"commercial_milestones": {
"raw_text": "total enterprise value of approximately US$11.3 billion",
"amount": 11300000000,
"currency": "USD",
"percentage": null,
"not_disclosed": false,
"evidence": "<string>"
}
}
],
"pagination": {
"limit": 100,
"offset": 0,
"total": 590355
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}List and search deals
Biopharma deals — M&A, licensing, collaborations, options, joint ventures and distribution — from SEC filings and press releases, one row per deal with its current lifecycle state and headline economics.
Every filter is optional and filters combine with AND. q is an exact-term match (word forms such as plurals also match; every term must match) over the deal name, event headline, summary and rights, or a substring of a party’s name. It does not expand synonyms, so search each phrasing you care about. With no filters you get the most recent deal activity.
curl --request GET \
--url https://api.pav.bio/v1/deals \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pav.bio/v1/deals"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pav.bio/v1/deals', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pav.bio/v1/deals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.pav.bio/v1/deals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pav.bio/v1/deals")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pav.bio/v1/deals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"deal_id": "ec0bcf74-fdc0-4ffa-ad04-fe25ed8d6210",
"deal_name": "Merck KGaA acquisition of Bio-Techne Corporation",
"deal_type": "acquisition",
"latest_event_type": "completed",
"latest_event_name": "<string>",
"summary": "<string>",
"source_document_count": 123,
"event_count": 123,
"latest_event_at": "2023-11-07T05:31:56Z",
"activity_date": "2023-11-07T05:31:56Z",
"announced_at": "2023-11-07T05:31:56Z",
"latest_update_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"companies": [
{
"company_id": 239,
"short_name": "merck_kgaa",
"name": "Merck KGaA",
"roles": [
"acquirer"
]
}
],
"total_value": {
"raw_text": "total enterprise value of approximately US$11.3 billion",
"amount": 11300000000,
"currency": "USD",
"percentage": null,
"not_disclosed": false,
"evidence": "<string>"
},
"upfront": {
"raw_text": "total enterprise value of approximately US$11.3 billion",
"amount": 11300000000,
"currency": "USD",
"percentage": null,
"not_disclosed": false,
"evidence": "<string>"
},
"development_milestones": {
"raw_text": "total enterprise value of approximately US$11.3 billion",
"amount": 11300000000,
"currency": "USD",
"percentage": null,
"not_disclosed": false,
"evidence": "<string>"
},
"regulatory_milestones": {
"raw_text": "total enterprise value of approximately US$11.3 billion",
"amount": 11300000000,
"currency": "USD",
"percentage": null,
"not_disclosed": false,
"evidence": "<string>"
},
"commercial_milestones": {
"raw_text": "total enterprise value of approximately US$11.3 billion",
"amount": 11300000000,
"currency": "USD",
"percentage": null,
"not_disclosed": false,
"evidence": "<string>"
}
}
],
"pagination": {
"limit": 100,
"offset": 0,
"total": 590355
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}Authorizations
Use a personal or organization Pav API key from Pav developer settings. Send it as Authorization: Bearer <api_key>.
Query Parameters
Exact-term text or party-name substring.
"Bio-Techne"
Deals with any of these Pav company ids as a party. Repeatable.
Restrict to these deal types. Repeatable.
acquisition, merger, asset_purchase, licensing, collaboration, option, joint_venture, distribution, other "licensing"
Restrict to deals whose current lifecycle state is one of these. Repeatable.
proposed, announced, completed, amended, terminated, update "completed"
Announced on or after this date (inclusive).
Announced on or before this date (inclusive).
Minimum headline deal value in USD. Only USD deals with a stated headline value qualify; many deals disclose none.
x >= 01000000000
latest_activity (default), announced_at, completed_at, or headline_value; newest or largest first.
latest_activity, announced_at, completed_at, headline_value Rows per page (1-100).
1 <= x <= 100Zero-based row offset for paging.
0 <= x <= 100000Compute the exact total match count.