Remarkable API V2 End Points

  1. Trademark Search
  2. Description Search
  3. Serial Number Search
  4. Owner Search
  5. Expiration Search

Trademark Search Endpoint

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".

Description Search Endpoint

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".

Serial Number Search Endpoint

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

Owner Search Endpoint

The Owner Search API endpoint searches for trademarks registered by a certain person, group, or company.

Expiration Date Search Endpoint

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

Paging

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.

Response

The data returned consists of:

  1. total count
  2. exact match count
  3. broad match count
  4. trademark results
    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.
Trademark Search API URL
https://api.remarkableapi.com/v2/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://api.remarkableapi.com/v2/trademarks/description/search term/status/active or all/start/an integer/username/api_username/password/api_password

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

Serial Number Search API URL
https://api.remarkableapi.com/v2/serialnumber/serial number/username/api_username/password/api_password
Owner Search API URL
https://api.remarkableapi.com/v2/owner/search term/start/an integer/username/api_username/password/api_password

Search term can include asterisks for wildcard search

Expiration Search API URL
https://api.remarkableapi.com/v2/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 markers function below
$aryTrademarks = markers($search, $status, $start);

foreach($aryTrademarks as $trademark){
	$str =  $trademark["serialnumber"]." ".$trademark["trademark"]. " ".$trademark["description"]." ".$trademark["gscode"]." ".$trademark["regdate"]."
"; echo $str; } function markers($search, $status, $start){ //initialize curl $curl = curl_init(); $username = ""; $password = ""; //create a url with your search term, username, and password $url = "https://markersapi.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, markers($search, $status, $response->next)); } return $aryAllTrademarks; } }