The whole source, organized and ready to query: every endpoint on this page answers in milliseconds. Every response carries
as_of: how current the data is. How datasets work.Search trademarks
POST /us/uspto/trademarks-search/v1 Dataset
One search over the register, by the words of the mark, the owner or the goods and services, narrowed by owner, status, class, country or filing date.
as_of (how current the data is), the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[], most recently filed first. Every trademark carries serial_number (the eight-digit number assigned at filing), registration_number (once registered), mark (its words), mark_types[] (TRADEMARK, SERVICE MARK…), drawing_type, status_code and status as the USPTO words it, is_live and is_registered, the dates filing_date, registration_date, publication_date, abandonment_date, cancellation_date, renewal_date, first_use_date and first_use_in_commerce_date, international_classes[] (Nice classes as three digits, e.g. 009), goods_and_services[] (one entry per class; for the rare mark whose list runs past 100,000 characters each entry is shortened, goods_and_services_truncated is true and goods_and_services_url links the whole list), filing_basis[] (1a use in commerce, 1b intent to use, 44d, 44e, 66a Madrid Protocol), register (PRINCIPAL or SUPPLEMENTAL), owner_names[], owner_entity_type, owner_citizenship, owner_city, owner_state, owner_country, attorney_name, has_assignment (an assignment or a security interest has been recorded against the mark), updated_at (the USPTO’s last update) and official_url (the mark’s page at the USPTO). Fields the register does not state are null.
The copy holds every live mark and every mark filed since 2016, dead or alive. A mark abandoned or cancelled before 2016 that was filed before 2016 is not included.
One trademark
POST /us/uspto/trademark/v1 Dataset
as_of, found, serial_number and trademark. Every trademark carries serial_number (the eight-digit number assigned at filing), registration_number (once registered), mark (its words), mark_types[] (TRADEMARK, SERVICE MARK…), drawing_type, status_code and status as the USPTO words it, is_live and is_registered, the dates filing_date, registration_date, publication_date, abandonment_date, cancellation_date, renewal_date, first_use_date and first_use_in_commerce_date, international_classes[] (Nice classes as three digits, e.g. 009), goods_and_services[] (one entry per class; for the rare mark whose list runs past 100,000 characters each entry is shortened, goods_and_services_truncated is true and goods_and_services_url links the whole list), filing_basis[] (1a use in commerce, 1b intent to use, 44d, 44e, 66a Madrid Protocol), register (PRINCIPAL or SUPPLEMENTAL), owner_names[], owner_entity_type, owner_citizenship, owner_city, owner_state, owner_country, attorney_name, has_assignment (an assignment or a security interest has been recorded against the mark), updated_at (the USPTO’s last update) and official_url (the mark’s page at the USPTO). Fields the register does not state are null.
A serial number the copy does not hold returns
found: false with HTTP 200, not an error.Full reference
Schemas, all response fields, and an interactive playground.