Skip to main content

Documentation Index

Fetch the complete documentation index at: https://vaquill.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Error Format

Errors return JSON with a detail field:
{
  "detail": "Invalid or missing API key."
}
Validation errors (422) include field-level details:
{
  "detail": [
    {
      "loc": ["body", "query"],
      "msg": "Field required",
      "type": "missing"
    }
  ]
}

Status Codes

CodeMeaningAction
200Success
401UnauthorizedCheck your API key and Authorization header
402Payment RequiredInsufficient credits. Purchase more or upgrade to API Pro
404Not FoundResource does not exist
422Validation ErrorCheck request body for missing or invalid fields
429Rate LimitedBack off and retry with exponential backoff
500Internal ErrorRetry after a brief delay. Contact support if it persists

Rate Limiting

On 429, implement exponential backoff:
import time
import requests

def search_with_retry(query, max_retries=3):
    for attempt in range(max_retries):
        response = requests.post(
            "https://api.vaquill.ai/api/v1/research/search",
            headers={"Authorization": "Bearer vq_key_..."},
            json={"query": query}
        )
        if response.status_code == 429:
            time.sleep(2 ** attempt)
            continue
        return response
    raise Exception("Max retries exceeded")

Troubleshooting

Include the Bearer prefix: Authorization: Bearer vq_key_.... The key alone is rejected.
Credit purchases may take a few seconds to reflect after the payment provider confirms. Retry after a moment.
Set Content-Type: application/json. Check the loc field in the response to find the problematic field.