Paymo is a project management software for small and medium businesses that allows you to manage projects from start to finish.
This is the official Paymo API.
- Making a request
- Request and response content types
- Response codes and error handling
- Rate limiting
- API Endpoints
- Data formats
- Including related content
The Paymo is a RESTful API that uses JSON/XML for serialization.
Accepted request types (HTTP verbs) are: GET, POST, PUT, DELETE.
Making a request
The API base URL is
https://app.paymoapp.com/api/. It is SSL/TLS 1.2 only. There is no way to use the API over unsecure http:// protocol.
An example request using
curl for retrieving the list of clients may look like this:
curl -u email:password -H 'Accept: application/json' https://app.paymoapp.com/api/clients
Updating a client using
curl may look like:
curl -u email:password -H 'Accept: application/json' -d "name=updated%20name" https://app.paymoapp.com/api/clients/12345
See sample code examples on how to make a request to the API.
Read the authentication guide for more details.
Request and response content types
Paymo API supports JSON as well as XML for data serialization, as well as specific types such as PDF, XLS for reports, invoices, estimates.
Read more about content types.
Response codes and error handling
The Paymo API will return a 2xx status code for successful requests. The 4xx error means an error on the user side. And the 5xx errors are returned when the Paymo service is having trouble processing your request.
The response in case of error will contain an error message to help you fix it.
You may want to consult a reference for HTTP Status codes.
If you exceed the rate limit, you'll get a 429 Too Many Requests response and for all following requests until the limit expires. A header
Retry-After will also be returned and will represent the number of seconds you should wait before making the next request.
- Bookings (Resource Scheduling)
- Client Contacts
- Estimate Templates
- Invoice Templates
- Invoice Payments
- Project Templates
- Project Statuses
- Task Lists
- Task Recurring Profiles
- Time Entries
- Task Assignments
- Workflow Statuses
For a sample and an explanation of each endpoint object, see individual endpoint pages.
If you want to filter the response of listings, you can do so by supplying the
where parameter in the request URL.
Read more about response filtering
Including related content
If you want a response to include additional information about an object, you can do so by supplying the
partial_include parameters in the request URL.
Read more about additional includes
Webhooks allow for 3rd party integrations.
By creating a webhook you create a link between an event in Paymo (e.g. adding a task) and a URL that will be notified by Paymo when the event occurs.
Read more about webhooks
Help us make it better
Please tell us how we can make the API better. If you have a specific feature request or if you found a bug, please use GitHub issues. Fork these docs and send a pull request with improvements.