USPTO Trademark

FREEMIUM
By Marton Kodok | Updated 23 days ago | Business
Popularity

9.7 / 10

Latency

842ms

Service Level

100%

Health Check

N/A

Back to All Tutorials (3)

USPTO Trademark API - Search trademark & owner database

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](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.

/v1/trademarkSearch endpoint required parameters/v1/trademarkSearch endpoint required parameters

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.

	{
		"count": 250,
		"items": [
			{
				"keyword": "AMAZON REDSHIFT SPECTRUM",
				"registration_number": "6576796",
				"serial_number": "87417228",
				"status_label": "Live/Registered",
				"status_code": "700",
				"status_date": "2021-11-30",
				"status_definition": "REGISTERED",
				"filing_date": "2017-04-19",
				"registration_date": "2021-11-30",
				"abandonment_date": null,
				"expiration_date": "2027-11-30",
				"description": "Position 1 Technological services, namely, data warehousing services; technological services, namely, hosting, managing, provisioning, scaling, administering, maintaining and monitoring databases for others; technological services, namely, software as a service (SAAS) services featuring software for use in database management, data access, data extraction and reporting and query functionality for management of data; technological services, namely, cloud computing featuring software for use in database management and data warehousing; providing temporary use of on-line non-downloadable cloud computing software for use in database management\n\nPosition 2 AMAZON RED SHIFT SPECTRUM\n\n",
				"owners": [
					{
						"index": 1,
						"owner_type": "30",
						"owner_label": "Original Registrant",
						"legal_entity_type": "03",
						"legal_entity_type_label": "Corporation",
						"name": "Amazon Technologies, Inc.",
						"address1": "410 Terry Ave N",
						"address2": "ATTN: Trademarks",
						"city": "Seattle",
						"state": "WA",
						"country": "US",
						"postcode": "98109"
					}
				]
			}
		]
	}

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 projected expiration_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.

**/v1/ownerSearch **endpoint required parameters***/v1/ownerSearch *endpoint required parameters

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:

	{
		"count": 6,
		"items": [
			{
				"name": "NETFLIX STUDIOS, LLC",
				"address1": "5808 W. Sunset Blvd.",
				"address2": null,
				"city": "Los Angeles",
				"state": "CA",
				"country": "US",
				"postcode": "90028",
				"trademarks": [ 338 items here ]
			}
		 ]
	}

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.

/v1/trademarkAvailable endpoint required parameters/v1/trademarkAvailable endpoint required parameters

curl --request GET \
' url [https://uspto-trademark.p.rapidapi.com/v1/trademarkAvailable/amazon](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:

Feel free to reach out to me on Twitter @martonkodok or read my previous posts on medium/@martonkodok