PatentRef

Data version 20261027.2, as of 2026-10-27: the build these pages were checked against. API version 1.21.0.

Claim counts

PatentRef's addition to the grammar: counts of one granted patent's claims, in the spirit of the USPTO Patent Claims Research Dataset, whose files stop at grants of 2014. Every field is a count, or the least, mean or most of counts, and names the USPTO variable it follows. A count describes the text as printed; nothing here is a legal conclusion.

Route
GET /api/v1/structure/counts/{patent_id}/ (the trailing slash is optional)
Key
X-Api-Key, as every data path; it counts toward the monthly allowance
Built
when it is asked for, from the patent's claim tree, by the same deterministic parser (no language model)
Versions
counts_version, structure_version, data_version (X-Data-Version) and text_data_version (X-Text-Data-Version)
Machine-readable
the operation in openapi.json (operationId StructureCounts, schemas ClaimCounts, ClaimCountsPatent and ClaimCountsClaim)

Example

curl -s -H "X-Api-Key: $KEY" https://patentref.io/api/v1/structure/counts/10034028/
import os, requests

base_url = "https://patentref.io"
headers = {"X-Api-Key": os.environ["PATENTREF_KEY"]}
r = requests.get(base_url + "/api/v1/structure/counts/10034028/", headers=headers)
r.raise_for_status()
counts = r.json()["counts"]
print(counts["claims"], counts["independent_claims"], counts["words_independent_min"])
# the USPTO dataset counts a claim that names another claim anywhere as dependent:
uspto_independent = counts["claims"] - counts["claims_citing_other_claims"]

How the counts are read

The patent's counts

FieldTypeWhat it countsUSPTO dataset variable
claimsintegerClaims of the patent in the long-text file, a claim whose whole text is a cancellation note left out. It is independent_claims plus dependent_claims.pat_clm_ct plus pat_dep_clm_ct (document_stats)
independent_claimsintegerClaims with no dependency in the claim tree: no claim named in the preamble, and none in the dependent field of the long text either. A claim that names another claim only in its body ("a system that performs the method of claim 1") counts here.pat_clm_ct, which counts a claim as independent only when its text names no other claim anywhere; that count is claims minus claims_citing_other_claims
dependent_claimsintegerClaims with a dependency in the claim tree: parent_claims of 1 or more.pat_dep_clm_ct (see claims_citing_other_claims)
claims_citing_other_claimsintegerClaims whose text names at least one other claim, in the preamble or in the body. This is the rule the USPTO dataset uses to call a claim dependent.pat_dep_clm_ct
multiple_dependent_claimsintegerClaims that depend on more than one claim.no counterpart
cancelled_claimsintegerClaims whose whole text is a cancellation note, such as "(canceled)"; they are left out of every other count.none for grants; the USPTO dataset leaves cancelled claims out of its counts
wordsintegerWords of the claims, each claim counted after its number prefix. A word is a run of characters between white space with at least one letter or digit: a comma or bracket set off by spaces is not a word.the sum of word_ct over the claims (claims_stats); for grants from 2002 on the USPTO files also count the claim's number ("1.") as a word when their claim text starts with it
words_first_claimintegerWords of the first claim in claim order; null when the patent has no claim.word_ct of the first claim (claims_stats)
words_independent_totalintegerWords of the independent claims together.pat_wrd_ct
words_independent_minintegerWords of the shortest independent claim; null without an independent claim.pat_wrd_min (the length of the shortest independent claim)
words_independent_meannumberMean words per independent claim, to two decimals; null without an independent claim.pat_wrd_avg
words_independent_maxintegerWords of the longest independent claim; null without an independent claim.no counterpart
words_dependent_totalintegerWords of the dependent claims together, each counted on its own text: the words of the claims it refers to are not added.pat_dep_wrd_ct, which also counts a dependent claim's own words only
words_dependent_minintegerWords of the shortest dependent claim; null without a dependent claim.pat_dep_wrd_min
words_dependent_meannumberMean words per dependent claim, to two decimals; null without a dependent claim.pat_dep_wrd_avg
charactersintegerCharacters of the claims, each claim counted after its number prefix with its spacing made regular: each run of white space counts as one space, and no space counts before a comma, semicolon, colon, full stop or closing bracket or after an opening bracket.the sum of char_ct over the claims (claims_stats; the USPTO codebook does not define char_ct further, and for grants from 2002 on it also counts the claim's number and its full stop when the claim text starts with them)
elements_independent_minintegerElements of the independent claim with the fewest. An element is a part of the body after the transition word, split at semicolons and colons as the claim tree splits it; wherein clauses are not elements. Null without an independent claim.no counterpart
elements_independent_meannumberMean elements per independent claim, to two decimals; null without an independent claim.no counterpart
elements_independent_maxintegerElements of the independent claim with the most; null without an independent claim.no counterpart
dependency_depth_maxintegerThe longest chain of dependencies: 0 when every claim is independent, 1 when every dependent claim depends directly on an independent claim, 2 when one depends on a claim at depth 1, and so on.no counterpart
consisting_wordsintegerTimes the word "consisting" appears in the claims.the sum of cns_ct over the claims
or_wordsintegerTimes the word "or" appears in the claims.the sum of or_ct over the claims
selected_from_phrasesintegerTimes the words "selected from" appear together in the claims.the sum of sf_ct over the claims

A claim's counts

FieldTypeWhat it countsUSPTO dataset variable
numberintegerThe claim's number, as the claim tree gives it.claim_no
sequenceintegerThe claim's place in the long text, from 0.no counterpart
wordsintegerWords of the claim after its number prefix (see the patent's words).word_ct
charactersintegerCharacters of the claim after its number prefix, its spacing made regular (see the patent's characters).char_ct
elementsintegerElements of the claim (see elements_independent_min).no counterpart
wherein_clausesintegerWherein clauses of the claim, the parts of the body the claim tree reads as one.no counterpart
parent_claimsintegerClaims this claim depends on in the claim tree; 0 for an independent claim.no counterpart
cited_claimsintegerOther claims the claim's text names, in the preamble or the body.the claims in dependencies (claims_fulltext); ind_flg is 1 when there are none
dependency_depthintegerThe claim's place in the longest chain of dependencies above it: 0 for an independent claim, 1 for a claim that depends on one, and so on.no counterpart
consisting_wordsintegerTimes the word "consisting" appears in the claim.cns_ct
or_wordsintegerTimes the word "or" appears in the claim.or_ct
selected_from_phrasesintegerTimes the words "selected from" appear together in the claim.sf_ct
cancelledinteger1 when the claim's whole text is a cancellation note, else 0; a cancelled claim is in no patent count but cancelled_claims.no counterpart

Checked against the USPTO files

The USPTO Patent Claims Research Dataset is in BigQuery's public patents data as patents-public-data.uspto_oce_claims. On 1,000 grants of 1976 to 2014 drawn at random from the data in service (data version 20261027.2, long-text file 20261006.4), the USPTO files hold 898; they hold no design or plant patents. The tolerance was set on an earlier sample of 1,000 and checked on this one. For grants from 2002 on, the USPTO files count a claim's number as a word, and as characters, when their claim text starts with it, and the comparison takes it off their counts first. Their texts of 1976 to 2001 often run two words together at a comma, semicolon or colon, so their word counts for those years run lower than these.

CountCompared perAgreementStated toleranceMeasured
The claims of a patent (pat_clm_ct plus pat_dep_clm_ct)patentequal99 percent99.78 percent
Claims that name no other claim (pat_clm_ct)patentequal97 percent98.89 percent
Claims that name another claim (pat_dep_clm_ct)patentequal97 percent99.11 percent
A claim names no other claim (ind_flg)claimequal99 percent99.95 percent
Words of a claim (word_ct)claimwithin 2 words or 2 percent90 percent92.96 percent
Words of a claim, grants of 2002 to 2014claimwithin 2 words or 2 percent95 percent97.66 percent
Characters of a claim (char_ct)claimwithin 2 or 2 percent90 percent97.73 percent
Times "or" appears in a claim (or_ct)claimequal98 percent98.95 percent
Times "consisting" appears in a claim (cns_ct)claimequal98 percent100 percent
Times "selected from" appears in a claim (sf_ct)claimequal98 percent99.96 percent
Words of the shortest independent claim (pat_wrd_min)patentwithin 2 words or 5 percent85 percent92.09 percent
The same, grants of 2002 to 2014patentwithin 2 words or 2 percent90 percent93.16 percent
Mean words per independent claim (pat_wrd_avg)patentwithin 2 words or 5 percent85 percent93.1 percent

Errors keep the upstream form, with X-Status-Reason and X-Status-Reason-Code; send Accept: application/problem+json for RFC 9457 problem details. The codes are on the keys, limits and errors page and at /docs/errors/NOT_FOUND.