ServiceM8 offers a REST API that allows developers to connect ServiceM8 to third-party applications.
The API is implemented as plain JSON over HTTP using REST commands - GET, POST and DELETE.
Every resource, like Job, Company or JobActivity, has its own URL and is manipulated in isolation.
The API closely follows REST principles and is described as easy to use.
The API can be explored through any browser for GET requests.
It uses JSON for data formatting.
It follows REST architectural principles like resource-based URLs and standard HTTP methods.
Documentation is provided for getting started, authentication, HTTP response codes, etc.
While ServiceM8 uses REST, it's worth noting how this compares to other common API types:
SOAP APIs use XML and are more complex, often used for enterprise applications requiring high security.
GraphQL APIs allow clients to request specific data in a single query, which can be more efficient for some use cases.
gRPC APIs are designed for high performance and use protocol buffers.
REST APIs like ServiceM8's are widely used for web and mobile applications due to their simplicity and flexibility compared to these other types.
Yes, the official ServiceM8 API does have webhooks. Here are the key points about ServiceM8's webhook functionality:
While the documentation doesn't provide an exhaustive list of supported object types, some examples include:
The exact list of supported object types may vary, so it's best to check the latest API documentation or contact ServiceM8 support for a complete list.
Webhooks are triggered when fields on the subscribed object change. The webhook payload includes:
In summary, ServiceM8's webhook system allows you to subscribe to changes on various object types, providing real-time updates for your integrated applications.
Based on the search results provided, here are the key points regarding the API Rate Limits of the ServiceM8 API:
The ServiceM8 API has two main rate limits:
If either of these limits is reached, the API will return a HTTP 429 response code with the message "Number of allowed API requests per minute exceeded".
Throttling is applied on a per-application and per-account basis. This means that if you have a single application connected to two different clients' ServiceM8 accounts, throttling is applied separately to each account.
API developers are encouraged to anticipate these rate limits and take appropriate measures such as:
The daily limit of 20,000 requests is a fixed limit and does not change based on the size of the account or number of jobs.
The rate limits apply to all types of requests, including those triggered by webhooks and regular data synchronization.
Implement proper error handling for 429 responses in your application.
Use caching strategies to reduce the number of API calls when possible.
Spread out non-urgent API calls over time to avoid hitting the rate limits.
For large-scale operations, consider batching requests or using bulk endpoints if available.
Monitor your API usage to stay within the limits and optimize your integration.
There is a separate Message Sending Quota for email and SMS messages, which has its own limits and is calculated on a rolling 24-hour basis.
If you consistently need higher limits, you may be able to request a quota increase by opening a Sending Quota Increase ticket with ServiceM8 support.
It's important to note that these rate limits can significantly impact large-scale operations or integrations with high-volume data synchronization needs. If you're experiencing issues with these limits, you may need to optimize your integration strategy or discuss potential solutions with ServiceM8 support.
Based on the search results provided, there is no specific mention of the most recent version of the ServiceM8 API. However, I can provide some relevant information about the ServiceM8 API:
The ServiceM8 API is a REST API that allows developers to integrate with ServiceM8 and connect it to third-party applications. Here are some key points:
While the search results don't mention a specific version number, they do provide information about some API endpoints:
https://api.servicem8.com/api_1.0/jobcontact.json
https://api.servicem8.com/api_1.0/companycontact.json
The presence of api_1.0
in these URLs suggests that the current version might be 1.0, but this is not explicitly stated.
Authentication: The API requires authentication, but the specific method is not mentioned in the search results.
Naming Conventions: The API uses different terminology compared to the ServiceM8 user interface. For example, "Client/Customer" in the UI is referred to as "Company" in the API.
Filtering: The API supports filtering, which can be useful for retrieving specific data.
Add-on SDK: ServiceM8 provides an Add-on SDK for developers who want to create add-ons for the platform.
Use appropriate HTTP methods (GET, POST, DELETE) for different operations.
Familiarize yourself with the naming conventions used in the API to avoid confusion.
Utilize filtering when querying data to improve efficiency and retrieve only the necessary information.
Consult the official ServiceM8 developer documentation for the most up-to-date and accurate information about the API.
In conclusion, while the most recent version of the ServiceM8 API is not explicitly stated in the search results, the available information suggests that it might be version 1.0. For the most accurate and up-to-date information about the API version, it's recommended to consult the official ServiceM8 developer documentation or contact their support directly.
To get a developer account for ServiceM8 and create an API integration, you'll need to follow these steps:
To allow your add-on to access customer's ServiceM8 accounts, you'll need to implement OAuth 2.0 authentication. This involves:
By following these steps and best practices, you'll be able to set up a developer account and create an API integration with ServiceM8.
Based on the search results, here are the key data models you can interact with using the ServiceM8 API, along with what is possible for each:
The API provides comprehensive access to core ServiceM8 data and functionality, allowing developers to build integrations and custom solutions on top of the platform.