README.md

Ohloh API Documentation

Welcome

The Ohloh API is a free, REST-based programming interface to the Black Duck Open Hub open source directory. You can use the Ohloh API to create your own applications and web services based on Open Hub data.

Getting Help

This page contains important summary information to help you get started. In-depth online documentation is available, linked by the table of contents below.

Some sample code can be found on the Examples page. For questions not covered in the documenation, the Open Hub API forum can provide additional help.

API Key

Before you can access the Ohloh API, you must register your application and obtain an API key. Bandwidth will initially be limited to 1,000 requests per API key per day.

An API Key should be unique to each application that accesses the Ohloh API. You can register up to five applications.

It is important not to share API keys. In order to access or modify account data, your application must be granted permission by an individual Open Hub account holder. This permission is granted on a per-key basis.

If you have special requirements for additional keys, or if you are interested in building a large-scale application, please contact us at info@openhub.net.

OAuth Impersonation

The standard Ohloh API allows read-only access to Open Hub data.

Using OAuth, you can impersonate an Open Hub account while accessing the Ohloh API. This enables you to write to the Open Hub database, and also to access or modify private account information. You must first be granted permission to do this by an Open Hub account holder.

All XML returned from the Ohloh API will be contained within a root element called <response>, which will always contain a <status> element.

The <status> element will contain either success or failed.

When the <status> value is success, the HTTP response code will be 200, and the <result> element contains the data you requested.

If the status is failed, then the HTTP response code will be set appropriately (usually Bad Request or Not Found), and an <error> element will be present containing human-readable help text. For example:

Details about this project response can be found in the Ohloh API Reference project page.

Collection Requests

Collection Request Parameters

query - Results will be filtered by the provided string. Only items that contain the query string in their names or descriptions will be returned. Filtering is case insenstive. Only alphanumeric characters are accepted. All non-alphanumeric characters will be replaced by spaces. Filtering is not available on all API methods, and the searched text depends on the type of object requested. Check the reference documentation for specifics.

sort - Controls the sort order of the returned results. Typical supported values are name, created_at, and updated_at. The specific sort options available depend on the type of object requested, so check to the reference documentation for specifics. API does not support reverse sorting.

page - In most cases, the Ohloh API returns at most 25 items per request. Pass this parameter to request subsequent items beyond the first page. This parameter is one-based, with a default value of 1. If you pass a value outside the range of available pages, you will receive the first page.

For example, to get the second page of projects containing “java” or “Java” in their titles, descriptions, or tags, you would request:

GET https://www.openhub.net/projects.xml?query=java&page=2

Collection Response XML Format

Some results will contain a collection of values. When this happens, the <response> element will contain some additional elements:

items_returned - The number of items returned in this response.

items_available - The total number of database items matching the query, including those already returned.

first_item_position - The zero-based index of the first item returned

For example, the response to https://www.openhub.net/projects.xml might begin: