Error Handling
The TexAu V3 API uses standard HTTP status codes and returns JSON error responses.
HTTP Status Codes
| Code | Meaning | Billed? |
|---|---|---|
200 | Success | Yes |
201 | Created | Yes |
400 | Bad Request — invalid parameters | No |
403 | Forbidden — missing or invalid API key | No |
404 | Not Found — unknown endpoint or resource | No |
429 | Too Many Requests — monthly quota exceeded | No |
500 | Internal Server Error | No |
502 | Bad Gateway — upstream service error | No |
504 | Gateway Timeout — upstream service timed out | No |
Error Response Format
All errors return a JSON object with an error field:
{
"error": "Description of what went wrong"
}
Common Errors
Missing or Invalid API Key (403)
curl https://v3-api.texau.com/api/v1/enrich_profile
# No x-api-key header
{
"message": "Forbidden"
}
Fix: Add a valid x-api-key header to every request. Both missing and invalid keys return the same 403 Forbidden response.
Unknown Endpoint (404)
curl https://v3-api.texau.com/api/v1/nonexistent \
-H "x-api-key: YOUR_API_KEY"
{
"error": "Unknown API: nonexistent",
"available_apis": ["enrich_profile", "enrich_company", ...]
}
Fix: Check the endpoint name. The available_apis list shows all valid endpoints.
Quota Exceeded (429)
{
"error": "Monthly quota exceeded",
"api": "enrich_profile",
"limit": 100000,
"current": 100000
}
Fix: Wait until the next month or contact us for a higher limit.
Upstream Error (502)
{
"error": "Authentication with provider failed"
}
Fix: This is a server-side issue. Retry your request. If the problem persists, contact support.
Timeout (504)
{
"error": "Provider timeout or connection error",
"detail": "..."
}
Fix: The request took too long. Retry with a smaller batch size or try again later.
Retry Strategy
We recommend exponential backoff for retries:
import time
import requests
def call_api(url, data, api_key, max_retries=3):
for attempt in range(max_retries):
response = requests.post(
url,
json=data,
headers={
"x-api-key": api_key,
"Content-Type": "application/json"
}
)
if response.status_code == 200:
return response.json()
if response.status_code in (429, 502, 504):
wait = 2 ** attempt # 1s, 2s, 4s
time.sleep(wait)
continue
# Non-retryable error
response.raise_for_status()
raise Exception("Max retries exceeded")
Rate Limiting Headers
The API does not currently return rate limit headers. Use the /usage endpoint to check your current consumption against your monthly quota.
Last updated Mar 26, 2026
Built with Documentation.AI