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
}
...
]
}
}