Maton

Podio

Access the Podio API with managed OAuth authentication. Manage organizations, workspaces (spaces), apps, items, tasks, comments, and files.

Reference

List Organizations

Returns all organizations and spaces the user is a member of.

GET /podio/org/

Response:

[
  {
    "org_id": 123456,
    "name": "My Organization",
    "url": "https://podio.com/myorg",
    "url_label": "myorg",
    "type": "premium",
    "role": "admin",
    "status": "active",
    "spaces": [
      {
        "space_id": 789,
        "name": "Project Space",
        "url": "https://podio.com/myorg/project-space",
        "role": "admin"
      }
    ]
  }
]

Get Organization

GET /podio/org/{org_id}

Get Space

GET /podio/space/{space_id}

Response:

{
  "space_id": 789,
  "name": "Project Space",
  "privacy": "closed",
  "auto_join": false,
  "url": "https://podio.com/myorg/project-space",
  "url_label": "project-space",
  "role": "admin",
  "created_on": "2025-01-15T10:30:00Z",
  "created_by": {
    "user_id": 12345,
    "name": "John Doe"
  }
}

Create Space

POST /podio/space/
Content-Type: application/json

{
  "org_id": 123456,
  "name": "New Project Space",
  "privacy": "closed",
  "auto_join": false,
  "post_on_new_app": true,
  "post_on_new_member": true
}

Response:

{
  "space_id": 790,
  "url": "https://podio.com/myorg/new-project-space"
}

Get Apps by Space

GET /podio/app/space/{space_id}/

Optional query parameters:

  • include_inactive - Include inactive apps (default: false)

Get App

GET /podio/app/{app_id}

Response:

{
  "app_id": 456,
  "status": "active",
  "space_id": 789,
  "config": {
    "name": "Tasks",
    "item_name": "Task",
    "description": "Track project tasks",
    "icon": "list"
  },
  "fields": [...]
}

Get Item

GET /podio/item/{item_id}

Optional query parameters:

  • mark_as_viewed - Mark notifications as viewed (default: true)

Response:

{
  "item_id": 123,
  "title": "Complete project plan",
  "app": {
    "app_id": 456,
    "name": "Tasks"
  },
  "fields": [
    {
      "field_id": 1,
      "external_id": "status",
      "type": "category",
      "values": [{"value": {"text": "In Progress"}}]
    }
  ],
  "created_on": "2025-01-20T14:00:00Z",
  "created_by": {
    "user_id": 12345,
    "name": "John Doe"
  }
}

Filter Items

POST /podio/item/app/{app_id}/filter/
Content-Type: application/json

{
  "sort_by": "created_on",
  "sort_desc": true,
  "filters": {
    "status": [1, 2]
  },
  "limit": 30,
  "offset": 0
}

Response:

{
  "total": 150,
  "filtered": 45,
  "items": [
    {
      "item_id": 123,
      "title": "Complete project plan",
      "fields": [...],
      "comment_count": 5,
      "file_count": 2
    }
  ]
}

Add New Item

POST /podio/item/app/{app_id}/
Content-Type: application/json

{
  "fields": {
    "title": "New task",
    "status": 1,
    "due-date": {"start": "2025-02-15"}
  },
  "tags": ["urgent", "project-alpha"],
  "file_ids": [12345]
}

Optional query parameters:

  • hook - Execute hooks (default: true)
  • silent - Suppress notifications (default: false)

Response:

{
  "item_id": 124,
  "title": "New task"
}

Update Item

PUT /podio/item/{item_id}
Content-Type: application/json

{
  "fields": {
    "status": 2
  },
  "revision": 5
}

Optional query parameters:

  • hook - Execute hooks (default: true)
  • silent - Suppress notifications (default: false)

Response:

{
  "revision": 6,
  "title": "New task"
}

Delete Item

DELETE /podio/item/{item_id}

Optional query parameters:

  • hook - Execute hooks (default: true)
  • silent - Suppress notifications (default: false)

Get Tasks

Note: Tasks require at least one filter: org, space, app, responsible, reference, created_by, or completed_by.

GET /podio/task/?org={org_id}
GET /podio/task/?space={space_id}
GET /podio/task/?app={app_id}&completed=false

Query parameters:

  • org - Filter by organization ID (required if no other filter)
  • space - Filter by space ID
  • app - Filter by app ID
  • completed - Filter by completion status (true or false)
  • responsible - Filter by responsible user IDs
  • created_by - Filter by creator
  • due_date - Date range (YYYY-MM-DD-YYYY-MM-DD)
  • limit - Maximum results
  • offset - Result offset
  • sort_by - Sort by: created_on, completed_on, rank (default: rank)
  • grouping - Group by: due_date, created_by, responsible, app, space, org

Get Task

GET /podio/task/{task_id}

Response:

{
  "task_id": 789,
  "text": "Review project proposal",
  "description": "Detailed review of the Q1 proposal",
  "status": "active",
  "due_date": "2025-02-15",
  "due_time": "17:00:00",
  "responsible": {
    "user_id": 12345,
    "name": "John Doe"
  },
  "created_on": "2025-01-20T10:00:00Z",
  "labels": [
    {"label_id": 1, "text": "High Priority", "color": "red"}
  ]
}

Create Task

POST /podio/task/
Content-Type: application/json

{
  "text": "Review project proposal",
  "description": "Detailed review of the Q1 proposal",
  "due_date": "2025-02-15",
  "due_time": "17:00:00",
  "responsible": 12345,
  "private": false,
  "ref_type": "item",
  "ref_id": 123,
  "labels": [1, 2]
}

Optional query parameters:

  • hook - Execute hooks (default: true)
  • silent - Suppress notifications (default: false)

Response:

{
  "task_id": 790,
  ...
}

Get Comments on Object

GET /podio/comment/{type}/{id}/

Where {type} is the object type (e.g., "item", "task") and {id} is the object ID.

Optional query parameters:

  • limit - Maximum comments (default: 100)
  • offset - Pagination offset (default: 0)

Response:

[
  {
    "comment_id": 456,
    "value": "This looks great!",
    "created_on": "2025-01-20T15:30:00Z",
    "created_by": {
      "user_id": 12345,
      "name": "John Doe"
    },
    "files": []
  }
]

Add Comment to Object

POST /podio/comment/{type}/{id}
Content-Type: application/json

{
  "value": "Great progress on this task!",
  "file_ids": [12345],
  "embed_url": "https://example.com/doc"
}

Optional query parameters:

  • alert_invite - Auto-invite mentioned users (default: false)
  • hook - Execute hooks (default: true)
  • silent - Suppress notifications (default: false)

Response:

{
  "comment_id": 457,
  ...
}

Resources

On this page