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/graphql

Request 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.