J1X Whois API =========== A simple WHOIS lookup API. Based on the [Whoiz](https://github.com/okor/whoiz) application by [Jason Ormand](http://jasonormand.com/2012/06/10/a-free-whois-api/) and using the [Ruby Whois](http://whoisrb.org/) gem. ## Example Domain Lookup { "domain": "jamesperet.com", "owner": "James Peret", "registrar": "eNom Inc.", "expires_on": "2016-06-07T16:01:00.00Z", "update_on": "2015-05-13 00:00:00 -0300", "registered?": true, "available?": false } ## Accessing the API Provide a **url** for the API and get a nicely formatted *JSON* response with the domain information. #### Browser http://whois.j1x.co http://whois.j1x.co/lookup.json?url=jamesperet.com #### curl curl http://whois.j1x.co/lookup.json?url=jamesperet.com ## Query Options This are the options for querying the API: * ```url``` - The domain url that will be queried. Omit the ```http://www.```. * ```raw=true``` - the *JSON* response will include a *raw* version of the data received by the **registrar** * ```dev=true``` - Only basic information and the *raw* version will be included in the *JSON* response. No parsing will be done with the data. This is useful for **debugging**. Example: http://whois.j1x.co/lookup.json?url=google.com&raw=true ## Install #### Clone git clone git://gitlab.j1x.co/j1x/whois-server.git #### Restrict It Edit ```main.rb```: before do response['Access-Control-Allow-Origin'] = 'http://yourwebsite.com' end Or use ```*``` to allow any website to access the API. #### Deploy It heroku create git push heroku master heroku open ## Domain Support For now the supported domains are: ```.com```, ```.net```, ```.com.br``` and ```.network```. Support for more domains will come in the future. The queries for ```.com.br``` domains usually come with limited information because of the registrar's API call allowance. There is also a bug where some ```.com``` domains return an error (ex: google.com). ## Development Resources #### Tools * [Rubular](http://rubular.com/) - a Ruby regular expression editor #### Articles * [CORS with Angular.js and Sinatra](http://samurails.com/tutorial/cors-with-angular-js-and-sinatra/) * [Introducing rack-cors](http://blog.sourcebender.com/2010/06/09/introducin-rack-cors.html) * [Ruby Regular Expressions](http://www.tutorialspoint.com/ruby/ruby_regular_expressions.htm)