API Documentation

Marker API V2 has 4 different API endpoints: Serial Number Search, Trademark Search, Description Search, and Expiration Search.

The Serial Number API endpoint returns one record per search and includes all registration data for the trademark.

The Trademark Search API endpoint allows for either exact match or wildcard searching using asterisks for wildcards. The trademark search can return trademarks of all statuses (pending, active, expired) or only active trademarks by setting "status" to "all" or "active".

The Description Search API endpoint searches the goods/services description and performs a wildcard search within the trademark descriptions. The description search can return trademarks of all statuses (pending, active, expired) or only active trademarks by setting "status" to "all" or "active".

The Expiration Search API endpoint searches for expiring trademarks within a given, future, time frame ("6 months", "1 year", etc).

All API endpoints implement paging for faster API responses with large result sets with 100 results per page. When a response has more results than what is returned the "next" key is set in the response. The next key is an integer that you should use as your "start" parameter in your next API call to see the next page. You should send all the same parameters (search, status, etc) but change the start parameter for each subsequent page request.

The data returned consists of:
  1. serial number
  2. trademark
  3. goods and services code
  4. description
  5. status code
  6. status
  7. status description
  8. owner and address
  9. filing date
  10. registration date

How do I use the API?

Requirements
You must have an active API subscription.
Serial Number Search API URL
https://www.markerapi.com/api/v2/trademarks/serialnumber/serial number/username/api username/password/api password
Trademark Search API URL
https://www.markerapi.com/api/v2/trademarks/trademark/search term/status/active or all/start/an integer/username/api username/password/api password

Search term can include asterisks for wildcard search

Description Search API URL
https://www.markerapi.com/api/v2/trademarks/description/search term/status/active or all/start/an integer/username/api username/password/api password

Search term should not include asterisks but will be handled as a "*search*" wildcard search

Expiration Search API URL
https://www.markerapi.com/api/v2/trademarks/expiring/6 months/start/an integer/username/api username/password/api password

Expiring parameter can be in the form of "6 months", "1 year", "90 days", etc.

PHP Trademark Search
$search = "starbucks";

//"active" or "all"
$status = "active";

//a new search should start at 1
$start = 1;

//see marker function below
$aryTrademarks = marker($search, $status, $start);

foreach($aryTrademarks as $trademark){
	$str =  $trademark["serialnumber"]." ".$trademark["trademark"]. " ".$trademark["description"]." ".$trademark["gscode"]." ".$trademark["regdate"]."
"; echo $str; } function marker($search, $status, $start){ //initialize curl $curl = curl_init(); $username = ""; $password = ""; //create a url with your search term, username, and password $url = "https://dev.markerapi.com/api/v2/trademarks/trademark/".urlencode($search)."/status/{$status}/start/{$start}/username/{$username}/password/{$password}"; //set curl options curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //perform curl and return json decoded results $response = json_decode(curl_exec($curl)); //if there were trademarks returned if($response->count > 0) { //loop through returned trademarks foreach($response->trademarks as $trademark) { //serial number $serialnumber = $trademark->serialnumber; //trademark name $wordmark = $trademark->wordmark; //trademark description $description = $trademark->description; //goods and services code $code = $trademark->code; //registration date $registrationdate = $trademark->registrationdate; $aryAllTrademarks[] = array("serialnumber" => $serialnumber, "trademark" => $wordmark, "description" => $description, "gscode" => $code, "regdate" => $registrationdate); } if(array_key_exists("next", $response)){ $aryAllTrademarks = array_merge($aryAllTrademarks, marker($search, $status, $response->next)); } return $aryAllTrademarks; } }
requires API subscription w/ username and password