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
- Authentication
- Request and response content types
- Response codes and error handling
- Rate limiting
- API Endpoints
- Data formats
- Filtering
- Including related content
- Webhooks
The Paymo is a RESTful API that uses JSON/XML for serialization.
Accepted request types (HTTP verbs) are: GET, POST, PUT, DELETE.
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.
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.
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.
The following response headers will help you with the current API usage:
X-Ratelimit-Decay-Period
: the length in seconds of the current time interval for which the limits are appliedX-Ratelimit-Limit
: the total number of API requests allowed per decay periodX-Ratelimit-Remaining
: the number of remaining API requests in the current decay period
- Bookings (Resource Scheduling)
- Client Contacts
- Clients
- Comments
- Company
- Discussions
- Estimate Templates
- Estimates
- Expenses
- Files
- Invoice Templates
- Invoice Payments
- Invoices
- Milestones
- Project Templates
- Project Statuses
- Projects
- Reports
- Subtasks
- Sessions
- Task Lists
- Task Recurring Profiles
- Tasks
- Time Entries
- Users
- Task Assignments
- Workflows
- 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
If you want a response to include additional information about an object, you can do so by supplying the include
or 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
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.