Checking authentication...

Files

Upload, manage, attach, and analyze files

14 tools

Upload Files

Write

POST /v1/tools/podio/uploadFiles

Upload files INTO Podio and attach them to a target object in ONE call. attach_to is REQUIRED — every file is immediately attached to the given item, task, or comment. The target must already exist: to put files on a new item, call podio_createItem first, then this tool. Each new file needs base64 content OR a url (mutually exclusive). To upload a generated PDF/chart/Excel, pass its downloadUrl as the url. existing_file_ids attaches already-uploaded UNATTACHED numeric Podio file IDs (e.g. from podio_copyFile) to the same target. A Podio file can only be attached ONCE — file_ids returned by this tool are already attached and cannot be reused. To put the same file on multiple items: attach to the first item here, then for each extra item call podio_copyFile and pass the new ID via existing_file_ids. Status and space attachments are not supported here — they are only available via the REST/MCP API.

Parameters

NameTypeRequiredDescription
filesarrayoptionalNew files to upload. Each needs filename plus either url or content. Optional if existing_file_ids is provided.
existing_file_idsarrayoptionalAlready-uploaded UNATTACHED numeric Podio file IDs to attach to the same target (e.g. output of podio_copyFile, or files a previous call uploaded but failed to attach).
attach_toobjectrequiredREQUIRED. The existing Podio object every file will be attached to.
silentbooleanoptionalSuppress Podio notifications

Request

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

Response

{
  "attached_to": {
    "ref_type": "item",
    "ref_id": 3141592653
  },
  "files": [
    {
      "file_id": 988776601,
      "filename": "deal-summary.pdf",
      "status": "attached"
    }
  ]
}

Try It

Try it

Sign in to execute this tool

Upload File

Write

POST /v1/tools/podio/uploadFile

Upload one or more NEW files INTO Podio WITHOUT attaching them. Accepts base64 content OR url per file (mutually exclusive). Returns Podio file objects with numeric file_id. Each file must then be attached to an object within a few hours (podio_attachFile, or file_ids in createItem/updateItem) or Podio garbage-collects it. This is the low-level two-step primitive for API integrations; podio_uploadFiles uploads and attaches in one call.

Parameters

NameTypeRequiredDescription
filesarrayrequiredArray of files to upload. Each needs filename plus either url or content.

Request

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

Response

{
  "files": [
    {
      "file_id": 988776601,
      "name": "deal-summary.pdf",
      "mimetype": "application/pdf",
      "size": 84213,
      "link": "https://files.podio.com/988776601",
      "hosted_by": "podio"
    }
  ]
}

Try It

Try it

Sign in to execute this tool

Attach File

Write

POST /v1/tools/podio/attachFile

Attach a previously uploaded file to a Podio object. Requires a numeric Podio file_id from podio_uploadFile (not a UUID from non-Podio tools). A file can only be attached to ONE object — attaching the same file_id again fails with "file.already_attached"; use podio_copyFile to mint a fresh unattached file_id for additional targets. Supports ref_type: "item", "task", "comment", "status", or "space".

Parameters

NameTypeRequiredDescription
file_idnumberrequiredNumeric Podio file ID returned from uploadFile. Must be a number, NOT a UUID.
ref_typestringrequiredObject type
Values: item, comment, status, space, task
ref_idnumberrequiredObject ID
silentbooleanoptionalSuppress notifications

Request

curl -X POST https://api.syncello.io/v1/tools/podio/attachFile \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "file_id": "123",
  "ref_type": "item",
  "ref_id": "123"
}'

Response

{
  "attached": true,
  "file_id": 988776602,
  "ref_type": "item",
  "ref_id": 3141592653
}

Try It

Try it

Sign in to execute this tool

Download File

Read Idempotent

POST /v1/tools/podio/downloadFile

Download a single Podio file and return its metadata plus a temporary download link (expires in 1 hour). Use getFilesOnApp, getFilesOnSpace, or getItem to find file IDs first. The download_url can be passed to podio_uploadFiles, tape_uploadFiles, or slack_uploadFile to move the file elsewhere.

Parameters

NameTypeRequiredDescription
file_idnumberrequiredPodio file ID (from getFilesOnApp, getFilesOnSpace, or a getItem files response)

Request

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

Response

{
  "file_id": 988776601,
  "name": "deal-summary.pdf",
  "download_url": "https://api.syncello.io/v1/files/7f3c1e90-2ab4-4d51-9c8e-1f0a2b3c4d5e/download?organizationId=d4e5f6a7-b8c9-0123-def0-123456789012&expires=1782000000&sig=EXAMPLE_SIGNATURE",
  "expires_in": 3600,
  "expires_at": "2026-08-05T15:35:00.000Z",
  "mimetype": "application/pdf",
  "size": 84213,
  "size_human": "82 KB"
}

Try It

Try it

Sign in to execute this tool

Get File

Read Idempotent

POST /v1/tools/podio/getFile

Get file metadata (name, mimetype, size, created_on, link) by ID. Use getFilesOnApp or getFilesOnSpace to find file_ids first. Does not return file content — use analyzeFile (source: "podio") for that.

Parameters

NameTypeRequiredDescription
file_idnumberrequiredFile ID (from getFilesOnApp, getFilesOnSpace, or a getItem files_only response)

Request

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

Response

{
  "file_id": 988776601,
  "name": "deal-summary.pdf",
  "mimetype": "application/pdf",
  "size": 84213,
  "link": "https://files.podio.com/988776601",
  "hosted_by": "podio",
  "description": null,
  "created_on": "2026-07-01 14:35:00",
  "created_by": {
    "user_id": 1122334,
    "name": "Jane Doe",
    "type": "user"
  },
  "thumbnail_link": "https://files.podio.com/988776601",
  "rights": [
    "view",
    "delete"
  ]
}

Try It

Try it

Sign in to execute this tool

Get Files On App

Read Idempotent

POST /v1/tools/podio/getFilesOnApp

List files attached to items in an app. Use filetype "image" for images, "application" for PDFs/docs. Faster than getFilesOnSpace when you know the app.

Parameters

NameTypeRequiredDescription
app_idnumberrequiredApp ID
attached_tostringoptionalFilter by object type
Values: item, status, task, space
filetypestringoptionalFilter by file type
Values: image, application, video, text, audio
limitnumberoptionalMax results (default: 20)
offsetnumberoptionalPagination offset
sort_bystringoptionalSort field
Values: name, created_on
sort_descbooleanoptionalDescending order

Request

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

Response

[
  {
    "file_id": 988776601,
    "name": "deal-summary.pdf",
    "mimetype": "application/pdf",
    "size": 84213,
    "link": "https://files.podio.com/988776601",
    "hosted_by": "podio",
    "description": null,
    "created_on": "2026-07-01 14:35:00",
    "created_by": {
      "user_id": 1122334,
      "name": "Jane Doe",
      "type": "user"
    },
    "context": {
      "type": "item",
      "id": 3141592653,
      "title": "Northwind Traders"
    }
  }
]

Try It

Try it

Sign in to execute this tool

Get Files On Space

Read Idempotent

POST /v1/tools/podio/getFilesOnSpace

List files in a workspace with optional filters. Returns file_id, name, mimetype, size for each file. Use filetype "image" for images, "application" for PDFs/docs.

Parameters

NameTypeRequiredDescription
space_idnumberrequiredSpace ID
attached_tostringoptionalFilter by object type
Values: item, status, task, space
filetypestringoptionalFilter by file type
Values: image, application, video, text, audio
limitnumberoptionalMax results (default: 20)
offsetnumberoptionalPagination offset
sort_bystringoptionalSort field
Values: name, created_on
sort_descbooleanoptionalDescending order

Request

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

Response

[
  {
    "file_id": 988776601,
    "name": "deal-summary.pdf",
    "mimetype": "application/pdf",
    "size": 84213,
    "link": "https://files.podio.com/988776601",
    "hosted_by": "podio",
    "description": null,
    "created_on": "2026-07-01 14:35:00",
    "created_by": {
      "user_id": 1122334,
      "name": "Jane Doe",
      "type": "user"
    },
    "context": {
      "type": "item",
      "id": 3141592653,
      "title": "Northwind Traders"
    }
  }
]

Try It

Try it

Sign in to execute this tool

Copy File

Write

POST /v1/tools/podio/copyFile

Copy an existing file so it can be attached elsewhere. Returns a new UNATTACHED file_id. The copy external_id will be "file_{original_id}". Use when you need the same file on multiple items: copy, then pass the new file_id to podio_uploadFiles via existing_file_ids (with attach_to), or to createItem/updateItem file_ids.

Parameters

NameTypeRequiredDescription
file_idnumberrequiredFile ID to copy

Request

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

Response

{
  "file_id": 988776602
}

Try It

Try it

Sign in to execute this tool

Update File

Write

POST /v1/tools/podio/updateFile

Update file metadata (name and description). Both fields are required by the Podio API even if only changing one — use getFile first to get current values. Does not update file content.

Parameters

NameTypeRequiredDescription
file_idnumberrequiredFile ID
namestringrequiredNew filename (required even if unchanged — get current value from getFile)
descriptionstringrequiredNew description (required even if unchanged — get current value from getFile)

Request

curl -X POST https://api.syncello.io/v1/tools/podio/updateFile \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
  -d '{
  "file_id": "123",
  "name": "example",
  "description": "example"
}'

Response

{
  "updated": true,
  "file_id": 988776601
}

Try It

Try it

Sign in to execute this tool

Delete File

Destructive

POST /v1/tools/podio/deleteFile

Permanently delete a file by ID. Cannot be undone. Also removes the file from any objects it is attached to.

Parameters

NameTypeRequiredDescription
file_idnumberrequiredFile ID
hookbooleanoptionalExecute hooks (default: true)

Request

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

Response

{
  "deleted": true,
  "file_id": 988776601
}

Try It

Try it

Sign in to execute this tool

Replace File

Write

POST /v1/tools/podio/replaceFile

Replace an existing attached file with a new one. The new file takes the position of the old file on whatever object it was attached to. Only files with type "attachment" can be replaced. The new_file_id must be an uploaded/copied file that is not yet attached anywhere.

Parameters

NameTypeRequiredDescription
old_file_idnumberrequiredFile ID of the currently-attached file to replace
new_file_idnumberrequiredFile ID of the replacement file (must already be uploaded or copied, and not yet attached)

Request

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

Response

{
  "replaced": true,
  "old_file_id": 988776601,
  "new_file_id": 988776603
}

Try It

Try it

Sign in to execute this tool

Copy Item Files

Write

POST /v1/tools/podio/copyItemFiles

Copy files from one Podio item to another. By default copies all files; pass file_ids to copy specific ones. Duplicate filenames on the target are skipped unless overwrite_duplicates is true, which replaces the target's copy with the source's version.

Parameters

NameTypeRequiredDescription
source_item_idnumberrequiredItem ID to copy files from
target_item_idnumberrequiredItem ID to copy files to
file_idsarrayoptionalSpecific file IDs to copy (omit to copy all files from source)
overwrite_duplicatesbooleanoptionalWhen target already has a file with the same name: false (default) skips it, true replaces it
silentbooleanoptionalSuppress Podio notifications (default: false)

Request

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

Response

{
  "source_item_id": 3141592653,
  "target_item_id": 3141592800,
  "copied": [
    {
      "file_id": 988776601,
      "new_file_id": 988776604,
      "name": "deal-summary.pdf"
    }
  ],
  "replaced": [],
  "skipped": []
}

Try It

Try it

Sign in to execute this tool

File To Markdown

Read Idempotent

POST /v1/tools/podio/fileToMarkdown

Convert a Podio file to markdown text. Supports PDF, DOCX, XLSX, PPTX, and images (JPG, PNG, GIF, WEBP). Returns the extracted text content as markdown. Use getFilesOnApp, getFilesOnSpace, or getItem to find file IDs first.

Parameters

NameTypeRequiredDescription
file_idnumberrequiredPodio file ID to convert

Request

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

Response

"# Deal Summary\n\nNorthwind Traders is evaluating the enterprise plan.\nNext step: contract review by legal."

Try It

Try it

Sign in to execute this tool

File To Share File

Read

POST /v1/tools/podio/fileToShareFile

Download files from Podio and upload them to a ShareFile folder. Provide file_ids for specific files, or item_id to transfer all files from a Podio item. Requires both Podio and ShareFile to be connected.

Parameters

NameTypeRequiredDescription
sharefile_folder_idstringrequiredShareFile folder ID to upload files to
file_idsarrayoptionalPodio file IDs to transfer (mutually exclusive with item_id)
item_idnumberoptionalPodio item ID — transfers all files attached to this item (mutually exclusive with file_ids)

Request

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

Response

{
  "sharefile_folder_id": "fo1a2b3c-4d5e-6f70-8901-abcdef123456",
  "total": 1,
  "copied": [
    {
      "podio_file_id": 988776601,
      "name": "deal-summary.pdf",
      "size": 84213,
      "sharefile_item_id": "fi9z8y7x-6w5v-4u30-2109-fedcba654321"
    }
  ],
  "failed": []
}

Try It

Try it

Sign in to execute this tool