To use the examples you will need to enter a user id and password. However if you are already logged on to the server you should see your own data.

  • user: api
  • password: api


This API gives you access to data that has been submitted to the server

Service Format Description Version Example
/api/v1/data JSON Get a list of services to retrieve form data 15.12+
/api/v1/data/{key} JSON Get submitted data from a form. {key} is the survey id which can be found in the list of services. 15.12+
/api/v1/data.csv CSV Get a list of services to retrieve form data 15.12+
/api/v1/data.csv/{key} CSV Get submitted data from the specified form in a CSV file. 15.12+


Parameter Description Version Example
start Retrieve data from the specified primary key 15.12+
limit The number of records to retrieve 15.12+
form Retrieve data for a subform. The available forms will be shown when you call /api/v1/data. This call will return the key for the parent form (parkey) so that its data can be combined with that of the main form 17.06+
start_parkey Parent key to start from. Only useful when working with subform data. 17.06+
parkey Use to get a data in a subform that is part of a single record from a parent form. 17.06+
bad Set to "yes" to include records marked as bad in the results. Set to "only" to only return records marked as bad. The default is "none" which will exclude records marked as bad. These include records that have been replaced by editing of the original data. 17.06+
filename CSV only. If not set the default name is (forms.csv when retrieving the list of services) 17.06+
audit Set to "yes" to include audit data. This data is the time in milliseconds that the user took to answer each question 17.07+
And for the sub form
merge_select_multiple Set to "yes" to combine all the selected choices for a select multiple into a single column / Json text property. This parameter only applies to surveys created after version 18.03 which use the compressed format for storing select answers 18.04+
geojson Set to "yes" for the data to be returned in geoJson format rather than the kobo api format. 18.07+


Resources are files used by forms. The following types of resources can be managed through the API:

  1. Media: For example a CSV file that contains choices or a photograph that is used to illustrate a choice in a select one question.


Service Request Type / Format Description Version Example
/surveyKPI/upload/media GET JSON Get a list of the media available in the users current organisation. The response includes URLs to:
  • download the file
  • download a thumb nail
  • delete the file
/surveyKPI/upload/media POST Upload a new file to the organisation. 17.10+ curl -u xxxx -i -X POST -H "Content-Type: multipart/form-data" -F "data=@phone.jpg"


Parameter Description Version Example
survey_id Retrieve a list of files or upload media only for the survey with specified id. You can also use the form field survey_id when posting media. 17.10+

Task List

Service Format Description Version Example
/api/v1/tasks JSON Get a list of tasks 16.03+


Filter Description Version Example
user The user id. (optional) 16.03+

Task Statistics

This service is a Smap specific extension to the kobo api

Service Format Description Version Example
/api/v1/tasks/stats JSON Get statistics on tasks. In version 16.03 and below of the Smap server this only returns data on tasks that have been assigned to a user. 16.03+


Filter Description Version Example
x X axis value. (Required) Alternatives:
  • scheduled
group Group results by this parameter. (Required) Alternatives:
  • status
user The user id. (optional) 16.03+
period Group results by this time interval. (Optional) Alternatives:
  • day
  • month
  • year
  • week