Application Structure API

Purpose: get either a specific application or a list of applications for a project, with their module, form, and case schemata. Includes support for linked applications. 

Base URL: https://www.commcarehq.org/a/[domain]/api/[version]/application/[app_id]

  • omit app_id in URL to retrieve list of applications

Input parameters:

  • extras: if true, includes a dump of application data; else, does not include additional data.

Output description:

The output of the API in the "objects" field is a list of configurations for your applications. Each one has a list of its modules with all case properties and forms.

  • name: The name of the application

  • version: The application version (build number)

  • modules: This is a list of the modules with their forms, case type, and case properties

    • case_type: The case type for the enclosing module

    • case_properties: The names of all properties for the case type for the enclosing module

    • forms: A list of all forms for the module

      • questions: A list of the schema for each question of the module

  • versions: This is a list of app versions (builds) which have been created from this application.

  • other application data, if extras is set to true.

 

Sample JSON Output:

JSON Format
{ meta: { limit: 20, next: null   offset: 0,   previous: null,   total_count: 4  },   objects: [ { id: "app uuid", build_on: null, build_comment: null, is_released: false, version: 16, built_from_app_id: null name: "My application", case_types: { type_of_case_from_app_builder: [ "case_prop1", "case_prop2", ... ] }, modules: [ { case_type: "type_of_case_from_app_builder",   forms: [ { name: { en: "Name in English",   es: "Nombre en Español", ... }, questions: [ { label: "The question", repeat: "",   tag: "input",   value: "/name_in_english/the_question" }, ... ] } ], versions: [ { id: "app version uuid", build_on: "2017-01-30T19:53:20", build_comment: "", is_released: true, version: 16 } ... ] } }