Podio API Documentation

Applications

This area is used to manage application definitions. An application definition, commonly called just an app, is the setup of an application. It consists primarily of a list of fields and secondly of various settings. An app must have at least one field. A field can be one of many different types as listed below:

  • text: A short text field that can hold a text string.
  • number: A field that can hold a single number with decimals. 
  • image: Holds an image.
  • media: An embedded media typically from youtube or similar.
  • date: A interval presented by a start and optional end date and optional time
  • app: A reference to another app item.
  • money: A currency value
  • progress: The progress of an app item. 
  • location: A location in f.ex. Google maps
  • duration: Stores are duration in seconds, but normally presented in hours, minutes and seconds.
  • contact: Reference to a contact, which can be either a user or a space (deprecated) contact.
  • calculation: A calculation based on fields in the same or related apps
  • embed: A list of embeds (links).
  • question: A list of options for the question'
  • file: A list of files matching the configured mimetypes
  • tel: A telephone number

Some fields can be configured to behave in a certain way. The fields with special settings are listed below:

text

{
  "size": Size of the input field, either "small" or "large",
"format": The format of the field, either "plain", "markdown" or "html"
}

app

{
  "referenced_apps": List of ids of the apps that can be referenced,
[
{
"app_id": The id of the referenced app,
"view_id": The id of the view that the items should match
}
],
"multiple": True if multiple references are allowed, false otherwise
}

 

money

{
    "allowed_currencies": List of allowed currencies. The currencies must be a valid ISO 4217 currency (https://en.wikipedia.org/wiki/ISO_4217) represented by 3 letters in uppercase.
}

 

contact

{
"type": The type of contacts this field allows. One of
"space_users" (only members of the workspace),
"all_users" (any user incl. emails etc.),
"space_contacts", (deprecated setting)
"space_users_and_contacts" (deprecated setting allowing a mix of users and space contacts)
}

 

date

{
  "calendar": True if the items should show up in the calendar, false otherwise,
"end": Whether the end date is either "disabled", "enabled" or "required".
"time": Whether the time component is either "disabled", "enabled" or "required",
"color": The color of the events in the calendar. Possible colors: DCEBD8, F7D1D0, DDDDDD, D2E4EB, F7F0C5, E1D8ED, FFD5C2, D1F3EC
}
 

question

{
  "options": The list of options for the question
  [
    {
      "id": The id of the option, only use this for existing options,
      "status": The current status of the option, "active" or "deleted", only use this to delete options,
      "text": The text for the option (required)
    },
    ... (more options)
  ],
  "multiple": True if multiple answers should be allowed, False otherwise
}


category

{
  "options": The list of options for the category
  [
    {
      "id": The id of the option, only use this for existing options,
      "status": The current status of the option, "active" or "deleted", only use this to delete options,
      "text": The text for the option (required),
      "color": The color for the category, if any
    },
    ... (more options)
  ],
  "multiple": True if multiple options should be allowed, False otherwise,
"display": The way the options are displayed on the item, one of "inline", "list" or "dropdown"
}

number

{
  "decimals": The number of decimals displayed
}  

calculation

{
  "script": The script to be used for the calculation. Variables are formatted using the mentions syntax @[Label](Variable),
  "unit": The unit of the result, if any,
"decimals": The number of decimals displayed,
"time": Whether the time component is either "disabled" or "enabled",
"calendar": True if date calculations should appear in the calendar, false otherwise,
  "color": The color of the events in the calendar. Possible colors: DCEBD8, F7D1D0, DDDDDD, D2E4EB, F7F0C5, E1D8ED, FFD5C2, D1F3EC
}

The additional properties are depending on the type:

field

{
  "field_id": The id of the field to receive the value from
}

number

{
  "number": The value of the number
}

reference, outgoing_reference

{
  "reference_field_id": The app reference field,
  "aggregation": The aggregation of the related item, either "sum", "average", "min", "max" and "count",
  "value_field_id": The id of the value field on the related app
}

multiply, divide, plus, minus

{
  "left": The left part of the operation,
"right": The right part of the operation 
}
 

file

{
  "allowed_mimetypes": A list of allowed mimetypes on the form "image/png" or "image/*"
}


duration 

{
"fields": The fields that should be shown in create and edit. Valid options are "days", "hours", "minutes" and "seconds". At least one field must be specified.

The items in an app can be viewed in the following ways:

  • badge
  • table
  • stream
  • calendar
  • card

tel

{

 "strict" : Boolean value that controls if the input should be validated and formatted. If not specified it defaults to False. 

  "display_format": the format used for the fields value. Valid options are "INT", "NAT", "E164", "RFC3966". If not specified it defaults to "INT"

  "default_country_code": the default country code to use when it is not included in the value. Valid options are 

'BD', 'BE', 'BF', 'BG', 'BA', 'BB', 'WF', 'BL', 'BM', 'BN', 'BO', 'JP', 'BI', 'BJ', 'BT', 'JM', 'BW', 'WS', 'BQ', 'BR', 'BS', 'JE', 'BY', 'BZ', 'RU', 'RW', 'RS', 'TL', 'RE', 'PA', 'TJ', 'RO', 'PG', 'GW', 'GU', 'GT', 'GR', 'GQ', 'GP', 'BH', 'GY', 'GG', 'GF', 'GE', 'GD', 'GB', 'GA', 'SV', 'GN', 'GM', 'GL', 'KW', 'GI', 'GH', 'OM', 'IL', 'JO', 'TA', 'KH', 'HR', 'HT', 'HU', 'HK', 'HN', 'AD', 'PR', 'PS', 'PW', 'PT', 'SJ', 'AF', 'IQ', 'LV', 'PF', 'UY', 'PE', 'PK', 'PH', 'TM', 'PL', 'PM', 'ZM', 'EH', 'EE', 'EG', 'ZA', 'EC', 'AL', 'AO', 'SB', 'ET', 'ZW', 'SA', 'ES', 'ER', 'ME', 'MD', 'MG', 'MF', 'MA', 'MC', 'UZ', 'MM', 'ML', 'MO', 'MN', 'MH', 'US', 'MU', 'MT', 'MW', 'MV', 'MQ', 'MP', 'MS', 'MR', 'IM', 'UG', 'MY', 'MX', 'MZ', 'FR', 'AW', 'FI', 'FJ', 'FK', 'FM', '001', 'FO', 'NI', 'NL', 'NO', 'NA', 'VU', 'NC', 'NE', 'NF', 'NG', 'NZ', 'NP', 'NR', 'NU', 'CK', 'CI', 'CH', 'CO', 'CN', 'CM', 'CL', 'CC', 'CA', 'LB', 'CG', 'CF', 'CD', 'CZ', 'CY', 'CX', 'CR', 'PY', 'KP', 'CW', 'CV', 'CU', 'SZ', 'SY', 'SX', 'KG', 'KE', 'SS', 'SR', 'KI', 'TK', 'KN', 'KM', 'ST', 'SK', 'KR', 'SI', 'SH', 'SO', 'SN', 'SM', 'SL', 'SC', 'KZ', 'KY', 'SG', 'SE', 'SD', 'DO', 'DM', 'DJ', 'DK', 'DE', 'YE', 'DZ', 'MK', 'YT', 'TZ', 'LC', 'LA', 'TV', 'TW', 'TT', 'TR', 'LK', 'LI', 'TN', 'TO', 'LT', 'LU', 'LR', 'LS', 'TH', 'TG', 'TD', 'TC', 'LY', 'VA', 'AC', 'VC', 'AE', 'VE', 'AG', 'VG', 'AI', 'VI', 'IS', 'IR', 'AM', 'IT', 'VN', 'AS', 'AR', 'AU', 'AT', 'IO', 'IN', 'AX', 'AZ', 'IE', 'ID', 'UA', 'QA'. If not specified it defaults to None and therefore all values assigned to the field must explicitly specify the country code or else they will not pass validation.

}

both settings are optional.