apyhub
DATA EXTRACTION

US Patent & Trademark Assignments API

What it does

US IP Search & Ownership Transfer covers the parts of USPTO data that span both patents and trademarks: cross-domain search, ingestion readiness, and patent ownership-transfer history.

/search/unified runs a single query across all three underlying datasets at once — patent metadata, full-text patent sections, and trademark records — and returns a blended, ranked result set. Each hit includes an entity_type (patent_text, patent_metadata, or trademark) and a payload shaped to match, plus a components object breaking down how many results came from each source. Use this when you don't yet know whether what you're looking for is a patent or a trademark, or when you want one search box to cover both.

/assignments/status is a lightweight, read-only readiness check for assignment data: it reports whether the patent_assignments and trademark_assignments tables exist, current row counts, and references to the underlying raw archive files. It's useful for monitoring checks and ingestion guards before downstream jobs depend on assignment coverage being present.

/assignments/patent/search searches recorded patent assignment transfers by name, company, or patent/application identifier, with optional recorded-date filtering. Each result includes assignee_name, assignor_name, recorded_date, conveyance_text, and reel_frame — the patent-side counterpart to the trademark assignment search in the Trademark Intelligence API.

Use this API when your workflow genuinely spans both patent and trademark data — unified discovery tools, ingestion monitoring, or patent ownership diligence — rather than when you're working exclusively within one domain. All responses include attribution metadata for source and licensing tracking.

▣ ENDPOINT 02 / 03
GET
Get US Assignment Status
https://api.eu.apyhub.com/dosvak/unified-uspto-search/api/v1/uspto/assignments/status

QUICKSTART

GUIDE

Quickstart

This GET call checks the USPTO assignment status and returns the current status plus related tables and archive metadata.

curl -X GET "https://api.eu.apyhub.com/dosvak/unified-uspto-search/api/v1/uspto/assignments/status" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with these top-level fields: status is a string, tables is an object with patent_assignments and trademark_assignments sub-objects, attribution is an array of attribution objects, and raw_archives is an object listing archive file arrays.

{
  "status": "ready",
  "tables": {
    "patent_assignments": { "rows": 0, "exists": false },
    "trademark_assignments": { "rows": 0, "exists": false }
  },
  "attribution": [],
  "raw_archives": {
    "patent_assignment_files": [],
    "trademark_assignment_files": []
  }
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Retrieves the current US assignment status as a JSON object. The response includes a status string, a tables object with summary information for patent and trademark assignments, an attribution array, and a raw_archives object listing archive files.

Response

Returns a JSON object with status (string), tables (object), attribution (array), and raw_archives (object) fields. The response describes the assignment status and related dataset metadata; the schema does not define a separate success status code.

ParameterTypeMandatoryDescription
statusStringNoStatus string for the assignment status response. Example: ready.
tablesObjectNoSummary table metadata for assignment datasets. Contains patent_assignments and trademark_assignments objects, each with rows and exists fields.
tables.patent_assignmentsObjectNoPatent assignment table summary. Contains rows and exists.
tables.patent_assignments.rowsIntegerNoNumber of rows in the patent assignments table.
tables.patent_assignments.existsBooleanNoWhether the patent assignments table exists.
tables.trademark_assignmentsObjectNoTrademark assignment table summary. Contains rows and exists.
tables.trademark_assignments.rowsIntegerNoNumber of rows in the trademark assignments table.
tables.trademark_assignments.existsBooleanNoWhether the trademark assignments table exists.
attributionObject ArrayNoAttribution entries for the response data. Each item includes url, notice, source, dataset, and license.
attribution[].urlStringNoAttribution URL. Format: URI.
attribution[].noticeStringNoAttribution notice text.
attribution[].sourceStringNoSource name.
attribution[].datasetStringNoDataset name.
attribution[].licenseStringNoLicense text.
raw_archivesObjectNoRaw archive file references for patent and trademark assignments. Contains patent_assignment_files and trademark_assignment_files.
raw_archives.patent_assignment_filesString ArrayNoList of patent assignment archive file paths or names.
raw_archives.trademark_assignment_filesString ArrayNoList of trademark assignment archive file paths or names.

Parameters

No parameters.
▣ ENDPOINT 03 / 03
GET
Search US Patent Assignments
https://api.eu.apyhub.com/dosvak/unified-uspto-search/api/v1/uspto/assignments/patent/search

QUICKSTART

GUIDE

Quickstart

Search patent assignments for a company name like Tesla using the required query parameter.

curl -X GET "https://api.eu.apyhub.com/dosvak/unified-uspto-search/api/v1/uspto/assignments/patent/search?query=Tesla" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with count as an integer, query as a string, status as a string, results as an array of patent assignment records, end_date and start_date as date strings or null, and attribution as an array of attribution objects.

{
  "count": 1,
  "query": "Tesla",
  "status": "ok",
  "results": []
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Searches US patent assignment records using a required query string, with optional date filters and a limit on the number of results returned. The response includes the search metadata plus an array of matching patent assignment records.

Query Parameter(s)

AttributeTypeMandatoryDescription
limitIntegerNoMaximum number of results to return. Default: 100. Minimum: 1, maximum: 1000.
queryStringYesSearch term. Minimum length: 2. Example: Tesla.
end_dateStringNoEnd of the date range. Format: YYYY-MM-DD or null.
start_dateStringNoStart of the date range. Format: YYYY-MM-DD or null.

Response

Returns a JSON object with count integer, query string, status string, results array, end_date string-or-null, start_date string-or-null, and attribution array fields. The results array contains patent assignment record objects, and attribution contains attribution items.

ParameterTypeMandatoryDescription
countIntegerNoNumber of matching records returned or available.
queryStringNoThe query string used for the search.
statusStringNoResponse status string. Example: ok.
resultsObject ArrayNoArray of patent assignment records. Each item can include patent_id (nullable string), reel_frame (string), source_file (string), assignee_name (string), assignor_name (string), recorded_date (date string), application_id (string), and conveyance_text (string).
end_dateStringNoEnd date included in the response, nullable. Format: YYYY-MM-DD.
start_dateStringNoStart date included in the response, nullable. Format: YYYY-MM-DD.
attributionObject ArrayNoArray of attribution items. Each item can include url (URI string), notice (string), source (string), dataset (string), and license (string).

Query parameters

Name
Type
Description
limitOPTIONAL
integer
DEFAULT 100
queryREQUIRED
string
end_dateOPTIONAL
string
start_dateOPTIONAL
string
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.