> ## Documentation Index
> Fetch the complete documentation index at: https://docs.withampersand.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Housecall Pro

## What's Supported

### Supported Actions

This connector supports:

* [Read Actions](/read-actions), including full historic backfill. **Please note that incremental read is not supported for all objects.**
* [Write Actions](/write-actions).
* [Subscribe Actions](/subscribe-actions). Please note that [special set up](#set-up-subscribe-actions) is needed for Housecall Pro.
* [Proxy Actions](/proxy-actions), using the base URL `https://api.housecallpro.com`.

### Supported Objects

| Object                                                                                                                            | Read            | Write | Subscribe | Notes |
| --------------------------------------------------------------------------------------------------------------------------------- | --------------- | ----- | --------- | ----- |
| [customers](https://docs.housecallpro.com/docs/housecall-public-api/042bd3bf861ae-get-customers)                                  | ✓ (incremental) | ✓     | ✓         |       |
| [employees](https://docs.housecallpro.com/docs/housecall-public-api/303ee235f23fa-get-employees)                                  | ✓               |       | ✓         | ¹     |
| [estimates](https://docs.housecallpro.com/docs/housecall-public-api/e430ba3d520a0-get-estimates)                                  | ✓ (incremental) | ✓     | ✓         |       |
| [events](https://docs.housecallpro.com/docs/housecall-public-api/5f8b2b787f4ba-get-events)                                        | ✓ (incremental) |       |           |       |
| [jobs](https://docs.housecallpro.com/docs/housecall-public-api/6c97704da8bf3-get-jobs)                                            | ✓ (incremental) | ✓     | ✓         |       |
| [job\_fields/job\_types](https://docs.housecallpro.com/docs/housecall-public-api/0c6fb36d5730d-get-job-types)                     | ✓               | ✓     |           |       |
| [leads](https://docs.housecallpro.com/docs/housecall-public-api/278974bc87e32-get-leads)                                          | ✓               | ✓     | ✓         | ²     |
| [lead\_sources](https://docs.housecallpro.com/docs/housecall-public-api/7444a4f65ed77-get-lead-sources)                           | ✓               | ✓     |           |       |
| [price\_book/materials](https://docs.housecallpro.com/docs/housecall-public-api/e404d4b30ea0d-create-material)                    |                 | ✓     |           |       |
| [price\_book/material\_categories](https://docs.housecallpro.com/docs/housecall-public-api/77aaf46f5b3db-get-material-categories) | ✓ (incremental) | ✓     |           |       |
| [price\_book/price\_forms](https://docs.housecallpro.com/docs/housecall-public-api/e9b15f38e151b-get-price-forms)                 | ✓               | ✓     |           |       |
| [price\_book/services](https://docs.housecallpro.com/docs/housecall-public-api/b68be85878ece-get-price-book-services)             | ✓               |       |           |       |
| [service\_zones](https://docs.housecallpro.com/docs/housecall-public-api/38b31504822e9-get-service-zones)                         | ✓               |       |           |       |
| [routes](https://docs.housecallpro.com/docs/housecall-public-api/8d0d12e41a38b-get-routes)                                        | ✓               |       |           |       |
| [tags](https://docs.housecallpro.com/docs/housecall-public-api/e8fa7b29f8a8b-get-tags)                                            | ✓               | ✓     |           |       |
| [invoices](https://docs.housecallpro.com/docs/housecall-public-api/65ce9f430d605-get-invoices)                                    | ✓               |       | ✓         |       |
| [job.appointments](https://docs.housecallpro.com/docs/housecall-public-api/46e9e1be07621-webhooks#job-appointment-webhook-events) |                 |       | ✓         | ³     |

¹ Subscribe only via [`otherEvents`](/subscribe-actions#other-events). In Housecall Pro's webhook UI, this event appears as `pro.created`, but the actual payload uses `employee.created`. Example fragment:

```yaml theme={null}
- objectName: employee
  destination: housecallProWebhook
  otherEvents:
    - employee.created
```

² Delete events for `leads` are not reliable due to Housecall Pro platform limitations.

³ Subscribe only via [`otherEvents`](/subscribe-actions#other-events). Standard events are not supported. Example fragment:

```yaml theme={null}
- objectName: job.appointments
  destination: housecallProWebhook
  otherEvents:
    - job.appointment.scheduled
    - job.appointment.rescheduled
    - job.appointment.appointment_discarded
    - job.appointment.appointment_pros_assigned
    - job.appointment.appointment_pros_unassigned
```

### Example integration

For an example manifest file of a Housecall Pro integration, visit our [samples repo on GitHub](https://github.com/amp-labs/samples/blob/main/housecallPro/amp.yaml).

## Before you get started

To use the Housecall Pro connector, you'll need an API Key from your Housecall Pro account. Here's how to get it:

1. Sign into your Housecall Pro account and go to App Store.
2. Find the API Key Management under My Apps, and click on it.
3. On the right-hand side, click Generate API Key.
4. Name your API Key.
5. Copy the API Key.

<img src="https://mintcdn.com/ampersand-24eb5c1a/VAO6EGavWNkQf7Wl/images/provider-guides/housecallpro.gif?s=b6a69de5f87d7032140f14da8f74c99e" alt="Housecall Pro API Key" width="800" height="425" data-path="images/provider-guides/housecallpro.gif" />

For more details, see the [Housecall Pro Authentication documentation](https://docs.housecallpro.com/docs/housecall-public-api/b87d37ae48a0d-authentication).

## Using the connector

This connector uses API Key authentication, which means that you do not need to set up a Provider App before getting started. (Provider apps are only required for providers that use OAuth2 Authorization Code grant type.)

To integrate with Housecall Pro:

* Create a manifest file like the [example](https://github.com/amp-labs/samples/blob/main/housecallPro/amp.yaml).
* Deploy it using the [amp CLI](/cli/overview).
* If you are using Read Actions or Subscribe Actions, create a [destination](/destinations).
* Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. The UI component will prompt the customer for an API key.
* Start using the connector!
  * If your integration has [Read Actions](/read-actions) or [Subscribe Actions](/subscribe-actions), you'll start getting webhook messages.
  * If your integration has [Write Actions](/write-actions), you can start making API calls to our Write API.
  * If your integration has [Proxy Actions](/proxy-actions), you can start making Proxy API calls.

## Set up Subscribe Actions

To receive subscribe events from Housecall Pro, the **customer** will enable webhooks in their Housecall Pro UI using a webhook URL you provide.

The flow:

1. **Define the subscribe action** in your `amp.yaml` and deploy it with the [amp CLI](/cli/overview).

2. **Generate a webhook URL for each customer** in this format:

   ```
   https://subscribe-webhook.withampersand.com/v1/projects/PROJECT_ID/integrations/INTEGRATION_ID/installations/INSTALLATION_ID
   ```

3. **Share the [Housecall Pro customer guide](/customer-guides/housecallPro#2-set-up-webhooks-for-real-time-updates-subscribe-actions)** with the customer and the webhook URL from Step 2. The customer will paste the webhook URL into the Housecall Pro UI and enable the events your integration subscribes to.
