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 of primarily a list of fields and secondly various settings. An app must have at least one field. A field can be one of many different types as listed below:

  • text: Holds either a single-line short string or a longer multi-line text
  • number: Holds a single numeric value, including decimals
  • image: Holds an uploaded image
  • media: Holds embedded content from web, typically from YouTube or similar sources
  • date: Holds either a date or an interval presented by start and end dates, with optional time entries
  • app: Holds reference links to one or more other app items
  • money: Holds a currency value
  • progress: Represents the progress or completion status of an app item
  • location: Holds a map-based address, for example, from Google Maps
  • duration: Stores time duration in seconds, displayed as hours, minutes, and seconds
  • contact: References a Podio user or a space (deprecated) contact
  • calculation: Computes values based on fields in the same or related apps
  • embed: Holds a list of embeds (links)
  • category: Holds a list of pre-defined selectable options for category
  • file: Holds a list of files matching the configured mimetypes
  • tel: Holds a telephone number
  • separator: Visually divides fields into sections in an app item
  • email: Holds an email address

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
}


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.

 

separator

{
  "mode": "The mode of the separator field, either \"basic\" or \"advanced\"",
  "json_html": "A list of JSON objects representing the HTML structure for the separator's content. Each object contains tag_name, properties, styles, children, and content keys to define the visual appearance and text of the separator."

}