Here are the obversations I sent to the uspto about their PEDS api.
PEDS api requests from browser pages of mine are blocked in chrome. If you want to allow browser requests from domains other than yours, you will need to add a CORS allows header. This is true for any browser page that tries to call your api from a domain other that yours. Previously I was able to do this using the beta pairbulk api.
In Chrome if you inspect the mousetrap page and view console you'll see this error:
Access to XMLHttpRequest at 'https://ped.uspto.gov/api/queries' from origin 'http://peds.historicip.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Your swagger object took some effort to obtain (using Chrome's inspect). There are opensource projects that use an api's swagger object as input to generate shells of clients in different languages or do other interesting things. I'm trying to get the patentsview api developers to adopt swagger and promote the swagger objects I created for their api. Please read the case I make for it here The same principles would apply to your api's swagger objects.
Also, you are using an older version of swagger-ui. The updated version generates curl commands from user's input. My api usage is web based so it doesn't matter to me but I know another api user of your api that it would benefit. All you would have to do is download the updated ui and use your existing swagger object.
A single US classification is being returned even when a patent has more than one and, alarmingly, no cpcs are returned. They are both present in aptft and patft. For me this is a use case deal breaker. One of my interests in plant patents, about half of which have been assigned cpcs. Each Tuesday I'd like to be able to query the plant patents that were just issued to see which ones have cpcs. This is not possible using your api. I also only receive a single US classification even if the patent has been assigned more than one.
PP25626 has two US classifications and two cpc classifications but the api only returns a single US classification and neither cpc. See http://patft.uspto.gov/netacgi/nph-Parser?patentnumber=PP25626
After May 2015 utility patents stopped begin assigned US classifications yet they are returned by the PEDS api. It returns "nationalSubclass": "356/005010" for pn10,000,000. In patft it shows 1/1 as the US Class and five cpc classes not returned by the api.
Plant and design patents continue to receive US classifications as well as reissued patents of either type.
The api should also allow searches by cpc classification if they are added as a data element.
Check out https://github.com/USPTO/PatentsViewApp it's an opensource mobile app written for the patentsview api. Perhaps its author could create one that would work for your api.
A developer took it upon himself to write an R package for the patentsview api. The development of an R package for your api should be encouraged. It opens the api up to data scientists who are already using R for whatever it is that data scientists do. As an api provider you know you have arrived when someone thinks enough of your api to write an R package and/or a mobile app for it!
Ask 18f to review your api and the comments like these that you receive (https://18f.gsa.gov/)
As a last suggestion, it would be helpful to put a message about the at change at
https://pairbulkdata.uspto.gov/ Otherwise beta api users won't know about the new service unless they email email@example.com as I did when pair bulk stopped responding to requests.
Observations I haven't passed along yet:
- Check out the boolean searching section of the FAQ. It is True that I am about as boolean fluent as a person can be but I must confess that some of the statements
have me stimied. I'll buy that
but I cannot wrap my mind around any of these assertions:
- three plug monomers porous is the same as: three AND plug AND monomers AND porous
I'd like to know where the apple and banana [cake] went in the first three and
where cat or dog went in the fourth (they are missing from the right sides
of the colons). Maybe it's something like this:
"How come when you mix water and flour together you get glue...and then you add eggs and sugar and you get cake? Where does the glue go?" -Rita Rudner
- apple OR banana three plug monomers porous NOT polymer is the same as: (three OR plug OR monomers OR porous) NOT polymer
- +apple +banana three plug monomers porous -polymer is the same as: (three AND plug AND monomers AND porous) NOT polymer
- apple - "banana cake" three plug monomers porous -polymer is the same as: (three OR plug OR monomers OR porous) NOT polymer
- sensor AND (cat OR dog) /n three AND plug AND monomers AND porous NOT polymer is the same as: three AND plug AND monomers AND (porous NOT polymer)" [sic]'s on the stray /n and lone double quote.
(not my typos, merely pointing them out)
- I did a query looking for recently issued patented plants (app type of plant, patented case status, sorted by patent number desc). The first 20 results in the preview did not have
patent numbers and I suspect aren't issued patents.
Paste the curly braces and what's between them into the swagger page's /querys endpoint
to see for yourself.
"qf":"appEarlyPubNumber applId appLocation appType appStatus_txt appConfrNumber appCustNumber appGrpArtNumber appCls appSubCls appEntityStatus_txt patentNumber patentTitle primaryInventor firstNamedApplicant appExamName appExamPrefrdName appAttrDockNumber appPCTNumber appIntlPubNumber wipoEarlyPubNumber pctAppType firstInventorFile appClsSubCls rankAndInventorsList","facet":"true","sort":"patentNumber desc","start":"0"}
I tried the same thing in the query tool. I selected application type of Pant and status of Patented Case. In the download there are only two app ids and no issued patents in
the 2018.json file.
- Their swagger UI page does not model the json response. There are opensource projects that use a swagger object as input and generate clients in a number of languages.
The client's usefulness is lessened since the output is not modeled and output objects cannot be generated. There are opensource projects that will take json and turn it into
a swagger definition. I could do that and add it to a swagger UI page on my own site the but requsts would not work (CORS issue mentioned above).