Codesearch API

Happy to announce that the CodeSearch API is now alive and kicking for those who wish to use it. The details are included below.

Example calls,

<b>JSON</b>

http://searchco.de/api/codesearch_I/?q=%23define
http://searchco.de/api/codesearch_I/?q=IO::pipe
http://searchco.de/api/codesearch_I/?q=goto%20lang:perl
http://searchco.de/api/codesearch_I/?q=test%20lang:perl&p=1

<b>JSONP</b>

http://searchco.de/api/jsonp_codesearch_I/?q=%23define&callback=CALLBACK
http://searchco.de/api/jsonp_codesearch_I/?q=IO::pipe&callback=CALLBACK
http://searchco.de/api/jsonp_codesearch_I/?q=goto%20lang:perl&callback=CALLBACK
http://searchco.de/api/jsonp_codesearch_I/?q=test%20lang:perl&p=1&callback=CALLBACK

Parameters are,

q = query
p = page

The return results are pretty self explanatory, except that they include a modeltype which indicates what sort of match it was, the types being

exactmatch, closematch, regexexact, regexclose

They allow you to highlight lines. Exact match means you entered a non regex IE not wrapped in / and there are exact matches. Close match means it couldn’t find anything exact and reverted to a loose match. Same with regexexact and regexclose except the first uses an exact regex match.

The other important part is the below,

Page = The page is just the page you are on.
Total = total number of results. You are limited to browsing 1000 though (just like Google)
Query = the exact query passed in
Matchterm = what we match on IE ignoring the lang: and ext: syntax
Regex = if its a regex search this is the regex used to match
Generalregex = loose matching regex for close matches
Nextpage = if there is a next page will have the id of the next page
Previouspage = if there is a previous page IE not on 0 will point at the previous page
Cs = Used internally, but just indicates its a code search

“page”: 0,
“total”: “1000”,
“query”: “/test/ lang:perl”,
“matchterm”: “/test/”,
“generalregex”: “/test/i”,
“regex”: “/test/”,
“nextpage”: 1,
“previouspage”: null,
“cs”: true

That should be enough to get you started. There are examples of how to call this in the <a href=”https://github.com/duckduckgo/zeroclickinfo-spice”>DuckDuckGo spice project</a>. If you do use this I would love to get a link so I can display it here, and a link back would be nice.