{"id":49250345,"url":"https://github.com/asbinthapa99/freeapi","last_synced_at":"2026-04-25T00:01:35.113Z","repository":{"id":353647269,"uuid":"1220192157","full_name":"asbinthapa99/Freeapi","owner":"asbinthapa99","description":"Nepal-focused REST API ecosystem providing 10 modular services across language AI, agriculture, finance, education, health, tourism, government, transport, and jobs. Built for mobile-first usage, Nepali/English support, and scalable integration into real-world applications and startups","archived":false,"fork":false,"pushed_at":"2026-04-24T19:38:58.000Z","size":1034,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-24T21:32:48.476Z","etag":null,"topics":["10-free-apis-for-nepal","free-api-nepal","freeapi","json","restapi"],"latest_commit_sha":null,"homepage":"https://freeapi-six.vercel.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asbinthapa99.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-24T16:35:58.000Z","updated_at":"2026-04-24T19:39:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/asbinthapa99/Freeapi","commit_stats":null,"previous_names":["asbinthapa99/freeapi"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/asbinthapa99/Freeapi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asbinthapa99%2FFreeapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asbinthapa99%2FFreeapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asbinthapa99%2FFreeapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asbinthapa99%2FFreeapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asbinthapa99","download_url":"https://codeload.github.com/asbinthapa99/Freeapi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asbinthapa99%2FFreeapi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32245151,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["10-free-apis-for-nepal","free-api-nepal","freeapi","json","restapi"],"created_at":"2026-04-25T00:01:33.816Z","updated_at":"2026-04-25T00:01:35.107Z","avatar_url":"https://github.com/asbinthapa99.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nepal API Ecosystem\n\n**10 free, production-ready REST APIs built for Nepal.** Agriculture prices, trekking permits, health triage, transport booking, forex rates, job matching, and more — all under one base URL.\n\n\u003e 📖 **Swagger Docs:** `/docs` \u0026nbsp;|\u0026nbsp; ⚡ **Health:** `/health`\n\n---\n\n## Current Release\n\n- Tag: `v1.2.0`\n- Target: `main`\n- Release commit: `02091d9`\n- Release URL: `https://github.com/asbinthapa99/Freeapi/releases/tag/v1.2.0`\n\nRelease notes cover:\n- platform highlights\n- auth/RBAC\n- Swagger/OpenAPI\n- metrics/observability\n- CI/CD\n- validation\n- attribution-required license\n\n---\n\n## Base URL\n\n```\nhttps://your-app.vercel.app/api/v1\n```\n\nNo API key needed for public read endpoints. Write endpoints require a Bearer token — see [Authentication](#authentication).\n\n---\n\n## Quick Start\n\n```bash\n# Health check\ncurl https://your-app.vercel.app/health\n\n# Live forex rates (NPR)\ncurl https://your-app.vercel.app/api/v1/finance/forex/rates\n\n# Trekking routes\ncurl https://your-app.vercel.app/api/v1/tourism/treks/routes\n\n# Job search\ncurl \"https://your-app.vercel.app/api/v1/jobs/search?category=IT\u0026location=Kathmandu\"\n```\n\n---\n\n## Swagger Preview\n\nInteractive API docs are available at `/docs`.\n\n![Swagger UI Preview 1](\u003cScreenshot 2026-04-24 at 23.08.31.png\u003e)\n\n![Swagger UI Preview](\u003cScreenshot 2026-04-24 at 23.09.28.png\u003e)\n\n---\n\n## APIs\n\n### 🔐 Auth — `/api/v1/auth`\n\n| Method | Endpoint | Auth | Description |\n|--------|----------|------|-------------|\n| POST | `/auth/login` | — | Login, returns Bearer token |\n| POST | `/auth/register` | Admin | Create a new user |\n| POST | `/auth/refresh` | — | Refresh access token |\n| GET | `/auth/users` | Admin | List all users |\n| PATCH | `/auth/users/:user_id` | Admin | Update user |\n| DELETE | `/auth/users/:user_id` | Admin | Delete user |\n\n---\n\n### 🗣️ BhasaAI — `/api/v1/language`\n\n| Method | Endpoint | Auth | Description |\n|--------|----------|------|-------------|\n| POST | `/language/translate` | — | Translate text (Nepali ↔ English) |\n| POST | `/language/transliterate` | — | Romanize Nepali text |\n| POST | `/language/sentiment` | — | Sentiment analysis |\n| POST | `/language/ner` | — | Named entity recognition |\n| GET | `/language/detect?text=...` | — | Detect language |\n\n```bash\ncurl -X POST https://your-app.vercel.app/api/v1/language/translate \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Hello\",\"source_lang\":\"en\",\"target_lang\":\"ne\"}'\n```\n\n---\n\n### 🌾 KrishiData — `/api/v1/agri`\n\n| Method | Endpoint | Auth | Description |\n|--------|----------|------|-------------|\n| GET | `/agri/prices/kalimati` | — | Live Kalimati market prices |\n| GET | `/agri/crops/calendar` | — | Planting/harvest calendar |\n| GET | `/agri/weather/forecast` | — | Farm weather forecast |\n| POST | `/agri/disease/analyze` | — | Crop disease diagnosis |\n| POST | `/agri/fertilizer/recommend` | — | Fertilizer recommendations |\n\n---\n\n### 🚨 NepalAlert — `/api/v1/disaster`\n\n| Method | Endpoint | Auth | Description |\n|--------|----------|------|-------------|\n| GET | `/disaster/alerts/active` | — | Active disaster alerts |\n| GET | `/disaster/rivers/levels` | — | River flood levels |\n| GET | `/disaster/earthquakes/recent` | — | Recent earthquake data |\n| GET | `/disaster/landslide/risk-zones` | — | Landslide risk zones |\n| POST | `/disaster/subscribe` | — | Subscribe to SMS alerts |\n\n---\n\n### 🏔️ YatraTech — `/api/v1/tourism`\n\n| Method | Endpoint | Auth | Description |\n|--------|----------|------|-------------|\n| GET | `/tourism/treks/routes` | — | All trekking routes |\n| POST | `/tourism/permits/apply` | — | Apply for trekking permit |\n| GET | `/tourism/permits/:permit_id/status` | — | Check permit status |\n| POST | `/tourism/itinerary/generate` | — | AI itinerary generator |\n| GET | `/tourism/teahouses/availability` | — | Teahouse availability |\n| POST | `/tourism/altitude/risk` | — | Altitude sickness risk |\n\n```bash\ncurl -X POST https://your-app.vercel.app/api/v1/tourism/permits/apply \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"trek_id\":\"EBC\",\"passport_number\":\"P123456\",\"nationality\":\"Foreign\"}'\n```\n\n---\n\n### 💰 PaisaLink — `/api/v1/finance`\n\n| Method | Endpoint | Auth | Description |\n|--------|----------|------|-------------|\n| GET | `/finance/forex/rates` | — | Live NRB forex rates |\n| POST | `/finance/remittance/calculate` | — | Remittance calculator |\n| POST | `/finance/payment/initiate` | — | Initiate eSewa/Khalti payment |\n| GET | `/finance/payment/:tracking_code/status` | — | Payment status |\n| GET | `/finance/banks/branches` | — | Bank branch locator |\n| POST | `/finance/budget/categorize` | — | Budget categorizer |\n| GET | `/finance/microfinance/list` | — | Microfinance institutions |\n\n---\n\n### 📚 Shikshya — `/api/v1/education`\n\n| Method | Endpoint | Auth | Description |\n|--------|----------|------|-------------|\n| POST | `/education/tutor/ask` | — | AI tutor (any subject/grade) |\n| GET | `/education/syllabus/:grade` | — | Syllabus by grade (1–12) |\n| GET | `/education/past-papers` | — | Past exam papers |\n| POST | `/education/grade/objective` | — | Grade objective answers |\n| POST | `/education/grade/essay` | — | Grade essay answers |\n\n---\n\n### 🏥 SwasthyaTriage — `/api/v1/health`\n\n| Method | Endpoint | Auth | Description |\n|--------|----------|------|-------------|\n| POST | `/health/triage/analyze` | — | Symptom-based triage |\n| GET | `/health/facilities/nearby` | — | Nearby health facilities |\n| GET | `/health/first-aid/:condition` | — | First-aid guide |\n| GET | `/health/diseases/outbreaks` | — | Disease outbreak monitor |\n| POST | `/health/records/sync` | Admin | Sync health records |\n\n```bash\ncurl -X POST https://your-app.vercel.app/api/v1/health/triage/analyze \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"symptoms\":[\"high_fever\",\"joint_pain\",\"rash\"],\"patient_age\":28}'\n```\n\n---\n\n### 🏛️ NagarikConnect — `/api/v1/gov`\n\n| Method | Endpoint | Auth | Description |\n|--------|----------|------|-------------|\n| GET | `/gov/holidays` | — | Public holidays |\n| GET | `/gov/tax/vehicle-rates` | — | Vehicle tax rates |\n| POST | `/gov/documents/verify` | — | Document verification |\n| GET | `/gov/offices/ward` | — | Ward office locator |\n| GET | `/gov/applications/:tracking_id/status` | — | Application status |\n| POST | `/gov/applications/submit` | — | Submit application |\n\n---\n\n### 💼 RozgariMatch — `/api/v1/jobs`\n\n| Method | Endpoint | Auth | Description |\n|--------|----------|------|-------------|\n| GET | `/jobs/search` | — | Search jobs (category, location, type) |\n| POST | `/jobs/resume/parse` | — | Extract skills from resume text |\n| POST | `/jobs/match` | — | Match candidate to open jobs |\n| GET | `/jobs/demand/:lt_number` | — | Foreign demand letter lookup |\n| POST | `/jobs/post` | Admin | Post a job listing |\n\n```bash\ncurl \"https://your-app.vercel.app/api/v1/jobs/search?category=IT\u0026location=Kathmandu\"\n```\n\n---\n\n### 🚌 YataYat — `/api/v1/transport`\n\n| Method | Endpoint | Auth | Description |\n|--------|----------|------|-------------|\n| GET | `/transport/routes/search` | — | City bus routes |\n| GET | `/transport/routes/intercity` | — | Intercity routes |\n| GET | `/transport/fare/calculate` | — | Fare calculator |\n| GET | `/transport/buses/:bus_id/schedule` | — | Bus schedule |\n| POST | `/transport/tickets/book` | — | Book a ticket |\n| GET | `/transport/tickets/:trip_id/status` | — | Ticket status |\n| GET | `/transport/buses/:bus_id/live` | — | Live bus tracking |\n\n---\n\n## Authentication\n\nAdmin endpoints require a Bearer token:\n\n```bash\n# 1. Get token\nTOKEN=$(curl -s -X POST https://your-app.vercel.app/api/v1/auth/login \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\":\"admin@nepalapi.dev\",\"password\":\"NepalApi@2024!\"}' \\\n  | python3 -c \"import sys,json; print(json.load(sys.stdin)['data']['token'])\")\n\n# 2. Use it\ncurl -H \"Authorization: Bearer $TOKEN\" \\\n  https://your-app.vercel.app/api/v1/auth/users\n```\n\n---\n\n## Response Format\n\n**Success:**\n```json\n{\n  \"status\": \"success\",\n  \"data\": { \"...\" }\n}\n```\n\n**Error:**\n```json\n{\n  \"error\": {\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"symptoms must be a non-empty array.\",\n    \"status\": 400\n  }\n}\n```\n\n---\n\n## Rate Limiting\n\n100 requests / 15 min per IP on all `/api/` routes. Returns `429` when exceeded.\n\n---\n\n## Deploy Your Own\n\n### Vercel\n\n1. Fork this repo\n2. Go to [vercel.com](https://vercel.com) → New Project → import your fork\n3. Add environment variables:\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `MONGO_URI` | Yes | MongoDB Atlas connection string |\n| `JWT_SECRET` | Yes | Any long random string |\n\n4. Deploy — done.\n\n### Local\n\n```bash\ngit clone https://github.com/asbinthapa99/Freeapi.git\ncd Freeapi\nnpm install\n# Create .env (see .env.example)\nnpm run dev\n# → http://localhost:3000\n```\n\n### Docker\n\n```bash\ndocker build -t nepal-api .\ndocker run -p 3000:3000 --env-file .env nepal-api\n```\n\n---\n\n## Render Deploy\n\nThis backend is a better fit for Render than Vercel because it runs as a\nlong-lived Express server and can keep normal Node process behavior.\n\nRecommended setup:\n\n1. Create a new `Web Service` on Render from this repository.\n2. Use the included [`render.yaml`](render.yaml) blueprint or set:\n   `Build Command: npm install`\n   `Start Command: npm start`\n3. Add required environment variables:\n   `JWT_SECRET`\n   `ADMIN_EMAIL`\n   `ADMIN_PASSWORD`\n   `MONGO_URI`\n   `MONGO_DB_NAME`\n   `CORS_ORIGIN`\n4. Use MongoDB Atlas for persistence.\n5. Point your Vercel frontend to the Render API URL, for example:\n   `NEXT_PUBLIC_API_URL=https://your-render-service.onrender.com`\n\nProduction note:\n\n- Do not rely on local file persistence in production.\n- Set `MONGO_REQUIRED=true`.\n- Keep `ALLOW_PUBLIC_REGISTRATION=false` unless you explicitly want open signups.\n\n---\n\n## Tech Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Runtime | Node.js + Express |\n| Database | MongoDB Atlas + JSON file fallback |\n| Auth | JWT (jsonwebtoken + bcryptjs) |\n| Validation | express-validator |\n| API Docs | Swagger UI (`/docs`) |\n| Logging | Winston + Morgan |\n| Security | Helmet, CORS, rate-limit |\n\n---\n\n## License\n\nThis project is free to use, copy, modify, and deploy, but you must give\ncredit to the original author.\n\nRequired attribution:\n\n```text\nOriginal work by Asbin Thapa - Nepal API Ecosystem\n```\n\nFiles:\n\n- `LICENSE`\n- `CODE_OF_CONDUCT.md`\n\nThis repository is not MIT-licensed. It uses an attribution-required\nlicense included in the root `LICENSE` file.\n\n---\n\n## License\n\nFree to use with required attribution. See `LICENSE`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasbinthapa99%2Ffreeapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasbinthapa99%2Ffreeapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasbinthapa99%2Ffreeapi/lists"}