The old export urls

Before there was an API, results were downloaded by adding ?export= and a key to an ordinary search url. Those urls still work, exactly as they always have, byte for byte. They are not going away.

https://publicwww.com/websites/%22angular.min.js%22/?export=csv&key=YOUR_KEY
export=Returns
urlsOne url per line.
csvdomain;rank
csvuurl;rank
csvsnippetsdomain;rank;snippet
csvsnippetsuurl;rank;snippet
clusterSaves the results as a cluster instead of downloading them.

&delimiterColumns= and &delimiterSnippets= change the separators, and https://publicwww.com/profile/api_status.xml?key=... reports the day's usage as XML.

Why they are separate

These urls are the compatibility layer, and keeping them that way is what lets the API be a normal modern one. Their output is pinned byte for byte by a test that runs on every change, so a script written years ago keeps parsing what it has always parsed. Nothing new is added to them.

Moving a script over

The nearest equivalents:

OldNew
?export=csvformat=csv
?export=csvuformat=csv&columns=url,rank
?export=urlsformat=txt
?export=csvsnippetsformat=csv&snippets=1
?export=csvsnippetsuformat=csv&columns=url,rank,snippets&snippets=1
&key=Authorization: Bearer
&delimiterColumns=delimiter=
the query in the url pathquery=, or a JSON body
api_status.xml/v1/account

The columns line up, so a parser usually does not change. What does change is worth having:

One thing does not carry over: filetype:css and filetype:js searches run against a separate older index and work on the website only. Asking for them through the API is 400 unsupported_query rather than a silently empty result.