All skills

Find official USPTO patent and trademark records, check case status and ownership records, and keep a clear research log that others can repeat.

  • 1 file
  • 10 KB
  • Updated 2 weeks ago
  • GitHub

Use this Skill: https://skilld.dev/gh/agenticluke/uspto-record-search-plus/skill

This session only. Nothing lands on disk.

SKILL.md

≈38 tokens always: the name and description. ≈2.5k when used: this file.

USPTO Database

CREDIT: This skill comes from the open-source community. All credit goes to its original author and contributors.

Use this skill when you need official United States patent or trademark records from the USPTO.

This skill helps collect and check facts. It does not give legal advice.

When to Use This Skill

Use it to:

  • Find issued patents or published patent applications.
  • Check a patent application status.
  • Read public patent case files and event history.
  • Find patent or trademark ownership transfer records.
  • Check trademark status and public documents.
  • Study prior art, patent groups, or market trends.
  • Keep a search log that another person can repeat.
  • Check results from Google Patents, Lens.org, Semantic Scholar, or company patent pages against USPTO records.

Do not use this skill to decide legal rights, infringement, validity, or current ownership. Ask a patent or trademark lawyer when those issues matter.

Pick the Right Source

Use an official USPTO source first:

  • Open Data Portal (ODP): The main home for USPTO data sets and APIs.
  • Patent File Wrapper: Public patent application details, events, and documents.
  • PatentSearch API: Search issued patents and published applications.
  • TSDR Data API: Get trademark status and documents.
  • Patent and Trademark Assignment Search: Find recorded ownership transfers.
  • PTAB data in ODP: Find Patent Trial and Appeal Board cases.

Other sites can help you find a record. Treat them as search aids only. Check key facts against the official USPTO record.

Keys and Secrets

Some USPTO APIs need an API key.

Keep keys in environment variables or a secret store. Never put a key in:

  • Source code
  • A committed file
  • A shared research log
  • A pasted chat
  • An error report

Common variable names are:

export USPTO_API_KEY="..."
export PATENTSVIEW_API_KEY="..."

PatentSearch uses the X-Api-Key header. For TSDR, check the current USPTO rules for the key header and rate limits.

Never print request headers when they contain a key.

PatentSearch Steps

Use PatentSearch for broad searches by:

  • Inventor
  • Owner or assignee
  • Date
  • Patent class
  • Topic
  • Patent group
  • Trend

Follow these steps:

  1. Read the current PatentSearch API guide.
  2. Check the endpoint name and field names.
  3. Build a JSON query with clear filters.
  4. Ask only for the fields you need.
  5. Use a fixed sort order.
  6. Fetch every page needed.
  7. Stop or slow down after a rate-limit reply.
  8. Save the endpoint, query, search date, page size, page count, and result count.
  9. Note that new or changed records may appear after the search date.

Do not count only the first page. Remove repeat records by a stable ID, such as the patent number.

Python Example

This example finds recent patents linked to Google or Alphabet. Check the live API guide before using it because fields and endpoints can change.

import os
import time
import requests

api_key = os.environ["PATENTSVIEW_API_KEY"]
base_url = "https://search.patentsview.org/api/v1"

payload = {
    "q": {
        "_and": [
            {"patent_date": {"_gte": "2024-01-01"}},
            {
                "assignees.assignee_organization": {
                    "_text_any": ["Google", "Alphabet"]
                }
            },
        ]
    },
    "f": ["patent_id", "patent_title", "patent_date"],
    "s": [
        {"patent_date": "desc"},
        {"patent_id": "asc"},
    ],
    "o": {"per_page": 100, "page": 1},
}

for attempt in range(3):
    response = requests.post(
        f"{base_url}/patent/",
        headers={
            "X-Api-Key": api_key,
            "Content-Type": "application/json",
        },
        json=payload,
        timeout=30,
    )

    if response.status_code == 429:
        time.sleep(2 ** attempt)
        continue

    response.raise_for_status()
    data = response.json()
    print(data)
    break
else:
    raise RuntimeError("The API rate limit was reached after three tries.")

Do not log the request headers. They contain the API key.

Trademark and TSDR Steps

Use TSDR for:

  • Trademark case status
  • Public documents
  • Mark images
  • Owner details
  • Case events

Follow these steps:

  1. Remove spaces and marks from the serial or registration number.
  2. Check whether the number has the right length and type.
  3. Read the current TSDR API guide.
  4. Check the required key header and rate limits.
  5. Get the case status first.
  6. Get documents only when the task needs them.
  7. Save the search date and the exact serial or registration number.
  8. Record any missing, sealed, or failed document download.

PDF, ZIP, and multi-case requests may have lower limits. Slow down when needed. For a large set of marks, use the official bulk data path. Do not scrape public pages at scale.

If a serial number and registration number point to different records, stop and report the mismatch.

Patent File Wrapper Steps

Use the Patent File Wrapper for application status, event history, and public case papers.

  1. Start with the ODP Patent File Wrapper search.
  2. Use the most exact ID you have:
    • Application number
    • Publication number
    • Patent number
    • Party name
  3. Keep leading zeros and country or kind codes when they are part of the ID.
  4. State whether the record is:
    • A pending application
    • A published application
    • An issued patent
    • Abandoned
    • Unknown from the public record
  5. Check dates and status on the record detail page before you cite them.
  6. Note if the file is not public or a document is missing.

Do not treat a missing public file as proof that no file exists.

Assignment Steps

An assignment record shows a recorded transfer. It may not prove who owns the right now.

  1. Search by a patent, application, or registration number.
  2. If needed, search by assignor, assignee, or reel and frame.
  3. Record:
    • The transfer text
    • The signing date
    • The USPTO record date
    • Each named party
    • Reel and frame or another record ID
  4. Put transfers in date order.
  5. Note name changes, mergers, spelling changes, and later transfers.
  6. Keep the recorded transfer separate from any claim about current legal ownership.
  7. Flag unclear ownership for review by a lawyer or other trained expert.

A transfer may cover several rights. Check that the exact patent, application, or mark appears in the record.

Handle Common Problems

  • No results: Check the ID format, leading zeros, date range, and record type.
  • Too many results: Add an exact ID, date, owner, inventor, or class.
  • Repeat results: Remove repeats by a stable record ID.
  • Changed company names: Search old names, new names, and known spellings.
  • Rate limit: Wait, lower the page size, and try again later.
  • Server error: Save the error code and time. Do not call it “no results.”
  • Data conflict: Show both records and name the source and search date.
  • Missing public record: State that the record was not found or was not public. Do not guess.
  • Recent filing: Note that a new filing may not be public or indexed yet.
  • Bad date: Say whether it is a filing, publication, issue, signing, or record date.

Keep a Repeatable Search Log

Every research task must include a log like this:

| Source | Search date | ID or query | Filters | Results | Notes |
| --- | --- | --- | --- | ---: | --- |
| PatentSearch | 2026-05-11 | `assignee=Alphabet AND date>=2024-01-01` | Patent endpoint, 100 per page | 118 | Checked all pages |
| TSDR | 2026-05-11 | `serial=90000000` | Status only | 1 | No document download |

Also save the exact JSON query when an API search is used. Remove keys and other secrets first.

Concrete Usage Example

Task: Find the status and ownership trail for patent US12345678B2.

  1. Search the Patent File Wrapper by patent number.
  2. Confirm the title, application number, issue date, and case status.
  3. Search the patent assignment records with the same patent number.
  4. List each transfer by signing date and record date.
  5. Check that every transfer names the same patent.
  6. Add each search to the log.
  7. Write the result in four parts:
## Official facts

- Patent number:
- Application number:
- Current public status:
- Last recorded assignee:
- Search date:

## Recorded transfers

| Signing date | Record date | From | To | Record ID |
| --- | --- | --- | --- | --- |

## Notes and limits

- A recorded transfer does not prove current legal ownership.
- Public data may be late or incomplete.

## Search log

| Source | Search date | ID or query | Filters | Results | Notes |
| --- | --- | --- | --- | ---: | --- |

Write the Final Result

Keep these parts separate:

  1. Official facts: Facts shown in USPTO records.
  2. Analysis: What the facts may mean.
  3. Other sources: Matches from non-USPTO sites.
  4. Open gaps: Missing files, conflicts, or facts that need expert review.

For each key fact, give the source, record ID, and search date.

Use careful words. Say “the USPTO record shows” instead of “this proves.”

Review List

Before you finish, check that:

  • An official USPTO source was used first.
  • The current endpoint and field names were checked.
  • All needed result pages were fetched.
  • Repeat records were removed.
  • API keys are not in files, logs, code, or output.
  • The log has the search date and exact query.
  • Each date type is clear.
  • Rate limits were followed.
  • Failed requests are not called “no results.”
  • Other sites are marked as secondary sources.
  • Legal claims were avoided or sent for expert review.

References

Source: SKILL.md on GitHub

No third-party reports yet.

Signed by skilld at 942a65f. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 weeks ago.

Activeupdated 2 weeks ago
origin
community

README badge

README badge for agenticluke/uspto-record-search-plus