> For the complete documentation index, see [llms.txt](https://docs.csvgetter.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.csvgetter.com/troubleshooting.md).

# Troubleshooting

### Authentication Errors (401)

#### `Authorization header is required`

**Cause:** Your endpoint has Bearer auth enabled, but the request didn't include an `Authorization` header.

**Fix:** Add the header to your request:

```bash
curl -H "Authorization: Bearer your-token-here" https://api.csvgetter.com/abc123
```

In JavaScript:

```javascript
fetch("https://api.csvgetter.com/abc123", {
  headers: { "Authorization": "Bearer your-token-here" }
});
```

#### `Invalid Authorization header format`

**Cause:** The `Authorization` header doesn't start with `Bearer` (note the space after "Bearer").

**Fix:** Make sure the header is formatted as `Bearer <token>` with a space between "Bearer" and your token.

Wrong: `Authorization: your-token` Wrong: `Authorization: Beareryour-token` Right: `Authorization: Bearer your-token`

#### `Invalid Authorization header`

**Cause:** The Bearer token you provided doesn't match the one configured for this endpoint.

**Fix:** Log in to [csvgetter.com](https://csvgetter.com), navigate to the endpoint settings, and check the auth token. Make sure you're using the exact token shown there.

#### `AUTH_HEADER_MISSING`

**Cause:** Same as above, but returned on the proxy route (`/proxy/<id>`).

**Fix:** Same — add the correct `Authorization: Bearer <token>` header.

#### `INVALID_AUTH_HEADER`

**Cause:** Wrong token on the proxy route.

**Fix:** Check the token in your endpoint settings.

***

### Credit & Access Errors (403)

#### `Not enough credits. Login at csvgetter.com to purchase.`

**Cause:** Your credit balance is zero. Each non-preview endpoint hit uses 1 credit.

**Fix:**

1. Log in to [csvgetter.com](https://csvgetter.com).
2. Go to your Plan page.
3. Upgrade your plan or wait for your monthly credit reset.

#### `User ID not found`

**Cause:** The endpoint is associated with a user account that cannot be found.

**Fix:** Contact support at <info@csvgetter.com>.

#### `USER_BLOCKED`

**Cause:** Your account has been blocked by an administrator.

**Fix:** Contact support at <info@csvgetter.com>.

#### `Your free trial has expired`

**Cause:** You've used all 10 free trial hits without purchasing a plan.

**Fix:** Log in to [csvgetter.com](https://csvgetter.com) and select a paid plan.

#### `Please login to csvgetter.com to reactivate your URLs`

**Cause:** Your account was created but not fully initialized (you haven't logged into the dashboard yet).

**Fix:** Log in to [csvgetter.com](https://csvgetter.com) to complete account setup.

***

### Not Found Errors (404)

#### `Object not found`

**Cause:** The endpoint ID in the URL doesn't exist in the database. This happens if:

* The endpoint was deleted.
* The URL has a typo in the endpoint ID.
* You're using the wrong environment (staging vs production).

**Fix:** Check the URL against the endpoint listed in your dashboard at [csvgetter.com/urls](https://csvgetter.com/urls).

#### `URL not found in database.`

**Cause:** The proxy ID doesn't exist (on the `/proxy/<id>` route).

**Fix:** Verify the proxy URL is correct.

***

### SQL Errors (400)

#### `Could not validate sql.`

**Cause:** Your SQL query has a syntax error or references a column/table that doesn't exist.

**Response format:**

```json
{
  "error": "Could not validate sql.",
  "data": "no such column: nonexistent_column",
  "help": "https://docs.csvgetter.com/sql-parameter"
}
```

**Common sub-errors and fixes:**

| `data` field             | Cause                     | Fix                                                                                         |
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
| `no such column: X`      | Column name doesn't match | Check exact column names in your endpoint config. Column names are case-sensitive.          |
| `no such table: X`       | Wrong table name          | Always use `FROM csvgetter` — that's the only table.                                        |
| `near "X": syntax error` | SQL syntax error          | Check your SQL syntax. Common issues: missing quotes around strings, unmatched parentheses. |
| `unrecognized token`     | Special characters        | URL-encode your SQL query. Use `%20` for spaces, `%27` for single quotes, etc.              |

**Tips:**

* Column names with spaces must be wrapped in double quotes: `SELECT "First Name" FROM csvgetter`
* String values use single quotes: `WHERE status = 'Active'`
* The table is always `csvgetter`
* Use the URL Wizard to test SQL before deploying

#### `Custom parameter 'X' is not enabled for this object.`

**Cause:** You used a parameter (like `all_fields`) that requires custom configuration for this specific endpoint.

**Fix:** Contact support or check if the parameter is enabled in your endpoint settings.

***

### Data Source Errors (409, 423, 429)

#### `We received an error to indicate that your Airtable data structure may have changed.`

**Status:** 409

**Cause:** The Airtable table's field structure has changed since the endpoint was created. Fields may have been renamed, deleted, or had their types changed.

**Fix:**

1. Log in to [csvgetter.com](https://csvgetter.com).
2. Go to your endpoint settings.
3. Re-select the table and fields to match the current Airtable structure.
4. Save the endpoint.

#### `Failed to authenticate with export platform.`

**Status:** 423

**Cause:** The OAuth token for Airtable or Notion has expired, been revoked, or the integration was disconnected.

**Fix:**

1. Log in to [csvgetter.com](https://csvgetter.com).
2. Go to your Connections/Data page.
3. Reconnect the affected platform (Airtable or Notion).

#### Platform API Rate Limit (`PUBLIC_API_BILLING_LIMIT_EXCEEDED`)

**Status:** 429

**Cause:** Airtable's own API rate limit has been exceeded (5 requests per second per base).

**Fix:**

* Wait a few seconds and try again.
* If you're making automated requests, add a delay between calls.
* For high-frequency use cases, consider caching the response on your end.

***

### Server Errors (500)

#### `Dataframe could not be retrieved`

**Cause:** CSV Getter was unable to fetch or process the data from your source. This could be due to:

* A temporary issue with the data source (Airtable/Notion API down).
* A very large dataset causing a timeout.
* A misconfigured endpoint.

**Fix:**

1. Wait a minute and try again (might be a temporary issue).
2. Check if the data source is accessible directly (e.g., open Airtable and verify the base is accessible).
3. If persistent, contact support with your endpoint ID.

#### `You have been disconnected from Airtable. Please reconnect.`

**Cause:** The Airtable API key or OAuth token is invalid and couldn't be refreshed.

**Fix:** Log in to [csvgetter.com](https://csvgetter.com) and reconnect your Airtable account.

***

### Scheduled Job Failures

If a scheduled job fails, you'll receive an email with the error details:

**Subject:** `Scheduled Export Failed: <job name>`

The email includes the reason for the failure, which will match one of the errors described above.

**Common fixes for job failures:**

* Re-authenticate with the data source platform.
* Check that you have enough credits.
* Verify the endpoint still exists and hasn't been deleted.
* Check that the data source structure hasn't changed.

***

### Still Stuck?

* Email: <info@csvgetter.com>
* Book a call: [calendly.com/amjtech/csv-getter-test](https://calendly.com/amjtech/csv-getter-test)
