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.