Checking authentication...

Applications

Manage app definitions, fields, and configuration

14 tools

Create App

Write

POST /v1/tools/podio/createApp

Create a new app in a Podio workspace with field definitions. Use podio_getSpacesOnOrganization or podio_getUserStatus to find the space_id. Icon auto-generates if omitted. Field types: text, number, date, category, app, contact, phone, email, embed, image, money, progress, location, duration, separator. NOTE: Do NOT include calculation fields here — they must be added after creation with podio_calculationField because they need to reference other field_ids. Each field needs: { type, config: { label, settings? } }. FIELD ORDERING: Fields are created in the exact order they appear in this array — array position IS the display order (assigned automatically; you do NOT need to set delta or any position value). Just list fields in the order you want them shown. This is critical when using separator fields as section headers — each separator MUST be placed immediately before the fields it groups. FIELD TYPE SELECTION: For text fields, default to size:"small", format:"plain" (single-line) — only use size:"large" when multiple paragraphs are expected (descriptions, notes, comments), and only use format:"html" when rich text formatting is explicitly needed. For addresses/locations, ALWAYS use type:"location" (not text) with structured:false for single-line address input. For the full field settings reference, use viewDocs("podio-field-types").

Parameters

NameTypeRequiredDescription
space_idnumberrequiredSpace ID (from getSpacesOnOrganization, getUserStatus, or platform context)
configobjectrequiredApp configuration. Only "name" is required.
fieldsarrayrequiredArray of field definitions to create with the app. Each field is { type, config: { label, settings? } } — type-specific keys go INSIDE config.settings, never directly on config. Common config.settings by type: category: { options: [{ text: "..." }], multiple: false, display: "dropdown" } (category REQUIRES at least one option); app: { referenced_apps: [{ app_id: N }] }; date: { calendar: true, time: "enabled" }; text: { size: "small"|"large" }; number: { decimals: 2 }; money: { allowed_currencies: ["USD"] }; contact: { type: "space_users" }.
silentbooleanoptionalSuppress notifications

Flags

NameTypeDescription
silentbooleanSuppress notifications

Request

curl -X POST https://api.syncello.io/v1/tools/podio/createApp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "space_id": "123",
  "config": "...",
  "fields": "..."
}'

Response

{
  "app_id": 28471960,
  "link": "https://podio.com/acme-corp/deals"
}

Try It

Try it

Sign in to execute this tool

Create Fields

Write

POST /v1/tools/podio/createFields

Add one or more new fields to an existing Podio app. Additive-only: never updates or removes existing fields — use updateFields for that. Each field requires a type and config.label; settings depend on the type. Returns the server response (includes new field_ids). FIELD ORDERING: New fields are added to the END of the existing app by default. Before adding, call podio_getApp to see the existing fields and their order, then decide where the new field belongs — it does NOT always go at the bottom. If it must sit between existing fields, add it first and then call podio_updateFieldOrder with all field_ids in the desired display order. When adding separator fields as section headers, place them before the data fields they group.

Parameters

NameTypeRequiredDescription
app_idnumberrequiredApp ID to add fields to.
fieldsarrayrequiredNew fields to add. Do NOT include field_id on any entry.
silentbooleanoptional

Request

curl -X POST https://api.syncello.io/v1/tools/podio/createFields \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "app_id": "123",
  "fields": "..."
}'

Response

{
  "app_id": 28471960,
  "fields_added": 2,
  "created_fields": [
    {
      "field_id": 261000006,
      "label": "Probability",
      "external_id": "probability",
      "type": "number"
    },
    {
      "field_id": 261000007,
      "label": "Notes",
      "external_id": "notes",
      "type": "text"
    }
  ],
  "hint": "Use the field_id values above (not labels) when setting field values in createItem/updateItem."
}

Try It

Try it

Sign in to execute this tool

Get App

Read Idempotent

POST /v1/tools/podio/getApp

Get a Podio app schema. Returns compact field summaries by default — use field_id or field_label to get full detail on a specific field. IMPORTANT: Return the absolute minimum data required to fulfill the user's request. If the user mentions a specific field by name, use field_label to fetch only that field. Only fetch the full app when you need to see all fields (e.g., before creating an item). Prefer fields_only over full app response. Prefer field_type="basic" when the task involves creating or updating items (calc fields cannot be written to). Key response fields: field_id (use as key in createItem/updateItem), type (determines value format), config.settings.options (category option IDs).

Parameters

NameTypeRequiredDescription
app_idnumberrequiredApp ID (from platform context, getAppsBySpace, or searchPodio)
field_idnumberoptionalGet single field by ID
field_labelstringoptionalGet single field by label (case-insensitive)
summary_onlybooleanoptionalConfig only, no fields
fields_onlybooleanoptionalFields array only
field_typestringoptionalFilter: all, basic, calculation
include_deletedbooleanoptionalInclude deleted fields in the response (default: false). By default only active fields are returned.

Flags

NameTypeDescription
field_idnumberGet single field by ID
field_labelstringGet single field by label (case-insensitive)
summary_onlybooleanConfig only, no fields
fields_onlybooleanFields array only
field_typestringFilter: all, basic, calculation

Request

curl -X POST https://api.syncello.io/v1/tools/podio/getApp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "app_id": "123"
}'

Response

{
  "app_id": 28471960,
  "config": {
    "name": "Deals",
    "item_name": "Deal",
    "description": "Sales pipeline",
    "type": "standard",
    "default_view": "table",
    "icon_id": 334
  },
  "current_revision": 3,
  "default_view_id": null,
  "fields": [
    {
      "field_id": 261000001,
      "external_id": "company-name",
      "label": "Company Name",
      "type": "text",
      "config": {
        "required": false,
        "settings": {
          "size": "small",
          "format": "plain"
        }
      }
    },
    {
      "field_id": 261000002,
      "external_id": "stage",
      "label": "Stage",
      "type": "category",
      "config": {
        "required": false,
        "settings": {
          "options": [
            {
              "id": 1,
              "text": "Prospect"
            },
            {
              "id": 2,
              "text": "Won"
            }
          ],
          "multiple": false
        }
      }
    },
    {
      "field_id": 261000003,
      "external_id": "deal-value",
      "label": "Deal Value",
      "type": "money",
      "config": {
        "required": false,
        "settings": {
          "allowed_currencies": [
            "USD"
          ]
        }
      }
    }
  ],
  "space_id": 7482910,
  "status": "active"
}

Try It

Try it

Sign in to execute this tool

Get Apps By Space

Read Idempotent

POST /v1/tools/podio/getAppsBySpace

List all apps in a specific workspace. Use when you already know the workspace ID. Use summary_only: true for a smaller response with just app_id and name. To find apps by name, use searchPodio with ref_type: app instead.

Parameters

NameTypeRequiredDescription
space_idnumberrequiredSpace ID (from getSpacesOnOrganization, getUserStatus, or platform context)
summary_onlybooleanoptionalReturn only app_id and name

Flags

NameTypeDescription
summary_onlybooleanReturn only app_id and name

Request

curl -X POST https://api.syncello.io/v1/tools/podio/getAppsBySpace \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "space_id": "123"
}'

Response

[
  {
    "app_id": 28471960,
    "config": {
      "name": "Deals",
      "item_name": "Deal",
      "type": "standard",
      "icon": "334.png",
      "icon_id": 334
    },
    "current_revision": 3,
    "is_default": false,
    "link": "https://podio.com/acme-corp/deals",
    "name": "Deals",
    "space_id": 7482910,
    "status": "active",
    "url_label": "deals"
  }
]

Try It

Try it

Sign in to execute this tool

Update App

Write

POST /v1/tools/podio/updateApp

Update Podio app-level config (name, item_name, description, icon, voting, tasks, etc.). Partial updates supported — only include what you want to change. For field changes use createFields, updateFields, updateFieldOrder, or calculationField.

Parameters

NameTypeRequiredDescription
app_idnumberrequiredApp ID (from getApp, getAppsBySpace, or platform context)
configobjectoptionalApp config properties to change. Only include what you want to update — omitted properties are preserved.
silentbooleanoptionalSuppress notifications
return_full_responsebooleanoptionalReturn full JSON instead of summary

Flags

NameTypeDescription
return_full_responsebooleanReturn full JSON instead of summary
silentbooleanSuppress notifications

Request

curl -X POST https://api.syncello.io/v1/tools/podio/updateApp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "app_id": "123"
}'

Response

{
  "status": "ok",
  "app_id": 28471960,
  "changes": {
    "config_updated": true,
    "fields_added": 0,
    "fields_deleted": 0
  }
}

Try It

Try it

Sign in to execute this tool

Update Fields

Write

POST /v1/tools/podio/updateFields

Safely update fields on a Podio app. Validates every proposed change against the current app state and applies only the safe ones — unsafe operations are reported in the "skipped" bucket with explanations and alternatives. Does NOT accept settings.options directly for category fields; use option_ops instead — removal of options is intentionally not available because it causes irreversible data loss. Each option_ops entry is a SINGLE op object. Shapes: {op:"add", options:[{text:"5", color?:"DCEBD8"}, ...]} to add one or more new options; {op:"rename", option_id:123, text:"New name"} to rename one option; {op:"recolor", option_id:123, color:"E8F0F8"} to recolor one option; {op:"reorder", option_ids:[3,1,2]} to reorder by id. Do NOT put `text` at the op level for "add" — text belongs inside each options[] entry. Do NOT pass the full options list (that would be settings.options, which is refused). For calculation fields, prefer the dedicated calculationField tool. PREREQUISITE: call getApp first to collect field_ids and current option IDs.

Parameters

NameTypeRequiredDescription
app_idnumberrequired
fieldsarrayrequired
silentbooleanoptional

Request

curl -X POST https://api.syncello.io/v1/tools/podio/updateFields \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "app_id": "123",
  "fields": "..."
}'

Response

{
  "app_id": 28471960,
  "applied": [
    {
      "field_id": 261000007,
      "changes": [
        "label"
      ]
    }
  ],
  "skipped": []
}

Try It

Try it

Sign in to execute this tool

Update Field Order

Write

POST /v1/tools/podio/updateFieldOrder

Reorder fields in an app. Pass an array of field_ids in the desired display order. Fields not in the array are appended at the end. Use getApp first to see current field_ids and their order (delta values). Preserves all field config during reordering.

Parameters

NameTypeRequiredDescription
app_idnumberrequiredApp ID (from getApp, getAppsBySpace, or platform context)
field_orderarrayrequiredArray of field IDs in the desired display order. Fields not included are appended at the end. Get current field IDs from getApp.
silentbooleanoptionalSuppress notifications

Flags

NameTypeDescription
silentbooleanSuppress notifications

Request

curl -X POST https://api.syncello.io/v1/tools/podio/updateFieldOrder \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "app_id": "123",
  "field_order": "..."
}'

Response

{
  "app_id": 28471960,
  "app_name": "Deals",
  "fields_reordered": 3,
  "new_order": [
    {
      "field_id": 261000001,
      "label": "Company Name",
      "delta": 0
    },
    {
      "field_id": 261000002,
      "label": "Stage",
      "delta": 1
    },
    {
      "field_id": 261000003,
      "label": "Deal Value",
      "delta": 2
    }
  ]
}

Try It

Try it

Sign in to execute this tool

Get App Dependencies

Read Idempotent

POST /v1/tools/podio/getAppDependencies

Get apps that this app's relationship fields point TO. For example, if Projects has a "Client" relationship field pointing to Clients, getAppDependencies(Projects) returns [Clients]. Use getAppInverseDependencies for the reverse direction.

Parameters

NameTypeRequiredDescription
app_idnumberrequiredApp ID (from getApp, getAppsBySpace, or platform context)

Request

curl -X POST https://api.syncello.io/v1/tools/podio/getAppDependencies \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "app_id": "123"
}'

Response

{
  "apps": [
    {
      "app_id": 28460003,
      "config": {
        "icon": "251.png",
        "icon_id": 251,
        "item_name": "Contact",
        "name": "Contacts",
        "type": "standard"
      },
      "current_revision": 12,
      "is_default": false,
      "item_name": "Contact",
      "link": "https://podio.com/acme-corp/contacts",
      "name": "Contacts",
      "space_id": 7482910,
      "status": "active",
      "url": "https://podio.com/acme-corp/contacts",
      "url_label": "contacts"
    }
  ],
  "dependencies": {}
}

Try It

Try it

Sign in to execute this tool

Get App Inverse Dependencies

Read Idempotent

POST /v1/tools/podio/getAppInverseDependencies

Get apps that have relationship fields pointing TO this app. For example, if Projects has a "Client" relationship field pointing to Clients, getAppInverseDependencies(Clients) returns [Projects]. Useful for finding what would break if you delete this app.

Parameters

NameTypeRequiredDescription
app_idnumberrequiredApp ID (from getApp, getAppsBySpace, or platform context)

Request

curl -X POST https://api.syncello.io/v1/tools/podio/getAppInverseDependencies \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "app_id": "123"
}'

Response

{
  "dependent_apps": [
    {
      "app_id": 28471960,
      "field_id": 261000009
    }
  ]
}

Try It

Try it

Sign in to execute this tool

Update App Order

Write

POST /v1/tools/podio/updateAppOrder

Reorder apps in a workspace. Pass a complete array of app_ids in the desired display order. Apps not in the array keep their relative position. Use getAppsBySpace first to get current app_ids.

Parameters

NameTypeRequiredDescription
space_idnumberrequiredSpace ID (from getSpacesOnOrganization, getUserStatus, or platform context)
app_idsarrayrequiredComplete array of app IDs in the desired display order. Get current IDs from getAppsBySpace.

Request

curl -X POST https://api.syncello.io/v1/tools/podio/updateAppOrder \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "space_id": "123",
  "app_ids": "..."
}'

Response

{
  "updated": true,
  "space_id": 7900026,
  "apps_reordered": 4
}

Alternate mode

{
  "space_id": 7482910,
  "apps_reordered": 4
}

Try It

Try it

Sign in to execute this tool

Calculation Field

Write

POST /v1/tools/podio/calculationField

Create or update a Podio calculation field with script validation. CRITICAL — Podio calculations are a LIMITED JavaScript subset. Read these rules BEFORE writing a script. HOW RELATED-ITEM DATA WORKS: You CANNOT iterate over related items as objects. There are NO item objects with .fields or named properties. Instead, each field from a related app is a SEPARATE @[All of ...] reference returning a PARALLEL ARRAY. Combine data by pulling each field into its own array and indexing them together. WRONG: var contacts = @[Contacts](field_123); contacts.forEach(c => c.fields[456]) WRONG: contact['First Name'], contact.fields[123], item.value RIGHT: var names = @[All of Name with nulls](inn_275861713_275870858); var emails = @[All of Email with nulls](inn_275861716_275870858); for (var i = 0; i < names.length; i++) { names[i] + " <" + emails[i] + ">"; } CRITICAL — "with nulls" (inn_/outn_): When pulling MULTIPLE arrays from related items, ALWAYS use inn_/outn_ (with nulls) for ALL arrays. Without nulls, if a related item is missing a value for one field, that array shrinks and the indexes no longer align across arrays. inn_/outn_ preserves null positions so array[i] always refers to the same related item across all arrays. FIELD REFERENCE SYNTAX — @[Label](variable): Same-app: @[Field Label](field_NUMBER) e.g. @[Status](field_275861713) Unique ID: @[Unique ID](item_app_item_id) Related-app: @[All of Label](DIRECTION_TARGETFIELDID_RELFIELDID) DIRECTION: in (incoming, drops nulls), out (outgoing, drops nulls), inn (incoming with nulls), outn (outgoing with nulls). ALWAYS use inn_/outn_ (with nulls) when pulling multiple parallel arrays — without nulls, missing values cause arrays to shrink and indexes misalign. OUTGOING (out_/outn_): RELFIELDID is in THIS app (the relationship field here), TARGETFIELDID is in the RELATED app (the field to read there). INCOMING (in_/inn_): BOTH RELFIELDID and TARGETFIELDID are in the RELATED app. The RELFIELDID is the relationship field in the related app that points BACK to this app. e.g. outgoing: @[All of Name with nulls](outn_275861713_275870858) means: get Name (field 275861713) from related app, via relationship field 275870858 in THIS app e.g. incoming: @[All of Name with nulls](inn_275861713_275870858) means: get Name (field 275861713) from related app, via relationship field 275870858 in the RELATED app that points back here Aggregation: @[Sum of Label](in_sum_TARGETFIELDID_RELFIELDID) also max, min, avg FIELD VALUE TYPES (CRITICAL) — what @[All of] returns for each field type: Same-app (field_XXXXX): Nulls are actual null (falsy, == null works). moment(v) works on dates. - Text: [string]. Category: [string] text label. Multi Category: [object] "Red,Blue" comma-joined. - Date: [object] Date. moment(v) works directly. Date Range: start only (end inaccessible). - Number: [number]. Money: [number] no currency. Duration: [number] DECIMAL HOURS. Progress: [number] 0-1 FRACTION. - Contact: [object] stringifies to name. Phone/Email: [object] access v[0].type, v[0].value. Related with nulls (outn_/inn_): ALL values are typeof "object" and TRUTHY — even empty ones! - NULL CHECK: MUST use (v + '' != '') — NOT if(v) which is ALWAYS true! - moment() on dates: moment(v) FAILS — use moment(v + '') or moment(v[0]) - Phone/Email: v[0].type, v[0].value (extra wrapper level) - Number 0 vs null: v + '' == '' means null, v + '' == '0' means zero Related without nulls (out_/in_): Shorter arrays (nulls dropped). Bare primitives (string/number). - DANGER: Multi Category with out_/in_ is FLATTENED per-option, not per-item — array misaligns! - Phone/Email: v.type, v.value directly (no [0]) HOW TO FIND THE RIGHT IDs: OUTGOING (out_/outn_): 1. getApp on THIS app — find the relationship field (type "app") — its field_id = RELFIELDID (last number) 2. getApp on the RELATED app — find fields to read — their field_ids = TARGETFIELDIDs (first number) INCOMING (in_/inn_): 1. The RELATED app has a relationship field pointing to THIS app 2. getApp on the RELATED app — find its relationship field (type "app") that references THIS app — its field_id = RELFIELDID (last number) 3. In the SAME related app — find fields to read — their field_ids = TARGETFIELDIDs (first number) Both TARGETFIELDID and RELFIELDID come from the RELATED app for incoming references. The variable MUST be: field_N, item_app_item_id, in_N_N, out_N_N, inn_N_N, outn_N_N, or in_sum_N_N (etc). NO words like "contacts" or "my_field". UNSUPPORTED (will error): - .forEach(), .map(), .reduce(), .find(), .some(), .every() — use for (var i=0; i<arr.length; i++) - for...of loops — use traditional for or for...in - Template literals (backticks) — use string concatenation with + - return statements — the final expression is returned implicitly; use if/else where each branch ends with the value - async/await, import/require, arrow function callbacks - Accessing .fields[], .value, or ["Field Name"] on variables SUPPORTED: - var/let, traditional for loops, for...in, if/else, function definitions (can use return internally) - String: +, .join(), .toString(), .slice(), .toLowerCase(), .toUpperCase(), .trim(), .split(), .replace() - Number: Number(), parseInt(), parseFloat(), .toFixed(N), isNaN(), Math.floor/ceil/round - Array: .length, .sort(function(a,b){...}), .push(), .join(), .filter() - moment.js (global): moment(date).format("DD/MM/YYYY"), .add(), .subtract(), .diff(), .tz("timezone") - Date: new Date(), .getDate(), .setDate(), date arithmetic returns ms (/1000/60/60/24 for days) RETURN TYPES: "number" (set decimals 0-4, optional unit), "text" (supports markdown), "date" (set time/calendar) PATTERNS: Simple math: @[Qty](field_1) * @[Price](field_2) Conditional: var t = @[Type](field_1); if (t == "A") { @[Amount](field_2); } else { 0; } Count related: @[All of Title](inn_fieldId_relId).length Aggregation: @[Sum of Hours](in_sum_fieldId_relId) || 0 Date format: moment(@[Date](field_1)).format("YYYY/MM/DD") Markdown table: ALWAYS use inn_/outn_ (with nulls) for ALL arrays. Do NOT put | at the start or end of any line — only BETWEEN columns. Header, separator, and data rows must ALL use the same format: "Col1 | Col2" NOT "| Col1 | Col2 |". Example: var names = @[All of Name with nulls](inn_F1_R); var dates = @[All of Date with nulls](inn_F2_R); var table = ""; for (var i = 0; i < names.length; i++) { var nameStr = names[i] + ''; var dateStr = dates[i] + ''; var dateVal = dateStr != '' ? moment(dates[i] + '').format('YYYY-MM-DD') : ''; table += (nameStr != '' ? nameStr : '') + " | " + dateVal + "\n"; } if (table) { "Name | Date\n:--- | :---\n" + table; } else { "No items"; } WRONG header: "| Name | Email |\n| :--- | :--- |\n" WRONG — has outer pipes, data rows won't match RIGHT header: "Name | Email\n:--- | :---\n" RIGHT — pipes only between columns, matches data rows Section divider: var dummy = @[Any](field_1); "# TITLE \n ---"

Parameters

NameTypeRequiredDescription
app_idnumberrequiredApp ID
field_idnumberoptionalField ID — include to update an existing calculation field, omit to create a new one
external_idstringoptionalExternal identifier
configobjectrequired

Request

curl -X POST https://api.syncello.io/v1/tools/podio/calculationField \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "app_id": "123",
  "config": "..."
}'

Response

"Created calculation field. field_id: 261000008"

Try It

Try it

Sign in to execute this tool

Clone App

Write

POST /v1/tools/podio/cloneApp

Create an exact duplicate of a Podio app with all fields, settings, and field order preserved. Calculation fields are excluded (they must be re-added manually with podio_calculationField after cloning because they reference field_ids that change). Relationship/app fields are copied as-is — if cloning to a different space, you may need to update their referenced_apps. Returns the new app_id, link, and a summary of cloned vs skipped fields.

Parameters

NameTypeRequiredDescription
app_idnumberrequiredSource app ID to clone (from getAppsBySpace, getUserStatus, or platform context)
space_idnumberoptionalTarget space ID for the cloned app. Defaults to the same space as the source app if omitted.
namestringoptionalName for the cloned app. Defaults to the same name as the source app (duplicate names are allowed).
silentbooleanoptionalSuppress notifications (default: false)

Request

curl -X POST https://api.syncello.io/v1/tools/podio/cloneApp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "app_id": "123"
}'

Response

{
  "app_id": 28471999,
  "link": "https://podio.com/acme-corp/deals-clone",
  "source_app_id": 28471960,
  "fields_cloned": 7,
  "calculation_fields_skipped": 1,
  "skipped_calculation_fields": [
    "Weighted Value"
  ]
}

Try It

Try it

Sign in to execute this tool

Delete App

Destructive

POST /v1/tools/podio/deleteApp

Permanently delete an app and ALL its items — cannot be undone. Verify app_id before calling; use getApp to confirm the target. Set silent: true to prevent notifications.

Parameters

NameTypeRequiredDescription
app_idnumberrequiredApp ID (from getApp, getAppsBySpace, or platform context). Verify before calling — deletion is permanent.
silentbooleanoptionalSuppress notifications

Flags

NameTypeDescription
silentbooleanSuppress notifications

Request

curl -X POST https://api.syncello.io/v1/tools/podio/deleteApp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "app_id": "123"
}'

Response

{
  "deleted": true,
  "app_id": 28471960
}

Try It

Try it

Sign in to execute this tool

Delete Fields

Destructive

POST /v1/tools/podio/deleteFields

Delete one or more fields from a Podio app. DESTRUCTIVE — every value stored in the deleted fields across every item is lost irreversibly. REST API only; not exposed to the agent or MCP.

Parameters

NameTypeRequiredDescription
app_idnumberrequired
field_idsarrayrequired
delete_valuesbooleanoptionalAlso delete all data stored in these fields across all items. Default false.
silentbooleanoptional

Request

curl -X POST https://api.syncello.io/v1/tools/podio/deleteFields \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "app_id": "123",
  "field_ids": "..."
}'

Response

{
  "app_id": 28471960,
  "deleted": [
    261000010
  ],
  "errors": []
}

Try It

Try it

Sign in to execute this tool