{{ _('CKAN Data API') }}

{{ _('Access resource data via a web API with powerful query support') }}. Further information in the {{ h.api_doc_link() }}.

{{ _('Endpoints') }} »

{{ _('The Data API can be accessed via the following actions of the CKAN action API.') }}

{{ _('Create') }} {{ datastore_root_url }}/datastore_create
{{ _('Update / Insert') }} {{ datastore_root_url }}/datastore_upsert
{{ _('Query') }} {{ datastore_root_url }}/datastore_search
{{ _('Query (via SQL)') }} {{ datastore_root_url }}/datastore_search_sql
{{ _('Querying') }} »
{{ _('Query example (first 5 results)') }}

{{ datastore_root_url }}/datastore_search?resource_id={{resource_id}}&limit=5

{{ _('Query example (results containing \'jones\')') }}

{{ datastore_root_url }}/datastore_search?resource_id={{resource_id}}&q=jones

{{ _('Query example (via SQL statement)') }}

{{sql_example_url}}

{{ _('Example: Javascript') }} »

{{ _('A simple ajax (JSONP) request to the data API using jQuery.') }}

  var data = {
    resource_id: '{{resource_id}}', // the resource id
    limit: 5, // get 5 results
    q: 'jones' // query for 'jones'
  };
  $.ajax({
    url: '{{ datastore_root_url }}/datastore_search',
    data: data,
    dataType: 'jsonp',
    success: function(data) {
      alert('Total results found: ' + data.result.total)
    }
  });
{{ _('Example: Python') }} »
import urllib
url = '{{ datastore_root_url }}/datastore_search?limit=5&q=title:jones'
fileobj = urllib.urlopen(url)
print fileobj.read()