curl --request GET \
--url https://api.pav.bio/v1/patents/{family_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pav.bio/v1/patents/{family_id}"
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/patents/{family_id}', 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/patents/{family_id}",
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/patents/{family_id}"
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/patents/{family_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pav.bio/v1/patents/{family_id}")
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{
"family_id": "62662313",
"member_count": 123,
"granted_count": 123,
"pending_count": 123,
"has_live_member": true,
"owner_source": "live_members",
"owner_is_split": true,
"has_open_security_interest": true,
"events_total": 123,
"representative_title": "<string>",
"earliest_priority_date": "2023-12-25",
"earliest_filing_date": "2023-12-25",
"latest_grant_date": "2023-12-25",
"latest_status_date": "2023-12-25",
"owner_names": [
"<string>"
],
"companies": [
{
"company_id": 137,
"short_name": "johnson_and_johnson",
"name": "Johnson & Johnson"
}
],
"latest_maintenance_fee_date": "2023-12-25",
"statutory_term_start": "2023-12-25",
"statutory_term_end": "2023-12-25",
"cpc_codes": [
"<string>"
],
"members": [
{
"application_number": "17076912",
"role": "<string>",
"is_dead": true,
"depth": 123,
"has_open_security_interest": true,
"patent_number": "<string>",
"publication_number": "<string>",
"title": "<string>",
"application_type": "<string>",
"filing_date": "2023-12-25",
"grant_date": "2023-12-25",
"status_description": "<string>",
"status_date": "2023-12-25",
"cpc_codes": [
"<string>"
],
"status_code": "<string>",
"owner_names": [
"<string>"
]
}
],
"ownership": [
{
"conveyance_kind": "<string>",
"recorded_date": "2023-12-25",
"conveyance_text": "<string>",
"assignors": [
"<string>"
],
"assignees": [
"<string>"
],
"application_numbers": [
"<string>"
]
}
],
"events": [
{
"application_number": "<string>",
"event_code": "<string>",
"event_date": "2023-12-25",
"patent_number": "<string>",
"description": "<string>"
}
]
}{
"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"
}
}Get a patent family by id
One patent family with its members, recorded ownership changes, prosecution and maintenance events, and the statutory term computed from the earliest nonprovisional filing (no term adjustments or extensions). Returns 404 not_found for an unknown id.
curl --request GET \
--url https://api.pav.bio/v1/patents/{family_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pav.bio/v1/patents/{family_id}"
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/patents/{family_id}', 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/patents/{family_id}",
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/patents/{family_id}"
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/patents/{family_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pav.bio/v1/patents/{family_id}")
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{
"family_id": "62662313",
"member_count": 123,
"granted_count": 123,
"pending_count": 123,
"has_live_member": true,
"owner_source": "live_members",
"owner_is_split": true,
"has_open_security_interest": true,
"events_total": 123,
"representative_title": "<string>",
"earliest_priority_date": "2023-12-25",
"earliest_filing_date": "2023-12-25",
"latest_grant_date": "2023-12-25",
"latest_status_date": "2023-12-25",
"owner_names": [
"<string>"
],
"companies": [
{
"company_id": 137,
"short_name": "johnson_and_johnson",
"name": "Johnson & Johnson"
}
],
"latest_maintenance_fee_date": "2023-12-25",
"statutory_term_start": "2023-12-25",
"statutory_term_end": "2023-12-25",
"cpc_codes": [
"<string>"
],
"members": [
{
"application_number": "17076912",
"role": "<string>",
"is_dead": true,
"depth": 123,
"has_open_security_interest": true,
"patent_number": "<string>",
"publication_number": "<string>",
"title": "<string>",
"application_type": "<string>",
"filing_date": "2023-12-25",
"grant_date": "2023-12-25",
"status_description": "<string>",
"status_date": "2023-12-25",
"cpc_codes": [
"<string>"
],
"status_code": "<string>",
"owner_names": [
"<string>"
]
}
],
"ownership": [
{
"conveyance_kind": "<string>",
"recorded_date": "2023-12-25",
"conveyance_text": "<string>",
"assignors": [
"<string>"
],
"assignees": [
"<string>"
],
"application_numbers": [
"<string>"
]
}
],
"events": [
{
"application_number": "<string>",
"event_code": "<string>",
"event_date": "2023-12-25",
"patent_number": "<string>",
"description": "<string>"
}
]
}{
"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>.
Path Parameters
Pav patent family id.
64^[A-Za-z0-9_-]+$"62662313"
Response
Successful Response
Pav patent family identifier.
"62662313"
Applications in the family.
Granted members.
Pending members.
True when any member is pending or in force.
Which members owner_names was read from.
live_members, all_members, none True when live members have different owners.
True when any member carries an open security interest.
Uncapped count of events.
Representative title.
Earliest priority date.
Earliest member filing.
Most recent grant.
Most recent status change.
Owners of the live members; for a lapsed family, owners across all members.
Owners linked to Pav companies.
Show child attributes
Show child attributes
Most recent maintenance-fee payment on any member.
Earliest nonprovisional filing the family claims (35 USC 154(a)(2)). Null when an ancestor's filing date is unknown.
statutory_term_start plus 20 years. Term adjustments and extensions are not applied.
Most-used CPC codes across members.
Member applications.
Show child attributes
Show child attributes
Recorded conveyances, newest first.
Show child attributes
Show child attributes
Prosecution and maintenance events, newest first (capped).
Show child attributes
Show child attributes