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 reports the day's usage as XML. Pass the key in the Authorization: Bearer <your api key> header; the older ?key= form still works but is deprecated, because a key in the address ends up in browser history and server logs.

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:

Next MCP Server