# Common Issues

## Connection issues

<details>

<summary>My API key isn't working — the connection fails immediately</summary>

Double-check that you're entering both the **User ID** and the **API key** — they are two separate values in Acuity. Go to **Integrations > API** in your Acuity account to find both. Pasting only one of them will cause the connection to fail.

Also make sure there are no extra spaces before or after the values when you paste them into Coupler.io.

</details>

<details>

<summary>I see an authentication error even though my credentials look correct</summary>

Acuity API keys are tied to a specific account. If you recently reset your API key in Acuity, the old key stored in Coupler.io will stop working. Generate a new key in Acuity under **Integrations > API**, then update your data flow credentials in Coupler.io.

{% hint style="warning" %}
If your Acuity account is on a free or expired plan, API access may be restricted. Confirm your plan supports API integrations.
{% endhint %}

</details>

## Missing data

<details>

<summary>My appointments aren't showing up in the export</summary>

Check the **start date** you set in the data flow. Appointments before that date won't be included. If you set the start date to today, you'll only see appointments booked from today onward. Use the date picker to set an earlier date to pull historical bookings.

Also confirm the appointments exist in Acuity and aren't filtered out by calendar — if you have multiple calendars, all are included by default.

</details>

<details>

<summary>Canceled appointments are missing from my export</summary>

Canceled appointments **are** included in the Appointments entity. If you don't see them, check whether a filter has been applied in your destination (e.g., a Google Sheets filter view or a BigQuery query that excludes non-scheduled statuses). Look for a `status` column and check the values present.

</details>

<details>

<summary>Form responses aren't appearing in my data</summary>

Forms data is returned as a separate **Forms** entity, not embedded in Appointments. Add a second source in your data flow for the Forms entity, then use a **Join** transformation to link form responses to appointment records by client email or appointment ID.

</details>

## Permission errors

<details>

<summary>I get a "forbidden" or "access denied" error</summary>

This usually means the API key belongs to a sub-account or staff calendar that doesn't have full account access. Use the API credentials from the **main account owner** in Acuity, not a staff member's login. Only the account owner has full API access to all entities.

</details>

## Data discrepancies

<details>

<summary>Appointment counts in Coupler.io don't match what I see in Acuity</summary>

The most common cause is the **start date** setting — Coupler.io only pulls appointments from that date forward. Set an earlier start date and re-run the data flow to capture a fuller history.

Also check whether you're comparing against a specific calendar in Acuity. Coupler.io returns appointments across all calendars by default.

</details>

## Rate limits

<details>

<summary>My data flow fails with a rate limit or timeout error</summary>

Acuity's API has rate limits that can be triggered when pulling large volumes of appointment history in a single run. Try setting a more recent start date to reduce the volume of records in the first sync. Once the initial run succeeds, you can move the start date back incrementally to build up historical data.

</details>
