Files
openclaw-backups/skills/api-gateway/references/podio.md
2026-02-19 12:11:01 +00:00

219 lines
3.2 KiB
Markdown

# Podio Routing Reference
**App name:** `podio`
**Base URL proxied:** `api.podio.com`
## API Path Pattern
```
/podio/{resource}/{id}/
```
Note: Many Podio endpoints use trailing slashes.
## Common Endpoints
### Organizations
#### List Organizations
```bash
GET /podio/org/
```
#### Get Organization
```bash
GET /podio/org/{org_id}
```
### Spaces (Workspaces)
#### List Spaces in Organization
```bash
GET /podio/space/org/{org_id}/
```
#### Get Space
```bash
GET /podio/space/{space_id}
```
#### Create Space
```bash
POST /podio/org/{org_id}/space/
Content-Type: application/json
{
"name": "New Workspace",
"privacy": "closed"
}
```
### Applications
#### List Apps in Space
```bash
GET /podio/app/space/{space_id}/
```
#### Get App
```bash
GET /podio/app/{app_id}
```
### Items
#### Filter Items
```bash
POST /podio/item/app/{app_id}/filter/
Content-Type: application/json
{
"limit": 30,
"offset": 0,
"sort_by": "created_on",
"sort_desc": true,
"filters": {
"status": [1, 2]
}
}
```
#### Get Item
```bash
GET /podio/item/{item_id}
```
#### Create Item
```bash
POST /podio/item/app/{app_id}/
Content-Type: application/json
{
"fields": {
"title": "New Item",
"status": 1
}
}
```
#### Update Item
```bash
PUT /podio/item/{item_id}
Content-Type: application/json
{
"fields": {
"title": "Updated Title"
}
}
```
#### Delete Item
```bash
DELETE /podio/item/{item_id}
```
### Tasks
Tasks require at least one filter: org, space, app, responsible, reference, created_by, or completed_by.
#### List Tasks
```bash
GET /podio/task/?org={org_id}
GET /podio/task/?space={space_id}
GET /podio/task/?app={app_id}&completed=false
```
#### Get Task
```bash
GET /podio/task/{task_id}
```
#### Create Task
```bash
POST /podio/task/
Content-Type: application/json
{
"text": "Task description",
"due_date": "2026-03-15",
"ref_type": "item",
"ref_id": 3250776079
}
```
#### Complete Task
```bash
POST /podio/task/{task_id}/complete
```
#### Delete Task
```bash
DELETE /podio/task/{task_id}
```
### Comments
#### Get Comments on Object
```bash
GET /podio/comment/{type}/{id}/
```
Where `{type}` is: item, task, status, etc.
#### Add Comment
```bash
POST /podio/comment/{type}/{id}
Content-Type: application/json
{
"value": "Comment text"
}
```
### User
#### Get User Status
```bash
GET /podio/user/status
```
## Pagination
Podio uses offset-based pagination:
```json
{
"limit": 30,
"offset": 0
}
```
Response includes counts:
```json
{
"total": 150,
"filtered": 45,
"items": [...]
}
```
## Notes
- Organization, space, app, and item IDs are integers
- Many endpoints use trailing slashes (e.g., `/org/`, `/filter/`)
- Category/status fields use option IDs (integers), not text values
- Field values can be specified by field_id or external_id
- Deleting an item cascades to associated tasks
- Tasks require at least one filter parameter
- Use `silent=true` to suppress notifications
- Use `hook=false` to skip webhook triggers
## Resources
- [Podio API Documentation](https://developers.podio.com/doc)
- [Items API](https://developers.podio.com/doc/items)
- [Tasks API](https://developers.podio.com/doc/tasks)
- [Applications API](https://developers.podio.com/doc/applications)
- [Spaces API](https://developers.podio.com/doc/spaces)