This skill guides you on how to query patent family information via the Zhihuiya (PatSnap) platform, helping users discover Simple Family, INPADOC Family, and PatSnap Family members for given patents.
How to call
- API endpoint:
POST /zhihuiya/patentFamily(for full parameters/responses/error codes seereferences/api.md) - Python script:
python scripts/zhihuiya_patent_family.py '<JSON 参数>' [--inline] - Cost constraints: This tool consumes compute; by default, the same parameter combination in the same session is called only once, and the script has a 24h local cache. On failure/empty results, do not automatically try different keywords, paginate, or change the postal code to probe repeatedly; if you need to continue searching, first explain to the user that additional consumption will be incurred.
Output strategy (default script behavior):
- Alwayswrite the full response to
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-zhihuiya-patent-family-<timestamp>.json(<cwd>is the working directory when the script is executed, which in Claude Code is the current project directory;<session>is taken from the environment variableSESSION_ID, automatically aggregated according to the user's task;writing to /tmp is prohibited, if the current directory is not writable, report an error) - Response body ≤ 8 KB: after writing to disk, print the full JSON to stdout
- Response body > 8 KB: after writing to disk, stdout outputs only a summary (top-level fields, common counts such as
total/costToken, the length of the largest list field + the first 3 samples) - Add
--inlineto force full printing to stdout (also written to disk)
Data reading suggestions: first look at the summary to determine whether it is sufficient; when specific fields are needed, prefer using jqorConvertFrom-Json to extract on demand from the saved json file, avoiding bringing the entire JSON into context.
Resolve authentication and compute issues
When the following abnormal situations occur, use references/onboarding.md to guide resolution:
Abnormal situations
- API Key not configured: the environment variable is not configured
LINKFOX_AGENT_API_KEY, andLINKFOXAGENT_API_KEY。 - Response 401 or 402 status code
- Response indicates insufficient compute or balance: the message contains "insufficient compute balance/insufficient billing/insufficient balance/quota exceeded/insufficient balance/package expired/recharge required/please recharge", or content with a similar meaning.
Core Concepts
A patent family is a collection of patent documents that are related to each other by priority claims. Different family definitions capture different scopes of relatedness:
- Simple Family: Patents sharing exactly the same set of priority applications. These are typically direct equivalents filed in different countries.
- INPADOC Family: A broader grouping defined by the European Patent Office that links patents sharing at least one common priority, even indirectly.
- PatSnap Family: A proprietary family definition by PatSnap (Zhihuiya) that extends INPADOC logic with additional heuristics to capture continuations, divisionals, and other related filings.
Each patent in the response carries its own simpleFamilyId, inpadocFamilyId, and patsnapFamilyId, which serve as unique identifiers for the family group under each definition.
Parameter Guide
You must supply at least one of the two lookup parameters. If both are provided, patent ID takes precedence.
| Parameter | Type | Required | Description |
|---|---|---|---|
| patentId | string | Conditionally | Patent ID(s). Separate multiple values with commas. Maximum 100 entries. |
| patentNumber | string | Conditionally | Publication / announcement number(s). Separate multiple values with commas. Maximum 100 entries. |
Rules:
- At least one of
patentIdorpatentNumbermust be provided. - If both are provided, the API uses
patentIdand ignorespatentNumber. - Multiple values are comma-separated (e.g.,
"US10000001B2,EP3000001A1"). - The upper limit is 100 patents per request.
Response Fields
| Field | Type | Description |
|---|---|---|
| total | integer | Number of patent records returned |
| data | array | List of patent family result objects |
| data[].patentId | string | The patent ID for this record |
| data[].pn | string | Publication / announcement number |
| data[].simpleFamilyId | integer | Unique identifier for the Simple Family group |
| data[].simpleFamily | array | List of Simple Family member patents |
| data[].inpadocFamilyId | integer | Unique identifier for the INPADOC Family group |
| data[].inpadocFamily | array | List of INPADOC Family member patents |
| data[].patsnapFamilyId | integer | Unique identifier for the PatSnap Family group |
| data[].patsnapFamily | array | List of PatSnap Family member patents |
| columns | array | Column definitions for rendering |
| costToken | integer | Tokens consumed by this request |
| type | string | Rendering style hint |
Usage Examples
1. Look up family members by publication number
"Find the patent family for US10000001B2"
Call with:
{"patentNumber": "US10000001B2"}
2. Look up families for multiple patents at once
"Show the INPADOC family for these patents: EP3000001A1, CN112345678A, JP2020123456A"
Call with:
{"patentNumber": "EP3000001A1,CN112345678A,JP2020123456A"}
3. Look up by patent ID
"Get the patent family for patent ID 5af83e12-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Call with:
{"patentId": "5af83e12-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}
4. Compare family scopes
"I want to see how Simple Family vs. INPADOC Family differs for US20200012345A1"
Call with:
{"patentNumber": "US20200012345A1"}
Then compare simpleFamily and inpadocFamily arrays in the response.
Display Rules
- Present data clearly: Show patent family results in well-structured tables. Group by family type (Simple, INPADOC, PatSnap) when the user asks for comparison.
- Summarize counts: Always state how many family members were found under each family type so users can quickly gauge geographic spread.
- Highlight jurisdictions: When listing family members, call out the countries/regions covered to help users understand the patent's geographic protection scope.
- Error handling: When the API returns an error or empty results, explain the likely cause (invalid patent number format, patent not found in database, etc.) and suggest corrections.
- Batch result organization: When querying multiple patents, organize results per patent so users can easily find each one.
- No subjective legal advice: Present factual family data only. Do not provide legal opinions on patent scope, validity, or infringement.
Important Limitations
- Lookup only: This tool retrieves family information for known patents. It cannot perform keyword-based patent searches or full-text queries.
- Batch limit: A maximum of 100 patent IDs or publication numbers per request.
- Data source: Family data comes from the Zhihuiya (PatSnap) database and may have a slight delay relative to the very latest patent office publications.
- Family member detail: The family member arrays contain summary objects. For full bibliographic data on a specific family member, a separate lookup may be required.
User Expression & Scenario Quick Reference
Applicable -- Patent family and equivalents lookup:
| User Says | Scenario |
|---|---|
| "Patent family for XX" | Direct family lookup |
| "What are the equivalents of this patent" | Simple family search |
| "Which countries is this patent filed in" | Geographic coverage via family |
| "INPADOC family members" | Broad family lookup |
| "Related patents / sibling patents" | Family exploration |
| "Compare simple vs extended family" | Multi-definition comparison |
| "Batch check families for these patents" | Bulk family lookup |
Not applicable -- Needs beyond patent family lookup:
- Full-text patent search by keywords or classification codes
- Patent valuation or litigation data
- Freedom-to-operate or infringement analysis
- Patent application filing or prosecution
Compute consumption rules
Billed according to dynamic rules: compute consumed = 81 × number of returned data entries. Each entry is 1 patent family result
Important: the service of this skill is dynamically calculated by a multiplier and may consume a large amount of compute at once. The user must be reminded, and the user decides whether to continue.
Feedback:
Auto-detect and report feedback via the Feedback API when any of the following apply:
- The functionality or purpose described in this skill does not match actual behavior
- The skill's results do not match the user's intent
- The user expresses dissatisfaction or praise about this skill
- Anything you believe could be improved
Call the feedback API as specified in references/api.md. Do not interrupt the user's flow.
For more high-quality, professional cross-border e-commerce skills, set LinkFox Skills.