Vindur API Reference
Base URL: https://vindur.app. Authentication: none for public read endpoints.
GET /api/spots
Lists public quiet nature sanctuaries.
curl "https://vindur.app/api/spots?q=orman&minRating=4&limit=5"
GET /api/spots/{id}
Returns one sanctuary by id or slug.
curl "https://vindur.app/api/spots/seed_spot_1"
GET /api/search
Searches names, descriptions, tags and scenery signals.
curl "https://vindur.app/api/search?q=sahil"
GET or POST /ask
Returns a lightweight NLWeb-compatible answer with source URLs.
curl "https://vindur.app/ask?q=sakin%20orman%20oner"
curl -N "https://vindur.app/ask?q=sakin%20orman%20oner&stream=true"
POST /api/batch
Runs up to 10 read operations in one request and accepts Idempotency-Key.
Sandbox and Versioning
Sandbox endpoint: GET /api/sandbox/spots. Stable v1 aliases: /api/v1/spots and /api/v1/search.
Rate Limits and Retry
Limit: 120 requests/minute. Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-Request-Id. Retry 429/temporary 5xx with exponential backoff starting at 2 seconds.
JSON Error Format
{
"error": {
"code": "spot_not_found",
"message": "No public Vindur sanctuary matched the requested id or slug.",
"docs": "https://vindur.app/api-reference"
}
}
Machine-readable spec: openapi.json.