Making API requests
The API reference documentation at https://developers.podio.com/doc lists all available API operations.
After you authenticated successfully you can start making API requests using the request method.
The method accepts the following parameters:
| Parameter | Description |
|---|---|
| method | HTTP verb like get or post |
| path | relative URL of the API, like /tasks |
| data | JS object for POST/PUT requests, null for GET |
| callback | Success function, called with responseData as a parameter |
GET and DELETE requests
podio.request('GET', '/tasks', null, function(responseData) {
// do something with the data
});
POST and PUT requests
var requestData = { data: true };
podio.request('POST', '/tasks', requestData, function(responseData) {
// response, if available
});
File uploads
For file uploads the uploadFile method can be used. It has the following signature:
| Parameter | Description |
|---|---|
| filePath | An absolute path to an existing file on the hard drive |
| fileName | The name of the file to be uploaded |
| callback | Success function, called with responseData as a parameter |
Note: Uploading files is currently only supported in NodeJS and not in the browser.
Using promises
The request function returns a promise object which can be used instead of the callback function. The promise format used is EcmaScript 6 Promises. We recommend using the ES6-Promise library for pollyfilling older browsers.
Here is an example of using request with a promise:
podio.request('GET', '/tasks').then(function(responseData) {
// response, if available
});
Error handling
Depending on the error code PlatformJS SDK will throw different exceptions. On all exceptions you will be able to access the following properties:
| Property | Description |
|---|---|
| body | API error response, see Error body section |
| status | HTTP status |
| url | Original request URL |
The following exceptions are possible:
| HTTP Code | Exception |
|---|---|
| 400 | PodioBadRequestError |
| 401 | PodioAuthorizationError |
| 403 | PodioForbiddenError |
| 404 | PodioForbiddenError |
| 409 | PodioConflictError |
| 410 | PodioGoneError |
| 420 | PodioRateLimitError |
| 500 | PodioServerError |
| 502 | PodioUnavailableError |
| 503 | PodioUnavailableError |
| 504 | PodioUnavailableError |
| other | PodioError |
Error body
A typical error body returned by the Platform API looks like this:
{
"error_parameters": {},
"error_detail": null,
"error_propagate": false,
"request": {
"url": "http:\/\/api.podio.com\/comment\/item\/78077883\/",
"query_string": "",
"method": "POST"
},
"error_description": "No matching operation could be found. No body was given.",
"error": "not_found"
}