Pool Office Manager API
Complete reference for the GraphQL and REST APIs
Overview
The Pool Office Manager API provides programmatic access to manage pool service operations including appointments, customers, services, invoices, quotes, and more. The primary API is GraphQL-based, with additional REST endpoints for file operations and integrations.
GraphQL Endpoint
All GraphQL requests are sent to a single endpoint:
POST https://api.poolservicemanager.com/graphqlRequest Format
GraphQL requests should include the query in the request body and the authorization token in the headers:
curl -X POST https://api.poolservicemanager.com/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"query": "query { me { id email } }"
}'Pagination
The API supports two pagination patterns:
Cursor-based (infinite)
Use infinite* queries for cursor-based pagination. Pass first and after arguments.
query {
infiniteCustomers(first: 20, after: "cursor_value") {
edges {
node {
id
firstName
lastName
}
cursor
}
pageInfo {
hasNextPage
endCursor
}
}
}Page-based (paginated)
Use paginated* queries for traditional page-based pagination. Pass page and limit arguments.
query {
paginatedCustomers(page: 1, limit: 20) {
data {
id
firstName
lastName
}
pagination {
total
page
limit
totalPages
}
}
}Error Handling
GraphQL errors are returned in the errors array:
{
"data": null,
"errors": [
{
"message": "Not authorized",
"extensions": {
"code": "UNAUTHORIZED"
}
}
]
}Rate Limiting
API requests are rate-limited per organization. When limits are exceeded, requests will return a 429 Too Many Requests status code.