USPTO Trademark API — Search trademark & owner database — part 1
In this article, we will describe how to use USPTO Trademark API service to execute trademark keywords search, owner search, or check if a trademark keyword is available.
USPTO Trademark API is available on RapidAPI Hub, it’s an unofficial REST API for accessing the United States Patent and Trademark Office data.
Description
APIfied instant trademark search. Check if a trademark keyword is available, search trademarks from USPTO, and filter on owner information, and expiration date.
You can execute API calls to retrieve:
- search the trademarks database,
- check trademark availability
- get the registration number, registration date, status, fields, description
- expiration date, along with expiring trademarks
- owner information, and advanced search by company name or postcode.
Authentication
To access APIs listed on RapidAPI Marketplace, you need to have an API key, that you will use in your request header.
USPTO Trademark API is having a freemium subscription model. Subscribing for the BASIC plan lets you explore the endpoints for free. The available plans are available here.
Once you have your API key you can make requests, we recommend using Postman to get started.
Data freshness
Whenever we want to use an unofficial API, we always check how fresh it is, does it have recent additions, is it maintained. The API has a rating of 9.4, an average latency of 1,538ms, and 99% uptime. A huge value of the API, that they have an endpoint where you can check how fresh is their databases, and this comes super helpful. Also on the RapidAPI interface, we have access to the last update date and the changelog/announcements of the service updates.
GET /v1/databaseStatus
From our experience, the database is updated every 3 days or less. For an API service offering trademark service and owner search, having a database that is updated so frequently is really helpful. A lot of other competitors offer desktop solutions, that often are updated only on a quarterly basis.
We will use this first endpoint to demonstrate the use of the service.
curl — request GET \
— url https://uspto-trademark.p.rapidapi.com/v1/databaseStatus \
— header ‘x-rapidapi-host: uspto-trademark.p.rapidapi.com’ \
— header ‘x-rapidapi-key: <api_key_here>’
It returns:
{
"last_update_date": "2022–01–18",
"latest_trademarks": [
{
"keyword": "YUNG BAE",
"registration_number": "6619094",
"status_label": "Live/Registered",
"registration_date": "2022–01–18"
}
...
]
}
Searching for trademarks
The GET /v1/trademarkSearch
endpoint lets you search trademarks by providing a search term and status of active/all.
Returns: trademark name, serial number, services code, status, owner, address, filing date, and registration date.
curl --request GET
--url https://uspto-trademark.p.rapidapi.com/v1/trademarkSearch/amazon/active \
--header 'x-rapidapi-host: uspto-trademark.p.rapidapi.com' \
--header 'x-rapidapi-key: <api_key_here>'
What you see here is, that for the GET request we have two params {keyword
}, and {searchType}
in our example these are amazon, and active.
The output returns at most 250 items using the GET request.
The keyword search it’s an open search so it returns all right matching. A keyword query for amaz, returns amazon, amazon redshift spectrum etc…
By inspecting the response, we see there is a lot of handful information returned, such as:
keyword
attribute,- the
serial_number
, status_label
,registration_date
, and projectedexpiration_date
.- then we have a
description
field - and the
owners
section.
The owner's section returns standard information about who or the company registered the trademark, and also two categorization fields owner_type and legal_entity_type.
Searching for trademarks is also available as a POST
endpoint, which looks more promising, with more params, and also has pagination so it returns a lot more results than the GET endpoint.
Searching for trademark owner's data
The GET /v1/ownerSearch
endpoint does a search on owner name
or postcode
and returns details about the trademarks found for that owner. Duplicate owner results can be returned by this endpoint, especially when an owner had an address change.
You can use literal null
if you don’t want to use a param. So you can either search just for a keyword or just for a postcode or together if you want to filter by both.
This call is really handful if you want to target use cases, where you need to monitor an owner's trademarks and track when they expire, or they need attention.
Returns: owners standard data with address, a list of trademarks that are linked to this owner.
curl --request GET \
--url https://uspto-trademark.p.rapidapi.com/v1/ownerSearch/netflix/null \
--header 'x-rapidapi-host: uspto-trademark.p.rapidapi.com' \
--header 'x-rapidapi-key: <api_key_here>'
What you see here is that the GET request has two optional parameters, {search_keyword}
, and {postcode}
. If you don’t want to use one of the param, you can pass in literal null
string as in our Curl example.
This returns a large response:
The keyword search is not exact, and it’s an open search so it returns all right matching.
By inspecting the response, we see there are a lot of handful information returned, such as standard owners information, then a list of trademarks, which we simplified as the example response returned 338 trademarks in use by Netflix studios at the time of writing. The trademarks structure is the same as the /v1/trademarkSearch
endpoint returns.
Searching for owners is also available as a POST endpoint, which looks more promising, with more params, and also has pagination so it returns a lot more results than the GET endpoint.
Checking if a trademark keyword is available
And last in this article, is probably the most used endpoint of the API, the call where we are able to find if a given keyword is registered or not.
This is super helpful for those marketers who can implement this API endpoint in a tool, where they can check a list of keywords against the registered trademark names to get a response if they are available or in use.
curl --request GET \
— url https://uspto-trademark.p.rapidapi.com/v1/trademarkAvailable/amazon \
— header ‘x-rapidapi-host: uspto-trademark.p.rapidapi.com’ \
— header ‘x-rapidapi-key: <api_key_here>’
A response is straightforward.
[{“keyword”:”amazon”,”available”:”no”}]
Conclusions
USPTO Trademark API available on RapidAPI Marketplace is a great way to interact with REST API to run a trademark keyword search, or owner search, serial, and find out the projected expiration date of trademarks.
The pricing plan is generous, and it’s affordable to small to medium companies who analyze and run various prospects about keywords in the USPTO trademark industry.
In this part I, we have not covered all endpoints, but visit the USPTO Trademark API page for a list of updated endpoints.
Wrap Up
In the meantime, if you want to check it out, here are some previous articles:
- Implementing trademark availability and search — part 2
- Fill in the annual survey for new feedback regarding API.
Feel free to reach out to me on Twitter @martonkodok or read my previous posts on medium/@martonkodok