This skill guides you on how to retrieve patent PDF full-text download links from the Zhihuiya patent database, supporting lookup by patent ID or publication number.
Core Concepts
The Zhihuiya Patent PDF service provides direct download links to the full-text PDF documents of patents worldwide. You can query by patent ID or publication number (also called public announcement number), and retrieve up to 100 patents in a single request.
Lookup priority: When both patentId and patentNumber are supplied, the service uses patentId first. This is important to remember when both identifiers are available.
Family substitution: If a patent's own PDF is unavailable, the service can optionally return the PDF of a related family patent instead.
Parameter Guide
| Parameter | Type | Required | Description |
|---|---|---|---|
| patentId | string | Conditionally | Patent ID(s). At least one of patentId or patentNumber must be provided. Separate multiple values with commas. Max 100 entries. |
| patentNumber | string | Conditionally | Publication/announcement number(s). At least one of patentId or patentNumber must be provided. Separate multiple values with commas. Max 100 entries. |
| replaceByRelated | string | No | Whether to substitute with a family patent PDF when the original is unavailable. 1 = yes, 0 = no. Defaults to no substitution. |
How to Choose the Right Identifier
- Patent ID (
patentId): An internal numeric identifier within the Zhihuiya system. Use this when the user provides Zhihuiya-specific IDs. - Publication Number (
patentNumber): The public-facing patent number (e.g.,US20230012345A1,CN115000000A). Use this when the user provides standard patent numbers.
Response Fields
| Field | Description |
|---|---|
| total | Number of records returned |
| data | Array of patent objects, each containing download information |
| data[].patentId | The patent ID |
| data[].pn | The publication/announcement number |
| data[].pdfPath | The PDF full-text download URL |
| data[].pnRelated | Publication number of the substitute family patent (only present when family substitution is used) |
| costToken | Tokens consumed by the request |
How to call
- API endpoint:
POST /zhihuiya/pdfData(for full parameters/responses/error codes, seereferences/api.md) - Python script:
python scripts/zhihuiya_pdf_data.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, page through, 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 complete response to
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-zhihuiya-pdf-data-<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, and if the current directory is not writable, report an error) - Response body ≤ 8 KB: after writing to disk, print the complete 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 to use 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。 - is also not configured
- Response prompts 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.
Usage Examples
1. Single Patent by Publication Number
Retrieve the PDF for patent publication number US20230012345A1.
Parameters: {"patentNumber": "US20230012345A1"}
2. Multiple Patents by Publication Number
Download PDFs for CN115000000A, CN115000001A, and CN115000002A.
Parameters: {"patentNumber": "CN115000000A,CN115000001A,CN115000002A"}
3. Single Patent by Patent ID
Get the full-text PDF for patent ID 12345678.
Parameters: {"patentId": "12345678"}
4. With Family Substitution Enabled
Download the PDF for EP4000000A1. If it is unavailable, use a family patent PDF instead.
Parameters: {"patentNumber": "EP4000000A1", "replaceByRelated": "1"}
5. Batch Download by Patent IDs
Retrieve PDFs for patent IDs 11111111, 22222222, 33333333.
Parameters: {"patentId": "11111111,22222222,33333333"}
Display Rules
- Present download links clearly: For each patent, show the publication number and its PDF download link in a clean table or list format.
- Highlight substitutions: If a PDF was provided via family patent substitution, explicitly note this and show the
pnRelatedvalue so the user knows which family patent was used. - Batch results: When multiple patents are returned, present them in a table with columns: Publication Number, Patent ID, PDF Link, and Substitution Note (if applicable).
- Error handling: When a query fails or returns no results, explain the reason and suggest the user verify the patent ID or publication number. If
replaceByRelatedwas not enabled, suggest enabling it as an alternative. - No PDF available: If a patent entry is returned without a
pdfPath, inform the user that the PDF is not available and suggest enabling family substitution.
Important Limitations
- Batch limit: A maximum of 100 patents per request.
- Identifier requirement: At least one of
patentIdorpatentNumbermust be provided; the request will fail if both are empty. - Priority rule: When both identifiers are provided,
patentIdtakes precedence overpatentNumber. - PDF availability: Not all patents have PDFs available. Use the
replaceByRelatedoption to fall back to family patents.
User Expression & Scenario Quick Reference
Applicable -- Patent PDF document retrieval tasks:
| User Says | Scenario |
|---|---|
| "Download the PDF for patent XX" | Single patent PDF retrieval |
| "Get full-text documents for these patents" | Batch patent PDF download |
| "I need the PDF for publication number XX" | Lookup by publication number |
| "Can I get the patent document even if it's not directly available" | Family substitution scenario |
| "Batch export patent PDFs" | Multi-patent batch download |
Not applicable -- Needs beyond patent PDF retrieval:
- Patent search or discovery (finding patents by keyword, assignee, etc.)
- Patent citation or legal status analysis
- Patent claim interpretation or translation
- Patent portfolio analytics or landscape mapping
Compute consumption rules
Billed according to dynamic rules: compute consumed = 81 × number of returned data entries. Each entry is 1 patent PDF 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.