Vercel API Documentation

Dehradun Tourism REST API v1 Reference

Base URL: https://dehradun1.vercel.app · Production API: /api/v1

Machine-readable specifications & manifests:

⏱️ Rate Limits & RFC Headers

Standard IETF RateLimit headers are attached to every API response to allow AI agents to self-throttle:

  • RateLimit-Limit: 100 req / min
  • RateLimit-Remaining: [0-100]
  • RateLimit-Reset: seconds
  • RateLimit-Policy: 100;w=60
  • Retry-After: 60 (HTTP 429)

🔄 Versioning & Deprecation

The API uses URL path versioning (/api/v1/). Deprecation timeline is 12 months minimum.

  • API-Version: 1.0.0
  • Deprecation: false (active)
  • Sunset: Wed, 31 Dec 2030 GMT
  • Link: rel="deprecation"

🔑 Authentication & Access

The Dehradun Tourism Public REST API is zero-auth and completely free for public read-only requests. AI agents, web crawlers, and frontend applications can query all endpoints without requiring API keys or bearer tokens.

🔔 Webhooks & Event Delivery

For real-time visitor traffic and destination updates, clients can listen via SSE transport on /api/mcp or poll /api/v1/views. Webhook subscriptions for custom integrations can be configured via our GitHub repository.

GET/api/v1

Service discovery endpoint. Returns metadata, operational status, versioning policy, and a catalog of all public API endpoints.

Example Response (200 OK)

{
  "name": "Dehradun Tourism Public REST API (dehradun1.vercel.app)",
  "description": "Official public developer API providing tourism, destination, cultural, and travel data for Dehradun.",
  "version": "1.0.0",
  "status": "operational",
  "versioning_policy": {
    "current_version": "v1",
    "lifecycle": "Active supported version",
    "deprecation_policy": "Sunset notice provided 12 months in advance via Sunset HTTP headers."
  },
  "documentation_url": "https://dehradun1.vercel.app/docs/api",
  "developer_portal": "https://dehradun1.vercel.app/developers",
  "openapi_url": "https://dehradun1.vercel.app/openapi.json",
  "openapi_yaml_url": "https://dehradun1.vercel.app/openapi.yaml",
  "mcp_server": "https://dehradun1.vercel.app/.well-known/mcp",
  "llms_txt": "https://dehradun1.vercel.app/llms.txt",
  "endpoints": {
    "root": "/api/v1",
    "places": "/api/v1/places",
    "place_by_id": "/api/v1/places/{id}",
    "views": "/api/v1/views"
  }
}
GET/api/v1/places

List and filter tourist attractions, historical landmarks, nature reserves, temples, and institutes in Dehradun.

Query Parameters

ParameterTypeDescription
categorystringFilter by type: nature, heritage, spiritual, institutional, recreation
searchstringKeyword matching against place name, hindi name, or description (e.g. cave, temple)
limitintegerNumber of items to return (default: 50, max: 100)
offsetintegerPagination offset (default: 0)

Example Response (200 OK)

{
  "total": 17,
  "count": 1,
  "offset": 0,
  "limit": 50,
  "places": [
    {
      "id": "robbers-cave-guchhupani",
      "index": 1,
      "name": "Robber's Cave (Guchhupani)",
      "hindi": "गुच्चुपानी",
      "description": "A 600m long natural river cave formation, believed to be the hideout of Sultana Daaku.",
      "distance": "8 km from city center",
      "entryFee": "₹25–50",
      "bestTime": "Summer",
      "category": "nature",
      "lat": 30.3756,
      "lng": 78.0563,
      "image": "https://upload.wikimedia.org/wikipedia/commons/2/2e/Robber%27s_Cave_Dehradun.jpg"
    }
  ]
}
GET/api/v1/places/{id}

Retrieve detailed data for a specific tourist spot using its slug (e.g. forest-research-institute) or numerical index.

Example Request

curl -s "https://dehradun1.vercel.app/api/v1/places/forest-research-institute"
GETPOST/api/v1/views

Fetch or increment the site's live visitor counter. Supports GET /api/v1/views?action=up or standard POST /api/v1/views.

Structured JSON Error Responses

All API errors return consistent JSON objects with machine-readable error codes, messages, and resolution hints for AI agents.

{
  "error": {
    "code": "PLACE_NOT_FOUND",
    "message": "Tourist attraction with ID or slug 'invalid-id' was not found.",
    "status": 404,
    "hint": "Query GET /api/v1/places to discover available places and their unique slugs."
  }
}