ODK-X documentation

The ODK-X Tool Suite is free and open-source software for collecting, managing, and using data in resource-constrained environments.

In ODK-X, developers and data managers can create data management applications that consist of survey forms as well as Javascript-based apps. These allow you to render a fully customizable user interface to gather, manage, and visualize data on an Android device.

A major goal of these ODK-X tools was to eliminate the need for any software engineering skills (for example: Java programming, Android software development environment, source code version control systems) when designing data management applications. The skills required to build a data management application range from scripting a form definition in XLSX (similar to constructing ODK Collect forms using XLSX files processed by the XLSForm tool), to simple web programming – modifying boilerplate HTML and JavaScript for custom presentations of the collected data. Advanced web programmers can also easily implement entirely custom web pages.

Key features

Two-way data sync

A two-way synchronization protocol allows you to create data management applications with:

  • Follow-up surveys and repeat data collection locations

  • Pre-filled forms for faster data collection

  • Data can be synced to all devices from the server through manual trigger by the user, by clicking the sync button.

Offline data collection

Allows users to collect data without an internet connection. Form data can be synced to the server when the user has internet access.

Linked and embedded surveys

ODK-X tools enable you to open and edit other surveys with links back to the originating survey. Create a sub-form (nested) relationship among surveys (for example: household and household-member) or relational links across your data (for example: tea-houses and tea-types).

View data on device

Investigate and visualize entire datasets directly on the device through graphical, map, tabular displays, and filtered views.

User access control

Control data viewing, editing and deleting privileges for different users and groups.

Customizable survey flows and appearance

Use basic web development (HTML, JavaScript, and CSS) to specify the layout of nearly all the screens viewed by the data collectors.

List of Tools

The ODK-X Tool Suite consists of:

  • ODK-X Survey - a customizable data collection application.

  • ODK-X Tables - a data curation and visualization application that can also run custom-built data collection workflows.

  • ODK-X Services - an application for user authentication and data synchronization between the ODK-X applications.

  • ODK-X Cloud Endpoints - a cloud server to host data and application files, and to support bi-directional data synchronization across mobile devices.

  • ODK-X Suitcase - a desktop tool for synchronizing data with a cloud endpoint.

  • ODK-X Application Designer - a design environment for creating, customizing, and previewing your forms, data curation, and visualization applications. This is where you build your ODK-X applications.


ODK-X mobile applications are available for Android devices only.

Selecting the Right Tools to Use

The ODK-X tools can operate independently – you are not required to use all the tools, or even install them on your device. Some example tool combinations are:

Field data collection

  • ODK-X Application Designer: data collection form creation

  • ODK-X Survey: data collection

  • ODK-X Services: data sync and database access

  • ODK-X Cloud Endpoints: data and application files cloud server

Data sharing and visualization

  • ODK-X Tables: data display and visualization

  • ODK-X Services: data sync and database access

  • ODK-X Cloud Endpoints: data and application files cloud server

See Example Applications for examples of ODK-X tools in use.

Trying It Out

The Trying Out ODK-X Survey walks you through the process of using a basic survey-focused application and submitting data to the server. The Trying Out ODK-X Tables walks you through the process of using a basic tables-focused application and submitting data to the server.