← Back to docs

Retrieving patent assignment history via API

Every time a patent changes hands — a startup gets acquired, a patent portfolio is sold, an inventor assigns rights to their employer — USPTO records the conveyance as an "assignment" keyed by a reel/frame identifier. Those records are public, published as bulk files, and collectively tell you who owns what intellectual property in the United States, and how that ownership changed over time.

The USPTO's Patent Assignment Search UI is fine for one-off lookups. For anything programmatic — competitive intelligence, IP due diligence, litigation research, M&A signal-tracking — you want a JSON API. Folio's /v1/patents/historical/assignments endpoint exposes the same underlying bulk records as structured JSON.

The 10-second version

Find all patent assignments involving a specific party:

curl -H "X-API-Key: fo_live_..." \
  "https://folioapi.com/v1/patents/historical/assignments?party_name=OpenAI&limit=50"
{
  "results": [
    {
      "reel_frame": "065123/0456",
      "record_date": "2024-08-15",
      "convey_type": "ASSIGNMENT OF ASSIGNORS INTEREST",
      "assignors": [
        { "party_name": "DOE, JOHN", "city": "SAN FRANCISCO", "state": "CA" }
      ],
      "assignees": [
        { "party_name": "OPENAI, INC.", "city": "SAN FRANCISCO", "state": "CA" }
      ],
      "patent_numbers": ["11567890"],
      "application_numbers": ["17/234,567"]
    }
  ],
  "total": 127,
  "limit": 50,
  "offset": 0
}

What you can query by

At least one of patent_number, application_number, or party_name is required. You can combine with date filters:

Common query patterns

Full ownership chain for a patent

curl -H "X-API-Key: fo_live_..." \
  "https://folioapi.com/v1/patents/historical/assignments?patent_number=11567890"

Returns every recorded assignment touching that patent, chronologically. Sort the results by record_date and you have the full chain of title.

Assignments tied to an acquisition

After a public acquisition, patents typically get assigned from the acquired entity to the acquirer within 30–90 days. Sweep assignments involving the acquirer in the post-deal window:

curl -H "X-API-Key: fo_live_..." \
  "https://folioapi.com/v1/patents/historical/assignments?party_name=AcquirerCorp&date_from=2024-08-01&date_to=2024-11-30"

Filter the results for assignees matching "AcquirerCorp" and you have the post-close IP transfer.

Security-interest filings

Patents pledged as collateral get recorded as "SECURITY AGREEMENT" conveyances. These appear in SEC filings months later; the assignment record is the earlier signal:

curl -H "X-API-Key: fo_live_..." \
  "https://folioapi.com/v1/patents/historical/assignments?party_name=DebtorCorp&convey_type=SECURITY+AGREEMENT"

Trademark assignments

Folio has a parallel endpoint for trademark assignments at /v1/trademarks/historical/assignments. The query shape is identical except you filter by serial_number (trademark serial) instead of patent_number/application_number, and use conv_group in place of convey_type. Same pagination, same response shape. See the assignments reference for the full parameter list.

Freshness and coverage

Assignment records come from the USPTO's weekly bulk assignment files. The coverage_note field in every response acknowledges this: historical data, not real-time. Expect a 1–2 week lag between a recordation being entered at USPTO and its appearance in the bulk corpus. Folio's ingest refreshes on a rolling schedule.

What people build with this

Next steps