USPTO-PEDS <> is an access to US patent register data <> that allows to download bundles of US register records. In addition it provides an API for automated access to this dataset.

A user manual is available for both the web interface and the API.  The API manual examples are given as command line curl instructions <> and leaves the translation to other options to the reader.

The search options are quite extensive.  I intend to use it mainly for automated monitoring of US applications.

For those of you that wish to interact  with this interface using php <>, i have included an example in curl as in the manual and a possible translation to php below.  The example simply downloads all data related to application number "15/673,346". In the curl example this data will be stored in a local file called "usptotest.json". The php example defines the relevant parameters, sends the request , stores the result in the variable $uspto_result and displays this variable's content.  I leave it up to you to play with the parameters and data.

  • A crucial aspect is to json_encode() the parameters in php.  Alternative methods like url_encode() or http_build_query() do not produce a functioning request.
  • According to the data mapping section of the API manual, it should be possible to submit an application number as 12/345678 or as 12345678.  I have not yet succeeded in getting a response using the 12/345678 format, so please stick to the 12345678 format.  I have not yet tested other fields.

Admin - Tom Wolff : I think this page would be better located somewhere in <Patent Resources> but I could not really decide in which of the subsections it belongs, so I placed it here in the knowledge pages.  Should you, or anyone else, know where this page belongs, please inform me.

In curl:

curl -X POST -H "Content-Type:application/json" -d '{"searchText":"applId:(15673346)","fl":"*","qf":"applId","facet":"false"}' -o usptotest.json

In php:

  $appl_num = '15673346';
  $parameters = array(
    'searchText' => "applId:($appl_num)",
    'fl' => '*',
    'qf' => 'applId',
    'facet' => 'false',

  $uspto_options = array (
    CURLOPT_HTTPHEADER => array('Content-Type:application/json'),
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode($parameters)
  $uspto_channel = curl_init("");
  curl_setopt_array($uspto_channel, $uspto_options);
  if ($uspto_result = curl_exec($uspto_channel)){
    echo '<pre>';print_r(json_decode($uspto_result));echo '</pre>';
  } else {
    echo curl_error($uspto_channel);