package icon

Formulus

Offline-first bespoke data collection apps from Open Data Ensemble
Formulus is the mobile data collection client of the Open Data Ensemble (ODE) platform.

It allows organizations, research teams, and public sector institutions to build their own bespoke data collection applications based on structured forms defined using the JSONForms specification.

Forms and application logic are defined externally, meaning the same Formulus app can host many different data collection projects without requiring app updates.

Key features include:

• Flexible form-based data collection using JSONForms
• Offline-first operation for use in the field
• Secure bi-directional synchronization with an ODE Synkronus server
• Support for complex data structures and validation
• Designed for long-term maintainability and open standards

Formulus is particularly suited for environments where reliable data collection is needed under challenging conditions, such as:

• field research
• public health surveillance
• environmental monitoring
• humanitarian and development projects
• decentralized data collection initiatives

The app requires access to an ODE Synkronus server for synchronization and project management. Organizations typically run their own Synkronus server to host forms, manage users, and collect submitted data.

If you do not yet have access to a Synkronus server but would like to explore the application, a public demonstration environment may be available. See the project website for details.

Formulus is part of the Open Data Ensemble ecosystem, an open-source initiative focused on building interoperable tools for decentralized, standards-based data collection.

Source code and documentation:
https://opendataensemble.org

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 1.2.0 (27) suggested Added on Jul 20, 2026

    x86_64

    This version requires Android 7.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read image files from shared storage
      Allows the app to read image files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • Schedule precisely timed actions
      This app can schedule work to happen at a desired time in the future. This also means that the app can run when you're not actively using the device.
    • use biometric hardware
      Allows the app to use biometric hardware for authentication
    • use fingerprint hardware
      Allows the app to use fingerprint hardware for authentication
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • org.opendataensemble.formulus.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 33 MiB PGP Signature | Build Log

  • Version 1.2.0 (26) - Added on Jul 20, 2026

    x86

    This version requires Android 7.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read image files from shared storage
      Allows the app to read image files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • Schedule precisely timed actions
      This app can schedule work to happen at a desired time in the future. This also means that the app can run when you're not actively using the device.
    • use biometric hardware
      Allows the app to use biometric hardware for authentication
    • use fingerprint hardware
      Allows the app to use fingerprint hardware for authentication
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • org.opendataensemble.formulus.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 34 MiB PGP Signature | Build Log

  • Version 1.2.0 (25) - Added on Jul 20, 2026

    arm64-v8a

    This version requires Android 7.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read image files from shared storage
      Allows the app to read image files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • Schedule precisely timed actions
      This app can schedule work to happen at a desired time in the future. This also means that the app can run when you're not actively using the device.
    • use biometric hardware
      Allows the app to use biometric hardware for authentication
    • use fingerprint hardware
      Allows the app to use fingerprint hardware for authentication
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • org.opendataensemble.formulus.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 33 MiB PGP Signature | Build Log

  • Version 1.2.0 (24) - Added on Jul 20, 2026

    armeabi-v7a

    This version requires Android 7.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read image files from shared storage
      Allows the app to read image files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • Schedule precisely timed actions
      This app can schedule work to happen at a desired time in the future. This also means that the app can run when you're not actively using the device.
    • use biometric hardware
      Allows the app to use biometric hardware for authentication
    • use fingerprint hardware
      Allows the app to use fingerprint hardware for authentication
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • org.opendataensemble.formulus.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 27 MiB PGP Signature | Build Log

  • Version 1.0.1 (5) - Added on Jun 22, 2026

    x86_64

    This version requires Android 7.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read image files from shared storage
      Allows the app to read image files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • Schedule precisely timed actions
      This app can schedule work to happen at a desired time in the future. This also means that the app can run when you're not actively using the device.
    • use biometric hardware
      Allows the app to use biometric hardware for authentication
    • use fingerprint hardware
      Allows the app to use fingerprint hardware for authentication
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • org.opendataensemble.formulus.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 33 MiB PGP Signature | Build Log

  • Version 1.0.1 (4) - Added on Jun 22, 2026

    x86

    This version requires Android 7.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read image files from shared storage
      Allows the app to read image files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • Schedule precisely timed actions
      This app can schedule work to happen at a desired time in the future. This also means that the app can run when you're not actively using the device.
    • use biometric hardware
      Allows the app to use biometric hardware for authentication
    • use fingerprint hardware
      Allows the app to use fingerprint hardware for authentication
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • org.opendataensemble.formulus.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 34 MiB PGP Signature | Build Log

  • Version 1.0.1 (3) - Added on Jun 22, 2026

    arm64-v8a

    This version requires Android 7.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read image files from shared storage
      Allows the app to read image files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • Schedule precisely timed actions
      This app can schedule work to happen at a desired time in the future. This also means that the app can run when you're not actively using the device.
    • use biometric hardware
      Allows the app to use biometric hardware for authentication
    • use fingerprint hardware
      Allows the app to use fingerprint hardware for authentication
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • org.opendataensemble.formulus.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 33 MiB PGP Signature | Build Log

  • New in version 1.0.1
    Initial release of Formulus - offline-first mobile data collection app for field data collection and synchronization.
  • Version 1.0.1 (2) - Added on Jun 22, 2026

    armeabi-v7a

    This version requires Android 7.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read image files from shared storage
      Allows the app to read image files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • Schedule precisely timed actions
      This app can schedule work to happen at a desired time in the future. This also means that the app can run when you're not actively using the device.
    • use biometric hardware
      Allows the app to use biometric hardware for authentication
    • use fingerprint hardware
      Allows the app to use fingerprint hardware for authentication
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • org.opendataensemble.formulus.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 27 MiB PGP Signature | Build Log