# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.csvgetter.com/troubleshooting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
