USPTO · Capability
USPTO Patent & Trademark API — Patents
USPTO Patent & Trademark API — Patents. 3 operations. Lead operation: Search patent applications. Self-contained Naftiko capability covering one Uspto business surface.
What You Can Do
GET
Searchpatentapplications
— Search patent applications
/v1/patent/applications/search
GET
Getpatentapplication
— Get patent application details
/v1/patent/applications/{applicationnumber}
GET
Getgrantedpatent
— Get a granted patent
/v1/patent/grants/{patentnumber}
MCP Tools
search-patent-applications
Search patent applications
read-only
idempotent
get-patent-application-details
Get patent application details
read-only
idempotent
get-granted-patent
Get a granted patent
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: USPTO Patent & Trademark API — Patents
description: 'USPTO Patent & Trademark API — Patents. 3 operations. Lead operation: Search patent applications. Self-contained
Naftiko capability covering one Uspto business surface.'
tags:
- Uspto
- Patents
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
USPTO_API_KEY: USPTO_API_KEY
capability:
consumes:
- type: http
namespace: patent-patents
baseUri: https://data.uspto.gov/api/v1
description: USPTO Patent & Trademark API — Patents business capability. Self-contained, no shared references.
resources:
- name: patent-applications-search
path: /patent/applications/search
operations:
- name: searchpatentapplications
method: GET
description: Search patent applications
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: query
in: query
type: string
description: Keyword search query
- name: inventor
in: query
type: string
description: Inventor name (last name, first name)
- name: assignee
in: query
type: string
description: Assignee/applicant company name
- name: filingDateStart
in: query
type: string
description: Filing date range start
- name: filingDateEnd
in: query
type: string
description: Filing date range end
- name: cpcClassification
in: query
type: string
description: CPC (Cooperative Patent Classification) code
- name: patentType
in: query
type: string
- name: status
in: query
type: string
- name: offset
in: query
type: integer
- name: limit
in: query
type: integer
- name: patent-applications-applicationNumber
path: /patent/applications/{applicationNumber}
operations:
- name: getpatentapplication
method: GET
description: Get patent application details
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: applicationNumber
in: path
type: string
description: USPTO application number (e.g., 16123456)
required: true
- name: patent-grants-patentNumber
path: /patent/grants/{patentNumber}
operations:
- name: getgrantedpatent
method: GET
description: Get a granted patent
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: patentNumber
in: path
type: string
description: USPTO patent number (without US prefix)
required: true
authentication:
type: apikey
key: X-API-KEY
value: '{{env.USPTO_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: patent-patents-rest
port: 8080
description: REST adapter for USPTO Patent & Trademark API — Patents. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/patent/applications/search
name: patent-applications-search
description: REST surface for patent-applications-search.
operations:
- method: GET
name: searchpatentapplications
description: Search patent applications
call: patent-patents.searchpatentapplications
with:
query: rest.query
inventor: rest.inventor
assignee: rest.assignee
filingDateStart: rest.filingDateStart
filingDateEnd: rest.filingDateEnd
cpcClassification: rest.cpcClassification
patentType: rest.patentType
status: rest.status
offset: rest.offset
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/patent/applications/{applicationnumber}
name: patent-applications-applicationnumber
description: REST surface for patent-applications-applicationNumber.
operations:
- method: GET
name: getpatentapplication
description: Get patent application details
call: patent-patents.getpatentapplication
with:
applicationNumber: rest.applicationNumber
outputParameters:
- type: object
mapping: $.
- path: /v1/patent/grants/{patentnumber}
name: patent-grants-patentnumber
description: REST surface for patent-grants-patentNumber.
operations:
- method: GET
name: getgrantedpatent
description: Get a granted patent
call: patent-patents.getgrantedpatent
with:
patentNumber: rest.patentNumber
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: patent-patents-mcp
port: 9090
transport: http
description: MCP adapter for USPTO Patent & Trademark API — Patents. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: search-patent-applications
description: Search patent applications
hints:
readOnly: true
destructive: false
idempotent: true
call: patent-patents.searchpatentapplications
with:
query: tools.query
inventor: tools.inventor
assignee: tools.assignee
filingDateStart: tools.filingDateStart
filingDateEnd: tools.filingDateEnd
cpcClassification: tools.cpcClassification
patentType: tools.patentType
status: tools.status
offset: tools.offset
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: get-patent-application-details
description: Get patent application details
hints:
readOnly: true
destructive: false
idempotent: true
call: patent-patents.getpatentapplication
with:
applicationNumber: tools.applicationNumber
outputParameters:
- type: object
mapping: $.
- name: get-granted-patent
description: Get a granted patent
hints:
readOnly: true
destructive: false
idempotent: true
call: patent-patents.getgrantedpatent
with:
patentNumber: tools.patentNumber
outputParameters:
- type: object
mapping: $.