Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Plumage is an open source library to obtain trademark status and other information from the United States Patent & Trademark Office's (PTO) Trademark Status & Document Retrieval (TSDR) system. It takes as input either a registration number or application serial number, fetches the corresponding XML data from the PTO's TSDR website, and returns a dictionary of data associated with the specified TSDR entry.

Plumage currently has two implementations, each independent of the other and each in its own repository:

Pick whichever implementation fits your needs. Both implementations incorporate the ST66.xsl and ST96.xsl XSLT files maintained in this repository.

Plumage provides the following data:

  • Status information: dozens of individual data items about the status of the registration application, including application and registration numbers and dates; applicant and representative contact information, historical data on all events recorded in the application; and history of any recorded assignments.
  • Image data: full-size and thumbnail images of the trademark.
  • XML data: the full XML data provided by the USPTO, if you application needs to process the XML beyond the data supplied by Plumage.
  • ZIP file: all data provided by the USPTO.
  • CSV data: the same information provided in the dictionary, represented as comma-separated values, suitable for importation into a spreadsheet program such as Apache OpenOffice, LibreOffice, or Excel, or any other program that processes CSV data.

Plumage supports both ST.66 and ST.96 format files provided by the USPTO. Most of the extraction logic is performed using XSLT. By default, it determines the XML format and extracts data using the appropriate supplied XSLT transform. A developer can override this by supplying her own XSLT file (either a modification of the standard transforms, or a completely new transform). This may be desirable to adapt to changes made by the USPTO, or to extract additional data elements not currently provided by Plumage.

For documentation, please see the Plumage wiki.

Plumage is open source, licensed under ASL V2.0 (code) and CC BY-SA 3.0 (documentation).


Obtain trademark status information from USPTO's TSDR system (common files and documentation)







No packages published