canonical: https://jentic.com/apis/propetware.com/propetware

# Propetware API

The Propetware API reads and updates the customer and pet records behind a pet care business running on Propetware, such as a boarding kennel, daycare, or grooming shop. It creates and updates customers and their pets, records notes against customers, pets, and orders, and manages vaccination records and vaccination types. It lists orders and bookings with date, status, pet, and kennel filters, exposes the service menu of rates, add-ons, classes, grooming, and training, and sends webhooks for events such as order.created and booking.checkedIn.

## For AI agents

Look up and update pet care customers, pets, notes, and vaccination records, list orders and bookings, read the service menu, and subscribe to booking and order webhooks in Propetware.

## Scope

Does not take payments, process invoices, or keep veterinary clinical records. Use for pet care customers, pets, bookings, notes, and vaccination records in Propetware only.

## Capabilities

- Create a customer with firstName, lastName, and email, and add pets with a name and species such as dog or cat
- Record and update notes on a customer, a pet, or an order
- Create, update, and delete pet vaccination records and define vaccination types
- List bookings filtered by date, status, pet, customer, kennel, or order
- List orders by start and end date, status, customer, or pet
- Read the service menu of boarding rates, add-ons, classes, grooming, and training services
- Subscribe a webhook to events such as booking.checkedIn, order.changeRequested, and vaccination.updated, and review its deliveries

## Use cases

### Agent-Run Front Desk Lookups

An AI agent connected through Jentic answers front desk questions for a boarding kennel: it searches customers by email or name with the q parameter, lists the customer's pets, checks vaccination records before a stay, and adds a note to the order when the owner calls with instructions. Staff get answers in chat without switching screens.

Example prompt: Search customers in account 101 by email jane@example.com, list her pets, list each pet's vaccinations, and create an order note on order 5521 saying pickup is after 6pm

### Daily Arrivals and Departures Report

Each morning a script lists bookings for the day with the booking date filter, groups them by kennel, and flags pets whose vaccination records need review. The kennel and order filters on the bookings list let the report drill into one run or one stay.

Example prompt: List bookings for account 101 on 2026-11-13, group them by kennelId, and report which pets have vaccinations to review

### New Customer Intake

When a new owner fills in a web form, the intake flow creates the customer with firstName, lastName, and email, adds each pet with a name and species, and records vaccination details. Optional flags such as sendWelcomeEmail control whether Propetware emails the new customer.

Example prompt: Create customer Sam Lee with email sam@example.com in account 101, then create a pet named Biscuit with species dog for that customer

### Event-Driven Sync

A business keeps its marketing list or accounting tool in step with Propetware by subscribing a webhook to events such as customer.created, order.created, booking.checkedIn, and booking.checkedOut. A test operation fires a webhook.test event, and the deliveries list shows what was sent.

Example prompt: Create a webhook to https://example.com/hooks with events booking.checkedIn and booking.checkedOut, then send a test event and read its deliveries

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/accounts/{accountId}/customers` | List or search customers |
| POST | `/accounts/{accountId}/customers` | Create a customer |
| POST | `/accounts/{accountId}/customers/{customerId}/pets` | Create a pet |
| GET | `/accounts/{accountId}/bookings` | List bookings |
| GET | `/accounts/{accountId}/orders` | List orders |
| GET | `/accounts/{accountId}/pets/{petId}/vaccinations` | List pet vaccinations |
| POST | `/accounts/{accountId}/orders/{orderId}/notes` | Create an order note |
| POST | `/webhooks` | Create a webhook |

## Key resources

- **Customers** — Pet owners with contact details, custom fields, and notes
- **Pets** — Pets with species, breed, status, vaccinations, preventives, and documents
- **Orders and bookings** — Stays and services, filterable by date, status, pet, and kennel
- **Products** — Rates, add-ons, retail products, classes, grooming, and training services
- **Webhooks** — Event subscriptions with delivery history and test events

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 61 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 53 / 100
  - Developer Experience & Jentic Compatibility: 61 / 100
  - AI-Readiness & Agent Experience: 52 / 100
  - Agent Usability: 82 / 100
  - Security: 58 / 100
  - AI Discoverability: 73 / 100
- **View full report:** https://jentic.com/apis/propetware.com/propetware/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Propetware by hand means sending the `X-API-Key` header, threading the accountId through nearly every path, and backing off on 429s using `X-RateLimit-Remaining` and Retry-After. Through Jentic you install once, import Propetware from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Propetware puts the account id in the URL path (`/accounts/{accountId}/...`), and customer, pet, and order ids follow it, so a rule can pin your agent to one account, or one customer, and the operations you pick. You choose the operations it may call, so destructive ones like deleting notes, vaccination records, or webhooks are not included unless you add them.
- **Credential handling:** Your Propetware API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list pet bookings for a date' or 'check a pet's vaccinations', and Jentic returns the matching Propetware operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Provet Cloud** — Provet Cloud runs veterinary practice records, which sit alongside a boarding or grooming business's Propetware data.
- **HubSpot CRM Contacts** — HubSpot CRM stores contacts and deals for general businesses, without pet or kennel records.
- **Mailchimp** — Mailchimp sends marketing email to audiences, such as pet owners synced from Propetware.

## FAQ

### What authentication does the Propetware API use?

Per its OpenAPI spec, the account, customer, pet, booking, product, and webhook operations authenticate with an API key in the `X-API-Key` header (scheme ApiKeyAuth). The spec also declares an alternate form, the key sent as `Authorization: ApiKey <key>` (scheme ApiKeyAuthAlt), and a JWT bearer token (scheme BearerAuth) that the auth refresh, logout, and me operations use after a customer logs in with email and password. Through Jentic the key is stored encrypted by your own Jentic One instance and injected at call time.

### What are the rate limits for the Propetware API?

The Propetware OpenAPI spec states a deployed default of 600 requests per minute per API client, in a sixty-second window that opens on the first counted request. It tells clients to read the real ceiling from `X-RateLimit-Limit` and the remaining budget from `X-RateLimit-Remaining`, and to honor Retry-After on a 429, which is never processed and so is always safe to retry.

### Can I check a pet's vaccinations with the Propetware API?

Yes. You can list a pet's vaccination records, create a new record, update or delete one, and list the vaccination types the account defines. Preventive records and pet documents have their own list operations, and documents can be downloaded.

### Is there a Propetware MCP server?

You don't need an MCP server to give your agent Propetware. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls it, finding operations on demand instead of loading every tool definition into its context.

### Can I limit what my agent is allowed to do with the Propetware API?

Yes. For example, write a rule that allows only the customer list, pet list, vaccination list, and order note create operations under `/accounts/101`, so the agent can look up owners and pets for that one business and leave order notes, while note deletion, custom field changes, and webhook management stay out of reach. Every call it makes is logged.

### How do I list a day's bookings with the Propetware API through Jentic?

Import the Propetware API from the Jentic API Directory, store your API key once, and have your agent search Jentic for 'list pet bookings for a date'. Jentic returns the list bookings operation with its input schema, including the accountId path parameter and filters for date, status, pet, customer, and kennel. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Which webhook events does Propetware send?

The webhook create operation takes a url and a list of events, including customer.created, pet.updated, order.created, order.changeRequested, order.cancelled, booking.checkedIn, booking.checkedOut, note.created, and vaccination.updated, among others. A test operation sends a webhook.test event, and a deliveries operation lists what was sent to each webhook.
