Search API
CPC titles
Titles for CPC codes, to label facets and classifications. Ask for up to 100 codes at once; unknown codes come back with null titles.
GEThttps://api.patentgrep.com/ v1/ cpc/ titles
codestring, repeatable
A subclass such as H01M or a group such as H01M50/457.
Each item has the compact code, a displayCode, the official title, a sentence-case shortTitle and the CPC edition.
{
"items": [
{
"code": "H01M",
"displayCode": "H01M",
"title": "PROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY…",
"shortTitle": "Processes or means, e.g. batteries, for the direct conversion of chemical energy…",
"edition": "2026.08"
}
]
}curl -G https://api.patentgrep.com/v1/cpc/titles \
-H "X-Api-Key: $PATENTGREP_KEY" \
-d code=H01M \
--data-urlencode "code=H01M50/457"import os, requests
resp = requests.get(
"https://api.patentgrep.com/v1/cpc/titles",
headers={"X-Api-Key": os.environ["PATENTGREP_KEY"]},
params=[("code", "H01M"), ("code", "H01M50/457")],
)
resp.raise_for_status()
data = resp.json()
print(data)const params = new URLSearchParams([
["code", "H01M"],
["code", "H01M50/457"],
]);
const res = await fetch(`https://api.patentgrep.com/v1/cpc/titles?${params}`, {
headers: {
"X-Api-Key": process.env.PATENTGREP_KEY,
},
});
if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`);
const data = await res.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
"os"
)
func main() {
params := url.Values{}
params.Add("code", "H01M")
params.Add("code", "H01M50/457")
req, err := http.NewRequest(http.MethodGet, "https://api.patentgrep.com/v1/cpc/titles?"+params.Encode(), nil)
if err != nil {
panic(err)
}
req.Header.Set("X-Api-Key", os.Getenv("PATENTGREP_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
data, err := io.ReadAll(res.Body)
if err != nil {
panic(err)
}
if res.StatusCode != http.StatusOK {
panic(fmt.Sprintf("%s: %s", res.Status, data))
}
fmt.Println(string(data))
}require "json"
require "net/http"
uri = URI("https://api.patentgrep.com/v1/cpc/titles")
uri.query = URI.encode_www_form([["code", "H01M"], ["code", "H01M50/457"]])
req = Net::HTTP::Get.new(uri)
req["X-Api-Key"] = ENV.fetch("PATENTGREP_KEY")
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
raise "#{res.code}: #{res.body}" unless res.is_a?(Net::HTTPSuccess)
data = JSON.parse(res.body)
p data