# CourtMesh: full-text reference for AI systems > This file is the full readable prose of CourtMesh's evergreen pages, > concatenated for answer engines and assistants. It is the content > companion to the link index at https://courtmesh.ai/llms.txt. CourtMesh is an > Indian legal research and litigation technology platform: unified search > across the Supreme Court, all 25 High Courts, District Courts and > Tribunals, a public REST API over that corpus, AI case analysis, case > management, and contract lifecycle management. Operated by Thinkscoop > Technologies LLP, India. Judgment pages (/judgment/) and statute pages (/act/) number in the millions and are not included here; they are served through the sitemaps linked from https://courtmesh.ai/robots.txt. Nothing on CourtMesh is legal advice; verify case data against the official court record before relying on it. --- # CourtMesh URL: https://courtmesh.ai/ On the record · India · since 1950 # Find the precedent. Not the haystack. Search 315.6 million Indian judgments by keyword and by meaning - and run every matter, contract, and filing alert from one workspace. Built on official government records. Start free trial Plans & pricing 14-day free trial · no credit card · cancel anytime. Official sources/DPDP Act 2023/India-hosted/AES-256 Court data APILive 315.6 million+ judgments · REST + MCPExplore the APIMCP server For firms · Talk to sales·Book a 15-min demo research.courtmesh.ai Research landlord-tenant — non-payment of rent All courts2019–2024Disposed217 semantic hits State of Maharashtra v. ChandrakantFollowed Bombay HC · 2021 Renu v. KrishanReferred Delhi HC · 2023 AI summary Courts allow forfeiture only where the lease expressly provides for it and the deposit is a genuine pre-estimate… Supreme Court of India✦25 High Courts✦District Courts nationwide✦NCLT✦NCLAT✦ITAT✦CESTAT✦SAT✦eCourts✦NJDG✦eSCR✦Supreme Court of India✦25 High Courts✦District Courts nationwide✦NCLT✦NCLAT✦ITAT✦CESTAT✦SAT✦eCourts✦NJDG✦eSCR✦ The problem ## The law isn’t hard to read. It’s hard to find. A precedent that sits unread in a district registry is worth nothing to your client. Twelve portals, twelve search grammars, and the one judgment that decides your matter buried three pages deep under a name spelled four different ways. CourtMesh turns the entire record into a single search box. Talk to our team How it works ## First search in five minutes. 01 ### Search the record Type an issue, a party, or a judgment number. Keyword and AI results across every court, instantly. 02 ### Watch what matters Add clients and counterparties to a watchlist. New filings reach you within minutes of hitting the record. 03 ### Run it from one place Drop research into matters, draft and route contracts, and bill time - all in a single login. The suite · three apps, one login ## Everything a legal practice runs on. Research ### Two ways to search 315.6 million judgments. Keyword for when you have the words. AI semantic for when you only have the idea. Every result links straight to the judgment at its official source. - Meaning-based search across issues, principles and fact patterns - Citation network - followed, distinguished, overruled, referred - Similar-case finder and case chat, grounded in the record Try Research research.courtmesh.ai My Cases ### Know the moment any case is filed. Add a client, a counterparty, or any name under diligence to your watchlist. The instant a new matter surfaces at any of India's courts, it reaches you - within minutes, not at end of day. - Full matter lifecycle - intake to closing, tasks, deadlines, hearings - Private watchlists - only your firm sees who you monitor - Document vault and team collaboration on every matter Start managing cases app.courtmesh.ai/cases My Agreements ### The contract, from intake to renewal. Draft, redline, route for multi-stage approval, and track every obligation and renewal date - with playbooks that catch the risky clause before it reaches counsel. - Intake and pipeline view across every live agreement - Playbooks, multi-stage approvals and e-signature - Obligation and renewal tracking, with counterparty screening Explore My Agreements app.courtmesh.ai/agreements Live Court Intelligence ## Watch any party. Know every filing. Add any party - a client, a counterparty, or any name under due diligence - to your watchlist. The instant a new case surfaces at any of India's 26+ courts, you're notified. Watch any party by name Monitor clients, counterparties, opposing counsel, or any entity. Covers every court in India Supreme Court, all 25 High Courts, District Courts, and Tribunals - one watchlist. Instant, not scheduled Alerts fire within minutes of a new filing - not at the end of the day. Only you see your watchlist. All monitoring is private and scoped to your organization. Set Up Your Watchlist 4 Watchlist Alerts Live Watching Client A Client B Counterparty C + 12 more Writ PetitionNew Bombay High Court Client A (Manufacturing) 2 min ago Special Leave PetitionNew Supreme Court of India Counterparty C 18 min ago Commercial Suit Delhi High Court Client B (Real Estate) 1 hr ago Arbitration Petition Madras High Court Client A (Manufacturing) 3 hrs ago 4 new alerts todayView all → The corpus of record ## Coverage, stated plainly. 310M+ Court judgments & orders Sourced only from official government portals. Retrieval covers the corpus; deep AI analysis covers a subset. 25 High Courts, plus the Supreme Court Every High Court in India, unified under one search. 743+ District Courts Down to the district registry, where most litigation actually lives. 9+ Tribunals NCLT, NCLAT, ITAT, CESTAT, SAT, TDSAT, DRT and more. 1950 Coverage since Seven decades of the written record, kept current daily. Every court in India ## One search, every court layer. Start with a unified search, or drill into any layer. Case status, hearing dates and disposals are drawn from eCourts and the NJDG. All Indian court casesOne search across the Supreme Court, all 25 High Courts, District Courts and Tribunals.Supreme Court of IndiaDiary numbers, benches, and apex-court precedent - historic to current.All High CourtsEvery High Court, filterable by state, bench, judge and year.District CourtsTrial-court dockets, hearing dates and disposals from eCourts and NJDG.TribunalsNCLT, NCLAT, ITAT, CESTAT, SAT, TDSAT and other statutory forums. Sourced from the record ## Straight from official portals. No intermediaries. Every judgment and status update is aggregated directly from government court portals - so what you read is the record as the court published it. Supreme Court 5 portals Main Portalmain.sci.gov.inSCR Portalscr.sci.gov.inVerdictFinderverdictfinder.sci.gov.ineSCR + SC Notices High Courts all 25 eCourts Servicesjudgments.ecourts.gov.inDelhi High Courtdelhihighcourt.nic.inBombay, Madras + 21 more District Courts 740 establishments eCourts (Judgments)judgments.ecourts.gov.inNJDG (Case Status)njdg.ecourts.gov.inDockets, disposals, hearing dates Tribunals 9+ forums NCLTnclt.gov.inNCLATnclat.gov.inITATitat.gov.inCESTAT, SAT, TDSAT, DRT + more AWS Open Data public datasets · updated daily SC datasetHC dataset Completeness depends on official source publication. See our General Disclaimer for full terms. Built for ## Solo advocates and India’s most demanding firms. From a single practitioner to enterprise legal teams, CourtMesh carries research, case management, and contract operations across the whole Indian legal industry. Solo to enterprise Built for every practice size Across the Supreme Court, all 25 High Courts, District Courts, Tribunals, in-house legal teams, and consulting practices. Security & privacy by design ## Your queries are as sensitive as your matters. What you research is privileged. CourtMesh is built so it stays that way - hosted in India, encrypted end to end, and never used to train AI models. Encryption AES-256 at rest, TLS 1.3 in transit, across every app. Data residency Hosted in AWS Mumbai. No cross-border transfer without your consent. Compliance Designed for DPDP Act 2023 readiness, with granular role-based access. Sources Every judgment from official government portals - no intermediaries. Privilege Matter-level access controls and client-specific data partitioning. Your data Case files, notes and queries are never used to train AI models. Why teams switch ## CourtMesh vs. the rest of Indian legal-tech. Most Indian legal tools specialise in one slice - research, drafting, or alerts. CourtMesh combines all of them with a developer-friendly API, DPDP-ready infrastructure, and India-region hosting. Feature-by-feature comparison of CourtMesh against Manupatra, SCC Online, Indian Kanoon, and CasemineFeatureCourtMeshManupatraSCC OnlineIndian KanoonCasemine Coverage: Supreme Court + 25 High Courts + District Courts + Tribunals AI semantic search (understands meaning) AI Pro Prism AI AMICUS Real-time party / docket alerts Casewatch add-on Not advertised Query-based alerts Topical alerts only Built-in case / matter management Not advertised Research only Research only Built-in contract lifecycle (CLM) Not advertised Drafting only Not advertised REST API for developers Not advertised Not advertised Pay-per-call US data only DPDP Act 2023 readiness Not advertised AI Pro module Not advertised Not advertised India-hosted infrastructure Not advertised Azure, region not stated Not advertised Not advertised Free trial without credit card 14 days 24 hours 7 days Free tier 7 days * Verified against each competitor's public product pages and documentation, May 2026. Where a competitor does not publicly advertise a feature on their marketing site, we mark it "Not advertised" rather than asserting absence. Feature availability, pricing, and modules may change - we re-verify periodically. For firms & in-house teams ## Built to run at the scale of a practice. One ecosystem ### Three apps. One login. Pooled credits. Research, My Cases and My Agreements share access, billing and credits across your whole team - no separate logins per app. Access #### SSO - SAML / OIDC Single sign-on for the firm. Provisioning #### SCIM Automated user lifecycle. Governance #### Role-based access & immutable audit logs Every action attributable, every record retained. Reliability #### SLAs Available on enterprise plans. Support #### Dedicated Named contact & onboarding. Diligence #### Counterparty litigation & insolvency screening Screen any entity against the full record before you sign. Book a demo Start free trial Integrations ## Works with the tools your team already uses. Connect CourtMesh to your inbox, calendar, messaging, and internal systems - so research, alerts, and matters flow into the tools your team works in every day. ### WhatsApp Client and matter alerts delivered to WhatsApp. ### Microsoft Outlook Sync email, calendar, and hearing invites. ### Google Workspace Gmail, Calendar, and Drive for your team. ### Zoho Connect Zoho Mail and CRM to your matters. ### Webhooks Push filing and matter events to any system. ### REST API Build custom workflows on the CourtMesh API. Plus Google Calendar, Microsoft Teams, Slack, and CSV / Excel export - with more added regularly. POST /search/casesCopy curl --location 'https://research.courtmesh.ai/api/v1/prod/search/cases' \ --header 'X-API-Key: $COURTMESH_API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "query": "cheque dishonour section 138", "court": "Bombay High Court", "limit": 20, "page": 1 }' Response { "results": [ { "caseId": "HC-BOM-2023-41872", "title": "Sharma v. Patel Enterprises", "court": "Bombay High Court", "judgmentDate": "2023-08-11", "score": 0.94 } ], "total": 3187, "page": 1 } Base URL https://research.courtmesh.ai/api/v1/prod. Full request and response reference lives in the API documentation. For developers ## Build on the CourtMesh API. The same index that powers CourtMesh Research is available over a REST API. Query 315.6 million+ Indian orders and judgments from your own products, internal dashboards, diligence pipelines, or AI agents, with structured metadata on every result. Keyword search across 315.6 million+ orders and judgments AI semantic search over the analysed corpus Filter by court, bench, judge, act, party, and date Cursor pagination built for bulk extraction API key authentication with per-plan rate limits Explore the court data APIRead the API docs ### Indian court cases API Endpoint coverage across the Supreme Court, all 25 High Courts, District Courts, and tribunals. See API coverage ### API documentation Authentication, request and response schemas, filters, pagination, and ready-to-run samples. Read the docs ### API pricing Request volumes, rate limits, and plan tiers, including bulk options for high-volume pipelines. Compare API plans ### MCP server Give Claude and other AI agents grounded access to Indian case law over Model Context Protocol. Connect an agent Working with a single court layer? Jump straight to the Supreme Court API, High Court API, or District Court API. Data products ## Build on the court record. Free developer accounts get keyword search and stored case records, including up to 10 litigation checks a month, at no cost. Free excludes AI case analysis, AI semantic search, and live court fetches: Pay As You Go, Scale, and Enterprise accounts unlock all three. ### Indian Court Cases API Query structured case data across the Supreme Court, all 25 High Courts, District Courts and tribunals. From ₹0.10per call See the API ### Litigation Check API Screen a party name against the full court record and get confidence scored matches back in one call. From ₹2.00per check, ₹10.00 when a screen finds a match See the API ### Data licensing License primary court records in bulk for your own product, model, or verification pipeline. Contact for pricing Talk to licensing See full coverage by court and year Pricing ## One trial. Then whatever fits. Full access to all three apps for 14 days. No credit card. Keep the bundle, pick a single app, or stay free. GST-inclusive. Post-trial ₹0/ forever Free - — 10 searches a day - — Keyword search - — Supreme & High Court Sign up free Most popular · bundle ₹4,999/ mo Professional - — All three apps, pooled credits - — Semantic + AI search - — Watchlist alerts & API Start 14-day trial For firms & teams Custom Enterprise - — Unlimited seats - — SSO, SCIM, audit logs - — SLAs & dedicated support Talk to sales Per-app plans & full pricing Questions ## Straight answers. Everything you need to know about CourtMesh. Can’t find what you’re looking for? Contact us. ### What courts does CourtMesh cover? ### How is AI search different from keyword search? ### Is the data from official sources? ### What is the Watchlist feature? ### Do you offer a free trial? ### Is there an API? ### How is my data secured? ### Is CourtMesh DPDP Act 2023 compliant? ### What file formats can I upload? Weekly digest ## The weekly Indian legal-tech digest. Curated case-law trends, new Supreme Court rulings, regulatory updates, and product changes - delivered every Monday morning. Email addressSubscribe No spam. Unsubscribe anytime. We respect your inbox. Start today ## The whole record, one search away. Fourteen days, all three apps, no credit card. See what your practice has been missing. Start free trial Book a 15-min demo View plans & pricingNo credit card/14-day free trial/All 3 apps/Secure & encrypted All legal data is sourced exclusively from official government records and publications. --- # Indian Court Cases Search | All Courts and Tribunals URL: https://courtmesh.ai/indian-court-cases All Indian Courts # Search, analyse & export every Indian court Give your team primacy over every matter with one workspace that blends Supreme Court precedents, High Court orders, District updates, and Tribunal rulings - no tab-hopping, no stale PDFs. Start searchingView API coverage Built for law firms and corporate legal teams across India 1,50,000+ searches monthly 75+ years of data (since 1950) 315.6 million+ Orders & judgments 1950 → today 4 Court layers Supreme · 25 HC · District · Tribunals <60 min Refresh window Live diary + cause-list sync ### Unified search Primacy-focused layout surfaces the most important filters first, so teams act faster. - Supreme, High, District & Tribunal filters in one panel - Judge, bench, acts, diary, subject & AI semantic modes - Instant CSV / PDF exports for filings ### Official data backbone Authority bias on your side - 100% sourced from government portals with audit trails. - Supreme Court SCR, eSCR, and case status portals - All 25 High Court websites & eCourts - District Courts via eCourts + NJDG - Tribunal feeds: NCLT, NCLAT, ITAT, CESTAT, SAT, TDSAT ### AI-ready knowledge Framing every proceeding as briefs, timelines, and precedent graphs. - AI summaries with citations - Auto-linked similar matters - Bench, judge, acts, and disposition metadata Court type (Supreme / High / District / Tribunal) Court name or jurisdiction Diary / case / appeal number Bench, judge, or coram Party or advocate names Acts, sections, or subject tags Date range & judgment year Disposition or case status ### Supreme Court cases Target SC benches, diary numbers, and constitution bench matters. Open Supreme Court hub ### High Court cases Search every Indian High Court from one interface with state filters. Open High Court hub ### District court cases Go granular with state → district → court filters and local matters. Open District hub ### Tribunal cases Search NCLT, NCLAT, ITAT, CESTAT, SAT, TDSAT and other statutory tribunals from one interface. Search all tribunals Free to read ## Browse the CourtMesh Judgment Library free Supreme Court, High Court and tribunal records with citations, bench and disposal, published for anyone to read. Browse by court, judge, act or year without an account. Open the Judgment Library For engineering teams ## Need this data inside your own product? Everything on this page is also available programmatically. The Indian court cases API exposes the same 315.6 million+ record index behind a REST endpoint, so you can run docket checks, populate client dashboards, or feed a diligence pipeline without anyone opening a browser. Explore the Indian court cases APIView API pricing - One endpoint spans Supreme Court, High Court, District, and tribunal records - Structured metadata on every hit: court, bench, judge, acts, disposition - Cursor pagination sized for bulk extraction and nightly syncs New to the platform APIs? Start with the API documentation, check API pricing and rate limits, or wire the corpus into an AI assistant with the CourtMesh MCP server. ### What data sources power the all-court search? We ingest official Supreme Court portals (SCR, eSCR, case status), all 25 High Court websites, eCourts (District Courts), NJDG (case status), and tribunal portals - NCLT, NCLAT, ITAT, CESTAT, SAT, TDSAT and more. No scraped third-party databases. ### How often is the data refreshed? Supreme Court updates land within minutes, High Court data is refreshed nightly, District rollouts follow the cadence set by each state integration, and Tribunal orders are pulled on their published cadence. Anchoring on live diaries means you never miss a bench reshuffle. ### How do top firms use CourtMesh day to day? Litigation teams drop deadlines into watchlists, research desks create AI summary packets, and compliance teams trigger alerts for every District or Tribunal escalation - one platform, zero context switching. ## Ready to search smarter? Join CourtMesh and access the most comprehensive Indian court database with AI assistance. Sign UpExplore the court data API --- # Supreme Court of India Cases | Diary and Bench Filters URL: https://courtmesh.ai/supreme-court-cases Supreme Court of India # Never miss a Supreme Court diary, bench change, or order Loss aversion is real - missing one constitution bench order can undo weeks of prep. CourtMesh spotlights new diary events, bench reshuffles, and AI-ready briefs the moment they’re posted. Search Supreme Court casesView SC API Built for law firms and corporate legal teams across India 1,50,000+ searches monthly 75+ years of data (since 1950) 90k+ Reported judgments 300+ Diary triggers / day Watched in real time All Benches monitored Including constitution benches ### Precision search Find any Supreme Court case with layered metadata. - Diary, case, appeal, and SLP numbers - Bench, judge, coram & constitution bench tags - Matter type (civil, criminal, PIL, etc.) ### AI acceleration Let AI summarize long judgments or answer follow-up questions. - Context-aware summaries with citations - Similar judgments + precedent graph - Ask questions in natural language ### Authoritative documents Access official PDFs from SCR, eSCR, and case status portals. - Linked citations (SCC, AIR, SCALE, etc.) - Orders, interim applications, and final judgments - Auto-download or export support Diary or case number Bench / judge / coram Case type (SLP, WP, Civil Appeal, etc.) Decision or listing date Acts, sections, subject tags Party names or advocates Disposition (allowed, dismissed, adjourned) Connected matters & batch cases ### All Indian Courts Jump back to the all-courts search experience. Open unified search ### High Court cases Track matters moving up from High Courts with one click. View High Court hub ### Supreme Court API Integrate SC data directly into your applications. Explore API Free to read ## Browse Supreme Court judgments free in the Judgment Library Every published Supreme Court record, with neutral citations, bench composition and disposal, readable without an account. Sign up when you want AI analysis, headnotes and the full document. Browse Supreme Court judgments Programmatic access ## Pull Supreme Court judgments straight into your stack Precedent research rarely stops at reading. The Supreme Court cases API returns the same reported and unreported judgments as structured JSON, so citation checkers, précis generators, and internal knowledge bases can stay current without manual copy and paste. See the Supreme Court APIBrowse all court data APIs - Query by diary number, bench, coram, or constitution bench matters - Reportable flags, citations, and disposition returned on every record - Judgments from 1950 onward, refreshed within minutes of publication New to the platform APIs? Start with the API documentation, check API pricing and rate limits, or wire the corpus into an AI assistant with the CourtMesh MCP server. ### Do you cover both judgments and daily orders? Yes. We capture final judgments, daily orders, interim applications, and cause lists as they are published by SCI portals. ### How quickly will I know when a bench changes? Bench-level scarcity is critical. We send alerts within minutes of the roster updating, so you don’t anchor briefs on outdated corams. ### Can I monitor a specific diary number? Add the diary number to your watchlist to receive email, Slack, or webhook alerts the moment an update is posted. ### How reliable are the PDFs? Every document is fetched directly from official Supreme Court portals, hashed, and stored with redundant backups for chain-of-custody. ## Ready to search smarter? Join CourtMesh and access the most comprehensive Indian court database with AI assistance. Sign UpExplore the court data API --- # High Court Cases Search | All 25 Indian High Courts URL: https://courtmesh.ai/high-court-cases High Courts of India # High Court search without the 25-tab headache Start with four marquee courts (Bombay, Delhi, Madras, Punjab & Haryana) or jump to any bench you need. CourtMesh normalizes every portal so researchers satisfice fast instead of drowning in options. Search High Court casesHigh Court API Built for law firms and corporate legal teams across India 1,50,000+ searches monthly 75+ years of data (since 1950) 25+ High Courts covered Principal & circuit benches 60k+ Listings per day Orders & cause lists Auto Watchers Escalations + alerts ### Pan-India search Query any High Court or run one search across all states. - 4 quick-launch cards (Bombay, Delhi, Madras, P&H) - Judge, coram, subject, act, and advocate filters - Combine text, semantic, and metadata queries ### State-level intelligence Normalized metadata regardless of the original court portal format. - Common schema across all High Courts - State + bench codes for automation - Document deduplication & clean PDFs ### Case journey awareness Track how matters move between District Courts, High Courts, and the Supreme Court. - Linked lower-court history - Watchlist escalations to Supreme Court - Webhook notifications on movement High Court name (Bombay, Delhi, Madras, etc.) Bench (Principal seat or circuit bench) State, union territory, or jurisdiction Case number & type (W.P., CRM-M, FAO, etc.) Judge / coram Decision or listing date Party / advocate names Disposition (allowed, dismissed, pending) ### District Courts Dive deeper into District & subordinate courts state by state. Open District hub ### Supreme Court Track High Court matters that escalated to the apex court. Open Supreme Court hub ### All Indian Courts Switch to the unified search that spans every tier. Open unified search Free to read ## Browse High Court judgments free in the Judgment Library Millions of High Court records across the country, with case numbers, CNR, bench and disposal, readable without an account. Sign up when you want AI analysis and the full document. Browse the Judgment Library Programmatic access ## Track all 25 High Courts without 25 integrations Every High Court publishes differently, which is why most teams give up on automating this layer. The High Court cases API normalises all 25 courts and their benches behind one schema, so a single request covers jurisdictions you would otherwise scrape one portal at a time. See the High Court APICompare API plans - One consistent response shape across every High Court and bench - Filter by state, bench, judge, act, or case type in the same call - Nightly refresh with order dates and disposition status included New to the platform APIs? Start with the API documentation, check API pricing and rate limits, or wire the corpus into an AI assistant with the CourtMesh MCP server. ### Which High Courts are included? Every Indian High Court and permanent bench is indexed, including Bombay (all benches), Delhi, Madras, Calcutta, Gujarat, Rajasthan, and the northeastern circuit benches. ### Can I search by state and bench together? Yes. Choose a state, optional bench, and then add judge, party, or subject filters for ultra-targeted queries. ### Do you cover cause lists or only judgments? We index judgments, orders, case status information, and select cause lists where state portals expose structured data. ## Ready to search smarter? Join CourtMesh and access the most comprehensive Indian court database with AI assistance. Sign UpExplore the court data API --- # District Court Cases Search | State and District Filters URL: https://courtmesh.ai/district-court-cases District & Lower Courts # Uncover District matters before they surprise your clients Curiosity gap closed: search state → district → court in one view, then highlight the districts your opponents overlook. CourtMesh surfaces FIRs, NI Act filings, and escalation paths the moment they appear. Search District casesDistrict Court API Built for law firms and corporate legal teams across India 1,50,000+ searches monthly 75+ years of data (since 1950) 12+ States live new cohorts quarterly 400+ District courts <24h Coverage speed state cadence ### Granular filters Query by state, district, taluka, or individual court names. - State → district → court drill-down - Case number & CNR support - Subject and act filters ### Regulatory confidence Pull certified copies, orders, or FIR attachments where available. - Official eCourts + state portals - Document hashing & archiving - Audit-ready exports ### Escalation awareness See when District matters escalate to High Court or Supreme Court. - Linked High Court appeals - Watchlist escalations - Notifications via Slack/email/webhooks State, district, and court name Case number / CNR number Case type (civil, criminal, NI Act, etc.) Filing or decision date Party or advocate name Act / section invoked Stage (evidence, arguments, judgment) Disposition or status code ### Unified court search Need a bird’s-eye view? Jump to the all-courts interface. Open unified search ### High Court escalations See which District cases reached High Courts. Open High Court hub ### Automation playbooks Connect District alerts to credit or legal workflows. See workflows Programmatic access ## Automate district docket monitoring District matters generate the highest volume of day to day movement, and checking them by hand does not scale past a few dozen cases. The District Court cases API lets you poll thousands of matters on a schedule and push hearing dates into your own case management or alerting system. See the District Court APIRead the API documentation - State, district, and establishment filters resolved in a single request - Next hearing dates and case status sourced from eCourts and NJDG - Built for scheduled polling across large matter portfolios New to the platform APIs? Start with the API documentation, check API pricing and rate limits, or wire the corpus into an AI assistant with the CourtMesh MCP server. ### Which states are available today? We currently cover Delhi, Maharashtra, Karnataka, Tamil Nadu, Telangana, Uttar Pradesh, Gujarat, Rajasthan, Haryana, Kerala, Punjab & Chandigarh, with more states rolling out each quarter. ### How do I know when a District case escalates? Goal-gradient dashboards show you progress from taluka to District to High Court, and watchlists fire alerts as soon as the matter jumps tiers. ### Do you support CNR numbers? Yes. Enter a CNR number to jump directly to the corresponding District matter where state portals expose it. ### Can I export District-level dashboards? Absolutely - export CSV/PDF reports or plug into the API/webhook feed for automated monitoring. ## Ready to search smarter? Join CourtMesh and access the most comprehensive Indian court database with AI assistance. Sign UpExplore the court data API --- # Indian Court Cases API | 315.6 million Judgments, REST and Search URL: https://courtmesh.ai/indian-court-cases-api REST API v1, 21 live endpoints # Indian Court Cases API One HTTPS base URL for Indian case law. Keyword search runs across 315.6 million case records from the Supreme Court, all 25 High Courts, District Courts and Tribunals including NCLT, NCLAT, ITAT and CESTAT. AI semantic search runs across roughly 2 million cases that have been analysed and embedded. Case detail, related documents, judgment PDFs, judge lookup and AI analysis complete the surface. Base URLCopy https://research.courtmesh.ai/api/v1/prod Get an API keySee API pricing 315.6 million Records keyword searchable Our search index ~2M Cases semantically searchable Our semantic index 25 High Courts Plus SC, District, Tribunals 21 Live endpoints 18 priced + /me, /audit, /openapi.json ## What the coverage numbers actually mean Two numbers get quoted on this page and they are not the same corpus, so it is worth being precise about which endpoint reaches which store. The keyword index holds 315.6 million case records (counted on 19 September 2026) drawn from official court portals: the Supreme Court of India, all 25 High Courts, District Courts across the states, and tribunals including NCLT, NCLAT, ITAT and CESTAT. Every document in that index is reachable through POST /search/cases. The vector index is smaller and deliberately so. It holds roughly 2 million cases that have been through AI analysis and embedding, which is what makes meaning based retrieval possible. POST /search/cases/semantic queries that store. A semantic query can therefore miss a document that keyword search finds, and any vendor telling you their semantic search covers hundreds of millions of Indian judgments is describing a keyword index with a different label on it. Everything else, case detail, stored analysis, related documents, timelines and PDF links, reads from the case store directly by id or case number, so those endpoints reach the full record set regardless of whether a case has been embedded yet. See the full coverage table for the real per court counts behind these figures, document-bearing versus status-only, and how current each court's data is. 1 ### Create an account and generate a key Sign up, open the CourtMesh Research app, and go to the API Keys screen at research.courtmesh.ai/api-keys. Keys look like cm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXX and are shown once, at creation. We store only a hash, so if you lose the string you rotate the key rather than recover it. Older keys issued with the vv- prefix still authenticate. API access is enabled per plan. If your account is not entitled, the first call answers with HTTP 403 and a message that says so plainly instead of returning an empty result set. API access is available on Enterprise accounts and through self serve signup: create an account and generate a key. Current allowances and per endpoint prices are on the API pricing page. 2 ### Point at the base URL Every path on this page is relative to one origin. There is no separate developer host, no versioned subdomain, and no staging hostname to guess. Base URLCopy https://research.courtmesh.ai/api/v1/prod 3 ### Run a real search Paste your key into the sample below and run it. A 200 with a populated data array means you are done, and the same request shape covers every filter documented further down. curlCopy curl -X POST https://research.courtmesh.ai/api/v1/prod/search/cases \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "query": "arbitration award set aside section 34", "court": "Supreme Court of India", "limit": 5 }' Response 200Copy { "success": true, "data": [ { "id": "6621f0c3a9d1e2b45c8a1234", "title": "Ssangyong Engineering vs NHAI", "caseNumber": "CA/4779/2019", "cnr": "SCIN010047792019", "court": "Supreme Court of India", "courtType": "Supreme Court", "caseType": "CA", "caseTypeFullForm": "Civil Appeal", "caseYear": 2019, "registrationYear": 2019, "decisionDate": "2019-05-08", "judges": ["R.F. Nariman", "Vineet Saran"], "petitioners": ["Ssangyong Engineering and Construction Co. Ltd."], "respondents": ["National Highways Authority of India"], "citation": "(2019) 15 SCC 131", "disposalNature": "Allowed", "practiceAreas": ["Arbitration"], "hasDocuments": true, "summary": "Scope of interference with a domestic award ..." } ], "meta": { "query": "arbitration award set aside section 34", "filters": { "court": "Supreme Court of India" }, "responseTime": "412ms" }, "pagination": { "total": 12843, "hasMore": true, "page": 1, "limit": 5, "nextCursor": [41.28, "6621f0c3a9d1e2b45c8a1234"] } Sample values are illustrative. The field names and the envelope are exactly what the API returns. ### How to authenticate Send your key either in an X-API-Key header or as Authorization: Bearer. Both are read by the same middleware and behave identically. If neither is present you get 401 with a message naming both options. Keys are validated for shape before they are looked up, so a truncated or whitespace damaged key fails fast with Invalid API key format. A key that has been deactivated in the dashboard also returns 401. Beyond the key itself, each request re-checks the standing of the owning account and organisation with our identity service on every call, which means a suspended account or a deactivated organisation stops working immediately rather than at the next cache expiry. Only GET /health is unauthenticated. Everything else requires a key. AuthenticationCopy # Either header works. Pick one. curl https://research.courtmesh.ai/api/v1/prod/judges/search?q=nariman \ -H "X-API-Key: cm-YOUR_KEY_HERE" curl https://research.courtmesh.ai/api/v1/prod/judges/search?q=nariman \ -H "Authorization: Bearer cm-YOUR_KEY_HERE" ### Rate limits Ten requests per minute per API key, on a rolling sixty second window. That is the real number and it is enforced in the request path, not a suggestion in a table. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, so a well behaved client never has to discover the ceiling by hitting it. When the window is exhausted you get 429 with retryAfter in seconds and resetTime as an ISO timestamp. Rejected requests still consume the counter, so retry after the window rather than immediately. For bulk extraction, a token bucket at ten per minute plus cursor pagination will move a very large result set overnight without a single error. Separately from the per minute limit, the plan attached to your account governs whether API access is available at all, and the AI endpoints check your AI credit balance before they run. ### Response and error shape Route handlers answer with a consistent envelope: success plus data, with optional meta and pagination blocks. Errors raised inside a handler keep the envelope and set success to false. One honest exception worth coding for: the authentication and rate limit layers sit in front of the handlers and answer with a bare object carrying error and no success field. Branch on the HTTP status first and read error second, and both shapes are handled. EnvelopesCopy // Success envelope, every endpoint except /health { "success": true, "data": { ... }, // object or array, endpoint specific "meta": { ... }, // optional: query echo, responseTime, notes "pagination": { ... } // search endpoints only } // Error envelope from a route handler { "success": false, "error": "Case not found" } // Validation error, HTTP 400 { "success": false, "error": "Validation failed. Please check your request and try again.", "details": ["query: Search query cannot be empty. Please provide a search term."] } // Auth and rate limit layers answer with a bare object, no success field { "error": "Rate limit exceeded", "message": "Too many requests. Maximum 10 requests per minute allowed.", "retryAfter": 37, "resetTime": "2026-08-10T09:41:12.884Z" } ### Status codes you should handle CodeMeaningWhen you see it 200OKRequest succeeded. Search endpoints also return 200 with an empty data array when nothing matched. 202AcceptedPOST /cases/:id/analyze queued a background analysis. Poll for the result. 400Bad requestZod validation failed, or the case has no text to analyse, or case_id was missing on /request-timeline. The details array names the offending field. 401UnauthorisedNo key supplied, malformed key, unknown key, or a key that has been deactivated. 403ForbiddenPlan does not include API access, account suspended, organisation deactivated, billing inactive, or the AI credit check refused an AI call. 404Not foundUnknown case id or case number, no PDF stored for the case, no related documents, or an unknown timeline requestId. 408TimeoutThe upstream keyword search exceeded its ninety second ceiling, or a semantic request exceeded its ten minute ceiling. 429Too many requestsMore than ten requests in a rolling minute on one key. Body carries retryAfter and resetTime. 500Server errorUnhandled failure. Safe to retry with backoff. 502Bad gatewayThe search cluster could not be reached. 503UnavailableAccount standing could not be verified with the identity service. The API refuses the request rather than serving data it cannot authorise. ### POST /search/cases Keyword, 315.6 million records Lexical retrieval over the full corpus with legal aware analysis, so citations, case numbers, statute references and party names behave the way a lawyer expects. It is fast, deterministic, cheap, cursor paginated and it never invents a match. - You know the citation, case number, CNR or diary number - You are searching for a party, firm or judge by name - You need every matching document, not the best twenty - You are extracting in bulk and need reproducible pagination - You need a filtered slice: court, year, case type, date range ### POST /search/cases/semantic Vector, ~2M analysed cases Meaning based retrieval. The query first goes through a model that lifts structured filters out of your sentence, then through a rewrite step that expands it into legal terminology, then to an embedding and a vector search with a similarity floor. Each hit comes back with a similarity score you can threshold on. - The user describes a situation, not a document - You want precedent on a fact pattern with different wording - You are grounding an assistant and need the best twenty hits - Vocabulary mismatch is the problem, not coverage - You can tolerate a multi second call from a background worker The practical pattern that works best is both, in sequence. Send the user question to the semantic endpoint to find the fact patterns, take the case numbers and party names out of the top hits, then run keyword search to pull the complete thread of documents around each one. Semantic finds the shape of the problem; keyword guarantees you have every document. Two behaviours are worth knowing before you build. First, filters you pass explicitly always override the ones the model extracted from your sentence, so an integration that must stay inside one court can hard set it and ignore what the model inferred. Second, if the extraction leaves nothing but filters, for example a query that is purely a case number and a year, the endpoint stops trying to embed an empty string and falls back to keyword search automatically. You will see fallbackMode set to opensearch in the meta block when that happens, so the fallback is visible rather than silent. POST/search/cases ### Keyword case search Keyword index, 315.6 million records Full text search across the entire corpus. Each result carries the fields you would expect on a case record: id, title, caseNumber, cnr, court, courtType, courtName, caseType, caseTypeFullForm, caseYear, registrationYear, decisionDate, registrationDate, judges, advocates, petitioners, respondents, citation, extracted_citations, cited_sections, disposalNature, practiceAreas, precedentValue, hasDocuments, documentTypes and summary. Deep pagination uses an opaque cursor. Take pagination.nextCursor from the response and send it back JSON encoded in searchAfter on the next call to page deeper without the cost of offset paging. Body parameters FieldTypeRequiredNotes querystringYesFree text. Case numbers, CNRs, citations, party names, statute references and plain language all work. The parser lifts case numbers out of the string automatically. courtstring | string[]NoSpecific court name exactly as spelled in the index, for example "Supreme Court of India", "Bombay High Court", "NCLT". Comma separated strings are accepted. yearnumber | string | arrayNoFour digit year or list of years. Must be 1947 or later and not in the future. caseTypestring | string[]NoCase type code or family, for example "WP" or "Appeal". A family is expanded to every matching code before the search runs. caseNumberstring | string[]NoAccepted and echoed back in meta.filters, but not applied as a standalone filter. Put the case number inside query instead. judgeNamestring | string[]NoJudge name filter. judges and judge are accepted as aliases for the same field. fromDatestringNoDecision date lower bound, YYYY-MM-DD. toDatestringNoDecision date upper bound, YYYY-MM-DD. pagenumberNoOffset page, minimum 1, default 1. Use searchAfter instead for deep pagination. limitnumberNoResults per page, 1 to 100, default 20. searchAfterstringNoCursor for deep pagination. Send the previous response's pagination.nextCursor, JSON encoded. sortBy"relevance" | "date"NoDefault relevance. Any other value is rejected with HTTP 400. curlCopy curl -X POST https://research.courtmesh.ai/api/v1/prod/search/cases \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "query": "dishonour of cheque section 138", "court": ["Bombay High Court", "Delhi High Court"], "year": [2022, 2023], "fromDate": "2022-01-01", "toDate": "2023-12-31", "page": 1, "limit": 25, "sortBy": "relevance" }' Response 200Copy { "success": true, "data": [ { "...case objects..." } ], "meta": { "query": "dishonour of cheque section 138", "filters": { "court": ["Bombay High Court", "Delhi High Court"], "year": [2022, 2023], "fromDate": "2022-01-01", "toDate": "2023-12-31" }, "responseTime": "788ms" }, "pagination": { "total": 91240, "hasMore": true, "page": 1, "limit": 25, "nextCursor": [33.91, "6640ab12c8d4e5f6a7b80011"] } Errors - 400 when query is empty, a date is not YYYY-MM-DD, limit is above 100, or sortBy is not relevance or date - 408 when the upstream search exceeds ninety seconds - 502 when the search cluster cannot be reached POST/search/cases/semantic ### AI semantic case search Vector index, ~2M analysed cases Natural language retrieval. The pipeline extracts filters from your sentence, rewrites the query into legal terminology, embeds it, and runs a vector search with a similarity floor of 0.3. Matching cases are then hydrated from the case store, so each hit carries the standard case fields plus a similarity score. Pagination is offset based against the vector store. total and totalPages are conservative estimates that become exact on the final page, because the endpoint fetches one extra result to detect whether another page exists rather than paying for a full count. This call is slow by design and holds the connection open for up to ten minutes, so run it from a worker and not from a user facing request. Body parameters FieldTypeRequiredNotes querystringYesNatural language description of the situation, minimum 3 characters. Write it like you would describe the problem to a colleague, not like a keyword string. filtersobjectNoExplicit filter object merged over whatever the model extracted from your query. Your values win on conflict. Accepts court, caseType, caseYear, judgeName, caseNumber and decisionDate ranges. courtstring | string[]NoCourt filter, same spelling rules as keyword search. yearnumber | string | arrayNoFour digit year or list of years, 1947 or later. caseTypestring | string[]NoCase type code or family. Families are expanded to codes. judgeNamestring | string[]NoJudge filter. judges and judge are aliases. fromDatestringNoLower bound for decision date, YYYY-MM-DD. toDatestringNoUpper bound for decision date, YYYY-MM-DD. pagenumberNoPage number, minimum 1, default 1. Vector search uses native offset paging. limitnumberNoResults per page, 1 to 100, default 20. curlCopy curl -X POST https://research.courtmesh.ai/api/v1/prod/search/cases/semantic \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "query": "employer deducted PF but never deposited it, worker seeks recovery", "limit": 20, "page": 1 }' Response 200Copy { "success": true, "data": [ { "id": "664b19f2c8d4e5f6a7b80042", "caseNumber": "WP(C)/8842/2021", "title": "Ramesh Kumar vs Regional Provident Fund Commissioner", "court": "Delhi High Court", "caseType": "WP(C)", "judges": ["Rajiv Shakdher"], "petitioners": ["Ramesh Kumar"], "respondents": ["Regional Provident Fund Commissioner"], "decisionDate": "2022-03-11", "disposalNature": "Allowed", "summary": "Recovery of employee contributions deducted but not remitted ...", "hasDocuments": true, "hasAnalysis": true, "similarity": 0.487 } ], "meta": { "query": "employer deducted PF but never deposited it, worker seeks recovery", "appliedFilters": {}, "responseTime": "6142ms", "searchType": "semantic" }, "pagination": { "page": 1, "limit": 20, "total": 21, "totalPages": 2 } } Errors - 400 when query is shorter than three characters or limit is above 100 - 403 when the AI credit check refuses the call - Because response headers are sent early to hold the connection open, a failure after that point arrives as HTTP 200 with a body of success false and an error string. Check the success flag, not only the status code, on this endpoint GET/cases/:id ### Case detail Case store, full record set :id accepts either the case id returned by search or a case number, and the endpoint tries them in that order. The response deliberately excludes AI analysis so a detail fetch stays cheap: hasAnalysis tells you whether an analysis exists and the analysis endpoint returns it. Use the stable identifiers id and caseNumber as your join keys, because free text fields may differ character for character across endpoints and calls. curlCopy curl https://research.courtmesh.ai/api/v1/prod/cases/664b19f2c8d4e5f6a7b80042 \ -H "X-API-Key: cm-YOUR_KEY_HERE" Response 200Copy { "success": true, "data": { "id": "664b19f2c8d4e5f6a7b80042", "caseNumber": "WP(C)/8842/2021", "title": "Ramesh Kumar vs Regional Provident Fund Commissioner", "court": "Delhi High Court", "caseType": "WP(C)", "judges": ["Rajiv Shakdher"], "petitioners": ["Ramesh Kumar"], "respondents": ["Regional Provident Fund Commissioner"], "decisionDate": "2022-03-11T00:00:00.000Z", "disposalNature": "Allowed", "summary": "Recovery of employee contributions deducted but not remitted ...", "metadata": { "diaryNumber": "8842/2021" }, "hasDocuments": true, "documentCount": 3, "hasAnalysis": true }, "meta": { "responseTime": "61ms", "note": "Use /cases/:id/analysis endpoint to get AI analysis separately" } Errors - 404 when neither an id nor a case number matches GET/cases/:id/analysis ### Stored AI analysis Case store, cases already analysed Reads an analysis that already exists. It never triggers generation, so it is safe to call in a loop. When present, the analysis object carries summary, detailedSummary, comprehensiveSummary, headnote, holding, keyFacts, issues as question and holding pairs, courtsReasoning, citedCases split into followed, distinguished, overruled and referred, precedentRelationships, arguments for petitioner and respondent, practiceAreas, subCategories, tags, procedureType, precedentValue, legalPrinciples, doctrinesApplied, statutoryInterpretation and constitutionalProvisions. curlCopy curl https://research.courtmesh.ai/api/v1/prod/cases/664b19f2c8d4e5f6a7b80042/analysis \ -H "X-API-Key: cm-YOUR_KEY_HERE" Response 200Copy { "success": true, "data": { "id": "664b19f2c8d4e5f6a7b80042", "caseNumber": "WP(C)/8842/2021", "hasAnalysis": true, "analysis": { "summary": "...", "detailedSummary": "...", "comprehensiveSummary": "...", "headnote": "...", "holding": "...", "keyFacts": ["..."], "issues": [{ "question": "...", "holding": "..." }], "courtsReasoning": "...", "citedCases": { "followed": ["..."], "distinguished": ["..."], "overruled": [], "referred": ["..."] }, "precedentRelationships": "...", "arguments": { "petitioner": ["..."], "respondent": ["..."] }, "practiceAreas": ["Labour and Service"], "subCategories": ["Provident Fund"], "tags": ["Labour and Service"], "procedureType": "Writ Petition", "precedentValue": "Persuasive", "legalPrinciples": ["..."], "doctrinesApplied": ["..."], "statutoryInterpretation": "...", "constitutionalProvisions": ["Article 226"] } }, "meta": { "responseTime": "74ms", "note": "" } } Errors - 404 when the case does not exist - 200 with hasAnalysis false and a message when the case exists but has never been analysed GET/cases/:id/related ### Related documents and timeline Case store, full record set Groups every document that shares the case number, up to 50, and returns them newest first with the requested document flagged by isCurrent. This is what turns nine separate order documents into one dispute in your UI. It also derives a timeline from those documents, ordered oldest first, where each event carries a date, a status of Case Initiated, Hearings / Orders or Final Judgment, a statusLabel that prefers the recorded disposal nature, and the document id behind it. curlCopy curl https://research.courtmesh.ai/api/v1/prod/cases/664b19f2c8d4e5f6a7b80042/related \ -H "X-API-Key: cm-YOUR_KEY_HERE" Response 200Copy { "success": true, "data": { "relatedDocuments": [ { "id": "664b19f2c8d4e5f6a7b80042", "title": "Ramesh Kumar vs RPFC", "caseNumber": "WP(C)/8842/2021", "court": "Delhi High Court", "decisionDate": "2022-03-11", "caseType": "WP(C)", "isCurrent": true } ], "timeline": [ { "date": "2021-09-02", "status": "Case Initiated", "statusLabel": "Hearings / Orders", "documentId": "664b19f2c8d4e5f6a7b8003f" }, { "date": "2022-03-11", "status": "Final Judgment", "statusLabel": "Allowed", "documentId": "664b19f2c8d4e5f6a7b80042" } ] }, "meta": { "responseTime": "94ms", "caseNumber": "WP(C)/8842/2021", "totalDocuments": 4, "timelineEvents": 4 } Errors - 404 when the case does not exist - 200 with empty arrays and a message when the case has no case number to group on GET/cases/:id/pdf ### Judgment PDF link Document storage Returns a presigned download URL that is valid for one hour, delivered in encrypted form. Use the CourtMesh SDK to open it into a downloadable link rather than handling the raw token yourself. Cache the case id rather than the URL. The link expires after an hour, and repeating the call issues a fresh one. curlCopy curl https://research.courtmesh.ai/api/v1/prod/cases/664b19f2c8d4e5f6a7b80042/pdf \ -H "X-API-Key: cm-YOUR_KEY_HERE" Response 200Copy { "success": true, "data": { "pdfUrl": "enc_9f1c8a41ee7d...b2c3", "expiresIn": 3600, "caseId": "664b19f2c8d4e5f6a7b80042", "caseNumber": "WP(C)/8842/2021", "caseTitle": "Ramesh Kumar vs Regional Provident Fund Commissioner" }, "meta": { "responseTime": "180ms", "note": "The PDF URL is encrypted and expires in 1 hour. Your CourtMesh SDK opens it for you." } Errors - 404 when the case does not exist - 404 with PDF not available for this case when no document is stored against it POST/cases/:id/analyze ### Generate AI analysis AI, asynchronous Queues analysis and returns 202 immediately. In the background the service reads the judgment, extracting text from the stored PDF first if the case has no text yet, runs the model, writes the structured analysis back to the case, and generates a fresh embedding so the case becomes reachable by semantic search afterwards. If an analysis already exists and force is not set, the call returns 200 with the existing analysis and alreadyExists true rather than paying for the work twice. Poll GET /cases/:id for hasAnalysis, or GET /cases/:id/analysis for the payload, after thirty to sixty seconds. Body parameters FieldTypeRequiredNotes forcebooleanNoDefault false. When true, regenerates the analysis even if one already exists. curlCopy curl -X POST https://research.courtmesh.ai/api/v1/prod/cases/664b19f2c8d4e5f6a7b80042/analyze \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "force": false }' Response 200Copy // 202 Accepted, work runs in the background { "success": true, "data": { "message": "Analysis has been started", "status": "processing" }, "meta": { "responseTime": "142ms", "note": "You can check the analysis status by calling the GET /cases/:id endpoint in 30-60 seconds." } // 200 OK when an analysis already exists and force was not set { "success": true, "data": { "message": "Analysis already exists", "analysis": { "summary": "...", "headnote": "..." }, "alreadyExists": true }, "meta": { "responseTime": "88ms" } } Errors - 400 when the case has neither stored text nor a document to read - 404 when the case does not exist POST/cases/:id/analyze-consolidated ### Consolidated multi document analysis AI, synchronous Analyses a dispute as a whole rather than one document at a time. For a High Court matter it combines the case with its five most recent orders. For a Supreme Court matter it gathers up to twenty documents sharing the case number. The combined text is capped at 100,000 characters before the model runs. Unlike single case analysis this one runs synchronously, so the request stays open for the duration. Results are stored per case number and returned on later calls with a status of already_analyzed unless you pass force. Body parameters FieldTypeRequiredNotes forcebooleanNoDefault false. When true, re-runs the consolidated analysis instead of returning the stored one. curlCopy curl -X POST \ https://research.courtmesh.ai/api/v1/prod/cases/664b19f2c8d4e5f6a7b80042/analyze-consolidated \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "force": false }' Response 200Copy { "success": true, "data": { "status": "success", "consolidatedAnalysis": { "summary": "...", "detailedSummary": "...", "headnote": "...", "keyFacts": ["..."], "issues": [{ "question": "...", "holding": "" }], "courtsReasoning": "...", "citedCases": { "followed": [], "distinguished": [], "overruled": [], "referred": [] }, "practiceAreas": ["Labour and Service"], "legalPrinciples": ["..."], "precedentValue": "Persuasive" }, "message": "Consolidated AI analysis completed successfully" }, "meta": { "responseTime": "38210ms", "relatedCases": 1 } } Errors - 400 when the case has no case number, or when none of the documents carry text - 403 when the AI credit check refuses the call - 404 when the case does not exist or no related documents were found POST/request-timeline ### Request case orders and timeline On demand fetch job Starts a job that pulls the order history for a case and returns a requestId with a status. Work is deduplicated per calendar day: if the orders were already fetched today, the response comes straight back with cached true, an orderCount and the orders themselves. Body parameters FieldTypeRequiredNotes case_idstringYesCase id to fetch orders for. Missing values are rejected with 400 and the message case_id is required. curlCopy # 1. Ask for the timeline curl -X POST https://research.courtmesh.ai/api/v1/prod/request-timeline \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "case_id": "664b19f2c8d4e5f6a7b80042" }' # 2. Poll with the requestId you get back curl https://research.courtmesh.ai/api/v1/prod/get-timeline/664c0a77c8d4e5f6a7b800aa \ -H "X-API-Key: cm-YOUR_KEY_HERE" Response 200Copy // POST /request-timeline { "success": true, "data": { "requestId": "664c0a77c8d4e5f6a7b800aa", "status": "pending" }, "meta": { "responseTime": "233ms" } } // GET /get-timeline/:requestId once the job finishes { "success": true, "data": { "requestId": "664c0a77c8d4e5f6a7b800aa", "status": "completed", "createdAt": "2026-08-10T09:12:44.101Z", "updatedAt": "2026-08-10T09:13:02.774Z", "startedAt": "2026-08-10T09:12:44.500Z", "completedAt": "2026-08-10T09:13:02.774Z", "orderCount": 11, "totalOrderCount": 11, "orders": [ { "...order documents..." } ] }, "meta": { "responseTime": "57ms" } } Errors - 400 when case_id is absent - 404 when the case does not exist GET/get-timeline/:requestId ### Poll a timeline request Job status Returns the state of a timeline job: status moves from pending to completed or failed, alongside createdAt, updatedAt and, once they exist, startedAt, completedAt, an error string on failure, and the orders with their counts. Poll on your own schedule inside your rate limit budget. curlCopy curl https://research.courtmesh.ai/api/v1/prod/get-timeline/664c0a77c8d4e5f6a7b800aa \ -H "X-API-Key: cm-YOUR_KEY_HERE" Response 200Copy // POST /request-timeline { "success": true, "data": { "requestId": "664c0a77c8d4e5f6a7b800aa", "status": "pending" }, "meta": { "responseTime": "233ms" } } // GET /get-timeline/:requestId once the job finishes { "success": true, "data": { "requestId": "664c0a77c8d4e5f6a7b800aa", "status": "completed", "createdAt": "2026-08-10T09:12:44.101Z", "updatedAt": "2026-08-10T09:13:02.774Z", "startedAt": "2026-08-10T09:12:44.500Z", "completedAt": "2026-08-10T09:13:02.774Z", "orderCount": 11, "totalOrderCount": 11, "orders": [ { "...order documents..." } ] }, "meta": { "responseTime": "57ms" } } Errors - 404 with Request not found when the requestId is unknown GET/judges/search ### Judge name search Curated judge lists, SC and HC Returns a flat array of judge names from the combined Supreme Court and High Court lists, deduplicated. Use it to power a typeahead and to normalise user input before you pass a name into the judgeName filter on either search endpoint, which is the difference between a judge filter that works and one that quietly returns nothing. Query parameters FieldTypeRequiredNotes qquery stringNoCase insensitive substring match on judge names. Omit it to get the first 50 names as a starter set. Results are capped at 50. curlCopy curl "https://research.courtmesh.ai/api/v1/prod/judges/search?q=chandrachud" \ -H "X-API-Key: cm-YOUR_KEY_HERE" Response 200Copy { "success": true, "data": [ "D.Y. CHANDRACHUD", "DR. D.Y. CHANDRACHUD", "Y.V. CHANDRACHUD" ], "meta": { "query": "chandrachud", "responseTime": "8ms", "totalMatches": 3 } GET/health ### Health check No authentication required The only unauthenticated endpoint. Returns a status, the API version and a server timestamp. Point your own uptime monitoring at it. curlCopy curl https://research.courtmesh.ai/api/v1/prod/health Response 200Copy { "success": true, "status": "healthy", "version": "1.0.0", "timestamp": "2026-08-10T09:41:12.884Z" } POST/party/screen ### Litigation check Full case store, deterministic resolution plus optional LLM adjudication Screens a person or company name and returns confidence banded matches (confirmed, probable, possible, unlikely) with the evidence behind each one, rather than a raw hit list. calibrated is a number, not a boolean, and each entry in evidence.signals is an object naming the signal, its status, weight and the evidence behind it. Full detail is on the Litigation Check API page. Body parameters FieldTypeRequiredNotes namestringYes2 to 200 characters. The party name to screen. entityType"person" | "company"YesSelects the name normalisation and disambiguation rules applied. purposestringYesOne of kyc, bgv, due_diligence, litigation, research, compliance. Required under our DPDP handling. curlCopy curl -X POST https://research.courtmesh.ai/api/v1/prod/party/screen \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "name": "Ramesh Kumar Sharma", "entityType": "person", "purpose": "bgv", "identifiers": { "pan": "ABCDE1234F" } }' Response 200Copy { "success": true, "data": { "summary": { "matchCount": 1, "highestBand": "confirmed", "verdict": "matches_found" }, "matches": [ { "caseId": "664b19f2c8d4e5f6a7b80042", "title": "Ramesh Kumar Sharma vs State (NCT of Delhi)", "partyRole": "petitioner", "confidence": { "band": "confirmed", "score": 0.94, "calibrated": 0.94, "engine": "rules" }, "evidence": { "signals": [{ "name": "pan_match", "status": "matched", "weight": 0.9, "evidence": "PAN matches the record" }] } ], "coverage": { "exhaustive": true, "someRecordsWithheld": false }, "adjudicationsRun": 0, "notice": "A party can ask for a case to be withheld from search under CourtMesh's case removal policy (https://courtmesh.ai/case-removal-policy)." }, "meta": { "creditsCharged": 100, "adjudicated": false } } Errors - 400 when name or purpose is missing or out of range - 403 when adjudicate is true on the Free tier, or the Free monthly litigation check cap is used (PARTY_SCREEN_LIMIT_REACHED) - 429 when the per minute or per day distinct name cap is exceeded for your tier (DISTINCT_NAMES_LIMIT_REACHED) GET/coverage ### Corpus coverage and freshness No authentication required, never billed Records by court and year, with a freshness figure per court, refreshed from the search index every few hours and cached at the edge. documentBearing and statusOnly are optional fields, omitted unless the split is published; when present, documentBearing means we hold the order or judgment document, never that its text is indexed or searchable. See the full coverage page for the per court breakdown. curlCopy curl https://research.courtmesh.ai/api/v1/prod/coverage Response 200Copy { "success": true, "data": { "total": 310481789, "documentBearing": 41203557, "statusOnly": 269278562 }, "meta": { "generatedAt": "2026-09-18T06:00:00.000Z", "cacheTtlSeconds": 21600, "corpusNote": "A record is any case CourtMesh has indexed from a court registry (parties, dates, status, docket). \"documentBearing\" counts records where we hold the order or judgment document; the rest are \"statusOnly\", registry metadata with no document on file yet. total = documentBearing + statusOnly." } ### Keyword search with cursor pagination The Python example walks a full result set with searchAfter and sleeps between calls to stay inside ten requests per minute. The Node example shows the retry path on 429. curlCopy curl -X POST https://research.courtmesh.ai/api/v1/prod/search/cases \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "query": "dishonour of cheque section 138", "court": ["Bombay High Court", "Delhi High Court"], "year": [2022, 2023], "fromDate": "2022-01-01", "toDate": "2023-12-31", "page": 1, "limit": 25, "sortBy": "relevance" }' Python (requests)Copy import requests BASE = "https://research.courtmesh.ai/api/v1/prod" HEADERS = {"X-API-Key": "cm-YOUR_KEY_HERE", "Content-Type": "application/json"} def search(query, cursor=None, limit=100): body = {"query": query, "limit": limit} if cursor: body["searchAfter"] = cursor r = requests.post(f"{BASE}/search/cases", json=body, headers=HEADERS, timeout=120) r.raise_for_status() return r.json() import json, time cursor, seen = None, 0 while True: page = search("dishonour of cheque section 138", cursor) for case in page["data"]: seen += 1 print(case["caseNumber"], case.get("decisionDate"), case["title"][:70]) pg = page["pagination"] if not pg.get("hasMore") or not pg.get("nextCursor"): break # searchAfter is sent as a JSON encoded string cursor = json.dumps(pg["nextCursor"]) time.sleep(6) # stay inside 10 requests per minute print("total fetched:", seen) Node (fetch)Copy const BASE = "https://research.courtmesh.ai/api/v1/prod"; const HEADERS = { "X-API-Key": process.env.COURTMESH_API_KEY, "Content-Type": "application/json", }; async function searchCases(body) { const res = await fetch(BASE + "/search/cases", { method: "POST", headers: HEADERS, body: JSON.stringify(body), }); if (res.status === 429) { // 429 body: { error, message, retryAfter, resetTime } const { retryAfter = 6 } = await res.json().catch(() => ({})); await new Promise((r) => setTimeout(r, retryAfter * 1000)); return searchCases(body); } if (!res.ok) { const err = await res.json().catch(() => ({})); throw new Error(err.error ?? `HTTP ${res.status}`); } return res.json(); } const first = await searchCases({ query: "dishonour of cheque section 138", court: "Bombay High Court", limit: 25, }); console.log(first.pagination.total, "matches"); for (const c of first.data) console.log(c.caseNumber, c.title); ### Semantic search from a background worker Set a long client timeout, check meta.fallbackMode so you know when the query resolved to a keyword fallback, and threshold on similarity before you show a result to a user. curlCopy curl -X POST https://research.courtmesh.ai/api/v1/prod/search/cases/semantic \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "query": "employer deducted PF but never deposited it, worker seeks recovery", "limit": 20, "page": 1 }' Python (requests)Copy import requests BASE = "https://research.courtmesh.ai/api/v1/prod" HEADERS = {"X-API-Key": "cm-YOUR_KEY_HERE", "Content-Type": "application/json"} # Semantic search runs an LLM filter extraction, a query rewrite, an embedding # and a vector search. Give it a long timeout and call it from a worker. r = requests.post( f"{BASE}/search/cases/semantic", json={ "query": "employer deducted PF but never deposited it, worker seeks recovery", "limit": 20, }, headers=HEADERS, timeout=600, ) payload = r.json() if payload["meta"].get("fallbackMode") == "opensearch": print("query had no semantic content, keyword fallback was used") for case in payload["data"]: print(round(case["similarity"], 3), case["caseNumber"], case["title"][:70]) Node (fetch)Copy const res = await fetch( "https://research.courtmesh.ai/api/v1/prod/search/cases/semantic", { method: "POST", headers: { "X-API-Key": process.env.COURTMESH_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ query: "employer deducted PF but never deposited it, worker seeks recovery", limit: 20, filters: { court: "Supreme Court of India" }, }), }, ); const payload = await res.json(); console.log(payload.meta.searchType); // "semantic" console.log(payload.meta.appliedFilters); // filters the model extracted, merged with yours for (const c of payload.data) { console.log(c.similarity.toFixed(3), c.caseNumber, c.title); } ### Case detail, analysis and timeline Fetch the record, branch on hasAnalysis, and queue generation only when there is nothing stored. The Node example adds the related documents call that collapses a case number into a single timeline. curlCopy curl https://research.courtmesh.ai/api/v1/prod/cases/664b19f2c8d4e5f6a7b80042 \ -H "X-API-Key: cm-YOUR_KEY_HERE" Python (requests)Copy import requests BASE = "https://research.courtmesh.ai/api/v1/prod" HEADERS = {"X-API-Key": "cm-YOUR_KEY_HERE"} case_id = "664b19f2c8d4e5f6a7b80042" # id from search, or a caseNumber detail = requests.get(f"{BASE}/cases/{case_id}", headers=HEADERS, timeout=60).json() print(detail["data"]["title"], detail["data"]["decisionDate"]) if detail["data"]["hasAnalysis"]: analysis = requests.get( f"{BASE}/cases/{case_id}/analysis", headers=HEADERS, timeout=60 ).json() print(analysis["data"]["analysis"]["headnote"]) else: # Queue generation, then poll /cases/{id}/analysis in 30 to 60 seconds requests.post(f"{BASE}/cases/{case_id}/analyze", json={}, headers=HEADERS, timeout=60) Node (fetch)Copy const BASE = "https://research.courtmesh.ai/api/v1/prod"; const headers = { "X-API-Key": process.env.COURTMESH_API_KEY }; const caseId = "664b19f2c8d4e5f6a7b80042"; const detail = await (await fetch(`${BASE}/cases/${caseId}`, { headers })).json(); if (!detail.success) throw new Error(detail.error); console.log(detail.data.caseNumber, detail.data.court, detail.data.disposalNature); const related = await ( await fetch(`${BASE}/cases/${caseId}/related`, { headers }) ).json(); for (const event of related.data.timeline) { console.log(event.date, event.status, event.statusLabel); } ### Opening an encrypted PDF link The PDF endpoint hands back an encrypted, time-limited link. Use the CourtMesh SDK to open it rather than handling the raw token yourself. Node (SDK)Copy // GET /cases/:id/pdf returns pdfUrl in encrypted form, valid for one hour. // Use the CourtMesh SDK to open it into a downloadable link rather than // handling the raw token yourself. Request a fresh one once it expires. const { pdfUrl, caseId, caseNumber } = payload.data; // const signedUrl = courtmesh.cases.openPdf(payload.data); // valid for one hour ### Litigation analytics Pull a whole practice area out of the keyword index with searchAfter, then aggregate on the fields the index already carries: court, courtType, caseType, decisionDate, disposalNature, judges, practiceAreas and precedentValue. That is enough to build outcome rates by bench, filing to disposal spreads by court, and case type mix over time without running a single model. Because pagination is cursor based, a hundred thousand document extract is a loop with a sleep in it, not an engineering project. ### Legal research assistants Retrieval augmented assistants fail on Indian case law for one reason: keyword recall on a legal question phrased in plain English is poor. Run the user question through the semantic endpoint, take the top matches with their similarity scores, then hydrate each hit with the case detail and analysis endpoints so the model is grounded on a structured headnote, issues, holding and cited case relationships rather than raw PDF text. Every field you show the user has a case id behind it, which makes citations checkable. ### Due diligence and counterparty screening Search party names across the whole corpus to find the litigation history of a counterparty before a transaction closes, then use the related endpoint to collapse the hits into one thread per case number so a single dispute with nine orders does not read as nine disputes. The disposalNature and status fields separate live exposure from closed matters, and the PDF endpoint gives your file a primary source rather than a summary. ### Case tracking and monitoring For a case you already know, POST /request-timeline pulls the order history on demand and GET /get-timeline/:requestId returns it when the job completes. Results are deduplicated per calendar day, so a daily poll is the natural cadence and repeated calls inside the same day come back marked as cached. Pair it with the related endpoint to detect a new document appearing under the same case number. ### Litigation check at KYC and BGV volume The screening pattern above now has a purpose built endpoint: POST /party/screen takes one name and returns confidence banded matches with evidence, rather than a raw hit list you have to score yourself. Built for KYC, BGV and credit underwriting pipelines that need a decision, not a search result. See the Litigation Check API ### Grounding a legal AI or verification platform If your product is the one retrieving from this corpus at scale rather than calling it per request, a data licence is usually the right shape: primary records from the Supreme Court, every High Court, District Courts and tribunals, as an API or a feed, with attribution and a paid pilot before you commit. See data licensing terms CapabilityCourtMesheCourtsIndiaIndian Kanoon APIVakeel360 Keyword search corpus315.6 million records, SC + 25 HCs + District + TribunalsMillions of indexed pages (their figure)Judgments and central bare actsNot published AI semantic / vector search endpointYes, ~2M analysed casesNot documentedNot documentedNot documented On demand AI case analysis endpointYesNot documentedNot documentedNot documented Consolidated multi document analysisYesNot documentedNot documentedNot documented Related documents plus derived timelineYesNot documentedNot documentedNot documented Judge name search endpointYesNot documentedNot documentedNot documented Judgment PDF retrievalYes, presigned and time limitedNot documentedNot documentedNot documented Cursor pagination for deep result setsYes, searchAfterNot documentedNot documentedNot documented Docs readable without loginYesYesYesNot verified Open to AI crawlers and assistantsYesNo, blocks GPTBot, ClaudeBot, Google-Extended, CCBotNot verifiedNot verified WebhooksNoNot documentedNot documentedNot documented MCP serverYes, 18 tools, liveYes, liveNoNot documented Competitor columns reflect what their public documentation stated when this page was last reviewed in August 2026, and public documentation changes. One row goes against us on purpose: we have no webhooks, and if event push matters to your architecture that is a real reason to choose differently today. Poll the timeline endpoints instead. ### What is a CNR number, and does the API return it? CNR stands for Case Number Record, the unique identifier the eCourts system assigns to a case. It stays constant even when a case is transferred between benches, which makes it the safest key for joining our data to your own records. Documents in the keyword index carry a cnr field wherever the source portal published one, and you can look a CNR up by putting it straight into the query field of POST /search/cases. Older Supreme Court and High Court judgments predate the CNR scheme, so treat cnr as present rather than guaranteed and fall back to caseNumber plus court. ### How fresh is the data? Judgments and orders are ingested continuously from official court portals, but we do not publish a per court freshness guarantee, so treat the corpus as a research index rather than a live cause list. For recent movement on one specific case, POST /request-timeline fetches orders on demand. That job is deduplicated per calendar day: if orders for the case were already fetched today, the response comes back with cached set to true instead of hitting the source portal again. ### What is the rate limit? Ten requests per minute per API key, enforced on a rolling sixty second window. The limit is applied per key rather than per account, so splitting traffic across keys splits the budget too. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers so you can pace a client without guessing. If your workload needs a higher ceiling, talk to us before you build around retries. ### What happens when I hit a 429? You get HTTP 429 with a JSON body containing error, message, retryAfter (seconds until the window resets) and resetTime (an ISO 8601 timestamp). Sleep for retryAfter seconds and retry. Wait for the window rather than hammering it. A queue with a ten per minute token bucket and exponential backoff on 429 and 5xx is the pattern we recommend. ### Can I cache API responses? Yes, and you should. A decided judgment does not change, so case detail, analysis, related documents and PDF text can be cached for as long as your storage policy allows. Cache search results for shorter windows, since the index gains documents over time. Two caveats: presigned PDF URLs expire after one hour, so cache the case id rather than the URL, and use the stable identifiers id and caseNumber as your keys, because free text fields may differ character for character across calls. Redistribution is governed by your agreement with us. ### How do I paginate through a large result set? POST /search/cases accepts page and limit, where limit maxes out at 100. Offset pagination gets expensive deep in a result set, so for anything past the first few pages use the cursor instead: take pagination.nextCursor from the response, JSON encode it, and send it back as searchAfter on the next call. When nextCursor is null or hasMore is false, you have reached the end. Semantic search uses page and limit only, and its total is a conservative estimate that becomes exact on the final page. ### Which endpoint searches 315.6 million records and which searches roughly 2 million? POST /search/cases runs against our keyword search index, which holds 315.6 million case records across the Supreme Court, all 25 High Courts, District Courts and Tribunals. POST /search/cases/semantic runs against the vector index, which holds roughly 2 million cases that have been analysed and embedded, and is not available on the Free tier. The semantic corpus is a curated subset, not the whole archive, so a semantic query can genuinely miss a document that keyword search finds. When a semantic query resolves to filters with no meaningful text left, the endpoint automatically falls back to keyword search and tells you so with fallbackMode set to opensearch in the meta block. ### Is there a free tier, and how do I get a key? API keys are created from the API Keys screen inside the CourtMesh Research app. API access is available on Enterprise accounts and through self serve signup: if your plan does not include it, your first call returns HTTP 403 with a message telling you so, rather than failing silently. Free tier has no AI analysis endpoints (analyze, analyze-consolidated and reading a stored analysis all return a 403 with an upgrade URL on Free), no AI semantic search, and no live court fetches: a refresh:true request-timeline call is refused rather than reaching eCourts. What Free does include: keyword search, case detail, judgment PDFs, judge lookup, stored-timeline reads, up to 10 litigation checks a month with deterministic matching, and the public coverage endpoint, which is free on every tier and needs no key at all. The current allowances and per endpoint prices live on the API pricing page. ### Do API credits expire? Prepaid credits do not expire. Monthly allowances are replaced rather than accumulated, so an unused monthly grant does not carry forward, with the exception of the Scale plan where unused credits roll over while the subscription is active. Note which calls consume AI credit today: semantic search, analyze (100 credits), analyze-consolidated and an adjudicated litigation check all run models and draw on the AI balance of the account that owns the key. Keyword search, case detail, analysis reads, related documents, judge search, timeline polling, health checks and the coverage endpoint do not. The pricing page carries the current ladder. ### Is there an SLA? There is no published uptime SLA on self serve access, and we would rather say that than invent one. GET /health is unauthenticated so you can probe availability yourself from your own monitoring. Support commitments and response time targets are negotiated inside enterprise agreements. On latency: keyword search calls the upstream index with a ninety second ceiling and returns 408 if it is exceeded, while semantic search and AI analysis are deliberately slow paths and should be called from a background worker, never from a user facing request thread. ### What is the legal basis for the data? Judgments and orders of Indian courts are public records published by the courts themselves. Section 52(1)(q) of the Copyright Act, 1957 puts the reproduction of judicial pronouncements outside copyright infringement. We ingest from official court portals only, we do not resell third party databases, and we run a published takedown route for individuals who need a case page removed or de-indexed. Our public records policy and case removal policy set out the process in full. ### Do you offer webhooks, streaming updates, or an MCP server? There is an MCP server, live at mcp.courtmesh.ai. It exposes all 18 priced endpoints as tools for Claude, Claude Code, Cursor and any other Model Context Protocol client over Streamable HTTP, it reads your key from an Authorization Bearer header or a token query parameter, and it bills against the same API credits. The MCP server page carries the client configuration. There is no webhook subscription endpoint and no streaming updates feed, and we will not list either until it exists. To watch a case for movement, poll POST /request-timeline followed by GET /get-timeline/:requestId on your own schedule, and keep the polling interval inside your ten requests per minute budget. ## Build on the actual record One base URL, 18 endpoints that exist, and documentation that matches the code. Get a key, run the quickstart, and have a real result set in front of you inside five minutes. Get an API keySee API pricing API pricingFull API documentationSearch the case librarySupreme Court APIHigh Court APIDistrict Court APIPublic records policyTalk to us --- # Litigation Check API | Party Name Screening India URL: https://courtmesh.ai/litigation-check-api Enterprise accounts today # Screen a party name against Indian court records and get a confidence scored answer , not a list of hits POST one name, get back matched cases banded from confirmed down to possible, the evidence behind each band, and an honest statement of how complete the search was. One call, deterministic by default, with an optional LLM adjudication pass for the genuinely ambiguous cases. Talk to sales Read the endpoint docs ### summary and matches summary carries a match count, a breakdown by band (confirmed, probable, possible, unlikely), the highest band reached, and a verdict of matches_found, no_matches_found or inconclusive. Each entry in matches carries the case fields you would expect (title, court, caseNumber, cnr, parties, dates, disposalNature), a confidence object with band, score and the engine that produced it, an evidence object naming the matched fields and strategies, a plain language rationale, and a casePageUrl you can open to read the source record yourself. ### coverage and meta relatedButUnverified holds weaker candidates that did not clear a reportable band, kept separate so they never inflate the match count. coverage states plainly whether the search was exhaustive, whether your filters clamped it, whether any retrieval strategy errored, and whether a restricted record was withheld. meta reports the credits charged, whether adjudication ran, and the date the corpus snapshot is current as of. ### Name normalisation Case, spacing and punctuation differences are normalised before anything is compared, so "R. K. Sharma" and "RK Sharma" are treated as the same candidate string. ### Initials run together Initials that were typed apart, with a stop, or run together all resolve to the same token, which matters for the way Indian names are transliterated across court portals. ### Transliteration variants Common spelling variants of the same Indian name are matched, so a transliteration difference does not silently create a false negative. ### No stemming on name fields Name fields are never stemmed. Stemming a surname turns it into a different word, so the engine keeps names exact after normalisation rather than fuzzy in the way it fuzzes free text. ### Institutional party down weighting Banks, government departments and large companies are down weighted on name text alone, since a common institutional name appearing across thousands of unrelated cases is not meaningful signal by itself. ### Identifier and disambiguator signals PAN, GSTIN, CIN, LLPIN, an address, or a known associated person all raise confidence directly. These are the signals that move a candidate from possible to probable or confirmed. ### The bands, and the rule behind them Litigation check confidence bandsBandScore thresholdWhat it means ConfirmedScore 0.90 or higherName evidence plus at least one disambiguator, or an identifier match on its own. ProbableScore 0.70 or higherStrong name match with weaker or partial corroborating signal. PossibleScore 0.45 or higherName match with no disambiguator, or a common name capped here regardless of text similarity. UnlikelyBelow 0.45Not returned as a match; may appear in relatedButUnverified. A person is never auto confirmed on name evidence alone: confirmation for a person requires a matched statutory identifier such as PAN, GSTIN, CIN or LLPIN. An address or a known associated person raises confidence but on its own caps the result at probable, it does not reach confirmed. A common name is capped at possible even when the text match is strong, because on a name shared by thousands of people, text similarity by itself is weak evidence. Low confidence is not the same thing as no match: a possible or unlikely band means the engine found a name that resembles yours and told you how little that is worth, rather than silently dropping it. ### A match is a record, not an identity Every match this endpoint returns is a court record that bears the name you searched. It is not a verified identity, and it does not by itself tell you that the party in the record is the specific person or company you have in mind. Namesakes exist, and a shared name is exactly the situation this endpoint's confidence bands and disambiguator signals exist to help you reason about, not a situation the bands eliminate. The reverse also holds. An absence of a match is not a clean record: it means the corpus, filtered the way you asked, did not contain a case bearing that name at the time of the call. It says nothing about matters outside the corpus, matters filed after the corpus snapshot, or matters under a spelling variant the request did not cover. Read the coverage block on every response before treating a no match verdict as clearance, and see the coverage and freshness page for what the corpus does and does not contain. ### Purpose is required, lawful basis is yours purpose is a required field on every call: kyc, bgv, due_diligence, litigation, research or compliance. A request without it is rejected before any search runs, because a name screen without a stated purpose is exactly the kind of processing the Digital Personal Data Protection Act asks a data fiduciary to be able to account for. CourtMesh's role differs by what is being processed. For the name, aliases, identifiers and other details you submit in the request, we act as a processor on your instructions: the lawful basis for running the check on a given name is yours as the caller, not ours, and you remain responsible for having it before you call this endpoint. For the underlying corpus we search against, CourtMesh is the fiduciary, since we independently decide how those public court records are organised, indexed and made searchable, under the same public records basis that governs the rest of the corpus. We retain request records for the period set out in your contract where you have one, and our published default of 90 days for request records otherwise. This is not indefinite storage: retention means a defined window tied to your account, after which the record is purged in the normal course. ### Laksh Vir Singh Yadav v. Union of India On 29 May 2026 the Delhi High Court, in Laksh Vir Singh Yadav v. Union of India (2026:DHC:4891), directed that name based search be restricted on a specified set of records. That order is currently in effect pending appeal. It is a case specific judicial direction covering the records it names, not a general right to erase public court records from the internet. CourtMesh honours every de-indexing and masking order that applies to us, and a record covered by such an order is withheld from POST /party/screen the same way it is withheld from keyword search and case detail: it will not surface as a match, and coverage.someRecordsWithheld is set to true on any response where a withheld record affected the result, so the withholding is visible rather than silent. Full detail on our removal, redaction and de-indexing process is on the case removal policy page. As at 18 September 2026, this order remains in effect pending appeal and this paragraph is current as of that date. Note: the paragraphs above describing the Delhi High Court's 29 May 2026 order are pending review by counsel and may be revised. CourtMesh litigation check pricingOutcomeCreditsPrice, base rate Matches found100₹10.00 No matches found20₹2.00 Adjudicate = true, surcharge on top+80+₹8.00 The adjudication surcharge is only charged when adjudicate: true actually triggers at least one LLM pass. If every candidate is already resolved deterministically, setting the flag costs nothing extra. ### Free tier 10 litigation checks a month, deterministic matching only. Setting adjudicate: true on this tier returns HTTP 403. ### Enterprise Volume rates from ₹0.06 per credit, which prices a matched check at ₹6.00 instead of the ₹10.00 base rate price. ### Rate limits on this endpoint A litigation check does more retrieval and scoring work than a plain search call, so it carries its own per minute window on top of your tier's general API rate limit. Additional abuse protections apply; contact support for a legitimate high-volume or shared-IP integration. Litigation check rate limits by tierTierRequests per minute Free Developer2 Pay As You Go10 Scale30 EnterpriseCustom, up to 60 ### Competitor context, dated and sourced A structural comparison against published pricing for screening and verification products. Where a vendor has not published a rate we say so rather than guessing. Litigation check and screening competitor pricingVendorLine itemPriceSource eCourtsIndiaLegal Check subscription₹33View source eCourtsIndiaLegal Check pay as you go₹99View source DeepvuePer check, from₹2View source InstaFinancialsPer report₹1,250View source InstaFinancialsPer report, in packs₹350 to ₹400View source AuthBridgeCourt Record Check, pricingNot published, talk to salesView source IDfyVerification pricingNot published, routes to Book a DemoView source SignzyCriminal screening pricingNot published, contact salesView source SurePasseCourts API, pricingNot published, contact salesView source GridlinesCriminal Court Record Verification API, pricingNot published, /pricing 404sView source Karza (Perfios)Legal Search, pricingNot published, quote onlyView source Compiled on 2026-09-18 from publicly published pricing pages. Competitor terms change without notice; verify a vendor's current page before making a purchase decision. POST/party/screen ### Litigation check Full case store, deterministic resolution plus optional LLM adjudication One name in, one scored answer out. query echoes what you sent, summary gives the headline verdict, and matches carries the full detail per case. verdict: "no_matches_found" is only ever returned when coverage.exhaustive is true; otherwise the endpoint answers "inconclusive" rather than overstating a partial search as a clean result. A since filter, or a restricted record withheld with nothing else left to report, also forces "inconclusive" even on an otherwise exhaustive run. Unlike the search endpoints, this endpoint's request body is strict: an unrecognised top-level field is rejected with HTTP 400 rather than being silently dropped. Body parameters FieldTypeRequiredNotes namestringYes2 to 200 characters. The party name to screen. entityType"person" | "company"YesSelects the name normalisation and disambiguation rules applied to the search. purposestringYesOne of kyc, bgv, due_diligence, litigation, research, compliance. Mandatory under our DPDP handling; the request is rejected without it. aliasesstring[]NoUp to 7 alternate spellings or names for the same party. identifiersobjectNoOptional pan, gstin, cin, llpin. The strongest disambiguator you can supply; never written to logs. addressobjectNoOptional city, state, stateCode. Used as a disambiguation signal, not a filter. knownPersonsstring[]NoNames of people known to be associated with the party, used as a disambiguator. courtstring | string[]NoRestrict the screen to one named court. A single-element array is accepted; an array with more than one entry is rejected with 400 (one court per request for now). sincestringNoYYYY-MM-DD lower bound on case activity. Must be a real calendar date; an invalid or malformed date is rejected with 400. limitnumberNo1 to 100, default 40. Candidates evaluated before scoring. adjudicatebooleanNoDefault false. Runs an LLM pass on ambiguous matches; adds the adjudication surcharge. displayThresholdnumberNo0 to 1. Hides matches scored below this threshold from the response; does not change what was evaluated. BashCopy curl -X POST https://research.courtmesh.ai/api/v1/prod/party/screen \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "name": "Ramesh Kumar Sharma", "entityType": "person", "purpose": "bgv", "identifiers": { "pan": "ABCDE1234F" }, "address": { "city": "Delhi", "state": "Delhi" }, "limit": 40 }' JSONCopy { "success": true, "data": { "query": { "name": "Ramesh Kumar Sharma", "entityType": "person", "purpose": "bgv" }, "summary": { "matchCount": 2, "byBand": { "confirmed": 1, "probable": 1, "possible": 0, "unlikely": 4 }, "highestBand": "confirmed", "verdict": "matches_found" }, "matches": [ { "caseId": "664b19f2c8d4e5f6a7b80042", "title": "Ramesh Kumar Sharma vs State (NCT of Delhi)", "court": "Delhi High Court", "caseNumber": "CRL.A/842/2021", "cnr": "DLHC010084212021", "caseType": "CRL.A", "filingDate": "2021-03-11", "decisionDate": "2022-07-19", "disposalNature": "Dismissed", "petitioners": ["Ramesh Kumar Sharma"], "respondents": ["State (NCT of Delhi)"], "partyRole": "petitioner", "confidence": { "band": "confirmed", "score": 0.94, "calibrated": 0.94, "engine": "rules" }, "evidence": { "entityMatch": true, "matchedFields": ["name", "pan"], "strategies": ["exact_name", "identifier_match"], "signals": [ { "name": "pan_match", "status": "matched", "weight": 0.9, "evidence": "PAN supplied in the request matches the PAN recorded against this party" } ], "nameSimilarity": 1.0, "disambiguatorPresent": true }, "rationale": "The PAN supplied in the request matches the PAN recorded against this party.", "casePageUrl": "https://courtmesh.ai/judgment/664b19f2c8d4e5f6a7b80042" } ], "relatedButUnverified": [], "coverage": { "exhaustive": true, "exhaustiveWithinFilters": true, "planClamped": false, "anyStrategyErrored": false, "strategiesRun": ["exact_name", "fuzzy_name", "identifier_match"], "someRecordsWithheld": false }, "adjudicationsRun": 0, "notice": "A party can ask for a case to be withheld from search under CourtMesh's case removal policy (https://courtmesh.ai/case-removal-policy). A screen that reports no matches reflects what is currently searchable, not an exhaustive record of all litigation history." }, "meta": { "creditsCharged": 100, "adjudicated": false, "corpusAsOf": "2026-09-17" } Errors - 400 validation failed: name missing or out of the 2 to 200 character range, aliases over 7 entries, purpose missing or not one of the allowed values, court given as more than one entry (one court per request for now), since not a real calendar date, or an unrecognised top-level field in the request body - 401 unauthorised: no key supplied, malformed key, or a deactivated key - 402 insufficient credits: body carries required, balance, shortfall and topUpUrl, and the call is not executed - 403 forbidden: trial accounts, a tier without litigation check access, or adjudicate set to true on the Free tier (API_TIER_NOT_ALLOWED) - 403 limit reached: the Free tier's monthly litigation check cap already used (PARTY_SCREEN_LIMIT_REACHED) - 429 too many requests: per minute or per day distinct name cap exceeded for your tier (DISTINCT_NAMES_LIMIT_REACHED), body carries Retry-After - 502 search degraded: the underlying case search errored and returned no usable results, so no charge is made (PARTY_SCREEN_SEARCH_DEGRADED); the response carries a Retry-After header - 503 unavailable: account standing could not be verified with the identity service, the endpoint refuses the request rather than serving an unauthorised result ### India hosted Infrastructure and data for this endpoint are hosted in India. ### Per account audit log Every call against your key is written to an audit log tied to your account, visible through the audit endpoint. ### Key hashing API keys are stored only as a hash, never in readable form. Rotation replaces recovery. ### Names never logged Name, aliases, knownPersons, identifiers and address are redacted before any request or response body is written to a log. ### Restriction orders honoured De-indexing and masking orders that apply to CourtMesh are enforced on this endpoint, not only on search and case pages. ### What does POST /party/screen actually check? ### How is the confidence score calculated? ### Can a screen return the wrong person, or miss someone? ### Why is the purpose field required on every request? ### How does the Delhi High Court takedown order affect this endpoint? ### What does a litigation check cost? ### What happens if I run out of credits or hit a rate limit? ### Is there a batch mode for screening many names at once? Read the full API pricing page, browse the API documentation, or contact our team with a volume question. ### Indian Court Cases API Coverage, endpoints and sample payloads for the full API surface. Open ### Coverage and freshness What the corpus contains by court and year, and how current it is. Open ### API pricing Every priced endpoint, tiers, packs and rate limits in one place. Open ### Case removal policy How de-indexing, masking and takedown requests are handled. Open ## Run a real name through it Send us a batch of names for a side by side comparison against your current screening provider, or ask us for access and we will tell you where you stand. Talk to sales Read the endpoint docs --- # Indian Court Data Coverage and Freshness | CourtMesh URL: https://courtmesh.ai/indian-court-cases-api/coverage Published coverage, no API key required # Indian Court Data Coverage and Freshness The keyword index behind the CourtMesh API holds 315.6 million case records across the Supreme Court, every High Court, District Courts and tribunals. This page publishes the real per court counts behind that figure, how many of those records carry a stored document, and how current each court's data is, with no login and no API key. Data as of 2026-10-19. Page last refreshed 2026-10-20. 31,56,76,241 Total records Keyword index 60 Courts covered Rows in the table below ### Supreme Court 30,62,141 records CourtRecordsEarliest decisionLatest decisionBusiness days behind Supreme Court of India30,62,141N/A2026-10-15N/A Supreme Court of India Records30,62,141Earliest decisionN/ALatest decision2026-10-15Business days behindN/A ### High Courts 4,46,90,509 records CourtRecordsEarliest decisionLatest decisionBusiness days behind Allahabad High Court71,37,5151900-01-012026-10-161 Madras High Court38,72,1531970-01-012026-10-181 Bombay High Court37,41,9111900-01-012026-10-19Current High Court of Madhya Pradesh33,21,4731901-01-012026-04-15133 High Court of Punjab and Haryana29,34,6681901-01-012026-10-181 Patna High Court28,55,3461967-01-012026-10-152 High Court Of Rajasthan26,75,8721911-11-112026-10-19Current High Court of Karnataka23,33,2231900-02-112026-10-078 High Court of Kerala23,08,1341901-12-052026-10-161 High Court for State of Telangana20,62,3001900-01-012026-10-171 Calcutta High Court17,90,2351947-08-152026-10-161 High Court of Rajasthan11,02,8501989-08-222026-07-0675 Orissa High Court10,65,3711899-12-302026-10-161 High Court of Delhi10,34,3731960-10-102026-10-181 High Court of Jharkhand8,72,4271970-01-012026-10-096 High Court of Gujarat8,61,7791901-01-012026-10-19Current High Court of Orissa7,81,9961970-07-172026-06-2582 High Court of Himachal Pradesh7,49,9441900-01-012026-09-0134 High Court of Andhra Pradesh7,32,3481900-01-012026-09-1524 Gauhati High Court6,77,2541900-01-012026-10-152 High Court of Chhattisgarh5,52,0431963-08-072026-06-2582 High Court of Jammu and Kashmir4,35,7141860-01-262026-10-0510 High Court of Uttarakhand3,82,6051950-01-012026-09-3013 High Court Of Chhattisgarh1,58,9611970-01-012026-08-2440 High Court of Manipur54,1791970-01-012026-09-2120 High Court of Tripura45,6901900-01-012026-09-0829 Gujarat High Court27,8171997-04-212026-10-19Current High Court of Meghalaya20,9281970-01-012026-10-0510 Rajasthan High Court19,7562006-07-032026-10-181 Telangana High Court18,6982002-06-282026-10-171 Himachal Pradesh High Court12,3572026-03-162026-10-19Current Chhattisgarh High Court10,6842026-06-092026-10-161 Punjab and Haryana High Court8,2071901-01-012026-09-2417 Andhra Pradesh High Court6,0352003-10-172026-10-171 Kerala High Court5,6682017-03-232026-10-161 Uttarakhand High Court5,5062026-06-092026-10-161 Madhya Pradesh High Court4,7301970-01-012026-08-2141 High Court of Sikkim3,4561970-01-012026-08-1943 Jharkhand High Court3,1022026-03-242026-10-152 Karnataka High Court1,4092015-11-172026-10-171 High Court of Jammu & Kashmir and Ladakh5722026-05-302026-10-152 Meghalaya High Court4252026-06-092026-10-161 Delhi High Court4021970-01-012026-10-087 Tripura High Court1942026-05-222026-10-161 Manipur High Court1652026-02-182026-10-152 Sikkim High Court332026-06-112026-10-161 High Court1N/AN/AN/A Allahabad High Court Records71,37,515Earliest decision1900-01-01Latest decision2026-10-16Business days behind1 Madras High Court Records38,72,153Earliest decision1970-01-01Latest decision2026-10-18Business days behind1 Bombay High Court Records37,41,911Earliest decision1900-01-01Latest decision2026-10-19Business days behindCurrent High Court of Madhya Pradesh Records33,21,473Earliest decision1901-01-01Latest decision2026-04-15Business days behind133 High Court of Punjab and Haryana Records29,34,668Earliest decision1901-01-01Latest decision2026-10-18Business days behind1 Patna High Court Records28,55,346Earliest decision1967-01-01Latest decision2026-10-15Business days behind2 High Court Of Rajasthan Records26,75,872Earliest decision1911-11-11Latest decision2026-10-19Business days behindCurrent High Court of Karnataka Records23,33,223Earliest decision1900-02-11Latest decision2026-10-07Business days behind8 High Court of Kerala Records23,08,134Earliest decision1901-12-05Latest decision2026-10-16Business days behind1 High Court for State of Telangana Records20,62,300Earliest decision1900-01-01Latest decision2026-10-17Business days behind1 Calcutta High Court Records17,90,235Earliest decision1947-08-15Latest decision2026-10-16Business days behind1 High Court of Rajasthan Records11,02,850Earliest decision1989-08-22Latest decision2026-07-06Business days behind75 Orissa High Court Records10,65,371Earliest decision1899-12-30Latest decision2026-10-16Business days behind1 High Court of Delhi Records10,34,373Earliest decision1960-10-10Latest decision2026-10-18Business days behind1 High Court of Jharkhand Records8,72,427Earliest decision1970-01-01Latest decision2026-10-09Business days behind6 High Court of Gujarat Records8,61,779Earliest decision1901-01-01Latest decision2026-10-19Business days behindCurrent High Court of Orissa Records7,81,996Earliest decision1970-07-17Latest decision2026-06-25Business days behind82 High Court of Himachal Pradesh Records7,49,944Earliest decision1900-01-01Latest decision2026-09-01Business days behind34 High Court of Andhra Pradesh Records7,32,348Earliest decision1900-01-01Latest decision2026-09-15Business days behind24 Gauhati High Court Records6,77,254Earliest decision1900-01-01Latest decision2026-10-15Business days behind2 High Court of Chhattisgarh Records5,52,043Earliest decision1963-08-07Latest decision2026-06-25Business days behind82 High Court of Jammu and Kashmir Records4,35,714Earliest decision1860-01-26Latest decision2026-10-05Business days behind10 High Court of Uttarakhand Records3,82,605Earliest decision1950-01-01Latest decision2026-09-30Business days behind13 High Court Of Chhattisgarh Records1,58,961Earliest decision1970-01-01Latest decision2026-08-24Business days behind40 High Court of Manipur Records54,179Earliest decision1970-01-01Latest decision2026-09-21Business days behind20 High Court of Tripura Records45,690Earliest decision1900-01-01Latest decision2026-09-08Business days behind29 Gujarat High Court Records27,817Earliest decision1997-04-21Latest decision2026-10-19Business days behindCurrent High Court of Meghalaya Records20,928Earliest decision1970-01-01Latest decision2026-10-05Business days behind10 Rajasthan High Court Records19,756Earliest decision2006-07-03Latest decision2026-10-18Business days behind1 Telangana High Court Records18,698Earliest decision2002-06-28Latest decision2026-10-17Business days behind1 Himachal Pradesh High Court Records12,357Earliest decision2026-03-16Latest decision2026-10-19Business days behindCurrent Chhattisgarh High Court Records10,684Earliest decision2026-06-09Latest decision2026-10-16Business days behind1 Punjab and Haryana High Court Records8,207Earliest decision1901-01-01Latest decision2026-09-24Business days behind17 Andhra Pradesh High Court Records6,035Earliest decision2003-10-17Latest decision2026-10-17Business days behind1 Kerala High Court Records5,668Earliest decision2017-03-23Latest decision2026-10-16Business days behind1 Uttarakhand High Court Records5,506Earliest decision2026-06-09Latest decision2026-10-16Business days behind1 Madhya Pradesh High Court Records4,730Earliest decision1970-01-01Latest decision2026-08-21Business days behind41 High Court of Sikkim Records3,456Earliest decision1970-01-01Latest decision2026-08-19Business days behind43 Jharkhand High Court Records3,102Earliest decision2026-03-24Latest decision2026-10-15Business days behind2 Karnataka High Court Records1,409Earliest decision2015-11-17Latest decision2026-10-17Business days behind1 High Court of Jammu & Kashmir and Ladakh Records572Earliest decision2026-05-30Latest decision2026-10-15Business days behind2 Meghalaya High Court Records425Earliest decision2026-06-09Latest decision2026-10-16Business days behind1 Delhi High Court Records402Earliest decision1970-01-01Latest decision2026-10-08Business days behind7 Tripura High Court Records194Earliest decision2026-05-22Latest decision2026-10-16Business days behind1 Manipur High Court Records165Earliest decision2026-02-18Latest decision2026-10-15Business days behind2 Sikkim High Court Records33Earliest decision2026-06-11Latest decision2026-10-16Business days behind1 High Court Records1Earliest decisionN/ALatest decisionN/ABusiness days behindN/A ### District Courts 25,58,16,277 records CourtRecordsEarliest decisionLatest decisionBusiness days behind District Courts, all states and union territories (rolled up)25,58,16,277N/A2026-10-19Current District Courts, all states and union territories (rolled up) Records25,58,16,277Earliest decisionN/ALatest decision2026-10-19Business days behindCurrent ### Tribunals 62,297 records CourtRecordsEarliest decisionLatest decisionBusiness days behind NCLT31,9772019-02-182026-10-087 Principal Bench, New Delhi9,9142019-01-292026-10-161 Chennai Bench5,3692021-08-112026-10-069 ITAT3,7522023-02-012026-10-161 SCDRC3,7382024-02-092026-10-152 DCDRC3,2742001-01-022026-10-171 TDSAT1,7382026-03-172026-10-161 NCDRC1,5962025-04-242026-10-152 SAT7562020-09-082026-10-134 NGT1422024-02-152026-10-161 ATFP412025-11-192026-08-1347 NCLT Records31,977Earliest decision2019-02-18Latest decision2026-10-08Business days behind7 Principal Bench, New Delhi Records9,914Earliest decision2019-01-29Latest decision2026-10-16Business days behind1 Chennai Bench Records5,369Earliest decision2021-08-11Latest decision2026-10-06Business days behind9 ITAT Records3,752Earliest decision2023-02-01Latest decision2026-10-16Business days behind1 SCDRC Records3,738Earliest decision2024-02-09Latest decision2026-10-15Business days behind2 DCDRC Records3,274Earliest decision2001-01-02Latest decision2026-10-17Business days behind1 TDSAT Records1,738Earliest decision2026-03-17Latest decision2026-10-16Business days behind1 NCDRC Records1,596Earliest decision2025-04-24Latest decision2026-10-15Business days behind2 SAT Records756Earliest decision2020-09-08Latest decision2026-10-13Business days behind4 NGT Records142Earliest decision2024-02-15Latest decision2026-10-16Business days behind1 ATFP Records41Earliest decision2025-11-19Latest decision2026-08-13Business days behind47 Raw JSON endpoint ### What counts as one record in these numbers? A record is one case row in the keyword index: a case number, court, parties and the metadata we could extract from the source portal. A minority of records also carry a stored judgment or order document, meaning we hold that document rather than only the case metadata. Where that split is published for a court, the table on this page shows both counts, records and document-bearing, so the difference is visible rather than blended into a single figure. ### What is the difference between status-only and document-bearing, and which endpoints reach which? A status-only record has case metadata but no stored document. Document-bearing means we hold the underlying judgment or order document, not that its text has been extracted or indexed for full text search, that is a separate step. Where this split is published for a court, it is shown as two counts rather than blended into one figure. POST /search/cases runs against the full keyword index, so it reaches every record regardless of status. POST /search/cases/semantic runs against the vector index, which only covers the roughly 2 million cases that have been analysed and embedded, a curated subset rather than the whole corpus. GET /cases/{id}/pdf can only ever return something for a document-bearing record; called on a status-only record it has nothing to serve. ### How does this compare to the National Judicial Data Grid (NJDG)? We intend to publish our coverage as a percentage of the NJDG's published case totals, with the date we read the NJDG figures stated alongside. That reconciliation has not been done yet, so this page does not compute or display a coverage percentage against NJDG today. Treat the numbers here as our own counts, not as a claim about what share of the national docket they represent, until that comparison is published with a read date. ### What are the known gaps in the corpus? Four gaps we know about and are not hiding: pre-CNR records that predate the eCourts case numbering scheme and so carry weaker identifiers; scanned-only PDFs where the source portal never published extractable text, which means the document exists but is not full-text searchable; tribunals that have no bulk data portal, which limits ingestion to what can be scraped page by page; and source portals that rate limit ingestion, which slows how quickly a large backlog can be pulled in. None of these gaps are estimated on this page as a percentage; they are named so an integrator can plan around them. ### Is 315.6 million records or freshness a service level commitment? No. Last ingest time and latest decision date per court are facts read from the pipeline at the moment this page's data was generated, not a promise about how current the corpus will stay. We do not publish a median ingestion lag, an uptime figure or a latency SLA for this data. If your use case needs a contracted freshness commitment, that is negotiated as part of an Enterprise or data licensing agreement, not something this public page can offer. ## Need coverage guarantees, not just a snapshot? This page is a public, self serve view of what is already in the corpus. If your use case needs a contracted refresh schedule, a specific court's backlog cleared, or a licensing agreement for bulk use, that is a conversation with our licensing team, not a setting on this page. Talk to licensing --- # Supreme Court of India API | Diary Numbers and Benches URL: https://courtmesh.ai/supreme-court-cases-api Supreme Court of India # Supreme Court of India case data, as a REST API One court, one canonical filter value, and a document trail that runs from the diary number a matter receives on filing to the judgment that closes it. This page documents how the apex court behaves inside the CourtMesh API: which parameters bite, which registry concepts have no parameter at all, and how to work around the second group honestly. Create an API keyRead the full documentation 1 Court value Supreme Court of India 1,069 Apex court judges sitting and retired, in the name index 12 Endpoints search, records, analysis, timeline 1947 Earliest year filter through the current calendar year ## Two identifiers, one matter Every apex court filing begins life with a diary number issued by the registry. It is a receipt: proof that papers were lodged, allotted before scrutiny, and carried through the whole defect curing period. Nothing about it tells you what kind of proceeding the matter is. Only after registration does the case acquire a case number, and only then does the case type become legible, whether the matter is a special leave petition, a writ petition, a transfer petition, a review or a contempt proceeding. That two stage lifecycle is why apex court data is awkward to model. Practitioners quote the diary number while a matter is young and the case number afterwards, and the two never resolve into a single key. The CourtMesh corpus is built on the case number, because that is the identifier printed on the documents we hold. The diary number rides along as metadata where the registry published it, readable on the case record but not available as a filter. The practical consequence is short. Identifiers you know go into the query string, where the parser recognises patterns such as 12345/2023 and normalises the punctuation away. Attributes of the decision, meaning who decided it, when, and in what document class, go into the typed filters. Registry conceptWhere it lives in the API Diary numberFree text in query. Returned as metadata.diaryNumber on the case record when captured. Case numberFree text in query, and the key that /cases/:id/related groups documents on. Coram and bench strengthNo parameter. Filter judgeName instead, or count the judges array on each record. Document classcaseType, which for this court takes Judgment, Order or Final Order. Decision datefromDate and toDate in YYYY-MM-DD form, or the year filter. ## Quickstart The base URL is https://research.courtmesh.ai/api/v1/prod. Authenticate with your key in the X-API-Key header, or as Authorization: Bearer if that fits your client better. Keys are issued with a cm- prefix. The one filter that keeps this request inside the apex court is court. curl -X POST "https://research.courtmesh.ai/api/v1/prod/search/cases" \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "query": "special leave petition maintainability delay condonation", "court": "Supreme Court of India", "fromDate": "2020-01-01", "toDate": "2024-12-31", "limit": 20, "sortBy": "relevance" }' ### What comes back Every route answers with the same envelope: a boolean success, the payload under data, request echo under meta, and page counters under pagination on list routes. { "success": true, "data": [ { "id": "66f1c2a4e9b21d0012ab34cd", "caseNumber": "...", "title": "...", "court": "Supreme Court of India", "caseType": "Judgment", "judges": ["..."], "petitioners": ["..."], "respondents": ["..."], "decisionDate": "2023-09-21T00:00:00.000Z", "disposalNature": "...", "summary": "...", "hasDocuments": true, "hasAnalysis": true } ], "meta": { "query": "special leave petition maintainability", "filters": { "court": "Supreme Court of India" }, "responseTime": "812ms" }, "pagination": { "page": 1, "limit": 20, "total": 4310, "totalPages": 216, "hasMore": true } ## Endpoints, read through an apex court lens VerbPathBehaviour at the Supreme Court GET/judges/search?q=Substring match over 1,069 Supreme Court judge names merged with the High Court list. Returns up to 50 names. POST/search/casesKeyword search over the full corpus. Set court to Supreme Court of India to stay inside the apex court. POST/search/cases/semanticVector search over the analysed subset. Court scoping goes inside the nested filters object. GET/cases/:idCase record. Carries metadata.diaryNumber when the registry number was captured for that document. GET/cases/:id/analysisAI analysis held separately from the record: headnote, issues, holding, doctrines, cited cases. GET/cases/:id/relatedEvery document sharing the same case number, up to 50, plus a date ordered timeline. GET/cases/:id/pdfEncrypted download link for the stored judgment, valid for 3,600 seconds. POST/cases/:id/analyzeQueues analysis and answers 202 immediately. Poll the case record after 30 to 60 seconds. POST/cases/:id/analyze-consolidatedFor an apex court matter this reads up to 20 documents sharing the case number and reasons over all of them. POST/request-timelineStarts an order history job for a case and hands back a requestId. GET/get-timeline/:requestIdPolls that job and returns orders, orderCount and totalOrderCount when it finishes. GET/healthLiveness probe. The only route on the surface that takes no API key. ## Benches, coram and the judge index A Division Bench of two decides most of the apex court list. Three judge benches take references and conflicts, and Article 145(3) reserves substantial questions on the interpretation of the Constitution for a bench of at least five, which is where the familiar seven, nine and eleven judge references come from. Bench strength is therefore the single most informative attribute of an apex court decision, and it is exactly the attribute no court portal publishes as a field. Neither do we, and we would rather say so than invent one. What the API gives you instead is the judge index: 1,069 Supreme Court names covering sitting and retired judges, merged with the High Court list into 4,561 unique names that /judges/search matches on as a case insensitive substring, returning up to 50 per call. Resolve a name there first, because the spelling in the index is the spelling the filter expects. From that point, counting the judges array on the results is a reliable proxy for coram. import requests BASE = "https://research.courtmesh.ai/api/v1/prod" HEADERS = {"X-API-Key": "cm-YOUR_KEY_HERE", "Content-Type": "application/json"} # 1. Resolve the judge name the way the index spells it. lookup = requests.get( f"{BASE}/judges/search", params={"q": "chandrachud"}, headers=HEADERS, timeout=60, ) names = lookup.json()["data"] # up to 50 matching names print(names) # 2. Pull that judge's Supreme Court matters, newest first by relevance. body = { "query": "constitutional validity fundamental rights", "court": "Supreme Court of India", "judgeName": names[0], "page": 1, "limit": 50, } res = requests.post(f"{BASE}/search/cases", json=body, headers=HEADERS, timeout=120) payload = res.json() print(payload["pagination"]["total"], "matters") for row in payload["data"]: print(row["decisionDate"], row["caseNumber"], row["title"]) ## Following a matter from leave to appeal A special leave petition under Article 136 asks the court for permission to appeal. If leave is granted, the registry renumbers the same dispute as a civil appeal or a criminal appeal. One controversy, two numbers, and the interlocutory orders scatter across both. Any tool that models an apex court matter as a single row will lose half of it. The two endpoints that put the pieces back together are /cases/:id/related, which returns every document sharing a case number up to a ceiling of 50 along with a date ordered timeline, and /cases/:id/analyze-consolidated, which for an apex court matter reads up to 20 documents under that number and reasons over them together rather than one at a time. The consolidated route runs synchronously and consumes AI credits, so call it when you want the reasoning across a lineage rather than for bulk enrichment. const BASE = "https://research.courtmesh.ai/api/v1/prod"; const headers = { "X-API-Key": process.env.COURTMESH_API_KEY, "Content-Type": "application/json", }; // A Supreme Court matter accumulates orders under one case number. // /related gathers every document that shares it and builds a timeline. async function lineage(caseId) { const res = await fetch(`${BASE}/cases/${caseId}/related`, { headers }); const { data, meta } = await res.json(); console.log(meta.caseNumber, "->", meta.totalDocuments, "documents"); data.timeline.forEach((event) => { // status is one of: Case Initiated, Hearings / Orders, Final Judgment console.log(event.date, event.status, event.statusLabel); }); return data.relatedDocuments; } // Reason across the whole lineage rather than a single order. async function consolidate(caseId) { const res = await fetch(`${BASE}/cases/${caseId}/analyze-consolidated`, { method: "POST", headers, body: JSON.stringify({ force: false }), }); const { data } = await res.json(); return data.consolidatedAnalysis; } ## Reportability and citations: what is not here Apex court judgments circulate under several identities at once. The registry marks a judgment reportable or not, the official reports carry it in the Supreme Court Reports, the private reporters give it their own parallel citations, and since 2023 there has been a neutral citation running alongside all of them. A single decision can be cited four ways in four briefs. The API does not model any of that. There is no citations array, no reportability flag, and no lookup from a reporter citation to a record. Parallel citations appear inside judgment text and, where a document has been analysed, inside the citedCases groupings that sort earlier authority into followed, distinguished, overruled and referred. If you need to resolve a citation, search it as a phrase in the query string and confirm against the document, which is what /cases/:id/pdf is for. That route returns an encrypted link valid for 3,600 seconds. Two other honest boundaries. Cause lists and future listing dates are not exposed by this API at all, so nothing here will tell you when a matter is next before the court. And the semantic route searches the analysed subset rather than the whole corpus, so a niche order that has never been analysed will answer to keyword search and stay invisible to a vector query. ## What teams build on the apex court layer ### Constitutional research tools Resolve a bench through the judge index, pull every matter it decided in a date window, then read the analysis object for doctrines applied and constitutional provisions engaged. ### Precedent monitors Watch a line of authority by re-running a semantic query on a schedule and diffing the case numbers that come back, then confirm each new arrival against the stored document. ### Judge level analytics Aggregate disposalNature and decisionDate across a judge's matters. Because judges is an array on every record, coram sized cohorts fall out of the same query. ### Brief assembly Take a lineage from the related endpoint, run consolidated analysis over it once, and hand a drafter the headnote, issues, holding and cited authority in one payload. ## Supreme Court API questions ### Is there a diaryNumber parameter I can filter on? No. The search body accepts query, court, year, caseType, judgeName, fromDate, toDate, page, limit, sortBy and searchAfter, and nothing else. A diary number belongs in the query string, where the query parser recognises number and year patterns such as 12345/2023 and normalises them. Once you open a specific record, GET /cases/:id returns metadata.diaryNumber for documents where the registry number was captured, so the identifier is readable even though it is not filterable. ### What is the difference between a diary number and a case number here? A diary number is issued by the Supreme Court registry the moment a matter is filed, before scrutiny and registration. It stays with the filing through defect curing and is often the only identifier a pending matter has. A case number arrives after registration and encodes the case type, for example a special leave petition or a writ petition. Our records key on caseNumber, which is why the related endpoint groups documents by case number rather than by diary number. ### How do I filter for a Constitution Bench matter? There is no coram or bench strength parameter, so filter on the judges instead. Resolve each name through /judges/search, then pass judgeName with the names you care about, or read the judges array on each returned record and count it yourself. For matters that already carry analysis, the analysis object exposes procedureType and precedentValue, which are usually the fields that tell a reference apart from a routine appeal. ### Which court value do I pass for the Supreme Court? Exactly one string: Supreme Court of India. Unlike the High Courts, which appear in the index under several spellings, the apex court has a single canonical value, so a court filter of Supreme Court of India is complete on its own. You can also write it inline in the query as court:"Supreme Court of India", which the query parser lifts out before searching. ### Does caseType let me ask for special leave petitions only? Not at the apex court. The case type catalogue lists three values for the Supreme Court, namely Final Order, Judgment and Order, which describe the document rather than the proceeding. The special leave petition or appeal identity sits inside the case number text. Put it in the query string instead, for example SLP(C) followed by the number, and let the parser do the matching. ### How does an SLP that becomes an appeal show up in the data? As two identifiers. When leave is granted under Article 136 the registry renumbers the matter as a civil or criminal appeal, so the pre-leave and post-leave documents can carry different case numbers even though the dispute is one. Because /cases/:id/related groups on case number, it will show you the lineage under whichever number the documents were filed against. To bridge the two, search the party names or the impugned judgment reference in the query string. ### Are AIR, SCC and neutral citations returned as fields? No. There is no citations array in the response schema. What you get on a record is id, caseNumber, title, court, caseType, judges, petitioners, respondents, decisionDate, disposalNature, summary, hasDocuments, documentCount and hasAnalysis. Parallel citations that appear in the body of a judgment are reachable through the text and, where analysis exists, through the citedCases groupings of followed, distinguished, overruled and referred. ### Can I tell whether a judgment was marked reportable? Not through a dedicated flag. Reportability is a registry marking on the judgment itself rather than a field we expose. The closest signals in the API are hasAnalysis, which tells you whether the document has been read into structured analysis, and precedentValue inside the analysis object where it has been derived. ### Why does semantic search return fewer Supreme Court results than keyword search? The two run over different collections. Keyword search covers the full corpus of more than 315.6 million records. Semantic search runs over the vector index, which holds the subset of roughly two million judgments that have been analysed and embedded, and it drops anything scoring below 0.30 similarity. Its pagination totals are estimates rather than exact counts except on the final page. Treat it as a way to find reasoning you cannot phrase, not as a census. ### What are the rate limits and how do I page through large result sets? An API key is limited to 10 requests per minute. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a rejected call answers 429 with retryAfter in seconds. Page size caps at 100. For deep pagination pass the searchAfter cursor on /search/cases rather than walking page numbers, which keeps results stable while you iterate. ## Keep reading Indian Court Cases API The pillar page covering every court layer on one key. High Court API Twenty five High Courts, their benches and their spelling variants. District Court API CNR numbers, court establishments and honest coverage limits. API pricing Per call credit rates, including the AI routes used above. Litigation Check API Screen a party name and get a confidence scored answer. Coverage and freshness Records by court and year, free, no API key needed. Full parameter reference, error codes and language snippets live in the developer documentation. --- # High Court Cases API | All 25 High Courts and Benches URL: https://courtmesh.ai/high-court-cases-api 25 High Courts # High Court case data for every state, bench and spelling India has 25 High Courts, several of which sit at more than one place, and their portals do not agree on how to write their own names. This page is about that mess and what to do about it: the variant map you need before your first query, where bench level filtering is and is not available, and how writ and appeal case types expand across every court at once. Get an API keySee the unified API 25High Courts, principal seats and benches included 47distinct court strings those 25 institutions produce 3,590High Court judge names in the lookup index 669case type codes catalogued across the High Courts ## Read this before your first query The court filter matches verbatim against the strings stored in the index, and those strings came from the courts themselves. Rajasthan publishes under three spellings. Telangana appears as High Court for State of Telangana and as Telangana High Court. Delhi, Gujarat, Kerala, Karnataka, Jharkhand and most of the rest each carry a formal variant and a colloquial one. Twenty five institutions, forty seven strings. So the filter takes an array, and the array should hold every variant of the institution you mean. Get this wrong and nothing breaks loudly: you simply receive a fraction of the matters and a total that looks plausible. It is the single most consequential detail on this page, which is why it comes before the endpoint list rather than after it. Court name variants stored in the indexInstitutionValues to pass in the court array RajasthanHigh Court of Rajasthan, High Court Of Rajasthan, Rajasthan High Court TelanganaHigh Court for State of Telangana, Telangana High Court ChhattisgarhHigh Court of Chhattisgarh, High Court Of Chhattisgarh, Chhattisgarh High Court Jammu and Kashmir and LadakhHigh Court of Jammu & Kashmir and Ladakh, High Court of Jammu and Kashmir Andhra PradeshHigh Court of Andhra Pradesh, Andhra Pradesh High Court Bombay, Calcutta, Madras, Allahabad, Patna, GauhatiSingle canonical string each, no variants needed ## First request Base URL https://research.courtmesh.ai/api/v1/prod. Keys carry a cm- prefix and travel either as Authorization: Bearer or in an X-API-Key header, whichever your HTTP client prefers. Only query is mandatory. Writ matters in one High Court, two yearscurl -X POST "https://research.courtmesh.ai/api/v1/prod/search/cases" \ -H "Authorization: Bearer cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "query": "quashing of FIR inherent powers abuse of process", "court": ["Bombay High Court"], "caseType": "Writ", "year": ["2022", "2023"], "limit": 25 }' court Array of verbatim index spellings. Omit it and the search spans every court layer including the Supreme Court, district courts and tribunals. caseType Either a raw code such as CWP or LPA, or a primary type such as Writ or Appeal which the service expands into the underlying codes. year, fromDate, toDate Four digit years from 1947 to the current year, or an explicit YYYY-MM-DD range. Both forms may be combined with a court array. One parameter deserves a warning. The body will accept caseNumber without complaint, but the keyword route does not apply it as a filter. If you are looking for a specific number, put it in query, where the parser recognises number and year patterns and normalises separators before searching. ## Principal seats, circuit benches and where they live A High Court is not always one building. Bombay hears matters at Nagpur, Aurangabad, Kolhapur and Goa besides its Original and Appellate Sides in the city. Calcutta runs circuit benches at Port Blair and Jalpaiguri. Gauhati sits at Kohima, Aizawl and Itanagar as well as its principal seat. Karnataka has benches at Dharwad and Kalaburagi, Madras at Madurai, Allahabad at Lucknow. Which seat heard a matter is often a jurisdictional fact rather than an administrative one. In the index the seat sits one level below the court. The keyword route does not expose that level, so bench scoping there is done through the query text. The semantic route does expose it, through filters.courtName inside the nested filters object, alongside filters.courtType and filters.court. The bench names below are the strings the index actually holds. High CourtSeats recorded in the index Bombay High CourtOriginal Side and Appellate Side at Bombay, Bench at Nagpur, Bench at Aurangabad, Bench at Kolhapur, High Court of Bombay at Goa Calcutta High CourtOriginal Side and Appellate Side at Calcutta, Circuit Bench at Port Blair, Circuit Bench at Jalpaiguri Gauhati High CourtPrincipal Seat at Guwahati, Kohima Bench, Aizawl Bench, Itanagar Bench High Court of KarnatakaPrincipal Bench at Bengaluru, Bench at Dharwad, Bench at Kalaburagi Madras High CourtPrincipal Bench at Madras, Madurai Bench Allahabad High CourtAllahabad, Lucknow Bench ## Sweeping an issue across institutions Comparative High Court research is mostly bookkeeping: the same proposition, asked of each institution, with each institution named correctly. Build the variant map once and the rest is a loop. Python: institution by institutionimport requests BASE = "https://research.courtmesh.ai/api/v1/prod" HEADERS = {"Authorization": "Bearer cm-YOUR_KEY_HERE", "Content-Type": "application/json"} # The index stores each High Court under the spellings its portal published. # Pass every variant of an institution together or you will silently lose rows. COURT_VARIANTS = { "Rajasthan": ["High Court of Rajasthan", "High Court Of Rajasthan", "Rajasthan High Court"], "Telangana": ["High Court for State of Telangana", "Telangana High Court"], "Chhattisgarh": ["High Court of Chhattisgarh", "High Court Of Chhattisgarh", "Chhattisgarh High Court"], "Jammu Kashmir Ladakh": [ "High Court of Jammu & Kashmir and Ladakh", "High Court of Jammu and Kashmir", ], "Delhi": ["High Court of Delhi", "Delhi High Court"], } def survey(issue: str, institution: str, page: int = 1): body = { "query": issue, "court": COURT_VARIANTS[institution], # array, not a single string "page": page, "limit": 100, } r = requests.post(f"{BASE}/search/cases", json=body, headers=HEADERS, timeout=120) r.raise_for_status() return r.json() for institution in COURT_VARIANTS: out = survey("adverse possession hostile animus", institution) print(institution, out["pagination"]["total"], "matches") ## Persuasive precedent from elsewhere A judgment of one High Court binds no other. It persuades, which is why the useful question is rarely whether a court has already decided your point and usually whether any court has decided something close enough to argue from. That is a meaning problem rather than a keyword problem, and it is what the semantic route exists for. Two things to hold in mind while using it. Court scoping moves inside the nested filters object on this route, and the vector index covers the analysed subset of the corpus, roughly two million judgments, rather than all 315.6 million records. Results below 0.30 similarity are dropped, and pagination totals are estimates except on the final page. It finds reasoning you could not have phrased. It does not enumerate a field. Node: ask the other High Courtsconst BASE = "https://research.courtmesh.ai/api/v1/prod"; // Cross High Court persuasive research runs on the semantic route. // Note the shape: court scoping goes INSIDE the nested filters object here, // unlike /search/cases where court is a top level key. async function persuasiveElsewhere(proposition, excludeCourt) { const everyOtherCourt = [ "Allahabad High Court", "Calcutta High Court", "High Court of Karnataka", "High Court of Kerala", "Madras High Court", "Patna High Court", ].filter((name) => name !== excludeCourt); const res = await fetch(`${BASE}/search/cases/semantic`, { method: "POST", headers: { "Authorization": `Bearer ${process.env.COURTMESH_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ query: proposition, limit: 40, filters: { court: everyOtherCourt }, }), }); const { data, meta } = await res.json(); // meta.searchType is "semantic"; if the query reduced to filters only it // comes back as meta.fallbackMode "opensearch" instead. return data.map((row) => ({ court: row.court, caseNumber: row.caseNumber, similarity: row.similarity, title: row.title, })); } ## Where the High Court layer earns its keep ### Writ practice monitoring Expand caseType to Writ, leave court unset, and watch how a statutory challenge is being received across all 25 institutions rather than only the one you appear before. ### Jurisdiction mapping Every record returns its court string, so grouping results by institution gives you an immediate picture of where a line of litigation is concentrated. ### Vernacular aware retrieval Run keyword search in the language of the judgment and semantic search in English, then merge. Neither route alone covers a multilingual corpus honestly. ### Appeal readiness checks Pull the Letters Patent Appeal and writ appeal codes for a court, filter by date, and see how a single judge order of that court has fared before Division Benches. ## High Court API questions ### Why does one High Court appear under several court values? Because the source portals spell it several ways and we index what they published rather than rewriting it. Rajasthan alone arrives as High Court of Rajasthan, High Court Of Rajasthan and Rajasthan High Court. Across the 25 institutions there are 47 distinct court strings. The court filter matches verbatim, so pass an array holding every variant for the institution you want. Filtering on a single pretty spelling is the most common way to lose rows without noticing. ### Can I filter down to a specific bench such as Nagpur or Madurai? On the keyword route, no. POST /search/cases accepts query, court, year, caseType, caseNumber, judgeName, fromDate, toDate, page, limit, sortBy and searchAfter, and bench sits one level below court in the index. Put the bench name in the query text there. On POST /search/cases/semantic the nested filters object does reach that level, so filters.courtName with a value such as Bench at Nagpur or Madurai Bench of Madras High Court will scope a vector search to a seat. ### How do I search writ jurisdiction matters across every High Court at once? Send caseType as the word Writ. The service expands a primary type into the underlying court specific codes, and Writ currently resolves to 73 distinct codes across the catalogue, from CWP in Punjab and Haryana to WP in Bombay and WP(C) in Kerala and Sikkim. Leave court unset and the expansion runs across every High Court together. The same trick works for Appeal, which expands to 182 codes and sweeps up Letters Patent Appeals alongside first appeals and second appeals. ### Is there a parameter for Article 226 versus Article 227? No. Supervisory jurisdiction under Article 227 and writ jurisdiction under Article 226 are frequently invoked in the same petition, and the case type codes do not separate them. Search the article numbers as phrases in the query string. For documents that carry analysis, the analysis object exposes constitutionalProvisions, which is where the distinction is usually recorded once a judgment has been read. ### What happens to judgments delivered in a regional language? They are stored and retrievable, but the two search routes treat them very differently. Keyword search matches the characters actually in the document, so a Marathi or Hindi judgment answers to a query in that language. Semantic search runs over embeddings built from analysed English text, so an English proposition will not surface a vernacular judgment that has never been analysed. If your practice depends on vernacular material, lead with keyword search and treat semantic results as a supplement. ### Does the related endpoint find similar judgments in other High Courts? It does not, and it is worth being blunt about that. GET /cases/:id/related groups documents that share the same case number, up to 50 of them, and returns a timeline of that one matter. It is lineage, not similarity. For persuasive authority from a different High Court, use POST /search/cases/semantic with filters.court set to the courts you want to hear from. ### How does consolidated analysis behave for a High Court matter? Differently from the Supreme Court, deliberately. For a High Court case, POST /cases/:id/analyze-consolidated reads the case document together with the five most recent orders recorded against it and analyses that bundle. For a Supreme Court matter the same route instead gathers up to 20 documents sharing the case number. The route is synchronous, it consumes AI credits, and passing force true re-runs an analysis that already exists. ### Are High Court judge names in the same index as Supreme Court judges? Yes, and they are merged. GET /judges/search reads 3,590 High Court names alongside 1,069 Supreme Court names, deduplicates to 4,561 unique entries, matches your term as a case insensitive substring and returns at most 50. Elevation means many judges appear on both lists under one entry. Resolve the name there before you pass judgeName to a search, because the filter expects the spelling the index holds. ### Which citation formats can I look up? None as a structured field. High Court reporting conventions vary by region and the API returns no citations array, so a reporter citation is only findable as text inside a judgment. Search it as a quoted phrase in query, then confirm against the stored document through GET /cases/:id/pdf, which returns an encrypted link that expires after 3,600 seconds. ### What limits should I design around? An API key is capped at 10 requests per minute, responses carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and exceeding the cap returns 429 with retryAfter in seconds. Page size maxes at 100. When you sweep an institution across many pages, use the searchAfter cursor from the previous response rather than incrementing page, and expect keyword pagination totals to be exact while semantic totals are estimates until the last page. ## Related pages Indian Court Cases API The parent page: one key across every court layer. Supreme Court API Diary numbers, coram and apex court lineage. District Court API CNR structure, establishments and coverage candour. API pricing Credit rates for keyword, semantic and analysis calls. Litigation Check API Screen a party name and get a confidence scored answer. Coverage and freshness Records by court and year, free, no API key needed. Parameter tables, status codes and more snippets are in the developer documentation. --- # District Court Cases API | CNR Lookups and Order History URL: https://courtmesh.ai/district-court-cases-api District and subordinate courts # District court records, with the coverage caveats printed on the tin This is where most Indian litigation actually happens and where the data is hardest. Establishment names are inconsistent, case type codes are not catalogued, the judge index does not reach the subordinate judiciary, and the analysed subset that powers semantic search leans heavily on higher courts. Everything below is written so you can size those limits before you write code against them. Start with an API keyOpen the documentation 740 establishment values verbatim strings in the district layer 16 characters in a CNR state, district, establishment, number, year 0 district judges indexed the judge lookup covers higher courts only 100 results per page cursor pagination for anything deeper ## The honest shape of subordinate court data Volume and depth run in opposite directions as you move down the judicial hierarchy. The corpus passes 315.6 million records overall and the subordinate courts contribute the bulk of that count, because they handle the bulk of the litigation. What arrives with those records, though, is mostly registry material: parties, dates, case types, orders. Long reasoned judgments of the kind reporters publish are rarer here by nature rather than by omission. That has a direct consequence for retrieval. The vector index behind semantic search covers the analysed subset of the corpus, roughly two million judgments, and that subset is weighted towards the Supreme Court and the High Courts, because those are the documents worth analysing at depth. So a semantic query will feel thin over district material while keyword search over the same layer feels rich. Neither observation is a defect. Knowing which is which is the difference between a working integration and a disappointed one. Rather than publish a coverage percentage you would have to take on trust, the API hands you per record evidence. Search results carry hasDocuments and hasAnalysis, and the case record adds documentCount. Sample an establishment, count the flags, and you have measured your own coverage in one request. ## Anatomy of a CNR The Case Number Record identifier is the one genuinely dependable key in the subordinate system. It is allotted at the court establishment and it survives renumbering, recategorisation and movement between courts inside that establishment, which is exactly what defeats every other identifier down here. SegmentWidthMeaning State2The state or union territory the establishment sits in District2The district inside that state Establishment2The specific court complex within the district Filing number6Sequential number allotted at that establishment Year4Year of filing, which is why a CNR sorts chronologically There is no cnr parameter. Send the number as the query string and let the parser handle it: it detects an alphanumeric prefix followed by a four digit year, strips separators, and searches both the normalised and the original form. That is a text match rather than a primary key lookup, so read the record that comes back before you trust it. ## Three levels, two routes, different reach The index models a court in three levels. Which of them you can filter on depends on which search route you are using, and the difference is larger here than anywhere else in the hierarchy, because a district establishment can contain a family court, a commercial court, a small causes court and a dozen magistrates. ### Court type Index level District Court Available on the semantic route as filters.courtType. Not a parameter on the keyword route. ### Establishment Index level District Court of Pune, District Court of Mumbai Small Causes Court, Chief Judicial Magistrate, Hooghly The court parameter on both routes. 740 values exist across the district layer. ### Individual court Index level Family Court Agra, Commercial Court Agra, Judge Small Cause Court, Jr. Civil Courts, Boath Available on the semantic route as filters.courtName. On the keyword route, put it in the query text. ## Your first district query Base URL https://research.courtmesh.ai/api/v1/prod, key in the X-API-Key header or as a bearer token, and query as the only required field. Every response uses the same envelope: success, data, meta and, on list routes, pagination. ### Two establishments, one financial year curl -X POST "https://research.courtmesh.ai/api/v1/prod/search/cases" \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "query": "specific performance agreement to sell possession", "court": ["District Court of Pune", "District Court of Ahmednagar"], "fromDate": "2021-04-01", "toDate": "2024-03-31", "limit": 50 }' ### Measure before you build The most useful thing to run against a new establishment is not a search but a profile. This counts what the records actually carry, which is the number your integration lives or dies by. ### Python: profiling an establishment import requests from collections import Counter BASE = "https://research.courtmesh.ai/api/v1/prod" HEADERS = {"X-API-Key": "cm-YOUR_KEY_HERE", "Content-Type": "application/json"} # Establishment values are verbatim strings. They are not tidy, because the # source registries are not tidy: some read "District Court of Agra", # others "Chief Judicial Magistrate, Hooghly". ESTABLISHMENTS = [ "District Court of Agra", "District Court of Mumbai City Civil Court", "District Court of BENGALURU", ] def profile(establishment): """Measure what a court's records actually carry before you rely on them.""" body = {"query": "decree", "court": establishment, "limit": 100} r = requests.post(f"{BASE}/search/cases", json=body, headers=HEADERS, timeout=120) rows = r.json()["data"] tally = Counter() for row in rows: tally["records"] += 1 tally["with_document"] += 1 if row.get("hasDocuments") else 0 tally["with_analysis"] += 1 if row.get("hasAnalysis") else 0 tally["with_decision_date"] += 1 if row.get("decisionDate") else 0 return tally for name in ESTABLISHMENTS: print(name, dict(profile(name))) ## Order history, and the thing it is not Subordinate matters live in adjournments. A suit reaches judgment through dozens of dated orders, and the sequence of those orders is usually more informative than any single one of them. Two routes cover this: POST /request-timeline, which takes case_id in the body and starts a job, and GET /get-timeline/:requestId, which returns status and, on completion, orders, orderCount and totalOrderCount. A case whose orders were already fetched answers immediately with cached set. What this is not is a cause list. There is no listing route on this API and no next hearing date on any response, so nothing here will tell you when a matter comes up next. Order history is a backward looking record. Any product that needs forward listing information has to get it somewhere else, and we would rather write that sentence than let you discover it in production. ### Node: start a job, then poll it const BASE = "https://research.courtmesh.ai/api/v1/prod"; const headers = { "X-API-Key": process.env.COURTMESH_API_KEY, "Content-Type": "application/json", }; // Order history is a job, not a synchronous read. Start it, then poll. async function orderHistory(caseId) { const started = await fetch(`${BASE}/request-timeline`, { method: "POST", headers, body: JSON.stringify({ case_id: caseId }), }).then((r) => r.json()); // A cached case answers immediately with orders already attached. if (started.data.cached) return started.data.orders; const requestId = started.data.requestId; for (let attempt = 0; attempt < 20; attempt += 1) { await new Promise((resolve) => setTimeout(resolve, 5000)); const poll = await fetch(`${BASE}/get-timeline/${requestId}`, { headers }) .then((r) => r.json()); if (poll.data.status === "completed") { console.log(poll.data.orderCount, "of", poll.data.totalOrderCount); return poll.data.orders; } if (poll.data.status === "failed") throw new Error(poll.data.error); } throw new Error("timeline job still running"); } ## What the district layer is good for ### Party exposure checks Search a counterparty name with no court filter and you see the whole footprint at once, which for most companies is overwhelmingly subordinate court litigation rather than reported appeals. ### Order cadence analysis Run the timeline job across a portfolio and you can measure how long matters actually sit between orders in a given establishment, which no single record will tell you. ### Establishment benchmarking Profile several establishments on the same query and the differences in record depth become visible, which is the honest basis for deciding where automated monitoring is worth running. ### Escalation tracing Start from a district matter, carry the parties and the impugned order into a High Court scoped search, and reconstruct the appellate path that no shared identifier gives you for free. ## District Court API questions Is there a cnr parameter for CNR lookups?No, and nothing in the request body maps onto one. Pass the CNR as the query string instead. The query parser recognises an alphanumeric prefix followed by a four digit year and normalises separators before searching, which is why a CNR pasted straight from an eCourts page usually works. Treat it as a text match rather than a key lookup, and confirm the record you get back before you build on it. What do the sixteen characters of a CNR mean?A CNR is a fixed width identifier issued by the eCourts system: two characters for the state, two for the district, two for the court establishment inside that district, six for the sequential filing number at that establishment, and four for the year of filing. Because the number is allotted at the establishment, it survives renumbering, transfer between courts within the establishment and changes of case type. That is what makes it the most stable identifier a subordinate court matter has. How do I scope a search to one district or one court establishment?Through the court parameter, using the verbatim establishment string. There are 740 of them in the district layer and they are inconsistent by nature, because they are what each state registry published: District Court of Agra sits alongside Civil Judge Sr. Divn, Hooghly and District Court of Mumbai Motor Accident Claims T. Pass an array when a district has several establishment strings, and expect to build a small lookup for the districts you care about rather than guessing the format. Can I filter by case type codes such as O.S. or Sessions Case?Not reliably. The case type catalogue holds 669 codes drawn from the Supreme Court and the 25 High Courts, and it contains no district entries, so a district case type will not expand and a primary type such as Writ or Appeal will expand into High Court codes rather than subordinate ones. Put the case type in the query text for this layer and rely on court, date and free text instead. Does the API return cause lists or the next hearing date?No. There is no cause list route and no next hearing field on any response. What exists is order history: POST /request-timeline starts a job for a case and returns a requestId, and GET /get-timeline/:requestId returns status along with orders, orderCount and totalOrderCount once it finishes. That tells you what has already happened on a matter. It does not tell you when the matter is next listed, and we would rather say so than let a listing product be inferred from a timeline endpoint. Are district judges searchable through the judge lookup?No. GET /judges/search reads two lists, 1,069 Supreme Court names and 3,590 High Court names, merged into 4,561 unique entries. The subordinate judiciary is not in that index, so passing a district judge name to judgeName will usually return nothing. Search the officer's name as free text in query, and accept that coverage of presiding officer names in the underlying records is uneven. How does district coverage compare with High Court and Supreme Court data?It is broader and thinner at the same time. The corpus runs past 315.6 million records overall and the district layer supplies much of that volume, but subordinate court records skew towards registry metadata and orders rather than long reasoned judgments, and reporting conventions mean far less of it has ever been written up. The AI analysed and vector indexed subset, roughly two million judgments, is drawn mostly from higher court material. So keyword search reaches district matters well while semantic search reaches them sparsely. How can I tell how good a particular record is before relying on it?Read the flags the response already gives you. Every search result carries hasDocuments and hasAnalysis, and the case record adds documentCount. Those three tell you whether a stored document exists, whether structured analysis has been derived, and how many files sit behind the record. Profiling a sample of an establishment on those flags takes one request and is far more useful than any coverage percentage we could quote you. Can I follow a matter from the district court up through appeal?Partly, and it takes work. Case numbers change at every tier, so GET /cases/:id/related will not bridge them: it groups documents that share one case number and returns a timeline of that single matter. To follow a dispute upward, carry the party names and the impugned order details into a fresh search scoped to the relevant High Court, then to the Supreme Court. The link is evidentiary rather than structural, which means a human should confirm it. What are the operational limits on this layer?The same as everywhere else on the surface: 10 requests per minute for an API key, a maximum of 100 results per page, and 429 responses carrying retryAfter when you exceed the cap. Because district volume is large, use the searchAfter cursor returned by the keyword route for deep pagination instead of walking page numbers, and remember that only GET /health is reachable without a key. ## Where to go next Indian Court Cases API The pillar page for the whole surface, every layer on one key. High Court API Name variants, benches and writ jurisdiction filters. Supreme Court API Diary numbers, bench composition and apex court lineage. API pricing What a search, a timeline job and an analysis each cost. Litigation Check API Screen a party name and get a confidence scored answer. Coverage and freshness Records by court and year, free, no API key needed. Endpoint by endpoint reference, error codes and further examples live in the developer documentation. --- # Indian Court API Pricing | Credit Rates and Free Tier URL: https://courtmesh.ai/indian-court-cases-api/pricing Developer API pricing # Indian court cases API pricing, published per call One credit wallet, 18 confirmed endpoints, and a price for every one of them printed on this page. Start with 2,500 free credits and keep 500 free credits every month for life. Paid credit packs are coming soon. No quote request, no rate card behind a login. Get API keys Read the docs Availability: Sign up and the free credit grant are live today. Buying prepaid credit packs and the Scale subscription are coming soon. Talk to sales for higher volume in the meantime. 2,500 Free credits on signup They never expire 500 Free credits every month Forever, on every account ₹0.10 Base credit rate No prepaid multiplier 18 Confirmed priced endpoints Search, analysis, litigation check and coverage ### Free Developer ₹0forever Build and prototype without a card on file. 2,500 credits on signup, plus 500 free credits every month - Signup grant never expires - Monthly 500 credit grant refreshes on the 1st - 1 API key - No AI analysis endpoints on Free; upgrade to Pay As You Go - Up to 10 litigation checks per month - 10 requests per minute, 500 per day - Docs and community support Start free Most popular ### Pay As You Go From ₹1,000prepaid packs Base rate credits that never expire. No subscription. 10,000 to 2,40,000 credits per pack - Credits never expire, ever - ₹0.083 to ₹0.100 per credit, no multiplier - 3 API keys - Full access to AI semantic search, analysis and litigation check endpoints - 60 requests per minute, 20,000 per day - Email support and GST invoice on every purchase Coming soon ### Scale ₹7,999per month, GST inclusive Predictable monthly volume for production workloads. 1,00,000 credits every month - Unused credits roll over up to 3,00,000 while you stay subscribed - ₹0.080 per credit effective rate - 10 API keys - 120 requests per minute, 1,00,000 per day - 10 concurrent AI analysis jobs - Priority email support Coming soon ### Enterprise From ₹15,000per month, contracted Pooled credits, custom limits, procurement friendly. Custom volume, pooled across every key in your organisation - Volume rates from ₹0.060 per credit, down to ₹0.040 above 20 lakh credits a month - Unlimited API keys with org level pooling - Custom rate limits up to 600 requests per minute - GST invoicing with TDS handling and purchase orders - Dedicated account manager and written SLA - Audit logs and security review support Talk to sales ### Prepaid packs, priced at base rate One API credit carries a nominal value of ₹0.10. Our smallest pack sells credits at exactly that rate, and larger packs sell them below it. eCourtsIndia's published pricing states a three times multiplier on its pay as you go packs (checked 2026-09-18 at ecourtsindia.com/api/pricing), which is a real hidden cost in this market. We do not charge one. CourtMesh prepaid API credit packsPackPrice, GST inclusiveCreditsRate per creditDiscount Dev₹1,00010,000₹0.100Base rate, 1.0x Build₹5,00055,000₹0.0919% below base rate Grow₹20,0002,40,000₹0.08317% below base rate CourtMesh API credit cost for each of the 18 confirmed endpointsEndpointMethodCreditsBase rate priceWhat you get /healthGET0FreeUptime probe. Never billed, never rate limited against your quota, though it carries its own 120 requests per minute per IP guard shared by every caller. /get-timeline/{requestId}GET0FreeStatus poll for an async timeline job. Polling is free so our async design never costs you extra. /judges/searchGET1₹0.10Filter the Supreme Court and High Court judge roster by name. Our cheapest metered read. /search/casesPOST1₹0.10Keyword search across 315.6 million records with court, year, judge, case type and date filters plus cursor pagination. /cases/{id}GET1₹0.10Full structured case detail with parties, bench, citations and judgment text. No AI cost involved. /cases/{id}/relatedGET1₹0.10Related documents and the derived order timeline for the same case number. /cases/{id}/analysisGET1₹0.10Reads a stored AI analysis if one already exists. Priced as a plain read: the AI work was paid for when it was generated. /cases/{id}/pdfGET5₹0.50Judgment PDF retrieval through a signed URL. Priced for bandwidth, not for compute. /search/cases/semanticPOST10₹1.00AI semantic search: filter extraction, query optimisation, embedding and vector search across roughly 2 million cases. Not available on the Free tier. /request-timelinePOST20₹2.00Reads stored orders by default, priced at the 1 credit cache rate. Send refresh:true to ask the source court portal for current orders instead; that costs the full 20 credits only when it genuinely triggers live work, reported as meta.liveFetch. Not available with refresh:true on the Free tier, and tribunal cases cannot be live-fetched at all. Polling the job status is free. /cases/{id}/analyzePOST100₹10.00Generates a full AI analysis: issues, arguments, statutes referenced, precedent treatment and case strength. Not available on the Free tier. allowRemoteFetch:true adds a 20 credit surcharge when the source document has to be fetched from a remote host on the allowlist rather than served from stored data. /cases/{id}/analyze-consolidatedPOST400₹40.00Consolidated analysis across every document attached to a matter. The heaviest call we sell. Not available on the Free tier. /usageGET0FreeYour own balance, tier limits and per endpoint call counts for the current billing period. Unmetered by design: checking your usage must never itself burn a credit. /reference/courtsGET0FreeThe court hierarchy the search endpoints accept for their court filter. No API key required, cached for an hour with an ETag. /reference/case-typesGET0FreeThe case type taxonomy the search endpoints accept for their caseType filter. No API key required, cached for an hour with an ETag. ### The cache rule, in your favour Call the analyze endpoint on a case that already has a stored analysis and we return the stored result billed at the ₹0.10 read price, not the ₹10.00 generation price. You never pay twice for the same AI work, and you do not have to build a cache lookup on your side to avoid it. This is the same cache aware billing that runs inside the CourtMesh application. The same rule applies to a safe retry: send an Idempotency-Key header on party screen, batch screen, analyze, analyze-consolidated or request-timeline calls, and a replay of the same key with the same body returns the stored response with no second charge. See Idempotency in the API documentation. ### Litigation check Confirmed, live Screens a person or company name against the corpus with deterministic entity resolution and an optional LLM adjudication pass. A match prices like an analysis call, a genuine no match prices far lower, and adjudication is an optional surcharge on top. CourtMesh litigation check pricingEndpointMatch foundNo matchAdjudicate surcharge POST /party/screen₹10.00 (100 credits)₹2.00 (20 credits)+₹8.00 (+80 credits) POST /party/screen/batch₹10.00 (100 credits)₹2.00 (20 credits)- ### Public coverage Confirmed, live Corpus coverage and freshness by court and year, cached and free to call. No API key required. CourtMesh coverage endpoint pricingEndpointCreditsWhat you get GET /coverageFreeCorpus coverage and freshness by court and year, cached and refreshed every few hours. No API key required and never billed. ### Changes feed Indicative, not yet available The change feed and watchlist events are not live yet. These are the prices we intend to charge, published in advance so you can plan for them; nothing here can be called today. CourtMesh changes feed indicative pricingEndpointCreditsWhat it will do GET /changes1 per pagePaginated feed of case status changes since a given timestamp, one credit per page of up to 100 changes. Not yet available; priced in advance so integrators can plan for it. GET /watchlists/{id}/events1 per pagePaginated events matched against a watchlist, one credit per page. Not yet available. ### Not priced per call Watchlist management and webhook delivery are free by design; they carry cost only through the changes feed events they generate. Also indicative and not yet available. CourtMesh watchlist and webhook endpoints not billed per callEndpointCreditsWhat it will do POST /watchlistsFreeCreate a watchlist of parties or cases to track for changes, free within your tier's item cap. Not yet available. GET /watchlistsFreeList your watchlists. Not yet available. DELETE /watchlists/{id}FreeDelete a watchlist. Not yet available. POST /webhooksFreeRegister and manage webhook endpoints for watchlist events. Not yet available. POST /webhooks/deliveriesFreeWebhook delivery and retry, no credit charge either way. Not yet available. CourtMesh API rate limits per tierTierRequests per minuteRequests per day Free Developer10500 Pay As You Go6020,000 Scale1201,00,000 EnterpriseCustom, up to 600Custom CourtMesh API compared with eCourtsIndia API pricingWhat you are comparingeCourtsIndiaCourtMesh APISource Free credits on signup₹200 credits, one time2,500 credits, worth ₹250View source Recurring free allowanceNone500 credits every month, foreverView source Prepaid entry point₹1,000₹1,000View source Prepaid credit rate3x base rate1x base rate or betterView source Prepaid credit expiryNever expiresNever expiresView source Keyword search, per call₹0.20 (eCourtsIndia)₹0.10 (1 credit)View source Case detail, per call₹0.50 (eCourtsIndia)₹0.10 (1 credit)View source Order or judgment PDF, per call₹1.25 (eCourtsIndia)₹0.50 (5 credits)View source Litigation or party check₹33 subscription or ₹99 pay as you go (eCourtsIndia Legal Check)₹10.00 on a match, ₹2.00 on no matchView source Public coverage and freshness statsNot publishedFree, published at /coverageView source Monthly plan₹10,000 per month, enterprise only₹7,999 with 1,00,000 credits, self serveView source Monthly credit rolloverNo rolloverRolls over up to 3x the monthly grantView source Per endpoint price listNot published as a per call tableAll 18 confirmed endpoints published on this pageView source AI semantic search endpointNot publishedLive at /search/cases/semanticView source AI case analysis endpointsNot publishedLive at /analyze and /analyze-consolidatedView source Cached AI resultsNot publishedRepeat analysis billed at ₹0.10, not ₹10.00View source MCP server for AI assistantsPublishedLive, billed from the same credit walletView source Enterprise monthly floor₹10,000 per month (eCourtsIndia)₹15,000 per month, from ₹0.060 per creditView source Self serve ceilingContact sales above the monthly planSelf serve through Scale, sales only at EnterpriseView source Comparison compiled on 2026-09-18 from publicly published pricing pages. Competitor terms change without notice, so please verify their current page before making a purchase decision. Where a competitor does not publish a figure we say so rather than guessing, and we make no claim about their underlying per call rupee rate because it is not published. Comparing research platforms rather than API rate cards? We publish the same kind of sourced, dated write up against Indian Kanoon, Manupatra, SCC Online, LegitQuest and CaseMine, each saying plainly where the other product is the better choice. See all comparisons. ### API credits, fixed per call Bought in INR, spent per successful API call at the published rate on this page. The price of a keyword search is 1 credit whether the result set is tiny or enormous, which means you can model your unit economics before you write the first line of integration code. Prepaid credits never expire and are visible in the API keys screen of your CourtMesh account alongside per key usage. ### Platform AI credits, token metered These power the human facing product: AI chat, semantic search in the interface, drafting and case analysis inside Research, My Cases and My Agreements. They are metered on tokens consumed, so a short question costs less than a deep analysis of a 200 page judgment. Plan allowances and top up packs are described on the main pricing page. ### Where they meet A Research Professional subscription includes 5,000 API credits per month, enough for 5,000 keyword searches, or 500 semantic searches, or 50 AI analyses, and those credits are drawn from the API wallet on the same per endpoint prices as everyone else. Research Enterprise API volume is agreed inside the enterprise contract. If your integration outgrows the included grant you buy prepaid packs or move to Scale, and nothing about your application code changes. We deliberately keep the API priced at or slightly above the equivalent in application cost, because the API returns raw JSON for software to consume while the application gives a human the interface, the chat, the alerts and the drafting tools. ### Do my API credits expire? ### What happens when I run out of credits mid request? ### Am I billed for failed calls? ### Do you cache AI analysis, and do I pay twice? ### Is GST included in these prices? ### What is your refund policy on prepaid credits? ### How do API credits relate to the AI credits in my CourtMesh plan? ### Which endpoints does the free tier restrict? ### Does the Free tier include AI case analysis? ### What does a litigation or party check cost? ### Is the coverage endpoint free? ### Is the changes feed or webhook support available yet? ### Can I use these credits with the CourtMesh MCP server? ### Can I change plans or move between prepaid and monthly? Still deciding? Read the cancellation and refund policy, browse the API documentation, or contact our team with a volume question. ### Indian Court Cases API Coverage, endpoints and sample payloads for the full API surface. Open ### Litigation Check API Screen a party name and get a confidence scored answer. Open ### Coverage and freshness Records by court and year, free, no API key needed. Open ### API documentation Authentication, request schemas, pagination and error codes. Open ### MCP server The same endpoints as tools inside Claude, Claude Code and Cursor. Open ### Data licensing License primary court records for a legal AI or verification platform. Open ### Platform pricing Plans for the Research, My Cases and My Agreements applications. Open ## Start on the free tier today Create an account, issue a key from the API settings screen, and spend your 2,500 signup credits on real judgments in the next ten minutes. When you need volume pricing or a contracted commitment, our team is one message away. Get API keys Talk to sales --- # Indian Court Data Licensing URL: https://courtmesh.ai/data-licensing Data licensing # License the Indian court record, not a summary of it. Primary records from the Supreme Court, all High Courts, District Courts and tribunals, as an API or a feed, for platforms that need grounding they can cite. Not a reported judgment archive, and not a summary layer between you and the record. Talk to licensing See coverage and freshness ### Legal AI platforms Ground a retrieval layer on primary records Your model is only as trustworthy as the record behind it. Licensing primary Indian court records gives your retrieval layer something a lawyer can actually check, and gives you a citation with a deep link rather than a paraphrase. The differentiator is the docket layer: District Court filings, live case status, order sheet timelines and party level litigation history, none of which a reported judgment publisher carries, because reported judgment publishers work from decided appellate opinions, not from the case as it moves through the trial court. Why this is clean to license In Eastern Book Company v. D.B. Modak, (2008) 1 SCC 1, the Supreme Court held that raw judgments are in the public domain, while a publisher's copy edited text, headnotes, footnotes and paragraph numbering are protected as that publisher's own work. CourtMesh licenses primary records sourced from official court portals and does not ingest another publisher's headnotes or paragraph numbering. Counsel review pending on this paragraph. Talk to licensing ### Verification and risk platforms Screen parties at volume, with confidence bands Party litigation screening at the volume a KYC, BGV or credit underwriting pipeline actually needs, returned with a confidence band rather than a bare match or no match, so your own risk logic decides what a weak match is worth. A nightly change feed for watched parties is in development and is not available yet. Nothing on this page should be read as a live feed offering; when it ships it will be announced on this site and priced as its own product. Wholesale unit economics - From ₹0.06 per credit, down to ₹0.04 per credit above 20 lakh credits a month. - ₹6 per matched litigation check. - ₹1.20 per genuine no match check. - ₹15,000 per month Enterprise floor. Talk to licensing ExclusivityNon exclusive by default. Field limited exclusivity, for example within one named buyer category for a fixed term, is available at a premium and carved narrowly. We do not sign blanket exclusivity. TermTwo year initial term, auto renewing unless either side gives notice. FeesAn annual access fee for the grounding right, plus metered usage above an included allowance, tiered down by volume as your monthly call count grows. Rights grantedRetrieval and display only. Training and fine tuning on the licensed records is a separately priced right under a separate signature, not bundled into the retrieval licence. AttributionA named source selector inside your product, citation level deep links back to the underlying CourtMesh record, and a joint announcement at signing if both sides want one. RedistributionRetrieval only, no bulk export of the corpus. A defined cache window rather than indefinite storage. Ownership of derived data, embeddings, summaries and extracted metadata, spelled out in the agreement. Deletion of cached and embedded content on termination. WarrantyWe warrant lawful collection of the records and our right to licence them. We do not offer uncapped third party indemnity, and we do not warrant editorial content we did not create, such as another publisher's headnotes. ## Start with a paid pilot We offer a paid pilot running 60 to 90 days. You design the coverage and recall test: bring your own case list, and we agree the acceptance criteria in the pilot order form before it starts, not after. It converts the usual coverage argument into an experiment you control. If you proceed to a full licence, the pilot fee is credited against year one. A pilot also runs under a lighter security review than a production licence, so it is a faster route to a real answer while a fuller vendor review proceeds separately. ### In place today - India hosting, with data residency in India - Per account audit log - API key hashing, keys shown once and never stored in the clear - A live case removal and de-indexing pipeline running in production A data processing agreement is available on request, and we will complete a CAIQ or SIG style vendor questionnaire and sign a security addendum with incident response terms as part of a licensing conversation. For the same posture stated against the API specifically, retention windows, breach process and our subprocessor list, see API security. Judgments and orders of Indian courts are public records. Section 52(1)(q) of the Copyright Act, 1957 places the reproduction of judicial pronouncements outside copyright infringement. In Eastern Book Company v. D.B. Modak, (2008) 1 SCC 1, the Supreme Court confirmed raw judgments are in the public domain, while a publisher's copy edited text, headnotes and paragraph numbering are separately protected. We ingest from official court portals and do not resell or reproduce another publisher's editorial layer. Counsel review pending on this paragraph. On AI use of copyrighted text, the Delhi High Court, in ANI Media Pvt. Ltd. v. OpenAI, decided 24 July 2026, held prima facie that temporary storage during training was protected as fair dealing. These are provisional interim findings made for the purpose of temporary relief only, and the suit continues, so we cite the order as helpful context, not as settled law. On personal data, court records carry information about real litigants, and we treat that as a DPDP question with a working answer rather than a promise. CourtMesh runs a published case removal and takedown route, described in full on the case removal policy. We honour the Delhi High Court's order of 29 May 2026 in Laksh Vir Singh Yadav v. Union of India, 2026:DHC:4891, directing de-indexing of specified records from name based search, as at 18 September 2026. Retrieval and display only. An API key lets you fetch records and show them to your own users. It does not grant a right to train or fine tune a model on the corpus; that is a separate right, priced and signed separately from API access. Cache window. You may cache a raw record (the case document, its metadata as CourtMesh returns it) for up to 30 days. Derived metadata, anything your own system computes from a record such as an extracted field, a classification or an embedding, may be kept for as long as you need it, since it is your own output rather than a copy of ours. No bulk redistribution. Retrieval through the API is for your own use and your own product's users, not for republishing the corpus, or a substantial part of it, as a competing data product or feed. Attribution. Where you display data retrieved via the API in a public application, attribute the source as Source: CourtMesh linking back to courtmesh.ai, unless a separate agreement waives this. Counsel review pending on this paragraph. ### Is the licence exclusive? ### Can we train or fine tune a model on this data? ### What does the pilot look like? ### How fresh is the data, and is there an SLA? ### What attribution do we get? ### How is this priced? ### How do you handle personal data under DPDP? ## Talk to licensing Tell us which side you are on and we will come back with terms, not a generic deck. Legal AI platforms Verification and risk platforms --- # Compare Indian Legal Research Tools | CourtMesh Side by Side URL: https://courtmesh.ai/compare Comparisons # CourtMesh compared with the Indian legal research tools you already know Five comparisons, each sourced, each dated, and each explicit about when the other tool is the better answer. If you leave here and buy from someone else because their product fits your problem better, these pages have done their job. Last reconciled against sources on 2026-09-19. ## CourtMesh vs Indian Kanoon The free, widely trusted full text judgment search everyone in Indian law has used, and the cheapest published court data API in the market. They are the better choice when You want to read the text of a judgment right now and pay nothing. This is the most common reason to use Indian Kanoon and it is a completely good reason. ## CourtMesh vs Manupatra A long established Indian legal publisher with judgments, commentary, secondary materials and good law flags, and a published annual subscription price list. They are the better choice when Your research depends on commentary and secondary materials, not only on the primary record. That is a publisher's product and Manupatra has built one over 25 years. ## CourtMesh vs SCC Online The Eastern Book Company group's legal research platform, home of the Supreme Court Cases reported series that Indian lawyers cite from. They are the better choice when You are drafting something a judge will read and you need the reported text and the citation that goes with it. This is not a close call. ## CourtMesh vs LegitQuest The closest direct competitor on Indian court records and litigation due diligence, with an advertised API and security certifications we do not hold. They are the better choice when You want a lawyer verified litigation report, with a human in the loop and a stated turnaround, rather than machine output you adjudicate yourself. ## CourtMesh vs CaseMine An Indian legal research platform from Gauge Data Solutions, covering India, the United States, the United Kingdom and Ireland, with the AMICUS AI assistant and published rupee pricing. They are the better choice when Your research crosses jurisdictions and you need Indian, US, UK and Irish authority in one place. CourtMesh is India only and always will be. ## CourtMesh vs eCourtsIndia The closest thing to a like for like competitor we have: an Indian court data platform that, like us, publishes a per endpoint API rate card, runs an MCP server and sells a party screening product. They are the better choice when You want a practice tool that tracks your own matters day to day, rather than court data inside your own product. ### Every claim carries a source and a date Each competitor claim links to the page it was read from, and each comparison shows the date it was last checked. Nothing here is written from memory or from a competitor's marketing deck. ### If we could not verify it, we left it out Several of these companies publish no corpus figure and no price. Where that is the case we say so rather than estimating. A verification pass on 19 September 2026 deleted four claims from our own first draft that would have been wrong in public. ### We say where they are better Every page has a section on when to choose the other tool, and the comparison table marks the rows they win. Indian Kanoon is free and better known than us. SCC Online and Manupatra have editorial depth we do not have. LegitQuest holds certifications we do not hold. ### We never reproduce their editorial content Raw judgments are public domain under Eastern Book Company v. D.B. Modak, (2008) 1 SCC 1, but a publisher's headnotes, copy edited text and paragraph numbering are not. We describe that such content exists. We do not quote it, and we do not ingest it. ### Indian court cases API Endpoints, quickstart and a published per call price for the whole corpus. ### Litigation check API Screen a person or company against Indian court records, with confidence bands. ### Pricing What the apps and the API cost, with the free tier stated up front. Also worth reading before you choose anyone: our coverage and freshness numbers, which are published free so you can check them rather than take them on trust, and data licensing if you are buying the corpus rather than a seat. ## Settle it with your own case list No comparison table decides this. A recall test on twenty cases you already know does. Sign up, get free API credits immediately, and run it. Start with the API Talk to us first --- # CourtMesh vs Indian Kanoon | Judgments and Court Dockets Compared URL: https://courtmesh.ai/compare/courtmesh-vs-indian-kanoon Comparison # CourtMesh vs Indian Kanoon The free, widely trusted full text judgment search everyone in Indian law has used, and the cheapest published court data API in the market. Every claim about Indian Kanoon on this page was checked on 2026-09-19 against the source linked beside it. Where we could not verify something we say so rather than estimate. Their terms can change without notice, so check their own page before you buy. See the court data API View pricing ## Indian Kanoon is better for Anyone who needs to read the text of a judgment right now, for free, without an account, and any developer for whom the per call price is the whole decision. It is the default starting point in Indian legal research for good reason. ## CourtMesh is better for Teams that need the docket layer, that is live case status, order sheet timelines and District Court filings beyond Delhi and Bangalore, or a structured API with more than document retrieval in it. Let us start with the part most comparison pages skip. Indian Kanoon is free, it has been the default entry point to Indian case law for well over a decade, and its organic footprint is enormous. Search almost any Indian case by name and Indian Kanoon is what you find. It is a genuine public good, it costs nothing to read, and its published API rate card is the cheapest in the Indian market by a wide margin. We are not going to pretend otherwise, and if price per call is your only constraint you should stop reading here and use them. The difference is what each product is built to be. Indian Kanoon is a judgment and order search engine: it indexes decided text so you can read it and cite it. CourtMesh is built on the docket, that is the case as it moves, including status, listing history, order sheets and District Court filings, with the judgment text alongside rather than instead. That difference shows up most concretely in the browse directory. Indian Kanoon lists two district courts, Delhi and Bangalore, alongside the Supreme Court, the High Courts and 21 tribunal collections. That is a deliberate scope for a judgment index, and it is also why a District Court question outside those two cities is not a question it is built to answer. So the honest framing is not better or worse. It is whether your question is "what did the court hold", which Indian Kanoon answers for free, or "what is happening in this matter, and what has this party been sued for", which is a docket question. CourtMesh compared with Indian Kanoon across coverage, search, API, pricing and editorial contentWhat you are comparingIndian KanoonCourtMeshSource API free allowance₹500 of free credit to develop and test. Non commercial use can get ₹10,000 free every month, subject to use case verification by the site administrator2,500 API credits on signup and 500 free every month, plus a free public judgment library and a free statute libraryView source API attribution requirementA "powered by IKanoon" logo must be shown wherever results, documents or classifiers are surfaced, expressly including retrieval augmented generation and model fine tuningAttribution as "Source: CourtMesh" on public display surfaces, waivable under a separate agreementView source District Court coverageTwo district courts appear in the browse directory, Delhi District Court and Bangalore District CourtDistrict Courts nationally, including case status and filing metadataView source Dockets, case status and cause listsNot offered. The browse directory carries decided judgments and published order series, not live case status, cause lists or filing metadataCase status, order sheet timelines, filing metadata and party level litigation history, including District Courts, searchable across the corpus and available over the APIView source Search typeFull text keyword search with citation linking between documentsKeyword search across the full corpus, plus AI semantic search across roughly 2 million casesView source Endpoints in the APISearch, original document, document, document fragment, document metainfo and classifier calls are priced on the rate cardPublic REST API, 18 confirmed endpoints with a published per call credit price, plus an MCP serverView source Published coverage and freshness statsThe browse directory lists the courts covered. We could not find record counts or ingest freshness publishedPer court, per year record counts and last ingest freshness published free, no API key neededView source Party litigation screeningWe could not find a party screening or litigation check product offeredParty screening endpoint returning confidence banded matches with evidence and a DPDP purpose field on every callNot published Editorial contentNo publisher headnotes. Judgment text with citation links between documentsNone. No headnotes, no editorial summaries, no publisher citator. AI generated analysis is labelled as such and sits beside the record, never inside itView source Checked 2026-09-19. Rows reading “we could not find” record what was published on the pages we retrieved, not a claim that the capability does not exist; ask Indian Kanoon directly if it matters to your decision. Figures about CourtMesh come from the same constants that drive our own pricing and coverage pages, so they cannot drift apart from what we charge and publish elsewhere. ### Choose Indian Kanoon when - You want to read the text of a judgment right now and pay nothing. This is the most common reason to use Indian Kanoon and it is a completely good reason. - You are a student, an academic, or working non commercially, and the ₹10,000 per month free API grant applies to you. - Your build is a thin lookup over judgments and per call price decides it. Their rate card is the market floor and we will not tell you otherwise. - You need a source your reader already recognises. Familiarity has real value in a citation. ### Choose CourtMesh when - Your question is about the docket rather than the judgment: current status, when it was last listed, what orders have been passed, what the filing history shows. - You need District Courts beyond Delhi and Bangalore, which is most District Court work. - You are screening a party rather than researching a point of law, so you need name resolution across the corpus with a confidence band rather than a list of documents. - You want coverage and freshness numbers you can check before you commit, rather than take on trust. This matters to any comparison of Indian legal research products, because it decides what each side can legitimately hold. In Eastern Book Company v. D.B. Modak, (2008) 1 SCC 1, the Supreme Court held that the raw judgment is in the public domain, while a publisher's copy edited version, headnotes, footnotes and paragraph numbering are that publisher's own protected work where they show skill and judgment. Section 52(1)(q) of the Copyright Act, 1957 places the reproduction of judicial pronouncements outside infringement. The practical consequence runs both ways. CourtMesh ingests primary records from official court portals and does not ingest, reproduce or resell another publisher's headnotes, editorial summaries or paragraph numbering, which keeps our licensing position clean. It also means we have no editorial layer of our own to offer you, and nothing on this page quotes Indian Kanoon's. Counsel review pending on this section. ### Is Indian Kanoon free, and is CourtMesh free? ### Which has more Indian court records? ### Can I use the Indian Kanoon API and CourtMesh together? ### Does Indian Kanoon give me case status and next hearing dates? ### What is the Delhi High Court right to be forgotten case about, and does it affect CourtMesh? CourtMesh vs Manupatra A long established Indian legal publisher with judgments, commentary, secondary materials and good law flags, and a published annual subscription price list. CourtMesh vs SCC Online The Eastern Book Company group's legal research platform, home of the Supreme Court Cases reported series that Indian lawyers cite from. CourtMesh vs LegitQuest The closest direct competitor on Indian court records and litigation due diligence, with an advertised API and security certifications we do not hold. CourtMesh vs CaseMine An Indian legal research platform from Gauge Data Solutions, covering India, the United States, the United Kingdom and Ireland, with the AMICUS AI assistant and published rupee pricing. CourtMesh vs eCourtsIndia The closest thing to a like for like competitor we have: an Indian court data platform that, like us, publishes a per endpoint API rate card, runs an MCP server and sells a party screening product. Or go straight to the product: all comparisons, the Indian court cases API, the litigation check API, court case search, coverage and freshness, the MCP server or pricing. ## Test it against your own case list The only comparison that settles anything is a recall test on cases you already know. Sign up, get free API credits immediately, and run it yourself. No sales call, and no obligation to tell us the result. Start with the API Talk to us first --- # CourtMesh vs Manupatra | Indian Legal Research Compared URL: https://courtmesh.ai/compare/courtmesh-vs-manupatra Comparison # CourtMesh vs Manupatra A long established Indian legal publisher with judgments, commentary, secondary materials and good law flags, and a published annual subscription price list. Every claim about Manupatra on this page was checked on 2026-09-19 against the source linked beside it. Where we could not verify something we say so rather than estimate. Their terms can change without notice, so check their own page before you buy. See the court data API View pricing ## Manupatra is better for Firms that need commentary and secondary materials alongside the judgment, that rely on a good law indicator, and whose research reaches deep into the historical archive. ## CourtMesh is better for Teams that need docket data, party litigation screening, or court data as an API they can price and integrate without a sales cycle. Manupatra is one of the established names in Indian legal publishing and it has depth we do not have. Its own product page states 25 years in legal research and over 10 million legal documents and judgments indexed, covering statutes, cases, regulations, notifications, reports, commentaries and secondary resources across Indian jurisdictions and Commonwealth countries, with blue, yellow and red flag indicators telling you whether what you are reading is still good law. The archive reach is the part worth taking seriously. Manupatra's published content coverage table lists 25 High Courts with start dates, several of them running back into the nineteenth century. That is decades of accumulated publishing work and it is not something a court data company builds in a year. Manupatra also publishes an annual subscription price list, which is more than most of this market does, so you can budget a seat without a sales call. What we did not find is a public API or developer rate card, and we found no mention anywhere of dockets, case status or cause lists. Those are the two gaps this comparison is really about. One commercial fact you should know if you are evaluating Manupatra as a data source rather than as a research seat. In January 2026 Manupatra announced an exclusive partnership with Legora, the Swedish legal AI company, covering Indian case law, regulations, commentary and citations. An exclusive already signed with one AI vendor is material to anyone planning to license that content into their own product, and you should read the announcement yourself rather than take our summary of it. CourtMesh compared with Manupatra across coverage, search, API, pricing and editorial contentWhat you are comparingManupatraCourtMeshSource Stated corpus"10M+ Legal Documents & Judgments Indexed" and "25+ Years of Legal Research" stated on the legal research product page315.6 million court records keyword searchable, counted on 19 September 2026View source Published pricingAnnual subscription plans published, from ₹14,250 to ₹55,460 exclusive of GST depending on tier, plus separate AI summary add onsPublished per endpoint rate card, self serve signup, prepaid packs and a monthly plan, Enterprise by contractView source Dockets, case status and cause listsWe found no mention of dockets, case status, cause lists or next hearing dates on any Manupatra page we retrievedCase status, order sheet timelines, filing metadata and party level litigation history, including District Courts, searchable across the corpus and available over the APINot published Public APIWe could not find a published API or developer rate cardPublic REST API, 18 confirmed endpoints with a published per call credit price, plus an MCP serverNot published Unit of saleAnnual subscription seatsMetered API credits, so an integration is priced by what it calls rather than by how many people log inView source Data licensing to AI platformsLicensed exclusively to Legora for AI use, announced 15 January 2026Non exclusive by default, with field limited exclusivity available and carved narrowlyView source Published record counts and freshness by courtCourts and date ranges are published; we could not find per court record counts or ingest freshnessPer court, per year record counts and last ingest freshness published free, no API key neededView source Party litigation screeningWe could not find a party screening or litigation check product offeredParty screening endpoint returning confidence banded matches with evidence and a DPDP purpose field on every callNot published Court coverageSupreme Court, High Courts, tribunals and commissions, statutes, notifications and international materialsSupreme Court, all 25 High Courts, District Courts and tribunals including NCLT, NCLAT, ITAT and CESTATView source Checked 2026-09-19. Rows reading “we could not find” record what was published on the pages we retrieved, not a claim that the capability does not exist; ask Manupatra directly if it matters to your decision. Figures about CourtMesh come from the same constants that drive our own pricing and coverage pages, so they cannot drift apart from what we charge and publish elsewhere. On comparing record counts These two numbers do not measure the same unit and should not be read as a score. CourtMesh counts docket records, which includes a case, its status history and its orders. A reported judgment publisher counts documents it has published and edited. A larger number can mean broader coverage or simply a finer unit of counting, so treat both as a claim about scale rather than a ranking, and settle it with a recall test against your own case list. ### Choose Manupatra when - Your research depends on commentary and secondary materials, not only on the primary record. That is a publisher's product and Manupatra has built one over 25 years. - You need a good law indicator on the face of the result. CourtMesh has no citator and does not claim one. - Your work reaches into the historical archive, where Manupatra publishes High Court coverage running back into the nineteenth century. - Your team already works in Manupatra and the cost of retraining a research habit outweighs what a docket layer adds. ### Choose CourtMesh when - You need the docket: live case status, order sheet timelines, listing history and District Court filings. - You are building a product rather than buying seats, and you need an API with a published per call rate card you can model before you talk to anyone. - You are screening parties at volume and need confidence banded matches rather than a research result list. - You need Indian court data licensed to you non exclusively, which matters more now that Manupatra's AI licence to Legora is announced as exclusive. This matters to any comparison of Indian legal research products, because it decides what each side can legitimately hold. In Eastern Book Company v. D.B. Modak, (2008) 1 SCC 1, the Supreme Court held that the raw judgment is in the public domain, while a publisher's copy edited version, headnotes, footnotes and paragraph numbering are that publisher's own protected work where they show skill and judgment. Section 52(1)(q) of the Copyright Act, 1957 places the reproduction of judicial pronouncements outside infringement. The practical consequence runs both ways. CourtMesh ingests primary records from official court portals and does not ingest, reproduce or resell another publisher's headnotes, editorial summaries or paragraph numbering, which keeps our licensing position clean. It also means we have no editorial layer of our own to offer you, and nothing on this page quotes Manupatra's. Counsel review pending on this section. ### Does Manupatra have an API? ### How much does Manupatra cost compared to CourtMesh? ### What does the Manupatra and Legora partnership mean for me? ### Does CourtMesh reproduce Manupatra headnotes or editorial content? CourtMesh vs Indian Kanoon The free, widely trusted full text judgment search everyone in Indian law has used, and the cheapest published court data API in the market. CourtMesh vs SCC Online The Eastern Book Company group's legal research platform, home of the Supreme Court Cases reported series that Indian lawyers cite from. CourtMesh vs LegitQuest The closest direct competitor on Indian court records and litigation due diligence, with an advertised API and security certifications we do not hold. CourtMesh vs CaseMine An Indian legal research platform from Gauge Data Solutions, covering India, the United States, the United Kingdom and Ireland, with the AMICUS AI assistant and published rupee pricing. CourtMesh vs eCourtsIndia The closest thing to a like for like competitor we have: an Indian court data platform that, like us, publishes a per endpoint API rate card, runs an MCP server and sells a party screening product. Or go straight to the product: all comparisons, the Indian court cases API, the litigation check API, court case search, coverage and freshness, the MCP server or pricing. ## Test it against your own case list The only comparison that settles anything is a recall test on cases you already know. Sign up, get free API credits immediately, and run it yourself. No sales call, and no obligation to tell us the result. Start with the API Talk to us first --- # CourtMesh vs SCC Online | Reported Judgments and Court Dockets URL: https://courtmesh.ai/compare/courtmesh-vs-scc-online Comparison # CourtMesh vs SCC Online The Eastern Book Company group's legal research platform, home of the Supreme Court Cases reported series that Indian lawyers cite from. Every claim about SCC Online on this page was checked on 2026-09-19 against the source linked beside it. Where we could not verify something we say so rather than estimate. Their terms can change without notice, so check their own page before you buy. See the court data API View pricing ## SCC Online is better for Litigators who cite from the reported series and need the authoritative reported text, headnotes and the editorial apparatus that comes with it, plus commentary and journals. ## CourtMesh is better for Teams that need the docket as a searchable corpus and an API, rather than as a per matter tracking subscription, and anyone building software on Indian court data. SCC Online is part of Eastern Book Company, and this is where we should be blunt about the asymmetry. The Supreme Court Cases series is the reported citation Indian lawyers actually cite from, it has run since 1969 across some 350 volumes, and EBC describes 84 years of legal publishing behind it. Its headnotes and editorial apparatus are a standard of care we do not meet and do not attempt to. If your work product is a written submission citing reported judgments, that is their territory and it should be. There is a nice irony worth stating plainly, because it also explains our own limits. The case that defines what a legal publisher owns in India is Eastern Book Company v. D.B. Modak, (2008) 1 SCC 1, which held that raw judgments are in the public domain while the publisher's copy edited text, headnotes, footnotes and paragraph numbering are separately protected. CourtMesh builds on the first half of that holding. We ingest primary records from official court portals and we do not ingest, reproduce or resell anyone's editorial layer, which is exactly why we have no headnotes to sell you. Now the correction we owe you, because an earlier draft of this page got it wrong. It would be easy to say a reported judgment publisher has no docket product. That is false here. Eastern Book Company also sells Mercury, a case tracking product covering Supreme Court, High Court, District Court and tribunal matters, with cause lists, hearing alerts and status changes. Its own site states over 592,000 cases tracked, over 26 million cause lists processed and 5,372 courts covered. Anyone telling you the EBC group does not do dockets has not looked. The real difference is the shape, not the existence, of that docket layer. Mercury is a tracking subscription: you add a matter and it watches it for you. CourtMesh exposes the docket as a searchable corpus and as a metered API, which is what you need if you are screening a party you have never heard of, or building software over the data rather than watching a list of your own matters. We could not retrieve Mercury's pricing, which sits behind a login. CourtMesh compared with SCC Online across coverage, search, API, pricing and editorial contentWhat you are comparingSCC OnlineCourtMeshSource Stated corpus"6.4M Documents", "32M Pages", "600 Database" and "20+ Countries jurisdictions" stated on the home page315.6 million court records keyword searchable, counted on 19 September 2026View source Docket and case trackingOffered by the same group as Mercury, a separate product tracking Supreme Court, High Court, District Court and tribunal matters with cause lists and hearing alerts, stating 5,372 courts coveredCase status, order sheet timelines, filing metadata and party level litigation history, including District Courts, searchable across the corpus and available over the APIView source Shape of the docket productA per matter tracking subscription: you add a matter and it is monitored for changesA searchable corpus and a metered API, so you can query cases and parties you have not added in advanceView source Public APIWe could not find a published API or developer rate card for SCC Online or for MercuryPublic REST API, 18 confirmed endpoints with a published per call credit price, plus an MCP serverNot published Published pricingNo price list found. The SCC Online pricing URL returns a 404 and Mercury's pricing sits behind a loginPublished per endpoint rate card, self serve signup, prepaid packs and a monthly plan, Enterprise by contractNot published Party litigation screeningWe could not find a party screening or litigation check product offeredParty screening endpoint returning confidence banded matches with evidence and a DPDP purpose field on every callNot published Data licensing to AI platformsAnnounced a partnership with Harvey on 15 January 2026 making SCC Online content selectable as a knowledge source inside Harvey. No exclusivity is stated in the announcementNon exclusive by default, with field limited exclusivity available and carved narrowlyView source Published record counts and freshness by courtHeadline totals are published; we could not find a per court, per year breakdown or ingest freshnessPer court, per year record counts and last ingest freshness published free, no API key neededView source Checked 2026-09-19. Rows reading “we could not find” record what was published on the pages we retrieved, not a claim that the capability does not exist; ask SCC Online directly if it matters to your decision. Figures about CourtMesh come from the same constants that drive our own pricing and coverage pages, so they cannot drift apart from what we charge and publish elsewhere. On comparing record counts These two numbers do not measure the same unit and should not be read as a score. CourtMesh counts docket records, which includes a case, its status history and its orders. A reported judgment publisher counts documents it has published and edited. A larger number can mean broader coverage or simply a finer unit of counting, so treat both as a claim about scale rather than a ranking, and settle it with a recall test against your own case list. ### Choose SCC Online when - You are drafting something a judge will read and you need the reported text and the citation that goes with it. This is not a close call. - You want a headnote, that is an editor's statement of what the case holds. CourtMesh has none and will not pretend an AI summary is the same thing. - Your research reaches into commentary, journals and secondary literature, or beyond India. - You want case tracking bundled with the research platform you already pay for, in which case look at Mercury rather than at us. ### Choose CourtMesh when - You need to search the docket, not just watch matters you have already added. Screening a party you have never heard of is a corpus query, not a tracking subscription. - You are building software and need court data as an API with a published per call price. - Your work reaches into District Court filings and trial court records, where reported judgment coverage thins out by design. - You want per court coverage and freshness you can verify before you buy. This matters to any comparison of Indian legal research products, because it decides what each side can legitimately hold. In Eastern Book Company v. D.B. Modak, (2008) 1 SCC 1, the Supreme Court held that the raw judgment is in the public domain, while a publisher's copy edited version, headnotes, footnotes and paragraph numbering are that publisher's own protected work where they show skill and judgment. Section 52(1)(q) of the Copyright Act, 1957 places the reproduction of judicial pronouncements outside infringement. The practical consequence runs both ways. CourtMesh ingests primary records from official court portals and does not ingest, reproduce or resell another publisher's headnotes, editorial summaries or paragraph numbering, which keeps our licensing position clean. It also means we have no editorial layer of our own to offer you, and nothing on this page quotes SCC Online's. Counsel review pending on this section. ### Can CourtMesh replace SCC Online for citation? ### Does SCC Online or Eastern Book Company offer case tracking? ### Why does CourtMesh not have headnotes? ### What did the Harvey and SCC Online partnership cover? CourtMesh vs Indian Kanoon The free, widely trusted full text judgment search everyone in Indian law has used, and the cheapest published court data API in the market. CourtMesh vs Manupatra A long established Indian legal publisher with judgments, commentary, secondary materials and good law flags, and a published annual subscription price list. CourtMesh vs LegitQuest The closest direct competitor on Indian court records and litigation due diligence, with an advertised API and security certifications we do not hold. CourtMesh vs CaseMine An Indian legal research platform from Gauge Data Solutions, covering India, the United States, the United Kingdom and Ireland, with the AMICUS AI assistant and published rupee pricing. CourtMesh vs eCourtsIndia The closest thing to a like for like competitor we have: an Indian court data platform that, like us, publishes a per endpoint API rate card, runs an MCP server and sells a party screening product. Or go straight to the product: all comparisons, the Indian court cases API, the litigation check API, court case search, coverage and freshness, the MCP server or pricing. ## Test it against your own case list The only comparison that settles anything is a recall test on cases you already know. Sign up, get free API credits immediately, and run it yourself. No sales call, and no obligation to tell us the result. Start with the API Talk to us first --- # CourtMesh vs LegitQuest | Court Data and Litigation Checks URL: https://courtmesh.ai/compare/courtmesh-vs-legitquest Comparison # CourtMesh vs LegitQuest The closest direct competitor on Indian court records and litigation due diligence, with an advertised API and security certifications we do not hold. Every claim about LegitQuest on this page was checked on 2026-09-19 against the source linked beside it. Where we could not verify something we say so rather than estimate. Their terms can change without notice, so check their own page before you buy. See the court data API View pricing ## LegitQuest is better for Buyers whose procurement needs ISO 27001 or CERT-In on the vendor's side of the form, and who want litigation intelligence delivered as a scored report with human verification available. ## CourtMesh is better for Buyers who want the rate card, the coverage numbers and a working API key to be public before they commit any budget. LegitQuest is the nearest thing CourtMesh has to a direct competitor, and it is the one page in this set where we hand over two real advantages before saying anything else. LegitQuest's site claims access to over 500 million legal records across more than 10,000 courts and tribunals in India, updated with over 500,000 new records daily. And it states ISO 9001, ISO 20000-1 and ISO 27001 certification together with CERT-In empanelled assurance. CourtMesh holds none of those. If your procurement process has a security questionnaire with a certification box on it, that difference decides the matter and no product argument from us changes it. We would rather you learned that from our own page than from theirs. Their LIBIL product also goes somewhere we do not. It turns Supreme Court, High Court, district court, tribunal, order and FIR records into a litigation score with reasoning, and it offers a lawyer verified report tier with a stated turnaround of three to five business days. That is a managed service with humans in it. CourtMesh returns confidence banded matches with the evidence attached and leaves the adjudication to your own risk logic. Which of those you want is a genuine design choice, not a quality difference. Where we differ most is transparency of the commercial terms. LegitQuest advertises APIs and a web portal, but its pricing URL returns a 404 and we could find no published figure anywhere; the call to action is a demo request. CourtMesh publishes a per endpoint rate card, a free tier you can sign up for without talking to anyone, and per court coverage and freshness you can check before you buy. If you have ever tried to budget an integration against a vendor who will not quote until the third call, that is what this page is about. CourtMesh compared with LegitQuest across coverage, search, API, pricing and editorial contentWhat you are comparingLegitQuestCourtMeshSource Litigation due diligence productLIBIL, turning court, tribunal, order and FIR records into a litigation score with reasoning, delivered through a web portal and APIsParty screening endpoint returning confidence banded matches with evidence and a DPDP purpose field on every callView source Case trackingPatrol monitors ongoing cases and next hearing dates, and a court case status product is offeredCase status, order sheet timelines, filing metadata and party level litigation history, including District Courts, searchable across the corpus and available over the APIView source Published pricingAPIs are advertised, but the pricing URL returns a 404 and we could find no published rate anywhere. The call to action is a demo requestPublished per endpoint rate card, self serve signup, prepaid packs and a monthly plan, Enterprise by contractNot published Self serve signupWe could not find a self serve signup that issues an API key without a sales conversationSelf serve signup with 2,500 API credits granted immediatelyNot published Per endpoint price listNot published as a per call tableEvery one of the 18 confirmed endpoints carries a published per call credit priceNot published Published record counts and freshness by courtHeadline totals are stated; we could not find a per court, per year breakdown or ingest freshness publishedPer court, per year record counts and last ingest freshness published free, no API key neededView source MCP server for AI assistantsWe could not find an MCP server offeredLive MCP server exposing the same court data as tools, billed from the same credit walletNot published Checked 2026-09-19. Rows reading “we could not find” record what was published on the pages we retrieved, not a claim that the capability does not exist; ask LegitQuest directly if it matters to your decision. Figures about CourtMesh come from the same constants that drive our own pricing and coverage pages, so they cannot drift apart from what we charge and publish elsewhere. ### Choose LegitQuest when - You want a lawyer verified litigation report, with a human in the loop and a stated turnaround, rather than machine output you adjudicate yourself. - You need the broadest claimed court count and are willing to validate it in a pilot. Their stated court and record counts exceed ours. - You want litigation due diligence as a managed product with an account team rather than as an API you integrate. ### Choose CourtMesh when - You need to model your integration cost before you commit, against a published per endpoint rate card rather than a quote. - You want to test with a real API key today, for free, without a sales conversation. - You want per court and per year coverage numbers and ingest freshness you can verify yourself rather than a headline total. - You are wiring court data into an AI assistant and want an MCP server rather than only a REST integration. This matters to any comparison of Indian legal research products, because it decides what each side can legitimately hold. In Eastern Book Company v. D.B. Modak, (2008) 1 SCC 1, the Supreme Court held that the raw judgment is in the public domain, while a publisher's copy edited version, headnotes, footnotes and paragraph numbering are that publisher's own protected work where they show skill and judgment. Section 52(1)(q) of the Copyright Act, 1957 places the reproduction of judicial pronouncements outside infringement. The practical consequence runs both ways. CourtMesh ingests primary records from official court portals and does not ingest, reproduce or resell another publisher's headnotes, editorial summaries or paragraph numbering, which keeps our licensing position clean. It also means we have no editorial layer of our own to offer you, and nothing on this page quotes LegitQuest's. Counsel review pending on this section. ### Does LegitQuest have more records than CourtMesh? ### What does LegitQuest's API cost? ### How does a CourtMesh party screen differ from a LIBIL report? CourtMesh vs Indian Kanoon The free, widely trusted full text judgment search everyone in Indian law has used, and the cheapest published court data API in the market. CourtMesh vs Manupatra A long established Indian legal publisher with judgments, commentary, secondary materials and good law flags, and a published annual subscription price list. CourtMesh vs SCC Online The Eastern Book Company group's legal research platform, home of the Supreme Court Cases reported series that Indian lawyers cite from. CourtMesh vs CaseMine An Indian legal research platform from Gauge Data Solutions, covering India, the United States, the United Kingdom and Ireland, with the AMICUS AI assistant and published rupee pricing. CourtMesh vs eCourtsIndia The closest thing to a like for like competitor we have: an Indian court data platform that, like us, publishes a per endpoint API rate card, runs an MCP server and sells a party screening product. Or go straight to the product: all comparisons, the Indian court cases API, the litigation check API, court case search, coverage and freshness, the MCP server or pricing. ## Test it against your own case list The only comparison that settles anything is a recall test on cases you already know. Sign up, get free API credits immediately, and run it yourself. No sales call, and no obligation to tell us the result. Start with the API Talk to us first --- # CourtMesh vs CaseMine | Indian Legal Research Compared URL: https://courtmesh.ai/compare/courtmesh-vs-casemine Comparison # CourtMesh vs CaseMine An Indian legal research platform from Gauge Data Solutions, covering India, the United States, the United Kingdom and Ireland, with the AMICUS AI assistant and published rupee pricing. Every claim about CaseMine on this page was checked on 2026-09-19 against the source linked beside it. Where we could not verify something we say so rather than estimate. Their terms can change without notice, so check their own page before you buy. See the court data API View pricing ## CaseMine is better for Research that crosses jurisdictions, where an Indian question needs a US or UK authority alongside it, and individual practitioners who want a published subscription price and an AI research assistant. ## CourtMesh is better for Indian docket work, party litigation screening, and Indian court data delivered as an API. CaseMine, built by Gauge Data Solutions, is a legal research platform whose distinguishing feature is reach across jurisdictions: India, the United States, the United Kingdom and Ireland in one research surface. Its India coverage is described as the Supreme Court back to 1950, every Indian High Court extending back to the Privy Council, and coverage across all tribunals, with US coverage across all 50 states and the federal courts. CourtMesh has none of that reach and is not building it. We are India only, deliberately. CaseMine also publishes its prices in rupees, which is rarer in this market than it should be, and it gives free subscriptions to students, prosecutors and judges. Its AMICUS assistant, introduced in 2023, is a generative AI layer over the case law corpus. Two things it does not publish are relevant here. It states no numeric corpus size anywhere we could find, describing itself qualitatively as one of India's most comprehensive legal repositories, so we will not put a number in the table for it and neither should anyone else. And its API, which is advertised, is explicitly US legal data only: case law, statutes and regulations across US jurisdictions. If you want Indian data programmatically, that API is not the route. So the product shapes differ. CaseMine is a cross jurisdictional case law research platform with an AI assistant over it. CourtMesh is built on the Indian docket, that is case status, order sheet timelines, filing metadata and District Court records, with an API and an MCP server over the top. The jurisdictional question usually settles the choice before any other dimension does. CourtMesh compared with CaseMine across coverage, search, API, pricing and editorial contentWhat you are comparingCaseMineCourtMeshSource Published pricingPublished in rupees: Essential from ₹1,999 a month or ₹12,999 a year, AI Pro from ₹3,999 a month, AI Premium from ₹4,999 a monthPublished per endpoint rate card, self serve signup, prepaid packs and a monthly plan, Enterprise by contractView source AI assistantAMICUS, a generative legal AI assistant over the case law corpus, introduced in 2023, metered in monthly creditsAI semantic search across roughly 2 million cases plus AI case analysis, billed per call and labelled as AI outputView source Stated corpus sizeNo numeric corpus figure is published. The site describes itself qualitatively as one of India's most comprehensive legal repositories315.6 million court records keyword searchable, counted on 19 September 2026View source API, and what data it coversAn API is advertised, but it is US legal data only: case law, statutes and regulations across US jurisdictions. Pricing is by requestPublic REST API, 18 confirmed endpoints with a published per call credit price, plus an MCP serverView source Dockets, case status and cause listsA case management feature is offered for organising matters and hearings you enter yourself. We found no court sourced docket feed, cause lists or case statusCase status, order sheet timelines, filing metadata and party level litigation history, including District Courts, searchable across the corpus and available over the APIView source District Court coverageStated coverage is the Supreme Court, High Courts and tribunals. District Courts are not named in the India coverage descriptionDistrict Courts nationally, including case status and filing metadataView source Party litigation screeningWe could not find a party screening or litigation check product offeredParty screening endpoint returning confidence banded matches with evidence and a DPDP purpose field on every callNot published Published record counts and freshness by courtWe could not find per court record counts or ingest freshness publishedPer court, per year record counts and last ingest freshness published free, no API key neededNot published Checked 2026-09-19. Rows reading “we could not find” record what was published on the pages we retrieved, not a claim that the capability does not exist; ask CaseMine directly if it matters to your decision. Figures about CourtMesh come from the same constants that drive our own pricing and coverage pages, so they cannot drift apart from what we charge and publish elsewhere. ### Choose CaseMine when - Your research crosses jurisdictions and you need Indian, US, UK and Irish authority in one place. CourtMesh is India only and always will be. - You are a student, prosecutor or judge and qualify for their free subscription. - You want an AI research assistant over reported case law as the primary interface to your research, with a published subscription price. - You need US legal data programmatically, which their API covers and ours does not. ### Choose CourtMesh when - Your work is Indian docket work: case status, listing history, order sheets and District Court filings. - You are screening parties at volume and need confidence banded matches rather than a research result list. - You need Indian court data over an API or an MCP server, which their API does not cover. - You want a published corpus count and per court coverage you can verify before you buy. This matters to any comparison of Indian legal research products, because it decides what each side can legitimately hold. In Eastern Book Company v. D.B. Modak, (2008) 1 SCC 1, the Supreme Court held that the raw judgment is in the public domain, while a publisher's copy edited version, headnotes, footnotes and paragraph numbering are that publisher's own protected work where they show skill and judgment. Section 52(1)(q) of the Copyright Act, 1957 places the reproduction of judicial pronouncements outside infringement. The practical consequence runs both ways. CourtMesh ingests primary records from official court portals and does not ingest, reproduce or resell another publisher's headnotes, editorial summaries or paragraph numbering, which keeps our licensing position clean. It also means we have no editorial layer of our own to offer you, and nothing on this page quotes CaseMine's. Counsel review pending on this section. ### How big is CaseMine's corpus compared to CourtMesh? ### Does CaseMine cover US and UK law? ### Does CaseMine offer an API for Indian case law? ### What does CaseMine cost? CourtMesh vs Indian Kanoon The free, widely trusted full text judgment search everyone in Indian law has used, and the cheapest published court data API in the market. CourtMesh vs Manupatra A long established Indian legal publisher with judgments, commentary, secondary materials and good law flags, and a published annual subscription price list. CourtMesh vs SCC Online The Eastern Book Company group's legal research platform, home of the Supreme Court Cases reported series that Indian lawyers cite from. CourtMesh vs LegitQuest The closest direct competitor on Indian court records and litigation due diligence, with an advertised API and security certifications we do not hold. CourtMesh vs eCourtsIndia The closest thing to a like for like competitor we have: an Indian court data platform that, like us, publishes a per endpoint API rate card, runs an MCP server and sells a party screening product. Or go straight to the product: all comparisons, the Indian court cases API, the litigation check API, court case search, coverage and freshness, the MCP server or pricing. ## Test it against your own case list The only comparison that settles anything is a recall test on cases you already know. Sign up, get free API credits immediately, and run it yourself. No sales call, and no obligation to tell us the result. Start with the API Talk to us first --- # CourtMesh vs eCourtsIndia | Court Data APIs Compared URL: https://courtmesh.ai/compare/courtmesh-vs-ecourtsindia Comparison # CourtMesh vs eCourtsIndia The closest thing to a like for like competitor we have: an Indian court data platform that, like us, publishes a per endpoint API rate card, runs an MCP server and sells a party screening product. Every claim about eCourtsIndia on this page was checked on 2026-09-19 against the source linked beside it. Where we could not verify something we say so rather than estimate. Their terms can change without notice, so check their own page before you buy. See the court data API View pricing ## eCourtsIndia is better for A litigating advocate who wants one subscription that tracks their own matters, pushes a WhatsApp alert when the record moves, and shows tomorrow's cause list. That daily practice loop is their product and it is a real one. ## CourtMesh is better for Anyone buying court data as an input to their own product rather than as a practice tool: a lower published price on every comparable endpoint, a free tier that renews every month instead of once, and credits that never expire. Of everyone in this comparison cluster, eCourtsIndia is the company building closest to what we are building. They publish a per endpoint rate card, they run an MCP server for AI clients, they sell a party screening product, and they target the same legal technology and background verification buyers we do. Pretending they are not a serious product would be both dishonest and useless to you. Start with what they do that we do not. They publish daily cause lists and sell cause list search over their API, so a question like what is listed before this judge tomorrow is one they answer and we do not. They track a lawyer's own matters and push a WhatsApp or email alert when the official record moves. They run a lawyer directory and a verified advocate listing. If your problem is running a litigation practice day to day, that loop is the product and it is theirs, not ours. Where the two diverge is what you are buying. Their pricing is built around a practice subscription, with an AI clerk that tracks cases, files documents and answers questions about your own brief. Ours is built around the record itself, sold per call, for teams putting Indian court data inside something else: a screening pipeline, a research assistant, a diligence workflow. That shows up most sharply in price. On their own published rate card, pay as you go is charged at three times their base rate, and only a fixed monthly commitment buys the base rate back. Every comparable line on our published rate card is cheaper than their base rate, before the multiplier. We are not asking you to take that on trust: both rate cards are public and both are linked from this page. CourtMesh compared with eCourtsIndia across coverage, search, API, pricing and editorial contentWhat you are comparingeCourtsIndiaCourtMeshSource Case search, price per call₹0.20 at base rate, which requires a monthly commitment, and ₹0.60 on pay as you go1 credit, ₹0.10, at the same price whether you are on the free tier, a prepaid pack or a planView source Case detail, price per call₹0.50 at base rate and ₹1.50 on pay as you go1 credit, ₹0.10, with no multiplier for buying in smaller amountsView source Order or judgment PDF₹1.25 at base rate and ₹3.75 on pay as you go, described as a digitally signed certified copy from the eCourts system5 credits, ₹0.50, for the stored judgment PDF. We do not represent our copies as certified true copiesView source Party screening for diligenceLegal Check at ₹100 per report plus metered AI usage, with the first three completed web checks freeParty screening at 100 credits (₹10) when matches are found and 20 credits (₹2.00) when none are, with a DPDP purpose field required on every callView source Pay as you go penaltyPay as you go deposit packs are charged at three times the base rate. Only a ₹10,000 per month or ₹1,00,000 per year commitment buys the base rateOne published price per endpoint. Prepaid packs and plans change what you pay up front, never the price of a callView source What happens to unused creditsPay as you go credits never expire, but the monthly and annual enterprise plans state that unused credits do not roll overPurchased credits never expire and are spent last, after the free monthly grantView source Free tier for developers₹200 in free API credits on signup, granted once2,500 credits on signup, worth ₹250, plus 500 free credits every month for as long as the account is openView source Published coverage you can check before buyingStates coverage of the Supreme Court, 25 High Courts, 600 plus district courts and tribunals, and a headline record countPer court, per year record counts and last ingest freshness published free, no API key neededView source AI semantic searchAdvertises AI summaries of orders and an AI assistant over your own uploaded files. We found no vector or semantic search over the case corpus advertised on their API pagesKeyword search across the full corpus, plus AI semantic search across roughly 2 million casesView source Statute and provision libraryLinks to IndiaCode for legislation rather than publishing its own provision level pages, as at the date checkedPublishes its own act and provision library, free to read and linked from the judgments that cite each provisionView source Stated corpus sizeStates 30.2 crore plus case records315.6 million court records keyword searchable, counted on 19 September 2026View source API surface and MCPStates 23 API endpoints and an MCP server with 22 toolsPublic REST API, 18 confirmed endpoints with a published per call credit price, plus an MCP serverView source Checked 2026-09-19. Rows reading “we could not find” record what was published on the pages we retrieved, not a claim that the capability does not exist; ask eCourtsIndia directly if it matters to your decision. Figures about CourtMesh come from the same constants that drive our own pricing and coverage pages, so they cannot drift apart from what we charge and publish elsewhere. On comparing record counts These two numbers do not measure the same unit and should not be read as a score. CourtMesh counts docket records, which includes a case, its status history and its orders. A reported judgment publisher counts documents it has published and edited. A larger number can mean broader coverage or simply a finer unit of counting, so treat both as a claim about scale rather than a ranking, and settle it with a recall test against your own case list. ### Choose eCourtsIndia when - You want a practice tool that tracks your own matters day to day, rather than court data inside your own product. - Your workflow is built around daily cause lists. - You want a certified true copy of an order, digitally signed from the source system, rather than a stored PDF. - You want a directory listing as an advocate, or you are looking one up. - Your volume is high enough that a fixed ₹10,000 a month commitment is comfortable, and refresh calls dominate your usage. ### Choose CourtMesh when - You are putting Indian court data inside your own product and the per call price is what decides the build. - You do not want a three times multiplier for being small, or a monthly commitment before you see the base rate. - You are screening parties at volume and want confidence banded matches with evidence, at a tenth of the published price of a Legal Check report. - You want a free tier that renews every month while you are still building, not a single grant at signup. - You want per court and per year coverage with ingest freshness published openly, so you can test recall before you commit. This matters to any comparison of Indian legal research products, because it decides what each side can legitimately hold. In Eastern Book Company v. D.B. Modak, (2008) 1 SCC 1, the Supreme Court held that the raw judgment is in the public domain, while a publisher's copy edited version, headnotes, footnotes and paragraph numbering are that publisher's own protected work where they show skill and judgment. Section 52(1)(q) of the Copyright Act, 1957 places the reproduction of judicial pronouncements outside infringement. The practical consequence runs both ways. CourtMesh ingests primary records from official court portals and does not ingest, reproduce or resell another publisher's headnotes, editorial summaries or paragraph numbering, which keeps our licensing position clean. It also means we have no editorial layer of our own to offer you, and nothing on this page quotes eCourtsIndia's. Counsel review pending on this section. ### Is CourtMesh cheaper than the eCourtsIndia API? ### How do the two party screening products compare? ### Which corpus is bigger? CourtMesh vs Indian Kanoon The free, widely trusted full text judgment search everyone in Indian law has used, and the cheapest published court data API in the market. CourtMesh vs Manupatra A long established Indian legal publisher with judgments, commentary, secondary materials and good law flags, and a published annual subscription price list. CourtMesh vs SCC Online The Eastern Book Company group's legal research platform, home of the Supreme Court Cases reported series that Indian lawyers cite from. CourtMesh vs LegitQuest The closest direct competitor on Indian court records and litigation due diligence, with an advertised API and security certifications we do not hold. CourtMesh vs CaseMine An Indian legal research platform from Gauge Data Solutions, covering India, the United States, the United Kingdom and Ireland, with the AMICUS AI assistant and published rupee pricing. Or go straight to the product: all comparisons, the Indian court cases API, the litigation check API, court case search, coverage and freshness, the MCP server or pricing. ## Test it against your own case list The only comparison that settles anything is a recall test on cases you already know. Sign up, get free API credits immediately, and run it yourself. No sales call, and no obligation to tell us the result. Start with the API Talk to us first --- # CourtMesh MCP Server | Indian Court Data in Claude and Cursor URL: https://courtmesh.ai/mcp-server MCP server, live # Indian court data, inside your AI assistant The CourtMesh MCP server turns our 18 court data endpoints into tools that Claude, Claude Code and Cursor can call on their own. Ask a research question in the client you already use, and the assistant searches 315.6 million Indian court records, opens the judgment and cites what it actually read. Get an API key Read the docs Live, and nothing to install. The hosted endpoint at https://mcp.courtmesh.ai/mcp is accepting connections and serves all 18 tools over Streamable HTTP. Point a client at it with your key and you are connected; there is no package, binary or build step on your side. Your API key travels with the request, either as an Authorization Bearer header or as a token query parameter, and calls are billed against the same API credits as the REST API. Access follows your API plan, so if the REST API is not enabled for your account yet the tools will return the same 401 the API returns. ### Why it matters for lawyers A general purpose model asked about Indian case law will sometimes produce a citation that looks immaculate and does not exist. Reported judgments are the one place in legal work where a plausible invention is worse than no answer at all. With the CourtMesh tools connected, the assistant stops guessing and starts retrieving. It runs a real search, opens the real record, and hands back a case identifier and a link to the judgment PDF you can open before anything reaches a draft. Research that used to mean twenty browser tabs becomes a conversation that ends with sources you can verify. ### Why it matters for developers You skip the integration entirely. There is no client library to pin, no pagination helper to write, no retry logic and no schema to keep in sync with our releases. Point Claude Code or Cursor at one URL, and your coding agent can query real judgments while it builds the feature that consumes them. When you are ready to ship, the same 18 operations are available as plain REST, so a prototype driven from a chat window turns into production code without a rewrite. Tools exposed by the CourtMesh MCP serverToolREST endpointCreditsWhat it does search_indian_court_casesPOST /search/cases1Keyword search across 315.6 million Indian court records with filters for court, year, judge, case type and date, plus cursor pagination for long result sets. semantic_search_casesPOST /search/cases/semantic10AI semantic search over the vector index. The assistant can ask in plain language, for example find judgments where a delay condonation application was allowed despite a two year delay. get_caseGET /cases/{id}1Full structured case record: parties, bench, court, dates, citations, statutes referenced and judgment text. get_case_analysisGET /cases/{id}/analysis1Reads a stored AI analysis of a judgment if one already exists, so the assistant does not regenerate work you have already paid for. Not available on the Free tier. find_related_casesGET /cases/{id}/related1Related documents and the derived order timeline sharing the same case number, useful for tracing a matter through its appeals. get_case_pdf_urlGET /cases/{id}/pdf5Returns a signed link to the judgment PDF so the assistant can cite or attach the original document. analyze_casePOST /cases/{id}/analyze100Generates a full AI analysis: issues framed, arguments of both sides, statutes applied, precedent treatment and case strength signals. Not available on the Free tier; a stored analysis is billed at the cache hit price. analyze_consolidated_casePOST /cases/{id}/analyze-consolidated400Consolidated analysis across every document attached to a matter, for when one judgment is not the whole story. Not available on the Free tier. screen_party_litigationPOST /party/screen100Screens a person or company name against the corpus and returns confidence banded matches with evidence and an honest coverage statement. Priced like an analysis call on a match, far less on a genuine no match, with an optional adjudication surcharge; DPDP purpose is required on every call. get_court_coverageGET /coverage0Reads published corpus coverage and freshness by court and year. Free and unmetered, so the assistant can check what the corpus contains before it searches. search_judgesGET /judges/search1Looks up Supreme Court and High Court judges by name, the fastest way to resolve a bench reference before a search. request_case_timelinePOST /request-timeline20Starts an asynchronous job that assembles the orders and hearing timeline for a case number. get_case_timelineGET /get-timeline/{requestId}0Polls a timeline job and returns the assembled timeline once ready. Free, so the assistant can wait without burning credits. check_api_healthGET /health0Service availability probe. Free and unmetered. get_api_usageGET /usage0Reports this key's tier, wallet balance, per period limits and per endpoint call volume for the current billing month. Unmetered: checking usage never itself consumes a credit. list_reference_courtsGET /reference/courts0Reads the court taxonomy accepted by the court filter on search and litigation check, so the assistant can pass an exact, valid value instead of guessing a spelling. Free and unmetered. list_reference_case_typesGET /reference/case-types0Reads every caseType value accepted by the search endpoints' caseType filter. Free and unmetered. screen_party_litigation_batchPOST /party/screen/batch100Screens up to 25 person or company names against the corpus in a single call, each priced independently on the same schedule as a single screen. Not available on the Free tier. Full request and response schemas for each underlying endpoint are in the API documentation, and the credit cost of every call is published on the API pricing page. ### 1. Issue an API key Create a CourtMesh account and generate a key from the API settings screen. Keys look like cm followed by a random string. API access is available on Enterprise accounts and through self serve signup, including a free credit grant, and the pricing page has the ladder in full. ### 2. Point your client at the server Add the configuration below to Claude Desktop, Claude Code or Cursor. The server speaks streamable HTTP at a single URL and takes your API key as a bearer token, so there is nothing to install, host or keep updated. ### 3. Ask in plain language Restart the client and the CourtMesh tools appear in its tool list. Ask a research question the way you would ask a junior, and the assistant picks the right tool, runs the search and cites the judgment it used. Fastest path, one command ### Claude Code Run this once with your API key in place of the sample below. There is nothing to install first; the command registers the hosted server directly, and the CourtMesh tools are available the next time you start Claude Code. TerminalCopy claude mcp add --transport http courtmesh https://mcp.courtmesh.ai/mcp \ --header "Authorization: Bearer cm-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxx" ### URL only, no custom header Some clients, a Claude Desktop custom connector for example, only accept a server URL and cannot send an Authorization header. For those, the same key can travel as a token query parameter instead of a header. Server URLCopy https://mcp.courtmesh.ai/mcp?token=cm-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxx Security note. A key carried in a URL can end up in shell history, browser history, server access logs and screen shares in a way a header does not. Prefer the Authorization header form above wherever your client supports it, and use this convenience form only when the client genuinely gives you no other choice. ### Claude Desktop Open Settings, then Developer, then Edit Config, and merge this into claude_desktop_config.json. Restart Claude Desktop and the CourtMesh tools appear in the tools menu. If your build of Claude Desktop instead offers a custom connector field that only takes a URL, use the URL-only form above. claude_desktop_config.jsonCopy { "mcpServers": { "courtmesh": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.courtmesh.ai/mcp", "--header", "Authorization: Bearer ${COURTMESH_API_KEY}" ], "env": { "COURTMESH_API_KEY": "cm-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxx" } ### Claude Code, shared with your team The one command above adds the server to your own user scope. To share the same connection with everyone on the repository instead, commit this as .mcp.json in the repository root. .mcp.jsonCopy { "mcpServers": { "courtmesh": { "type": "http", "url": "https://mcp.courtmesh.ai/mcp", "headers": { "Authorization": "Bearer cm-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxx" } ### Cursor Add this to ~/.cursor/mcp.json for every project, or to .cursor/mcp.json inside a single repository. Then enable CourtMesh under Settings, MCP. mcp.jsonCopy { "mcpServers": { "courtmesh": { "url": "https://mcp.courtmesh.ai/mcp", "headers": { "Authorization": "Bearer cm-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxx" } ### Other clients Any client that supports remote MCP servers over streamable HTTP with a custom header will work, including ChatGPT custom connectors, Windsurf, Zed, VS Code agent mode and anything you build with an MCP SDK. Supply the server URL and an Authorization header carrying your key as a bearer token. The REST API accepts the same key in an X-API-Key header if you prefer that style in your own client. If a client only lets you configure a URL and no headers, fall back to the URL-only form above, with the same security tradeoff. ### Same credits, same prices A tool call costs exactly what the underlying endpoint costs. Search is 1 credit, semantic search is 10, a stored analysis read is 1. Health checks and timeline polling are free. ### Free to start Every CourtMesh account begins with 2,500 API credits that never expire, plus 500 more free credits every month for as long as the account exists. That is enough to run the tools daily at no cost. ### Your balance is the ceiling An assistant can never spend credits you have not already bought. When the balance is short, the call is refused before it runs and nothing is charged. There is no overage invoice. Usage is logged per API key, so you can see what an assistant spent and separate it from your backend traffic. If a workflow starts consuming real volume, prepaid packs start at ₹1,000 for 10,000 credits and the Scale plan carries 1,00,000 credits a month with rollover. The full ladder is on the API pricing page, and application plans for the Research, My Cases and My Agreements products are on the pricing page. ### What is MCP? ### Is the CourtMesh MCP server live yet? ### How much does the MCP server cost? ### How is it authenticated? ### Which clients are supported? ### Does the assistant see my private matters and documents? ### Can the assistant run up a large bill by itself? ### Does it help with hallucinated case citations? ### What data does the server cover? ### Indian Court Cases API The REST surface behind every tool on this page. Open ### Litigation Check API Screen a party name and get a confidence scored answer. Open ### Coverage and freshness Records by court and year, free, no API key needed. Open ### API pricing Credit cost of all 18 confirmed endpoints, free tier and packs. Open ### Documentation Authentication, schemas, pagination and error codes. Open ### Contact us Rollout access, enterprise volume and security review. Open ## Give your assistant a law library Issue a key, paste one configuration block, and the next research question you ask Claude or Cursor comes back with real Indian judgments attached. Your first 2,500 credits are free and they never expire. Get an API key Talk to us --- # Authentication | API Reference Guide | CourtMesh URL: https://courtmesh.ai/docs/api/authentication API Reference Guide menuOn this page API Reference Guide # Authentication How to authenticate a request, how key rotation and revocation work, and how organisations restrict calls by IP. Authentication Two accepted headers, one key format, and the refusals you will actually see. Every endpoint below requires a key, with two exceptions: GET /health, which is unauthenticated so you can probe availability from your own monitoring, and GET /coverage, which is public on purpose so you can check our corpus numbers before you ever create a key. The middleware reads X-API-Key first and falls back to a bearer token, so either of these is fine. # Either header authenticates. Pick one, do not send both. curl "https://research.courtmesh.ai/api/v1/prod/judges/search?q=nariman" \ -H "X-API-Key: cm-YOUR_KEY_HERE" curl "https://research.courtmesh.ai/api/v1/prod/judges/search?q=nariman" \ -H "Authorization: Bearer cm-YOUR_KEY_HERE" #### What a rejection looks like The key is checked for shape before it is looked up, then for existence, then for whether the account is entitled to call the API at all. Suspended users and deactivated organisations are refused at this layer too, and if the identity service cannot confirm your standing the request is refused with HTTP 503 rather than being let through. // 401, no key on the request { "error": "API key required. Provide it in X-API-Key header or Authorization: Bearer " } // 401, the key does not match cm- or vv- followed by 32 then 4 characters { "error": "Invalid API key format" } // 401, well formed but unknown, or the key was deactivated { "error": "Invalid API key" } { "error": "API key is deactivated" } // 403, the account's plan is not entitled to call the API { "error": "API access is only available on the Enterprise plan. Upgrade to an Enterprise plan for API access.", "callsToday": 0, "maxAllowed": 0 } // 403, the account is Enterprise but has never created a key { "error": "No API keys found. Please create an API key first.", "callsToday": 0, "maxAllowed": -1 } #### Handling keys - Never put a key in client side code, a mobile binary, or a public repository - Keep keys in environment variables or a secret manager, never in source control - Rotate by creating the new key, deploying it, then deleting the old one - Use separate keys per environment: the rate limit is per key, so they do not compete API keys: rotate and revoke A 24 hour overlap window so rotating a key never breaks a live integration. POST /api/settings/api-keys/:id/rotate mints a replacement key with the same name (suffixed "(rotated)") and the same organisation, returns its plaintext once, and gives the OLD key a 24 hour grace window rather than revoking it outright: the old key keeps authenticating for 24 hours, so a process still holding it in an environment variable does not break the instant you rotate. After the window the old key is expired and answers with HTTP 401 API_KEY_EXPIRED. This is a dashboard action, called with your logged in session, not with an API key. # Dashboard session, not an API key: called from the API Keys settings # screen, or with your logged in session cookie. curl -X POST https://research.courtmesh.ai/api/settings/api-keys//rotate \ -H "Cookie: " { "message": "API key rotated successfully", "apiKey": { "id": "68f2b0...", "name": "Production (rotated)", "fullKey": "cm-....................................-abcd", "displayKey": "cm-...-abcd" }, "rotatedFrom": { "id": "68a110...", "expiresAt": "2026-09-19T06:00:00.000Z" } #### Deleting a key is a soft revoke Deleting a key marks it inactive rather than erasing its row: it stops authenticating immediately (HTTP 401 API_KEY_REVOKED on its next use) while its call history stays intact for your audit log and usage reporting. An ORG_ADMIN can rotate or revoke any key that belongs to their organisation, not only their own; every other caller can only manage their own keys. IP allowlisting Organisation level, off by default, opt in through support. An organisation can restrict its API keys to a list of IP addresses or CIDR ranges. It is off by default for every organisation; enable it by contacting support@courtmesh.ai with the ranges to allow. Once enabled, a request from an address not on the list is refused with HTTP 403 IP_NOT_ALLOWED, for every key that organisation owns. // HTTP 403, strict mode organisation, calling IP not on the allowlist { "success": false, "code": "IP_NOT_ALLOWED", "message": "Access denied. Your IP address is not whitelisted for this organization.", "error": "Access denied. Your IP address is not whitelisted for this organization.", "requestId": "req_5d10ee31" } #### Propagation and strict mode Allowlist changes can take a short time to propagate before they take effect. An organisation can additionally opt into strict mode for a tighter compliance posture. Ask support to enable it and to discuss which behaviour is the right trade-off for your requirements. Scoped API keys Restrict a key to only the capabilities it needs. Optional and additive: a key with no scopes keeps full access. Every API key can optionally be restricted to a subset of six capability scopes. A request made with a key that lacks the scope its endpoint requires is refused with HTTP 403 before any other work happens, including before anything is billed against your usage. #### The six scopes ScopeCovers searchPOST /search/cases, POST /search/cases/semantic, GET /judges/search readGET /cases/:id, /cases/:id/related, /cases/:id/pdf, GET /coverage, /reference/* analyzePOST /analyze, POST /analyze-consolidated screenPOST /party/screen, POST /party/screen/batch (Litigation Check API) timelinePOST /request-timeline, GET /get-timeline accountGET /usage, GET /me, GET /audit #### No scopes means full access Scoping is opt in and backward compatible. A key created with no scopes selected - including every key created before capability scoping existed - is treated as unrestricted and can call every endpoint its plan and account otherwise allow. Scopes only ever narrow what a key can do; there is no way to configure a key that has fewer permissions than "no scopes set" other than listing the scopes you actually want it to have. #### Creating a read-only key For a key that should only search and read case data and check its own usage, without ever running an AI analysis, requesting a timeline, or screening a party, select exactly search, read and account when creating the key. # Dashboard session, not an API key: called from the API Keys settings # screen, or with your logged in session cookie. curl -X POST https://research.courtmesh.ai/api/settings/api-keys \ -H "Cookie: " \ -H "Content-Type: application/json" \ -d '{ "name": "Read-only reporting key", "scopes": ["search", "read", "account"] }' { "message": "API key created successfully", "apiKey": { "id": "68f2c1...", "name": "Read-only reporting key", "key": "cm-••••••••••••••••••••••••••••••••.abcd", "scopes": ["search", "read", "account"], "createdAt": "2026-09-19T10:12:04.000Z" } // The plaintext key is only ever shown in this one response. Store it now. #### What a scope refusal looks like The same read-only key calling POST /analyze (which requires the analyze scope) is refused rather than billed: // HTTP 403, key has scopes but not the one this endpoint requires { "success": false, "code": "API_KEY_SCOPE_INSUFFICIENT", "message": "This API key does not have the \"analyze\" scope required for this endpoint.", "error": "This API key does not have the \"analyze\" scope required for this endpoint.", "requestId": "req_7a1f0c92" } PreviousOverview and quick start NextRate limits --- # Rate Limits | API Reference Guide | CourtMesh URL: https://courtmesh.ai/docs/api/rate-limits API Reference Guide menuOn this page API Reference Guide # Rate limits What the API enforces, body size and timeout budgets, and CORS. Rate limits What the API enforces. Enforced by tier Requests per minute, per day and per month, all keyed to your tier Free Developer: 10 per minute, 500 per day. Pay As You Go: 60 per minute, 20,000 per day. Scale: 120 per minute, 1,00,000 per day. Enterprise: custom, up to 600 per minute. Every tier also carries a per month ceiling, counted per account rather than per key. Windows are counted per API key for the per minute limit and per account for per day and per month, and every successful response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset so you can budget against the real number rather than guessing. // HTTP 429, eleventh request inside the same minute on one key { "error": "Rate limit exceeded", "message": "Too many requests. Maximum 10 requests per minute allowed.", "retryAfter": 37, "resetTime": "2026-08-10T09:41:12.884Z" } // Successful responses carry the budget in headers X-RateLimit-Limit: 10 X-RateLimit-Remaining: 6 X-RateLimit-Reset: 2026-08-10T09:41:12.884Z #### Also enforced: page size and pagination depth Each tier caps the limit value a search endpoint will accept (20 on Free, 50 on Pay As You Go, 100 on Scale and Enterprise) and how deep you can page or cursor into one query. A request that asks for more than your tier's page size is rejected before it reaches the search layer, not silently clamped. #### Also enforced: daily and monthly ceilings Distinct case fetches per day and PDF calls per month are enforced per tier, refusing with DISTINCT_CASES_LIMIT_REACHED and PDF_LIMIT_REACHED respectively (HTTP 429, with a Retry-After header) once a tier's cap is reached. Analyze requests also apply a concurrency limit, refusing with CONCURRENT_ANALYSIS_LIMIT (HTTP 429, with a Retry-After header) when too many jobs run at once. Additional abuse protections apply beyond the published tier limits; contact support for a legitimate high-volume or shared-IP integration. Limits and timeouts Body size, and how long each endpoint is allowed to take. Every request body is capped at 256 kb; a larger body is refused with HTTP 413 PAYLOAD_TOO_LARGE before it is parsed. Set a client side timeout well above these figures, and treat your own timeout as your client giving up on reading the response, not as cancelling the call: a request that is already running on our side keeps running and, if it succeeds, still charges credits. Your timeout does not cancel work in progress and does not refund anything. Per endpoint timeout budgetsEndpointBudget POST /search/cases/semanticUp to 10 minutes for a cold, heavily filtered query. Most calls finish in seconds; the connection is held open rather than cut early. POST /request-timeline (refresh: true)Up to 210 seconds for the live court portal fetch. A stored read (refresh omitted or false) answers immediately. POST /cases/:id/analyze-consolidatedSynchronous: the call runs the model before it answers, rather than handing back a job id to poll. Budget for a genuinely long single request. Everything elseSeconds, bounded by the underlying search query. CORS Call this API from your server, not from a browser tab. Every keyed endpoint is meant to be called server side. There is no key you can safely put in front end JavaScript: a key visible to a browser is a key visible to everyone who opens dev tools, and it will be used against your balance and your rate limit. The public, no key endpoints that exist specifically for a browser to call directly, GET /coverage, GET /reference/courts and GET /reference/case-types do carry CORS headers for that reason. Every keyed endpoint does not. Proxy through your own backend if you need to reach this API from client side code at all. PreviousAuthentication NextErrors --- # Errors | API Reference Guide | CourtMesh URL: https://courtmesh.ai/docs/api/errors API Reference Guide menuOn this page API Reference Guide # Errors and idempotency One response envelope, one error shape, a request id on every response, and idempotency keys for safe retries on credit charging endpoints. Response format One envelope for handlers, a different shape from the middleware. // Success, every endpoint except /health { "success": true, "data": { }, // object or array, endpoint specific "meta": { }, // optional: query echo, responseTime, notes "pagination": { } // search endpoints only } // Error raised by a route handler { "success": false, "error": "Case not found" } // Validation error, HTTP 400 { "success": false, "error": "Validation failed. Please check your request and try again.", "details": ["query: Search query cannot be empty. Please provide a search term."] } // The auth and rate limit layers answer with a bare object and no success field { "error": "Rate limit exceeded", "message": "Too many requests. Maximum 10 requests per minute allowed.", "retryAfter": 37, "resetTime": "2026-08-10T09:41:12.884Z" } Two exceptions to check for in client code. First, GET /health returns a flat object with no data key. Second, POST /search/cases/semantic writes its 200 status line before it starts work, in order to hold the connection open through a slow vector search. If that work then fails you receive HTTP 200 with success: false in the body. Branch on the body, not only on the status code. Error codes Every refusal this API can return, and what it means. Every error body on this API has the same shape: { success: false, code, message, error, requestId }. error mirrors message for backward compatibility with older bare { error } bodies. Every response, success or failure, also carries an X-Request-Id header you can hand to support to join a report to a server side log line. CourtMesh API error codesCodeHTTP statusMeaning API_KEY_MISSING401No X-API-Key header or Authorization: Bearer token was sent. API_KEY_INVALID_FORMAT401The key does not match the prefix-32characters-4characters shape. API_KEY_INVALID401The key does not match any key on record. API_KEY_REVOKED401The key was deleted or rotated by its owner. API_KEY_EXPIRED401The key carries an expiry date that has passed. ORGANIZATION_DEACTIVATED403The organisation that owns this key is deactivated. ACCOUNT_SUSPENDED403The IAM standing check found the account behind this key suspended. BILLING_INACTIVE403The IAM standing check found billing inactive for this account. ACCOUNT_NOT_FOUND403The IAM standing check found no account behind this key any more. ACCOUNT_STANDING_UNAVAILABLE503The identity service could not verify account standing; the endpoint refuses the request rather than serving an unauthorised result. IP_NOT_ALLOWED403Your organisation has IP allowlisting enabled and the calling address is not on the list. API_ENTERPRISE_ONLY403The Enterprise only gate refused this plan. API_NOT_AVAILABLE_ON_TRIAL403Trial accounts have no API access at all. API_TIER_NOT_ALLOWED403Free tier calling an AI analysis endpoint (analyze, analyze-consolidated, or the stored analysis read). SEMANTIC_NOT_ALLOWED403Free tier calling POST /search/cases/semantic. LIVE_FETCH_NOT_ALLOWED403Free tier sending refresh: true to POST /request-timeline. LIVE_FETCH_LIMIT_REACHED429Tier's daily live fetch cap already used. PARTY_SCREEN_LIMIT_REACHED403Free tier's monthly litigation check cap already used. DISTINCT_NAMES_LIMIT_REACHED429Tier's per minute or per day distinct screened name cap exceeded. DISTINCT_CASES_LIMIT_REACHED429Tier's distinct case detail fetches per day cap reached. PDF_LIMIT_REACHED429Tier's PDF calls per month cap reached. CONCURRENT_ANALYSIS_LIMIT429Tier's concurrent analyze job cap is saturated; Retry-After: 30. TOO_MANY_KEYS_FROM_IP429Too many API keys used from one client IP address. Contact support for a legitimate shared-IP integration. RATE_LIMITED429The per key or per IP requests-per-minute ceiling was exceeded. INSUFFICIENT_API_CREDITS402Balance does not cover this call's credit price; nothing is charged. PAGE_LIMIT_EXCEEDED400limit is above your tier's maxPageSize. PAGINATION_DEPTH_EXCEEDED400page times limit, or the depth carried in a cursor, exceeds your tier's cap. CURSOR_INVALID400The cursor failed to decode, or was issued for a different query or filters. REMOTE_FETCH_NOT_ALLOWED403An analyze allowRemoteFetch: true call required a source that is not an approved court or official source. EMAIL_NOT_VERIFIED403Free tier key creation requires a verified email address. API_KEY_LIMIT_REACHED403Tier's live API key count is already at the tier's cap. VALIDATION_ERROR400The request body failed schema validation; details name the offending field. CASE_NOT_FOUND404The case id in the path does not resolve to a stored case. PDF_NOT_STORED404The case exists but carries no stored PDF; the body carries a hint. PARTY_SCREEN_SEARCH_DEGRADED502The underlying case search errored and returned no usable results; not charged, carries a Retry-After header. CASE_RESTRICTED403The case is withheld under CourtMesh's case removal policy and is not returned by any endpoint. JOB_NOT_FOUND404The timeline request id in the path does not exist, or its job record has expired. MALFORMED_JSON400The request body could not be parsed as JSON. PAYLOAD_TOO_LARGE413The request body is larger than the 256kb limit. UPSTREAM_TIMEOUT408A dependency (our search index, the embedding service, or a live court portal fetch) did not answer in time. UPSTREAM_UNAVAILABLE502A dependency failed to respond at all. INTERNAL_ERROR500An unhandled server error. Retry, and quote the X-Request-Id if it recurs. IDEMPOTENCY_KEY_INVALID400The Idempotency-Key header is present but is not 1 to 128 characters of A-Z, a-z, 0-9, underscore, period or hyphen. IDEMPOTENCY_KEY_REUSED409The same Idempotency-Key was sent with a request body that does not match the first call that used it. IDEMPOTENCY_IN_PROGRESS409A call carrying this Idempotency-Key is still being processed. Wait for it to finish rather than sending a third copy. Request ids and support Every response carries one. Put it in your support request and we can find the exact server side log line. Every response this API sends, success or failure, carries an X-Request-Id header. Failures also echo it in the body, as requestId, alongside the same one error shape used everywhere on this API: { success: false, code, message, error, requestId }. code is the stable machine readable string to branch your error handling on; error mirrors message for backward compatibility with older bare { error } bodies. #### When you write to us about a call Include the X-Request-Id (or the body's requestId), the endpoint, and roughly when the call was made. That is what lets us join your report to the actual server side log line rather than asking you to reproduce it. Contact support@courtmesh.ai, or your Enterprise named contact if you have one. There is no published uptime, latency or freshness SLA today; see API security for exactly what is and is not in place. Idempotency Safe retries on every endpoint that charges credits for real work. Send an Idempotency-Key request header on POST /party/screen, POST /party/screen/batch, POST /cases/:id/analyze, POST /cases/:id/analyze-consolidated or POST /request-timeline and a dropped connection, a client side timeout, or a retry loop can never charge you twice for the same call. The header is 1 to 128 characters of letters, digits, underscore, period or hyphen, scoped to your API key, and honoured for 24 hours from the first call that used it. - Same key, identical request body: the stored response from the first call is replayed verbatim, with an added Idempotency-Replayed: true header, and nothing is charged a second time. - Same key, a different request body: refused with HTTP 409 IDEMPOTENCY_KEY_REUSED , so a bug that reuses a key by accident cannot silently serve the wrong stored answer. - Same key, sent again while the first call is still in flight: refused with HTTP 409 IDEMPOTENCY_IN_PROGRESS rather than doing the work twice concurrently. - A header that does not match the allowed shape: refused with HTTP 400 IDEMPOTENCY_KEY_INVALID before the request body is even read. - An error response is never stored against the key: a call that fails is free to retry with the same Idempotency-Key and actually run again. - The header is optional. Omit it and every call runs independently, exactly as today. First callReplay and conflicts curl -X POST https://research.courtmesh.ai/api/v1/prod/party/screen \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: signup-flow-user-88213-kyc-check" \ -d '{ "name": "Rambaksh Enterprises", "entityType": "company", "purpose": "kyc" }' PreviousRate limits NextSearch --- # Search | API Reference Guide | CourtMesh URL: https://courtmesh.ai/docs/api/search API Reference Guide menuOn this page API Reference Guide # Search Keyword search across the full corpus, meaning based semantic search over the analysed subset, and judge name lookup. Search endpoints Three ways to find a case: keyword, semantic, and by judge. POST ### /search/cases 1 credit Keyword search across 315.6 million case records from the Supreme Court, all 25 High Courts, District Courts and Tribunals. This is the endpoint that sees the whole corpus. Request body FieldTypeRequiredNotes querystringYesSearch text. Trimmed, must be at least 1 character. Case numbers work here: put 123-2024 in the query rather than in caseNumber. courtstring | string[]NoCourt name or names. Comma separated strings are also split, so "Bombay High Court,Delhi High Court" behaves like an array. yearnumber | string | arrayNoFour digit year, or an array of them. Must be between 1947 and the current year. caseTypestring | string[]NoCase type label or code. Labels are expanded server side to the full set of codes they cover, so "Appeal" matches CA, CRA, LPA and the rest. judgeNamestring | string[]NoJudge name. judges and judge are accepted as aliases; the first one present wins. Use GET /judges/search to get exact spellings. fromDatestringNoInclusive lower bound on decision date, YYYY-MM-DD. Any other format is rejected with HTTP 400. toDatestringNoInclusive upper bound on decision date, YYYY-MM-DD. pagenumberNoPage number, default 1, minimum 1. Must be a JSON number. A quoted string is rejected with HTTP 400. limitnumberNoResults per page, default 20, maximum 100. Must be a JSON number. searchAfterstringNoLegacy alias for cursor. Prefer cursor: send the previous response's nextCursor back verbatim rather than page for anything beyond the first few pages. sortByenumNoOne of relevance (default), recent, oldest. See the note below on the deprecated value date. caseNumberstring | string[]NoACCEPTED BUT INERT. The schema allows it and the response echoes it back in meta.filters, but the handler never forwards it to the search engine, so it does not narrow results. Put the case number in query instead. practiceAreanot supportedNoNOT A PARAMETER. It is absent from the schema, and unknown keys are stripped silently during validation, so sending it produces no error and no filtering. #### Sorting sortBy takes relevance (the default), recent for newest decision date first, or oldest for the reverse. The value date is a deprecated alias kept only so that existing integrations do not start failing validation. The search layer does not understand it and silently ranks by relevance instead, so it is not a way to sort by date. Use recent or oldest. #### Unknown keys are dropped, not rejected The body is parsed against a fixed schema and anything outside it is removed before the handler runs. That is why sending practiceArea produces neither an error nor a filtered result set. If a filter you sent does not appear in the meta.filters echo of the response, it was not applied. The one filter that appears in that echo and is still not applied is caseNumber. Every response also carries meta.someRecordsWithheld, a boolean noting whether a restricted or de-indexed record was left out of the results, and on a degraded restricted-record check meta.restrictedCheckDegraded is set to true with affected titles masked in the response. RequestResponseCursor curl -X POST https://research.courtmesh.ai/api/v1/prod/search/cases \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "query": "property dispute adverse possession", "court": ["Bombay High Court", "Delhi High Court"], "year": [2006, 2007], "judgeName": "D.Y. CHANDRACHUD", "fromDate": "2006-01-01", "toDate": "2007-12-31", "page": 1, "limit": 20, "sortBy": "recent" }' #### Common validation error // HTTP 400. page and limit are JSON numbers, not strings. // Sending "limit": "20" fails; sending "limit": 20 passes. { "success": false, "error": "Validation failed. Please check your request and try again.", "details": ["limit: Expected number, received string"] } POST ### /search/cases/semantic 10 creditsAI Meaning based search over the vector index, which holds roughly 2 million analysed and embedded cases. That is a curated subset of the corpus, not the whole archive, so a semantic query can genuinely miss a document that keyword search finds. Results carry a similarity score. #### Not available on Free The Free tier does not include semantic search. A Free tier key calling this endpoint is refused before any work or charge with HTTP 403 and code: "SEMANTIC_NOT_ALLOWED". Every paid tier (Pay As You Go, Scale, Enterprise) has full access at the published 10 credit price and its own per minute ceiling. Request body FieldTypeRequiredNotes querystringYesNatural language description of what you are looking for. Minimum 3 characters. limitnumberNoResults per page, default 20, capped at 100. pagenumberNoPage number, default 1. Translated into a vector search offset. filtersobjectNoThe only place filtering works on this endpoint. Understood keys: court, caseType, judgeName (judges and judge are mapped onto it), caseYear, caseNumber, and decisionDate with $gte and $lte. Your values are merged over anything the model inferred from the query and win on conflict. court, year, caseType, caseNumber, judgeName, judges, judge, fromDate, toDateinertNoACCEPTED BUT INERT at the top level. The schema allows all nine, so sending them raises no error, but the handler reads only query, limit, page and filters. Move them inside filters. sortBynot supportedNoNOT A PARAMETER on this endpoint. Semantic results are always ordered by vector similarity, returned as a similarity score on each result. #### Filters go inside the filters object This is the single most common mistake on this endpoint. The schema is permissive and accepts court, year, caseType, caseNumber, judgeName, judges, judge, fromDate and toDate at the top level, so you get a clean 200 back. The handler never reads them. Nest them under filters instead, and note the key is caseYear there, not year, with date bounds expressed as decisionDate with $gte and $lte. Check meta.appliedFilters in the response to see exactly what was used. RequestResponseFallback curl -X POST https://research.courtmesh.ai/api/v1/prod/search/cases/semantic \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "query": "cases about state surveillance and the right to privacy", "limit": 10, "page": 1, "filters": { "court": "Supreme Court of India", "caseYear": 2017 } }' #### Behaviour worth knowing - A model reads your query first and pulls filters out of it. Anything you send in filters is merged over what it inferred and wins on conflict. - If that leaves fewer than 3 characters of actual search text, the endpoint runs keyword search instead and reports fallbackMode: "opensearch" . - total and totalPages are conservative estimates that become exact on the final page. Do not build a page count UI on them mid stream. - This is a slow path. It embeds a query and runs a vector search, and the route allows itself ten minutes. Call it from a background worker, never from a user facing request thread. - As with keyword search, the response carries meta.someRecordsWithheld for a restricted or de-indexed record left out of results, and, on a degraded restricted-record check, meta.restrictedCheckDegraded: true with affected titles masked. GET ### /judges/search 1 credit Look up exact judge name spellings across the combined Supreme Court and High Court lists. Use it before filtering a search by judge, because the search filters match the stored spelling exactly. Query parameters FieldTypeRequiredNotes qstringNoCase insensitive substring match against the combined Supreme Court and High Court judge lists. Omit it to get the first 50 names. Never returns more than 50 matches. RequestResponse curl "https://research.courtmesh.ai/api/v1/prod/judges/search?q=chandrachud" \ -H "X-API-Key: cm-YOUR_KEY_HERE" PreviousErrors NextCases --- # Cases | API Reference Guide | CourtMesh URL: https://courtmesh.ai/docs/api/cases API Reference Guide menuOn this page API Reference Guide # Cases Fetch one case by id: its detail, its stored AI analysis, documents related to it, and its judgment PDF. Case endpoints Everything keyed off a single case id. GET ### /cases/:id 1 credit One case record. The :id segment accepts either the document identifier or a case number. AI analysis is deliberately excluded from this response; fetch it separately from /cases/:id/analysis and use the hasAnalysis flag to decide whether that call is worth making. RequestResponse curl https://research.courtmesh.ai/api/v1/prod/cases/507f1f77bcf86cd799439011 \ -H "X-API-Key: cm-YOUR_KEY_HERE" GET ### /cases/:id/analysis 1 creditAI The stored AI analysis for a case. This is a read, not a generation: it returns whatever has already been produced. If hasAnalysis comes back false, the analysis has not been generated yet and meta.note tells you to call POST /cases/:id/analyze. Not available on the Free tier. Free Developer keys are refused HTTP 403 with code: "API_TIER_NOT_ALLOWED" on this read too, not only on the two endpoints that generate an analysis. There is no small monthly allowance: the Free tier gets zero AI analysis endpoints, full stop. RequestResponse curl https://research.courtmesh.ai/api/v1/prod/cases/507f1f77bcf86cd799439011/analysis \ -H "X-API-Key: cm-YOUR_KEY_HERE" #### Analysis fields - summary and detailedSummary , short and long form - headnote , the extracted legal headnote - keyFacts , facts the model identified - issues , each with a question and the holding on it - courtsReasoning , the reasoning chain - citedCases , split into followed, distinguished, overruled and referred - practiceAreas , legalPrinciples and precedentValue These are model outputs. Treat them as a research aid and verify anything load bearing against the judgment PDF. GET ### /cases/:id/related 1 credit Every stored document that shares this case's case number, plus a chronological timeline built from them. Useful for following a matter through hearings, orders and final judgment. Works for every court. The grouping is done on case number with no court condition of any kind, so Supreme Court, High Court, District Court and Tribunal records are all covered. RequestResponse curl https://research.courtmesh.ai/api/v1/prod/cases/695b2c9f66d5a34cea312b32/related \ -H "X-API-Key: cm-YOUR_KEY_HERE" #### Reading the response - relatedDocuments is ordered by decision date, oldest first, and is capped at 50 documents per case number - isCurrent marks the document you asked for - timeline is a strict subset: it only includes documents that have both a decision date and a stored PDF, so it can be shorter than relatedDocuments - status is one of Case Initiated, Hearings / Orders or Final Judgment, and the first event is relabelled Case Initiated unless it is already a final judgment - statusLabel carries the raw disposal wording where the record has one, which is more specific than status - A case with no case number returns empty arrays and an explanatory meta.message , not a 404 GET ### /cases/:id/pdf 5 credits A time limited link to the judgment PDF. The link is a presigned URL valid for one hour, and it is returned encrypted, so cache the case identifier rather than the URL. A 404 here carries a machine readable code so you can tell the two failure modes apart: CASE_NOT_FOUND when the case id itself does not resolve, and PDF_NOT_STORED when the case exists but carries no stored document, which also carries a hint pointing you at POST /request-timeline with refresh:true for High Court and District Court cases (tribunal documents cannot be fetched this way at all). RequestResponse curl https://research.courtmesh.ai/api/v1/prod/cases/507f1f77bcf86cd799439011/pdf \ -H "X-API-Key: cm-YOUR_KEY_HERE" #### Decrypting the URL AES-256-CBC. The passphrase is caseId concatenated with caseNumber, both taken from the same response. The key is the SHA-256 of that passphrase, and the value is the hex initialisation vector, a colon, then the hex ciphertext. Node.jsPython const crypto = require('crypto'); function decryptUrl(encryptedUrl, passphrase) { const key = crypto.createHash('sha256').update(passphrase).digest(); const parts = encryptedUrl.split(':'); if (parts.length !== 2) throw new Error('Invalid encrypted URL format'); const iv = Buffer.from(parts[0], 'hex'); const decipher = crypto.createDecipheriv('aes-256-cbc', key, iv); let decrypted = decipher.update(parts[1], 'hex', 'utf8'); decrypted += decipher.final('utf8'); return decrypted; } const response = await fetch( 'https://research.courtmesh.ai/api/v1/prod/cases/507f1f77bcf86cd799439011/pdf', { headers: { 'X-API-Key': 'cm-YOUR_KEY_HERE' } } ); const data = await response.json(); // Passphrase is caseId concatenated with caseNumber, both from data.data const decryptionKey = data.data.caseId + data.data.caseNumber; console.log('PDF URL:', decryptUrl(data.data.pdfUrl, decryptionKey)); PreviousSearch NextAI analysis --- # Analysis | API Reference Guide | CourtMesh URL: https://courtmesh.ai/docs/api/analysis API Reference Guide menuOn this page API Reference Guide # AI analysis Run the model against one document on demand, or consolidate an entire matter's documents into one analysis. Not available on the Free tier. Analysis endpoints Single document analysis and consolidated multi document analysis. POST ### /cases/:id/analyze 100 credits, 1 on a cache hit, +20 with allowRemoteFetchAI Generate AI analysis for a case that does not have one. The work runs in the background and the call returns HTTP 202 immediately. Poll GET /cases/:id/analysis after 30 to 60 seconds to collect the result. Not available on the Free tier. A Free Developer key gets HTTP 403 with code: "API_TIER_NOT_ALLOWED" and an upgradeUrl before any work starts and before any credit is charged. Pay As You Go, Scale and Enterprise all have full access. Request body FieldTypeRequiredNotes forcebooleanNoRe-run the model even when an analysis is already stored. Default false, in which case a stored analysis is returned instead with alreadyExists set to true. allowRemoteFetchbooleanNoDefault false. Only on POST /cases/:id/analyze. When true and the source document is not already in stored data, permits fetching it from an approved court or official source, for a surcharge of 20 credits on top of the 100 credit base price, charged only when a remote fetch actually happened. Only approved court and official sources are fetched; a call that would require any other source is refused with REMOTE_FETCH_NOT_ALLOWED regardless of tier or balance. RequestResponses curl -X POST https://research.courtmesh.ai/api/v1/prod/cases/507f1f77bcf86cd799439011/analyze \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{"force": false}' A 202 means accepted, not finished. If the background job later fails, the charge made at admission is reversed, so a failed analysis does not stay billed. Cases with no readable text and no stored document are rejected up front rather than accepted and then failed. POST ### /cases/:id/analyze-consolidated 400 credits, 1 on a cache hitAI One analysis across every document sharing this case number, rather than one document at a time. Unlike /analyze, this call is synchronous: it runs the model and answers when it is done, which can take well over a minute. Give your client a generous timeout and call it from a worker. Not available on the Free tier. Same refusal as /analyze: HTTP 403, code: "API_TIER_NOT_ALLOWED", an upgradeUrl, and no charge. Request body FieldTypeRequiredNotes forcebooleanNoRe-run the model even when an analysis is already stored. Default false, in which case a stored analysis is returned instead with alreadyExists set to true. RequestResponses curl -X POST https://research.courtmesh.ai/api/v1/prod/cases/507f1f77bcf86cd799439011/analyze-consolidated \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{"force": false}' PreviousCases NextTimeline --- # Timeline | API Reference Guide | CourtMesh URL: https://courtmesh.ai/docs/api/timeline API Reference Guide menuOn this page API Reference Guide # Timeline Request a case's order timeline, stored or live, and poll the job for the result. Timeline endpoints A two step job: request the timeline, then fetch the result. POST ### /request-timeline 1 credit stored read, 20 credits when refresh triggers a live fetch By default this reads whatever orders CourtMesh already has stored for the case, priced at 1 credit, and the response says so with meta.liveFetch: false. Send refresh: true to actually ask the source court portal for current orders; that only costs the full 20 credits when it genuinely triggers live upstream work (meta.liveFetch: true), never for a stored read that happened to satisfy the request anyway. High Court and District Court cases can be live-fetched this way; tribunal cases cannot, and a refresh request against one falls back to the stored read with liveFetchSupported: false rather than erroring. #### Refresh gates, in order - Tier access. Free has no live fetch access at all: refresh: true on Free is refused with HTTP 403 LIVE_FETCH_NOT_ALLOWED before any work or charge. A plain stored read (refresh omitted or false) still works on Free. - Its own per minute ceiling. A refresh call is tighter than your account's general rate limit, since it can trigger real work against a court portal rather than a stored lookup. - A daily live-fetch cap per tier. Once exhausted for your account's day, further refresh calls are refused with HTTP 429 LIVE_FETCH_LIMIT_REACHED and a Retry-After header; a plain stored read is unaffected. - A once-per-case-per-day gate at the source. Independent of the caps above, Supreme Court and District Court live fetches are each deduplicated to at most once per calendar day per case, so asking twice in one day for the same case returns the same stored result rather than hitting the portal again. Request body FieldTypeRequiredNotes case_idstringYesThe case identifier to fetch orders for. Note the snake_case name: this endpoint predates the camelCase convention used elsewhere. Missing it returns HTTP 400. refreshbooleanNoDefault false. When true, actually asks the source court portal for current orders instead of returning what is already stored, subject to the gates below. Not available on the Free tier: a Free key sending refresh:true is refused before any work with LIVE_FETCH_NOT_ALLOWED. Tribunal cases are never live-fetchable regardless of tier; a stored-only read is all this endpoint can do for one, reported as liveFetchSupported: false. RequestResponses curl -X POST https://research.courtmesh.ai/api/v1/prod/request-timeline \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{"case_id": "507f1f77bcf86cd799439011"}' # Ask for a genuine live fetch instead of the stored read (not on Free, # not for tribunal cases, subject to its own per minute and per day caps): curl -X POST https://research.courtmesh.ai/api/v1/prod/request-timeline \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{"case_id": "507f1f77bcf86cd799439011", "refresh": true}' GET ### /get-timeline/:requestId 0 credits Poll the status of a timeline job. Status is one of pending, running, completed or failed. Completed jobs return the orders inline. Failed jobs carry an error string. Poll every few seconds and keep the polling inside your ten requests per minute budget, since this endpoint is priced at zero credits but still consumes a rate limit slot. RequestResponse curl https://research.courtmesh.ai/api/v1/prod/get-timeline/507f1f77bcf86cd799439012 \ -H "X-API-Key: cm-YOUR_KEY_HERE" PreviousAI analysis NextLitigation check --- # Litigation Check | API Reference Guide | CourtMesh URL: https://courtmesh.ai/docs/api/litigation-check API Reference Guide menuOn this page API Reference Guide # Litigation check Screen a name against the corpus with confidence scored matches, single or batched, priced by outcome rather than as a flat rate. Litigation check endpoints Party screening, single and batched. POST ### /party/screen 100 credits, 20 on no matchMetered+80 with adjudicate Litigation check: screen a person or company name against the corpus and get back a confidence-scored report of the cases that plausibly involve them. Retrieval runs against the same deterministic entity-resolution layer CourtMesh's own counterparty screening uses. A screen that finds matches is priced like an analysis call, at ₹10.00; a genuine no match is priced far lower, at ₹2.00, since it did the same retrieval work but produced no analysis. Requesting adjudicate=true asks for an LLM pass over the uncertain middle; the ₹8.00 surcharge is only added on top of either price when that pass actually ran at least once, not merely for setting the flag. The flag is also not available on the Free tier: sending adjudicate=true on Free returns HTTP 403 (API_TIER_NOT_ALLOWED). Request body FieldTypeRequiredNotes namestringYesThe person or company name to screen. Between 2 and 200 characters. aliasesstring[]NoAlternate spellings or former names to screen alongside name. At most 7 entries: name plus its aliases must fit within the 8 name screening limit. entityType"person" | "company"YesWhich entity-resolution rules apply. A person can never be auto-confirmed on name similarity alone; confirmation requires a matched statutory identifier. A company can be auto-confirmed once its name similarity clears the confirmed band. purposeenumYesOne of kyc, bgv, due_diligence, litigation, research, compliance. Required under DPDP: we will not process a searched name without a stated reason. Never logged, but recorded in the audit trail for this call. identifiersobjectNopan, gstin, cin, llpin. Each is format-validated at the edge; a malformed value is rejected with HTTP 400 rather than silently ignored, since a caller-supplied typo should surface as an error, not a false no-match. An exact identifier match on a candidate case is treated as decisive without needing the LLM pass. addressobjectNocity, state, stateCode. Used as a corroborating signal, never as a filter. knownPersonsstring[]NoUp to 10 known associates, directors or family members. A candidate case naming one of these is a disambiguating signal, especially for a common person name. courtstring | string[]NoScope the screen to one court, as a string or a single-element array. An array with more than one entry is rejected with HTTP 400 ("one court per request for now"). sincestringNoYYYY-MM-DD. Must parse as a real calendar date, or the request is rejected with HTTP 400. Drops a candidate only when it carries a decision or filing date strictly before the cutoff; a candidate with neither date is kept rather than silently dropped. limitnumberNoCandidates considered, default 40, maximum 100, clamped further by your tier's maxPageSize. adjudicatebooleanNoDefault false. Sends the uncertain middle (survived the name-similarity floor but not already decided by an exact identifier match or conflict) to an LLM pass, capped at 40 candidates. Adds the adjudication surcharge to the price of this call. displayThresholdnumberNo0 to 1, default 0.6. A candidate below this calibrated probability is left out of matches unless its band is confirmed, in which case it always shows regardless of the threshold. #### Confidence bands and what "no matches" actually means Each match carries a calibrated score bucketed into a band: confirmed at 0.90 and above, probable at 0.70 and above, possible at 0.45 and above, and unlikely below that. A person is never auto-confirmed on name similarity alone: confirmation for a person requires a matched statutory identifier (PAN, GSTIN, CIN or LLPIN). An address or a known associated person raises confidence but on its own caps the result at probable, no matter how close the name spelling is. A company can be auto-confirmed on name similarity alone. summary.verdict reads no_matches_found only when the underlying retrieval was actually exhaustive (coverage.exhaustive or coverage.exhaustiveWithinFilters). A plan clamp, a strategy error, or any other non-exhaustive run reports inconclusive instead. This endpoint never reports an absolute negative it cannot back up. A since filter, or a restricted record withheld with nothing else left to report, also forces inconclusive even on an otherwise exhaustive run. Separately, coverage.someRecordsWithheld is a boolean, not a count or a list: a case can be withheld because it is marked restricted or carries a registry masking token, and this field only tells you whether that happened, never which case or why. #### Unlike search, this body is strict POST /search/cases and POST /search/cases/semantic silently drop any key their schema does not recognise. This endpoint does the opposite: the request body is parsed strictly, and an unrecognised top-level field is rejected with HTTP 400 rather than being ignored. RequestResponseNo matchValidation error curl -X POST https://research.courtmesh.ai/api/v1/prod/party/screen \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "name": "Northwind Traders Private Limited", "entityType": "company", "purpose": "due_diligence", "identifiers": { "cin": "U74999DL2015PTC123456" }, "address": { "city": "Delhi", "state": "Delhi", "stateCode": "DL" }, "limit": 40, "adjudicate": true }' #### Errors - HTTP 400: a validation failure, most commonly a missing purpose or a malformed identifier, but also court sent as an array with more than one entry (one court per request for now), since that does not parse as a real calendar date, or a request body carrying an unrecognised top-level field. - HTTP 401: no key, a malformed key, or an unknown or deactivated key, same as every other endpoint. - HTTP 402: insufficient balance. The body carries required , balance and shortfall , plus a topUpUrl . The pre-flight check reserves against the maximum this call could cost (match price plus the adjudication surcharge), so a balance that cannot cover the worst case is refused before any work starts. - HTTP 403: a trial account (no API access at all), a plan whose entitlement lookup failed, adjudicate=true on the Free tier (code API_TIER_NOT_ALLOWED ), or a monthly party screen cap already reached (Free Developer allows 10 per month, code PARTY_SCREEN_LIMIT_REACHED ). - HTTP 429: too many requests. Two independent windows apply on top of your tier's general rate limit: a per endpoint requests-per-minute cap (Free 2, Pay As You Go 10, Scale 30, Enterprise 60), code RATE_LIMITED , and a distinct-names-per-day cap, code DISTINCT_NAMES_LIMIT_REACHED . Re-screening a name you already screened today does not count against the distinct names cap. Additional abuse protections apply; contact support for a legitimate high-volume or shared-IP integration. Both carry a Retry-After header. - HTTP 503: the entitlement or plan lookup failed and the request is refused rather than being let through. #### DPDP: purpose, logging and takedown purpose is mandatory on every call. DPDP requires stating why a named person is being screened before we process the name, and your stated purpose is stored in this call's audit log alongside entityType, name length and match count, purely for accountability. The searched name itself, its aliases, identifiers, address and known persons are never written to any log: only lengths and counts are, the same discipline the internal party search this endpoint is built on already follows. Every result is drawn from public court records, which are subject to correction and removal. A party can ask for a case to be withheld from search under CourtMesh's case removal policy, and this endpoint honours that the same way every case-by-id endpoint does: a withheld case is dropped from the response and only the boolean coverage.someRecordsWithheld says so. POST ### /party/screen/batch 100 per matched item, 20 per no matchMeteredUp to 25 items Screens up to 25 names in one call, for onboarding a batch of customers or counterparties in one pass rather than 25 round trips. Pricing is per item on the exact schedule as the single endpoint: a matched item costs ₹10.00, a genuine no match costs ₹2.00. There is no adjudication pass here: adjudicate must be false or omitted, so send individual POST /party/screen calls for a name that needs the LLM pass. Not available on the Free tier at all (HTTP 403, API_TIER_NOT_ALLOWED). Request body FieldTypeRequiredNotes itemsarrayYes1 to 25 items. Each item takes the same fields as a single POST /party/screen call: name (required), and the optional clientRef, aliases, entityType, identifiers, address, knownPersons, court, since, limit and displayThreshold. items[].clientRefstringNoYour own identifier for this item, echoed back on its result so you can match responses to requests without relying on array order. items[].namestringYesThe person or company name to screen. Same 2 to 200 character rule as the single endpoint. purposeenumYesTop level, applies to every item in the batch. Same six values as the single endpoint; still mandatory under DPDP. entityType"person" | "company"NoTop level default applied to any item that does not set its own entityType. An item may still override it. adjudicatebooleanNoMust be false, or omitted. The batch endpoint does not run the LLM adjudication pass; send single POST /party/screen calls for names that need it. #### Partial failure is per item, not per call A malformed item (a bad identifier, an unresolvable name) never fails the whole batch. Its result carries ok: false with an error object, every other item is still screened, and only the items that actually completed are counted toward meta.creditsCharged. clientRef and index are both present on every result so you can line results up with the request even when some are dropped for exceeding the distinct-names cap, reported as meta.truncated and meta.truncatedReason. RequestResponseCap reached curl -X POST https://research.courtmesh.ai/api/v1/prod/party/screen/batch \ -H "X-API-Key: cm-YOUR_KEY_HERE" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: onboarding-2026-09-18-run-1" \ -d '{ "purpose": "kyc", "entityType": "company", "adjudicate": false, "items": [ { "clientRef": "cust-1042", "name": "Northwind Traders Private Limited", "identifiers": { "cin": "U74999DL2015PTC123456" } }, { "clientRef": "cust-1043", "name": "Rambaksh Enterprises" } ] }' #### Errors - HTTP 400: a validation failure, an empty or over 25 item items array, or purpose left out at the top level. - HTTP 402: the pre-flight reservation could not cover reserving every item at the matched rate ( 100 credits times the item count). - HTTP 403: API_TIER_NOT_ALLOWED on the Free tier, or PARTY_SCREEN_LIMIT_REACHED when your remaining monthly allowance is short of what the batch needs; the whole batch is refused before any item runs, never a partial charge. - HTTP 409: an Idempotency-Key conflict, see the Idempotency section below. - HTTP 429: the same per endpoint rate limit and distinct-names-per-day cap as POST /party/screen apply across every item in the batch, not per item. PreviousTimeline NextCoverage and reference --- # Coverage & Reference | API Reference Guide | CourtMesh URL: https://courtmesh.ai/docs/api/coverage-and-reference API Reference Guide menuOn this page API Reference Guide # Coverage and reference Public, no key endpoints: corpus coverage and freshness, court and case type reference data, and service health. Coverage and reference endpoints No API key required for any endpoint on this page. GET ### /health 0 creditsNo key required A liveness probe. No authentication and no rate limit tied to your account, so you can point your own monitoring at it. Note that it does not use the standard envelope. RequestResponse # No API key required. This is the only unauthenticated endpoint. curl https://research.courtmesh.ai/api/v1/prod/health #### ?deep=1 : an actual dependency check The plain form above never touches the backing services: it answers the moment the process is up. Add ?deep=1 to actually check each core and optional service, each bounded to a short timeout, and get back version, commit and a checks object naming each dependency by role. The database and search index are core dependencies: either one failing flips the top level status to unhealthy and the response to HTTP 503. The semantic index, cache and identity service are optional: their own check can report ok: false without changing the HTTP status, since search and case reads keep working without them (semantic search and live standing checks degrade instead). Use the plain form for a load balancer's frequent health check and the deep form for an occasional real readiness probe, not the other way round: it is slower by design. RequestResponse curl "https://research.courtmesh.ai/api/v1/prod/health?deep=1" GET ### /reference/courts 0 creditsNo key required The court hierarchy the search endpoints accept for their court filter, read from the same JSON files that back the in-app search filter sidebar, so this endpoint can never drift from what the keyed search endpoints actually accept. Public: no key, protected by a shared IP keyed rate limit rather than an account limit. Cached for an hour with an ETag; send If-None-Match to get a 304 instead of the body. RequestResponse # No API key required curl https://research.courtmesh.ai/api/v1/prod/reference/courts GET ### /reference/case-types 0 creditsNo key required The case type taxonomy the search endpoints accept for their caseType filter. Same public, cached, ETag'd shape as GET /reference/courts above: read this before you build a filter UI against case type, rather than hard coding a guessed list of codes. RequestResponse # No API key required curl https://research.courtmesh.ai/api/v1/prod/reference/case-types GET ### /coverage FreeNo key required Corpus coverage and freshness, by court and by year, refreshed from the search index every few hours and cached at the edge. This is the "check our numbers before you buy" endpoint: no API key, no rate limit tied to your account, so a prospective buyer or a monitoring job can call it cold. The same data backs the public coverage page. #### Reading the response - A record is any case CourtMesh has indexed from a court registry: parties, dates, status, docket. documentBearing and statusOnly are optional fields, omitted from the response by default. When published, documentBearing counts records where we hold the order or judgment document, never a claim that its text is indexed or full text searchable; the rest are statusOnly , registry metadata with no document on file yet. total always equals documentBearing plus statusOnly whenever the split is published. - districtCourts is one rolled up row, not one row per district: the index carries no state field to group on yet. - businessDaysBehind can be null when a court has no recent activity to measure freshness against. - The response is cached for meta.cacheTtlSeconds (21,600 seconds, 6 hours) and served with Cache-Control: public, max-age=300 , plus CORS for courtmesh.ai and the marketing site, so you can call it straight from a browser. - meta.snapshotAgeSeconds is how long ago the underlying count was computed; meta.cacheAgeSeconds is how long ago this particular cached response was served. They differ whenever a stale cache entry is still being served while a fresh snapshot computes behind it. meta.stale is true only when the snapshot is old enough that a refresh is overdue; treat it as a hint to retry shortly, not an error. meta.corpusNote is a one line, human readable restatement of the documentBearing/statusOnly definition above, safe to surface directly in a UI. The response never includes an internal job field or other operational diagnostics; treat any field outside this documented shape as not part of the contract, even if you see one in a raw response, and do not build against it. RequestResponse # No API key required. curl https://research.courtmesh.ai/api/v1/prod/coverage #### Errors - HTTP 503, cold source: the underlying coverage read failed and no cached snapshot survives to serve stale. This is the only failure mode; there is no 401 or 429 tied to your account, because there is no account involved. // HTTP 503, the coverage source is cold and unreachable and no // cached snapshot survives to serve stale. { "success": false, "error": "Coverage data is temporarily unavailable. Please try again shortly." } PreviousLitigation check NextUsage, identity and audit --- # Account | API Reference Guide | CourtMesh URL: https://courtmesh.ai/docs/api/account API Reference Guide menuOn this page API Reference Guide # Account Check your usage, confirm which key and account you are calling as, and pull the audit log for your organisation or yourself. Account endpoints Identity, usage and audit. Neither GET /me nor GET /audit is metered. GET ### /usage 0 creditsUnmetered Your own tier, balance, per tier limits and per endpoint call counts for the current billing period. Checking it never itself burns a credit: the handler passes { skip: true } to the billing layer, the same convention GET /me and GET /audit use. Requires a key like every other account-introspection endpoint on this page; it is unmetered, not public. RequestResponse curl https://research.courtmesh.ai/api/v1/prod/usage \ -H "X-API-Key: cm-YOUR_KEY_HERE" GET ### /me Unmetered Identity behind the key: user identifier, email, name, role, and the organisation identifier when the account belongs to one. Call it first if you plan to use /audit, which needs one of those two identifiers. The organizationId field is absent, not null, for accounts with no organisation. Currently unmetered. This endpoint is not in the priced endpoint list, so it settles at zero credits. It still needs a valid key, still passes the Enterprise entitlement gate, and still consumes a rate limit slot. Treat the zero price as today's behaviour rather than a commitment. RequestResponse curl https://research.courtmesh.ai/api/v1/prod/me \ -H "X-API-Key: cm-YOUR_KEY_HERE" GET ### /audit Unmetered Your own API usage log: every call with its endpoint, method, status code, response time, credits deducted, client address and user agent, plus a summary block and a top endpoints breakdown. You must pass either organizationId or userId; sending neither is a validation error. Currently unmetered, on the same footing as /me: absent from the priced endpoint list, so it settles at zero credits while still requiring a valid key and consuming a rate limit slot. Query parameters FieldTypeRequiredNotes organizationIdstringNoOrganisation to report on. Either this or userId is required; sending neither returns HTTP 400. You must belong to the organisation you ask about. userIdstringNoUser to report on. You can only ask about yourself unless you are an ORG_ADMIN and the user is in your organisation. limitnumberNoRecords per page, default 50, maximum 200. offsetnumberNoPagination offset, default 0, cannot be negative. startDatestringNoISO 8601 timestamp, for example 2026-01-01T00:00:00Z. A plain date is rejected with HTTP 400. endDatestringNoISO 8601 timestamp, for example 2026-12-31T23:59:59Z. RequestResponse # By organisation curl "https://research.courtmesh.ai/api/v1/prod/audit?organizationId=507f1f77bcf86cd799439011&limit=50&offset=0" \ -H "X-API-Key: cm-YOUR_KEY_HERE" # By user, with a date range curl "https://research.courtmesh.ai/api/v1/prod/audit?userId=507f1f77bcf86cd799439012&startDate=2026-01-01T00:00:00Z&endDate=2026-06-30T23:59:59Z" \ -H "X-API-Key: cm-YOUR_KEY_HERE" #### Access control - You can always read your own usage - Reading another user's usage requires the ORG_ADMIN role and that user being in your organisation - Asking about an organisation requires you to be in it, and the refusal message tells you your own organisation identifier so you can correct the call - creditsDeducted is the number of credits charged for that call PreviousCoverage and reference NextSDKs and tools --- # SDKs & Tools | API Reference Guide | CourtMesh URL: https://courtmesh.ai/docs/api/sdks API Reference Guide menuOn this page API Reference Guide # SDKs and tools Available today: the REST API over HTTPS, and the hosted MCP server at mcp.courtmesh.ai, which needs nothing installed. The Node and Python client libraries and the installable MCP package are coming soon; the code samples below are previews of their shape. When in doubt about a parameter or a response shape, the pages in this reference are the source of truth, not a client's own README. Node.js courtmesh-node. Coming soon. The Node client is not published yet. In the meantime, call the REST API directly (see the endpoint pages in this reference). The snippet below is a preview of the client's shape. import { CourtMesh } from '@courtmesh/sdk'; const client = new CourtMesh({ apiKey: process.env.COURTMESH_API_KEY }); const results = await client.search.cases({ query: 'dishonour of cheque section 138', court: 'Bombay High Court', }); View source on GitHub Python courtmesh-python. Coming soon. The Python client is not published yet. In the meantime, call the REST API directly (see the endpoint pages in this reference). The snippet below is a preview of the client's shape. from courtmesh import CourtMesh client = CourtMesh(api_key="cm-YOUR_KEY_HERE") results = client.search.cases( query="dishonour of cheque section 138", court="Bombay High Court", ) View source on GitHub MCP server The hosted MCP server at mcp.courtmesh.ai is live and exposes this same corpus to Claude, Cursor and other Model Context Protocol clients, with nothing to install. See the MCP server product page for what it can do. Point any MCP client that supports a remote streamable HTTP server at the URL below and pass your CourtMesh API key as a bearer token: { "mcpServers": { "courtmesh": { "url": "https://mcp.courtmesh.ai/mcp", "headers": { "Authorization": "Bearer cm-YOUR_KEY_HERE" } Or add it from the Claude Code CLI: claude mcp add --transport http courtmesh https://mcp.courtmesh.ai/mcp \ --header "Authorization: Bearer cm-YOUR_KEY_HERE" # For a client that can only configure a URL, pass the key as a token query parameter https://mcp.courtmesh.ai/mcp?token=cm-YOUR_KEY_HERE A self hosted, installable MCP package is coming soon. Until then, use the hosted server above. View source on GitHub Postman courtmesh-postman, a ready made collection covering every endpoint on this reference. # Import directly from GitHub, or download and import manually # in Postman: File > Import > Link https://raw.githubusercontent.com/thinkscoop-technologies/courtmesh-postman/main/courtmesh.postman_collection.json View source on GitHub PreviousUsage, identity and audit --- # CourtMesh API Changelog URL: https://courtmesh.ai/indian-court-cases-api/changelog # API Changelog Every dated change to the CourtMesh API, newest first. This is the announcements page referenced in our Terms of Service. Versioning and deprecation policy What "v1" commits to, and how we tell you before something changes under you. /api/v1/prod is additive only within v1: a new endpoint, a new optional request field, or a new field on a response never removes or renames anything that already exists. Existing fields keep their type and meaning. Code written against v1 today should keep working against v1 tomorrow without a scheduled migration. A breaking change, if one is ever needed, gets a new major version and at least 90 days notice on the version it replaces. During that window the old version keeps working and carries three signals on every response: an Deprecation header, a Sunset header naming the date it stops answering, and a Link header with rel="deprecation" pointing at the migration notes for the replacement. We also post the change on this page and email active API users directly, the same commitment made in Section 6 of our Terms of Service. v1.2.02026-09-18 Request ids, idempotency keys, batch screening, reference data - One request id on every response (X-Request-Id header, requestId in every error body) and one error envelope across the whole API: { success: false, code, message, error, requestId }. - New GET /usage: your tier, balance, per tier limits and per endpoint call counts for the current period, unmetered. - GET /health accepts ?deep=1 for a deeper dependency check, returning version and a per dependency checks object; a hard dependency failure now answers HTTP 503. - New Idempotency-Key request header on POST /party/screen, POST /party/screen/batch, POST /cases/{id}/analyze, POST /cases/{id}/analyze-consolidated and POST /request-timeline: a replayed key and body returns the stored response with no second charge; a reused key with a different body is refused. - New POST /party/screen/batch: screen 1 to 25 names in one call, priced per item on the same schedule as a single screen. - New public, no key GET /reference/courts and GET /reference/case-types, the exact taxonomy the search endpoints accept. - API keys can now be rotated (POST /api/settings/api-keys/{id}/rotate) with a 24 hour overlap window, and deleting a key is a soft revoke that keeps its call history intact. - Organisations can enable per IP allowlisting for their API keys, with an opt in strict mode. - Free tier scope change: no AI analysis endpoints at all (previously a small monthly allowance), and the litigation check and batch screening endpoints carry an explicit monthly cap. v1.1.02026-09-18 Litigation check, coverage, consolidated analysis pricing - New POST /party/screen: confidence scored litigation check against the corpus, with an optional LLM adjudication pass. - New public, no key GET /coverage: corpus coverage and freshness by court and year, cached and refreshed every few hours. - POST /cases/{id}/analyze priced at 100 credits. - Free tier AI lockout: no AI analysis generation or reads on the Free tier at all, full stop. v1.0.0Initial release Baseline: twelve endpoints - Initial public release: judges/search, search/cases, search/cases/semantic, cases/{id}, cases/{id}/related, cases/{id}/analysis, cases/{id}/pdf, cases/{id}/analyze, request-timeline, get-timeline/{requestId}, me and audit. Explore further API documentationFull endpoint reference, authentication, and code samples.API securityHosting, key handling, audit logging, retention and subprocessors.API pricingPer endpoint credit prices and the self serve credit ladder.Indian court cases APIOverview, quickstart and the complete endpoint surface. --- # CourtMesh API Security URL: https://courtmesh.ai/indian-court-cases-api/security # API Security Where CourtMesh API security stands today, stated plainly: hosting and residency, key handling, audit logging, retention, breach process and subprocessors. ### On our roadmap Formal security certification is on our roadmap, and we are happy to walk an Enterprise security team through our current controls, complete a vendor security questionnaire and sign a security addendum as part of that conversation. ### In place today - India hosting, with data residency in India - TLS in transit; API keys hashed and shown once, never stored in the clear - Per account audit log, plus a request id on every response for support to trace - Organisation level IP allowlisting, opt in through support - A live right to be forgotten pipeline: our case removal and de-indexing process running in production A data processing agreement is available on request, and we will complete a CAIQ or SIG style vendor questionnaire and sign a security addendum with incident response terms as part of an Enterprise conversation. Request records Retained 90 days by default, then purged. Billing transactions Billing transaction records are purged on a time to live basis rather than kept indefinitely. Audit hits Per account API call records backing GET /audit and GET /usage are retained for billing, so your own usage history stays available to you. We notify affected customers within 72 hours of confirming a breach that affects their data or their account. That clock starts at confirmation, not at first suspicion, because an unconfirmed alert is not yet something we can respond to responsibly. What we send at that point: what is known so far, what we have already done, and what you should do on your side. A fuller report follows once the investigation is complete. CourtMesh API subprocessorsSubprocessorPurposeRegion AWSHosting, storage and computeap-south-1 (Mumbai) OpenAIAI analysis and adjudication, under a zero retention API usage agreementAPI, not self hosted RazorpayPayment processing for credit purchases and subscriptionsIndia support@courtmesh.ai for every plan, including security questions and incident reports. Enterprise customers get a named contact in addition to this address. No SLA is published today, stated plainly rather than implied by silence. See Request ids and support in the API documentation for what to include when you write to us about a specific call. --- # CourtMesh Pricing | Free trial, bundle, or per-app plans URL: https://courtmesh.ai/pricing 14 days free · No credit card # One platform, three apps. Free for 14 days. Full Professional access to Research + My Cases + My Agreements, plus 5,000 bonus AI credits. Pick a plan when the trial ends - or keep using Research free, forever. Start free trial Talk to sales Official government sources No credit card for trial Cancel anytime GST-inclusive pricing ## Choose your plan Three simple options. Switch, upgrade, or cancel anytime. MonthlyYearlySave 33% Free (Post-Trial, Lifetime) Free/forever - 10 searches/day - Keyword search only - no semantic, no AI - Supreme Court & High Court judgments only - No PDF download - No AI features - No Timeline in case - AI Analysis Hidden, Only Overview available - Judgments and Orders: last 30 days only Sign up free Most Popular Professional Research Professional + My Agreements Professional + My Cases Professional ₹4,999/mo - 1,75,000 monthly AI credits (pooled across apps) - 1 seat - Semantic Search - Research API Access - My Agreements Playbooks - eCourts Sync - Pooled Credits Start 14-day free trial Enterprise Custom enterprise package Custom - Custom AI credit pool - Unlimited seat s - Pooled Credits - SSO - IP Whitelisting - Audit Logs Talk to sales ### Only need one app? See per-app Starter & Professional pricing All app plans Research AI search across Supreme, High & District Court judgments My Cases Real-time case tracking & matter management My Agreements Contract lifecycle, playbooks & e-signatures ### Need more AI credits? Top-up packs (one-time, never expire) ## Pricing FAQ ### What happens after my free trial? ### Can I switch plans later? ### What are AI credits? ### Can I cancel anytime? Developers ### Pricing the API rather than seats? The plans above cover people using CourtMesh in the browser. If you are querying the corpus from your own software, API access is metered on requests instead of seats and is billed separately. View API pricing See what the Indian court cases API covers, read the API documentation, or connect an AI assistant through the MCP server. ### Need 2+ seats, SSO, or custom integrations? We build custom packages for law firms, in-house teams, bar associations & legal departments. Talk to sales ### Not sure what each app does? Legal research softwareKeyword and AI search across the court record.Case managementMatters, hearings, deadlines, invoicing.Contract lifecycleIntake to renewal, with counterparty screening.Court case trackingWatch a party, hear about new filings. --- # Per-App Pricing | CourtMesh Research, My Cases & My Agreements URL: https://courtmesh.ai/pricing/apps Back to bundles (better value for 2+ apps) # Per-app pricing Pick one app at a time. Prices are in INR (GST-inclusive). Need 2+ apps? The bundle is cheaper. MonthlyYearlySave 33% Research My Cases My Agreements Bundles Free (Post-Trial, Lifetime) Free/forever - 10 searches/day - Keyword search only - no semantic, no AI - Supreme Court & High Court judgments only - No PDF download - No AI features - No Timeline in case - AI Analysis Hidden, Only Overview available - Judgments and Orders: last 30 days only Sign up free Recommended Professional ₹1,499/mo - Unlimited semantic + keyword search - All courts + Tribunals - Ask Anything: AI chat (full depth) - Full AI analysis: issues, arguments, statutes, precedents, case strength - 1,00,000 AI credits/month - PDF case/judgment download: Unlimited - Similar cases finder - API access: 100 calls/day - Priority email + chat support - Judgments and Orders: 1950-till now Choose Professional ### Need Enterprise Research ? Unlimited seats, SSO, pooled credits, dedicated AM. Talk to sales ## Research features FeatureFreeProfessionalEnterprise Search typeKeyword onlySemantic + keyword + advanced filtersAll CourtsSC + HCAll courts + TribunalsAll AI case chat✗✓ (full depth)✓ (advanced) Ask Anything (general AI)✗✓✓ AI search (semantic)✗✓✓ AI analysis depth - Full (issues, arguments, statutes, precedents, strength)Full + advanced models AI credits/month01,00,000Custom pool PDF case download✗Unlimited, cleanUnlimited, white-label Similar cases✗✓✓ Saved search alerts✗UnlimitedUnlimited API access✗100 calls/dayUnlimited Admin/usage analytics✗✗✓ SSO + IP whitelist✗✗✓ Audit logs✗✗✓ Judgments and OrdersLast 30 days1950–present1950–present Seats11Unlimited SupportNonePriority email + chatDedicated AM ### Multi-seat or custom needs? Our sales team will package the right mix of apps, seats, and credits for your team. Talk to sales --- # Contact CourtMesh Sales | Talk to the Team URL: https://courtmesh.ai/contact Talk to Sales # Enterprise Sales & Support Connect with our enterprise sales team for custom pricing, API access, and dedicated support. Share your requirements and we'll route your inquiry directly to hello@courtmesh.ai. Organization Full name Work email Phone (optional) Expected use-case Team size Monthly API calls Monthly AI interactions Context Send message ### Direct line hello@courtmesh.ai We reply within one business day. ### Enterprise Clients Built for law firms, corporate legal teams, NBFCs, banks, insurance companies, and legal tech startups across India that need reliable court data infrastructure. ### Office hours Mon to Fri, 9:00 to 19:00 IST ### Security & procurement NDAs, DPAs, vendor onboarding, and custom compliance docs delivered in 1-2 business days. --- # CourtMesh Product Demo | See the Platform in Two Minutes URL: https://courtmesh.ai/demo Product demo # See the whole platform in two minutes Research, your matters and your agreements, recorded in the live product. No mockups. 2:17 · recorded in the live product ## Jump to what you need Every chapter is a real screen from the product. 0:08One workspace Research, your matters and your agreements, behind one login 0:18Search the record 31 crore judgments and orders, searched in plain English 0:32Read a judgment Holding, issue and provisions, pinpointed to the page 0:46The research agent A structured note, every proposition tied to a case it retrieved 1:00Acts and rules 49,487 instruments, searchable down to the section 1:09Your matters Hearings and orders synced straight from eCourts 1:23Drafting A first draft that already knows the facts 1:34Agreements and playbook Every incoming draft scored against the position you take 1:51Counterparty screening Litigation and insolvency checks before you sign 31,56,76,241 court records Supreme Court, every High Court, district courts and tribunals, in one search. 49,487 acts and rules Two lakh thirteen thousand sections, searchable down to the provision. 3 apps, one login Research, your matters and your agreements, in a single workspace. ## See it on your own matters Start free, or have us walk your team through it on a call. Start freeTalk to sales --- # About CourtMesh | AI-Powered Legal Research for India URL: https://courtmesh.ai/about # About CourtMesh Last updated: January 1, 2025 CourtMesh is an enterprise-grade legal data platform that aggregates 315.6 million+ Indian court judgments from the Supreme Court of India, all 25 High Courts, District Courts, and Tribunals. CourtMesh is built to be the court data infrastructure for law firms, corporate legal departments, and legal technology companies across India. Indian court data has historically been fragmented across numerous government portals with inconsistent publication practices and access methods. CourtMesh was created to solve this infrastructure challenge by providing a unified aggregation platform that consolidates official court data with enterprise-grade reliability, comprehensive API access, and advanced search capabilities. ## Our Mission: Enterprise Legal Data Infrastructure India's legal system generates millions of court judgments annually across the Supreme Court, 25 High Courts, District Courts, and Tribunals, published through dozens of different government portals with varying formats, update schedules, and access methods. For enterprise legal operations - whether law firms managing hundreds of cases, corporate legal departments conducting due diligence, or legal tech companies building intelligence platforms - this fragmentation creates significant operational challenges. CourtMesh was founded to provide enterprise clients with reliable, consolidated access to Indian court data. We aggregate judgments directly from official government sources through automated collection infrastructure, providing what we believe to be the most comprehensive unified court data platform available. Our platform combines: - Comprehensive Aggregation: Daily automated collection from Supreme Court portals (main.sci.gov.in, scr.sci.gov.in, verdictfinder.sci.gov.in, and others), all 25 High Courts, eCourts services, and AWS Open Data repositories - Enterprise Infrastructure: Scalable APIs, reliable uptime, and integration capabilities for workflow automation - Advanced AI: Semantic search, case analysis, similarity matching, and natural language processing for research efficiency - Security & Compliance: Designed for DPDP Act 2023 readiness, hosted in India, with AES-256 encryption at rest and TLS 1.3 in transit CourtMesh is built for law firms, corporate legal teams, NBFCs, insurance companies, and legal tech startups that need reliable Indian court data infrastructure. Our vision is to provide the foundational data layer that powers legal operations and legal technology innovation across India. ## Who We Are CourtMesh is an enterprise software company specializing in legal data infrastructure. Our team combines deep expertise in distributed systems engineering, legal domain knowledge, and enterprise software development. We focus exclusively on serving enterprise clients with mission-critical requirements for Indian court data access - including large law firms, financial institutions, and legal technology companies. We provide the infrastructure that powers their legal research, compliance monitoring, litigation analytics, and intelligence platforms. Why Enterprise Clients Choose CourtMesh: - Most comprehensive aggregation from official sources available - SLAs available on enterprise plans, with dedicated support - Scalable API infrastructure for high-volume operations - Continuous investment in coverage expansion and data quality - Security and compliance-ready architecture We continuously invest in expanding coverage, improving data quality, and enhancing platform capabilities. For enterprise inquiries, partnership opportunities, or technical support, please contact us at hello@courtmesh.ai. Important: While we strive to provide comprehensive aggregation from official sources, data availability depends on source court publication practices. See our General Disclaimer for complete terms. Thank you for trusting CourtMesh as your Indian court data infrastructure partner. --- # FAQs | CourtMesh - Frequently Asked Questions URL: https://courtmesh.ai/faq Help Center # Frequently Asked Questions Find answers to common questions about CourtMesh, our features, pricing, and more. ## Categories ### About CourtMesh 4 question s ### Getting Started 1 question ### Search & Discovery 7 question s ### AI Features 4 question s ### Credits & Billing 2 question s ### API Access 2 question s ### My Cases 2 question s ### Privacy, Security & Legal 3 question s ### Support 1 question ### Still have questions? Can't find what you're looking for? Get in touch with our support team. Contact Support ## Categories ### Still have questions? Can't find what you're looking for? Get in touch with our support team. Contact Support ## About CourtMesh 4 questions in this topic ### What is CourtMesh? ### Who is CourtMesh for? ### What courts are covered? ### Does CourtMesh provide legal advice? Developer questions ## Asking about API access? Questions about authentication, rate limits, response schemas, and bulk extraction are answered in the developer documentation rather than here. These are the pages worth starting from. Indian court cases APIWhat the API covers and which courts are included.API documentationAuthentication, endpoints, filters, and code samples.API pricing and rate limitsWhich plans include API keys and how quotas are counted.MCP serverConnect Indian case law to Claude and other AI agents. --- # Blog | Legal Tech Insights & Compliance Guides | CourtMesh URL: https://courtmesh.ai/blog CourtMesh Blog # Insights for Legal Professionals Expert perspectives on compliance, legal technology, and AI-powered research - helping you navigate India's evolving legal landscape. Legal Research 19 September 2026 13 min read ## Best AI Legal Research Tools in India (2026) | CourtMesh A sourced comparison of Indian legal research platforms: Indian Kanoon, SCC Online, Manupatra, CaseMine, vLex, LexisNexis, Jhana, LegitQuest and CourtMesh. Read full article ## More Articles Practice Management 19 September 2026 13 min read ### Best Case Management Software for Lawyers in India (2026) | CourtMesh A sourced comparison of legal case management software used in India: Provakil, Legistify, LegitQuest, MyKase, LegalBird, Clio, CaseFox and CourtMesh. Read article Legal Data 18 September 2026 9 min read ### Building Software Over Indian Court Data | CourtMesh Six assumptions from cleaner datasets that break on Indian court records: case identity, names, date fields, keyword versus vector search and pagination. Read article AI & Legal Research 8 August 2026 11 min read ### Are AI Legal Answers Reliable in India | CourtMesh What AI assistants get right about Indian law, why citations get fabricated, and a verification workflow you can run in minutes before you rely on an answer. Read article Litigation 8 August 2026 12 min read ### Summons Service and Proof Tracking | CourtMesh Modes of service under Order V of the CPC, what proof of service requires, substituted service strategy, and how to track service so a suit does not stall. Read article Legal Data 7 August 2026 14 min read ### Judge Search API and Bench Data | CourtMesh A judge name endpoint does one narrow thing well. How to use it to resolve names, filter searches and read bench composition, and which uses to refuse outright. Read article Legal Research 7 August 2026 15 min read ### Legal Research Memo Writing Guide | CourtMesh A research memo template seniors actually use: question presented, short answer, authority table, contrary authority and honest confidence markers. Read article Legal Data 7 August 2026 10 min read ### Open Court Data in India | CourtMesh The current state of judgment and metadata openness across Indian court levels, the anonymisation tensions, and the case for machine-readable court data. Read article Corporate & In-House 7 August 2026 13 min read ### Shareholder Disputes at NCLT | CourtMesh Qualifying thresholds under Section 244, the remedies tribunals actually grant, and how to research outcomes in comparable shareholding fact patterns. Read article Judiciary 5 August 2026 11 min read ### Court Records and RTI in India | CourtMesh Courts are public authorities, but for judicial records the copying application usually beats RTI. What RTI reaches, and the faster route for each record type. Read article Litigation 5 August 2026 10 min read ### Reconstructing Lost Court Records | CourtMesh What to do when a court file is lost or damaged: the reconstruction process, what you will be asked to produce, and the private records that make it routine. Read article Legal Data 4 August 2026 15 min read ### Case Timeline API for Orders Data | CourtMesh Two ways to build a case timeline over an API: a fast synchronous call over stored documents, and an async job that pulls orders upstream. When to use each. Read article Corporate & In-House 4 August 2026 12 min read ### Legal Tech Stack for Indian GCs | CourtMesh A capability-first map of research, contracts, matters and compliance tooling against team size, with honest guidance on what to skip below certain scale. Read article Judiciary 4 August 2026 10 min read ### Lok Adalats Explained | CourtMesh The statutory basis of lok adalats, the finality of the award, the single-day disposal numbers, and what actually gets settled as opposed to cleared. Read article Legal Research 4 August 2026 13 min read ### Headnotes vs Full Judgments | CourtMesh Why an editor's headnote is not the law, how headnote reliance misstates holdings, and a triage rule for when a full read of the judgment is required. Read article Litigation 1 August 2026 11 min read ### Court Vacations and Urgent Filings | CourtMesh How vacation benches work in Indian courts, what qualifies as urgent, and how Section 4 of the Limitation Act interacts with a court being closed. Read article Litigation 1 August 2026 12 min read ### Plea Bargaining in India Explained | CourtMesh Plea bargaining in India explained: the statutory scheme, which offences qualify, the sentencing framework and why uptake stays low. Read article Corporate & In-House 31 July 2026 15 min read ### Contract Approval Workflow Design | CourtMesh Legal teams create their own backlog by reviewing every contract the same way. How to design threshold-based routing, escalation and SLAs that hold. Read article Legal Data 31 July 2026 15 min read ### Free Court Data API Options in India | CourtMesh An honest survey of free routes to Indian court data: eCourts, NJDG, court websites and free API tiers. What you can genuinely build, and what you cannot. Read article Judiciary 31 July 2026 11 min read ### Revenue Courts and Land Disputes | CourtMesh The tahsildar to board revenue hierarchy, its fraught boundary with civil courts, and why land litigants so often fight in both systems at once. Read article Legal Research 31 July 2026 15 min read ### Writ Jurisdiction Research Article 226 | CourtMesh A research method for the threshold questions that decide Article 226 writs: alternative remedy, territoriality, amenability and delay. Read article Litigation 29 July 2026 12 min read ### Legal Notice Drafting Guide | CourtMesh Statutory notice requirements in Indian practice, drafting a notice for its future evidentiary use, proof of service, and reply strategy when you receive one. Read article Legal Data 29 July 2026 10 min read ### Disposed Meaning in Court Cases | CourtMesh Why the disposed status says nothing about who won, how to read disposal nature, and the many ways disposed does not mean the dispute is actually over. Read article Compliance 28 July 2026 26 min read ### Data Breach Legal Obligations India | CourtMesh CERT-In and DPDP notification duties run on different clocks. What Indian in-house teams must do, preserve and report in the first 72 hours of a breach. Read article Legal Research 28 July 2026 14 min read ### IP Case Law Research in India | CourtMesh IP case law research India: how to work the concentrated High Courts, interim injunction jurisprudence, commercial suit procedure, and the post-IPAB landscape. Read article Judiciary 28 July 2026 11 min read ### Labour Courts and Industrial Tribunals | CourtMesh The existing labour adjudication machinery, how the labour codes reshape forums and reference procedures, and how to track where pending disputes land. Read article Legal Data 28 July 2026 19 min read ### Legal Data API Credit Pricing | CourtMesh Credit wallets, AI calls, cached reads and expiry terms decide what a legal data API really costs. How to read the meter before you build on it. Read article Litigation 25 July 2026 10 min read ### Get a Certified Copy of a Court Order | CourtMesh How to get a certified copy of a court order in India: the copying section process, the endorsements that matter, and why the application date is critical. Read article Practice Management 25 July 2026 10 min read ### Settlement and Mediation Strategy India | CourtMesh When Lok Adalat, mediation or judicial settlement fits, how finality differs between them, and using comparable outcome research to anchor a settlement number. Read article Compliance 24 July 2026 19 min read ### CCI Orders and Competition Compliance | CourtMesh What Competition Commission and NCLAT outcomes reveal about real risk in pricing, distribution and platform conduct, and how to build training on Indian orders. Read article Legal Research 24 July 2026 12 min read ### NGT and Environmental Case Research | CourtMesh How to research environmental litigation in India: NGT jurisdiction and order streams, the doctrinal backbone from the Supreme Court, and the compliance record. Read article Judiciary 24 July 2026 12 min read ### Family Courts in India Explained | CourtMesh What the Family Courts Act changed about procedure and representation, and how matrimonial jurisdiction splits between family courts and magistrates. Read article Practice Management 24 July 2026 18 min read ### Court Data Integration for Firm Software | CourtMesh Where court data belongs in intake, conflicts, matter tracking and document management, and how to sync it inside a 10 requests per minute budget. Read article Litigation 22 July 2026 13 min read ### Decree vs Order vs Judgment | CourtMesh The difference between decree, order and judgment under the CPC: the definitions, why appealability differs and how the wrong label misroutes an appeal. Read article Litigation 22 July 2026 12 min read ### Interim Relief and Injunction Strategy | CourtMesh Pleading the prima facie case, balance of convenience and irreparable injury triad properly, plus timing and ex parte strategy in Indian injunctions. Read article AI & Legal Research 21 July 2026 15 min read ### AI Case Analysis API for India | CourtMesh How AI analysis endpoints for Indian judgments behave: read before you write, when to trigger a run, what the payload holds, and what still needs reading. Read article Legal Research 21 July 2026 11 min read ### Defamation Case Law Research India | CourtMesh Researching defamation in India across the civil and criminal tracks, the interim injunction stage where most disputes are decided, and the online questions. Read article Corporate & In-House 21 July 2026 19 min read ### Corporate Insurance Claim Litigation | CourtMesh Repudiation patterns, forum choice after Harsolia Motors, and why researching decided cases on the same policy wording changes settlement dynamics. Read article Judiciary 21 July 2026 13 min read ### Juvenile Justice Boards Explained | CourtMesh The composition of a Juvenile Justice Board, the preliminary assessment for heinous offences, and why juvenile records are deliberately kept out of case search. Read article Litigation 18 July 2026 11 min read ### Appellate Paper Book Preparation | CourtMesh What goes into an appellate paper book, in what order, the registry objections that recur, and how a defective record quietly costs hearings months. Read article Litigation 18 July 2026 12 min read ### Anticipatory Bail Explained | CourtMesh What is anticipatory bail in India: pre-arrest protection under Section 482 BNSS, where to apply, the conditions imposed and how long it lasts. Read article Judiciary 17 July 2026 12 min read ### Commercial Courts Act Impact | CourtMesh Evaluating the Commercial Courts Act against observable practice: timelines, summary judgment, mandatory mediation, and what would actually change speeds. Read article Corporate & In-House 17 July 2026 19 min read ### Commercial Lease Disputes India | CourtMesh Lock-in clauses, eviction realities, deposit recovery and the jurisdictional maze. A working in-house playbook for commercial lease disputes in India. Read article Legal Data 17 July 2026 16 min read ### Court Judgment Search API Filters | CourtMesh A field by field guide to filtering Indian judgment search: court, case type expansion, year and date windows, judge name matching, sorting and paging. Read article Legal Research 17 July 2026 11 min read ### Specific Performance Case Law Research | CourtMesh The 2018 amendment changed the architecture of specific performance. How to research the remedy now, and how to tell which pre-amendment precedents still apply. Read article Legal Research 16 July 2026 19 min read ### Tracking Arbitration Award Challenges in India | CourtMesh An arbitral award is rarely the end. Why you must know whether an award is under challenge before you rely on it, and how to track what happened afterwards. Read article Legal Research 16 July 2026 13 min read ### Bail Parity Precedent Research in India | CourtMesh A parity argument in a bail matter lives or dies on finding a precedent on similar facts. Why that search defeats keywords, and what does reach it. Read article Practice Management 16 July 2026 13 min read ### Cause List Tracking for Indian Lawyers | CourtMesh Every evening, a lawyer checks the cause lists to see what is listed tomorrow. Why that ritual is fragile across many courts, and how to make it reliable. Read article Practice Management 16 July 2026 17 min read ### Tracking a Case by CNR Across Its Lifecycle | CourtMesh A matter picks up a new number every time it moves. How case identifiers work in India, and how to follow one dispute through its whole life. Read article Practice Management 16 July 2026 19 min read ### Conflict of Interest Checks for Law Firms | CourtMesh A conflict missed at intake surfaces at the worst possible moment. Why conflict checking breaks as a firm grows, and how to search parties across matters. Read article Legal Data 16 July 2026 21 min read ### Consumer Commission Case Research in India | CourtMesh Consumer commissions decide a vast body of matters that most legal databases barely index. Why the gap exists, and how to research consumer jurisprudence. Read article Corporate & In-House 16 July 2026 12 min read ### Contract Lifecycle Management for Legal Teams | CourtMesh Auto-renewals trigger, notice windows close, obligations go untracked. Why contract management breaks in spreadsheets, and what actually fixes it. Read article Corporate & In-House 16 July 2026 16 min read ### Counterparty Litigation Due Diligence in India | CourtMesh Before you sign, invest, or onboard, a counterparty's litigation history is a signal no balance sheet gives you. How to assemble it across India's courts. Read article Legal Data 16 July 2026 17 min read ### District Court & Tribunal Case Search in India | CourtMesh District Court and Tribunal data is the hardest to find in India, yet it is where most litigation happens. Why the gap exists and how to work around it. Read article Litigation 16 July 2026 17 min read ### Enforcing a Decree: The Execution Problem | CourtMesh A decree in your favour is not money in your client's account. Why execution is where matters quietly die, and what tracking an execution properly requires. Read article Legal Research 16 July 2026 13 min read ### How to Find Unreported Judgments in India | CourtMesh Most judgments are never carried by a law reporter, yet they can decide your point. Why unreported decisions are hard to find, and how to locate them. Read article Practice Management 16 July 2026 18 min read ### Tracking IBC Timelines and NCLT Matters | CourtMesh Insolvency runs on statutory timelines that do not forgive slippage, across NCLT benches. Why manual tracking fails, and what a system has to surface. Read article Legal Research 16 July 2026 13 min read ### Interim Orders vs Final Judgments in Research | CourtMesh An interim order can read like settled law and be nothing of the kind. How to tell an interim order from a final judgment before you cite it. Read article Legal Research 16 July 2026 18 min read ### How to Check if a Judgment Is Good Law in India | CourtMesh How to check whether an Indian judgment has been overruled, reversed, distinguished, or superseded, and what a citation network can and cannot tell you. Read article Judiciary 16 July 2026 17 min read ### Legal Research Tools for Judicial Officers | CourtMesh Legal research for judges inverts the advocate's problem: not helpful authority but the settled position, self-consistency, and coordinate bench divergence. Read article Practice Management 16 July 2026 14 min read ### Limitation & Deadline Management for Lawyers | CourtMesh Limitation periods and hearing dates are unforgiving. A practical guide for Indian advocates on tracking deadlines across a growing docket. Read article Legal Research 16 July 2026 20 min read ### MACT Compensation Quantum Research in India | CourtMesh Quantum in a motor accident claim turns on comparable awards. Why finding genuinely comparable awards is hard, and how to research compensation properly. Read article Legal Research 16 July 2026 16 min read ### Neutral and Parallel Citations in India | CourtMesh One judgment can carry a neutral citation and several reporter citations at once. What neutral citations are, why they were introduced, and how to cite cleanly. Read article Legal Research 16 July 2026 13 min read ### Persuasive Precedent Across Indian High Courts | CourtMesh On an unsettled point, the view of another High Court is persuasive, not binding. How to find the all-India picture and use it, when nothing binds your court. Read article Corporate & In-House 16 July 2026 21 min read ### Property Title and Litigation Search in India | CourtMesh A clean title document says nothing about pending litigation over the property. How to search for disputes before a transaction, and the limits of any search. Read article Practice Management 16 July 2026 17 min read ### Real-Time Court Filing Alerts for Indian Lawyers | CourtMesh Court case alerts in India: why counsel learns late that a client has been sued, what party-name monitoring fixes, and the limits to know. Read article Legal Research 16 July 2026 13 min read ### Searching Regional-Language Judgments in India | CourtMesh Courts increasingly deliver and translate judgments in regional languages. Why that breaks search built for English, and what meaning-based retrieval changes. Read article Legal Data 16 July 2026 18 min read ### Researching RERA Orders in India | CourtMesh RERA authorities have built a substantial body of orders in under a decade, spread across state portals. Why it is hard to research, and how to approach it. Read article Legal Research 16 July 2026 14 min read ### Researching the Bench: Hearing Prep in India | CourtMesh The same argument lands differently before different benches. How advocates can research a judge's prior reasoning to prepare properly, and where the line is. Read article Legal Research 16 July 2026 14 min read ### Searching Party Names Across Indian Courts | CourtMesh A party's matters hide behind spelling and transliteration variants, initials, and entity-name drift. Why name search misses them, and how to search properly. Read article Practice Management 16 July 2026 15 min read ### Managing Section 138 Cheque Bounce Cases | CourtMesh Section 138 practices run on volume: many near-identical matters, each with its own dates. Why volume breaks manual tracking, and what a system needs. Read article Legal Research 16 July 2026 15 min read ### Section 65B Electronic Evidence Research | CourtMesh The law on electronic evidence has shifted repeatedly, and the governing statute itself has changed. Why researching it well means checking current standing. Read article AI & Legal Research 16 July 2026 17 min read ### Semantic vs Keyword Search for Indian Case Law | CourtMesh Boolean search finds documents with your words, not your idea. A practical guide to semantic vs keyword legal case search in India, and when to use each. Read article Legal Research 16 July 2026 19 min read ### Finding the Statute Version in Force on a Date | CourtMesh The provision you are citing may have been amended since the events in your matter. How to find the version in force on the relevant date, and why it matters. Read article AI & Legal Research 16 July 2026 17 min read ### How to Verify AI Legal Research Before Filing | CourtMesh AI legal research verification: why models fabricate citations, a four-step workflow to catch them, and how grounded retrieval makes checking fast. Read article Litigation 15 July 2026 12 min read ### Cognizable vs Non-Cognizable Offence | CourtMesh Cognizable and non-cognizable offence difference under the BNSS: arrest without warrant, FIR registration, investigation powers and week one. Read article Practice Management 15 July 2026 10 min read ### Multi-City Litigation Coordination | CourtMesh Briefing local counsel, standardising status reporting and keeping one source of truth when a single client's matters are scattered across Indian courts. Read article Legal Data 14 July 2026 17 min read ### Bulk Case Data Pagination Guide | CourtMesh Page and limit versus the searchAfter cursor on a 310 million record court index, plus checkpointing patterns for bulk case data pulls that run for days. Read article Corporate & In-House 14 July 2026 20 min read ### Corporate Guarantee Enforcement India | CourtMesh Coextensive liability, the discharge defences, and how insolvency law reshaped guarantor exposure. A practical review framework for GCs and credit heads. Read article Judiciary 14 July 2026 11 min read ### Gram Nyayalayas Village Courts India | CourtMesh The 2008 promise of mobile village courts, the sparse implementation reality, and what the gap teaches about access-to-justice reform in India. Read article Legal Research 13 July 2026 13 min read ### Maintenance Precedent Research India | CourtMesh A quantum research method for maintenance claims in India: income assessment jurisprudence, the guideline directions, and comparable awards across High Courts. Read article Practice Management 11 July 2026 10 min read ### Digitising a Law Practice in India | CourtMesh A staged migration plan for Indian law practices: scan-forward policy, naming conventions, and which workflows to digitise first for the fastest return. Read article Litigation 11 July 2026 14 min read ### Condonation of Delay Explained | CourtMesh Condonation of delay in Indian law: Section 5 of the Limitation Act, the sufficient cause standard, why suits are excluded and how government delay fares. Read article AI & Legal Research 10 July 2026 13 min read ### AI Agents and Court Data Tool Calling | CourtMesh How to expose Indian court search, case detail and analysis endpoints as tools to an LLM agent, with grounding rules that stop citation hallucination. Read article Judiciary 10 July 2026 10 min read ### Fast Track and Special Courts India | CourtMesh A survey of India's special court landscape, from POCSO and NIA courts to commercial courts, and what disposal data says about whether dedicated benches work. Read article Compliance 10 July 2026 18 min read ### Litigation Hold and Document Preservation | CourtMesh India has no US-style discovery, but preservation still decides cases. How to run a litigation hold, and why auto-deletion is the biggest modern risk. Read article Legal Research 9 July 2026 12 min read ### Land Acquisition Precedent Research | CourtMesh A method for land acquisition compensation research: market value determination, sale exemplar reasoning, deduction for development, and 2013 Act awards. Read article Practice Management 8 July 2026 10 min read ### Daily Board and Case Diary System | CourtMesh A concrete daily and weekly routine connecting cause lists, matter files and preparation time, scaled for a solo practitioner through to a small chamber. Read article Litigation 8 July 2026 10 min read ### Vakalatnama Meaning and Effect | CourtMesh The document that authorises an advocate to act for you: what powers a vakalatnama grants, what it does not, how it ends, and what to check before signing. Read article Legal Data 7 July 2026 14 min read ### CNR Lookup API Integration Patterns | CourtMesh Engineering patterns for using the CNR as a join key between your own systems and Indian court records, including identifier normalisation and modelling. Read article Judiciary 7 July 2026 10 min read ### Court Pendency Crisis in India | CourtMesh Disaggregating India's headline pendency number by court level, case age and case type, to show where the crisis is real and where it is definitional. Read article Compliance 7 July 2026 12 min read ### Tracking SEBI and RBI Orders | CourtMesh Enforcement orders are free compliance intelligence. How to build a monitoring practice over regulatory decisions and appellate outcomes that gets read. Read article Legal Research 6 July 2026 12 min read ### Service Law Research in India | CourtMesh How to research service matters across the CAT, State tribunals and High Courts, where fact patterns repeat and the winning authority is a close factual match. Read article Practice Management 4 July 2026 13 min read ### Litigation Billing and Fee Recovery | CourtMesh Fee structures for Indian litigation practice, GST on legal services, retainer hygiene, and how to recover professional fees when a client stops paying. Read article Litigation 4 July 2026 11 min read ### Ex Parte Orders in India Explained | CourtMesh Ex parte orders in India: interim relief versus an ex parte decree, the Order IX route to setting one aside, and the 30 day clock that runs. Read article Corporate & In-House 3 July 2026 20 min read ### Arbitration Clause Drafting Guide | CourtMesh Seat versus venue, unilateral appointment, and the pathological clauses that create satellite litigation. A drafting guide for Indian in-house counsel and GCs. Read article Judiciary 3 July 2026 10 min read ### Collegium System of Appointments | CourtMesh The constitutional text, the Judges Cases that built the collegium, the NJAC episode, and how judicial appointments in India actually proceed today. Read article Legal Data 3 July 2026 14 min read ### Litigation Analytics API for India | CourtMesh How to build honest litigation dashboards from Indian court records: which metrics the data supports, which it cannot, and the denominator problems behind both. Read article Legal Research 2 July 2026 11 min read ### Income Tax Case Law Research | CourtMesh A method for income tax case law research: ITAT benches, the jurisdictional High Court rule, assessment year discipline, and handling relitigated points. Read article Judiciary 1 July 2026 10 min read ### Challenging a Supreme Court Judgment | CourtMesh Review petitions under Article 137, curative petitions after Rupa Ashok Hurra, and what finality in the Supreme Court of India actually means in practice. Read article Practice Management 1 July 2026 10 min read ### Law Chamber Knowledge Management | CourtMesh How to turn past drafts, research memos and argument notes into a searchable chamber asset instead of files trapped on individual laptops. Read article Legal Data 30 June 2026 13 min read ### Court Data API vs Scraping eCourts | CourtMesh A sober total cost comparison of building your own eCourts scraper against using a maintained court data API, covering CAPTCHAs, format drift and legal posture. Read article Judiciary 30 June 2026 11 min read ### Court Vacations and Holidays India | CourtMesh How vacation schedules differ across the Supreme Court, High Courts and district courts, the recent calendar reforms, and how to plan filings around closures. Read article Corporate & In-House 30 June 2026 21 min read ### Director Liability in Company Cases | CourtMesh Why Indian directors get named personally in company litigation, what officer in default means, and how to monitor cases across every board you sit on. Read article Legal Research 30 June 2026 13 min read ### GST Case Law Research Method | CourtMesh A method for GST research when precedent is thin: advance rulings, High Court writ trends, mirrored State and Central provisions, and pre-GST analogues. Read article Legal Data 27 June 2026 11 min read ### Find Cases Against a Person or Company | CourtMesh The official party name search surfaces in India, what is public, and why name variants make a naive search against a company or person unreliable. Read article Practice Management 27 June 2026 12 min read ### Junior Advocate Research Workflow | CourtMesh A repeatable research pipeline for juniors in Indian chambers: scope the question, search wide, verify currency, and present with confidence markers. Read article Legal Research 26 June 2026 17 min read ### Fundamental Rights Case Law Research | CourtMesh A method for fundamental rights case law research: finding the governing formulation of a test, checking bench strength, and citing element by element. Read article Legal Data 26 June 2026 11 min read ### Judgment PDF API Download Guide | CourtMesh How to fetch Indian judgment PDFs over an API: presigned links that expire, storage hygiene, provenance discipline, and why most integrations break here. Read article Corporate & In-House 26 June 2026 20 min read ### MSME Payment Recovery Options | CourtMesh The MSMED Act gives small suppliers punitive interest and a statutory forum. Why most never use it, and how to choose between Samadhaan and a civil suit. Read article Judiciary 26 June 2026 10 min read ### Virtual Hearings in Indian Courts | CourtMesh The current reality of video hearings across Indian courts, the rules that govern them, and who gained and lost access as defaults reverted to physical. Read article Judiciary 24 June 2026 10 min read ### Writ Petition vs PIL Explained | CourtMesh Standing, purpose, Article 32 and Article 226, the five writs, and why PIL is a standing doctrine rather than a separate remedy from a writ petition. Read article Practice Management 24 June 2026 11 min read ### Managing Adjournments and Clients | CourtMesh How to report a non-event hearing honestly without eroding client confidence, what the CPC says about adjournments, and how to show real progress. Read article Corporate & In-House 23 June 2026 22 min read ### Preventing Employment Litigation India | CourtMesh Most employment disputes in India follow a few predictable patterns. The termination, PoSH and dues habits that prevent them, and why prevention pays. Read article Legal Research 23 June 2026 14 min read ### Researching Novel Legal Questions | CourtMesh Novel legal question research: how to prove there is no case on point, then build the argument from analogy, statutory scheme, comparative law and commentary. Read article Legal Data 23 June 2026 11 min read ### National Judicial Data Grid Explained | CourtMesh What the NJDG measures, how to read its dashboards critically, and the gap between aggregate court statistics and case-level judicial data. Read article AI & Legal Research 23 June 2026 12 min read ### Semantic Search API for Case Law | CourtMesh What happens inside a semantic search API call for Indian case law: filter extraction, embeddings, vector retrieval, and when it falls back to keywords. Read article Litigation 20 June 2026 11 min read ### Court Fee Calculation Mistakes | CourtMesh The recurring valuation and court fee errors in Indian filings: ad valorem versus fixed fee, consequential relief, and what a deficiency costs you. Read article Legal Research 20 June 2026 10 min read ### How to Read a Court Judgment | CourtMesh The anatomy of an Indian judgment from cause title to operative order, where non-lawyers get lost, and why you should read the last page first. Read article Legal Data 19 June 2026 12 min read ### Build a Legal Tech App on Court Data | CourtMesh A start to finish build of a small case tracker on live Indian court data: search, case detail, timeline, documents, and caching that respects rate limits. Read article Compliance 19 June 2026 15 min read ### DPDP Consent Management for Enterprises | CourtMesh Notice, consent, withdrawal and the consent ledger, translated into build or buy decisions. Why consent management is an engineering programme, not a policy. Read article Legal Data 19 June 2026 11 min read ### eCourts Project and Digital Courts | CourtMesh An honest assessment of the eCourts phases: what genuinely works, where data quality falters, and what the next phase is meant to deliver. Read article Legal Research 19 June 2026 17 min read ### Legislative History Research in India | CourtMesh A working map for legislative history research in India: bills, objects and reasons, committee reports, debates, notifications, and how courts weigh each. Read article Litigation 17 June 2026 11 min read ### Evidence Stage Management in Civil Trials | CourtMesh A working system for the evidence stage of an Indian civil trial: exhibit registers, witness scheduling, objection logs and deposition tracking. Read article Litigation 17 June 2026 16 min read ### Missing a Court Hearing in India | CourtMesh Miss court hearing consequences in India: adjournments under Order XVII, dismissal for default, the fresh suit bar and the criminal warrant escalation. Read article Legal Data 16 June 2026 12 min read ### Handling Legal Data API Rate Limits | CourtMesh Retry, backoff and queueing patterns for bulk Indian court data work, built around a real limit of 10 requests per minute per API key. Read article Corporate & In-House 16 June 2026 12 min read ### Board Reporting on Litigation Risk | CourtMesh Materiality thresholds, provisioning, and keeping a litigation register current from live court data. How to build a board report that survives scrutiny. Read article Legal Research 16 June 2026 16 min read ### Foreign Judgments in Indian Courts | CourtMesh The persuasive value of foreign judgments in India: where comparative authority is welcomed, where benches resist it, and how to frame a foreign citation. Read article Judiciary 16 June 2026 12 min read ### Indian Tribunals: Which Forum Hears What | CourtMesh A jurisdiction router for India's tribunal system: subject matter, appellate paths, and where tribunal orders can actually be researched. Read article Litigation 13 June 2026 12 min read ### Cross-Examination Preparation Method | CourtMesh A document-first method for preparing cross-examination in Indian trials: build the contradiction map from the record before you frame a single question. Read article Litigation 13 June 2026 11 min read ### How Long Civil Cases Take in India | CourtMesh Stage by stage ranges instead of a useless average, what actually consumes the time in an Indian civil case, and what a litigant can genuinely influence. Read article Legal Data 12 June 2026 14 min read ### Court Data API Key Best Practices | CourtMesh Key rotation, server side storage, per key monitoring and narrow revocation, and why a leaked legal data API key exposes strategy, not just records. Read article Legal Research 12 June 2026 14 min read ### Dissenting Opinions in Legal Research | CourtMesh Dissenting opinions research: why Indian dissents have become law, how to search for them, and how to use a minority view without overclaiming its authority. Read article Judiciary 12 June 2026 11 min read ### District Court Workload Data India | CourtMesh Filing volumes, judge strength and disposal rates at the district level: where Indian litigation actually happens, and why reform debates look elsewhere. Read article Corporate & In-House 12 June 2026 12 min read ### Outside Counsel Management Guide | CourtMesh Panel structuring, matter budgets, and independent case tracking. Why information asymmetry, not fees, is the real problem with managing external counsel. Read article Litigation 10 June 2026 11 min read ### What Is a Caveat in Indian Courts | CourtMesh What is a caveat in court: Section 148A CPC explained, what a caveat prevents, its 90 day life, where to lodge one and when filing is worth it. Read article Litigation 10 June 2026 11 min read ### Writing Effective Written Submissions | CourtMesh Structure, length discipline and proposition-plus-authority formatting for written submissions, so the document can be lifted into the judgment. Read article Legal Data 9 June 2026 16 min read ### Case Law API Response Structure Explained | CourtMesh An anatomy of a case law API payload: the success and error wrapper, pagination, identifiers, party arrays, absent dates, and what is never returned. Read article Legal Research 9 June 2026 14 min read ### Constitution Bench References Explained | CourtMesh How a constitution bench reference arises, what binds while it is pending, and how to check whether the authority you are about to cite stands referred. Read article Corporate & In-House 9 June 2026 18 min read ### In-House Legal Team Metrics | CourtMesh The metric a GC reports shapes the work the team does. How to measure legal value without vanity counts, surveillance culture, or benchmarks that do not travel. Read article Judiciary 9 June 2026 12 min read ### Supreme Court Filing Process | CourtMesh From SLP drafting through registry scrutiny, defects, diary numbers and listing. The vocabulary decoded, and why the registry stage shapes the Court's docket. Read article Litigation 6 June 2026 13 min read ### Drafting a Plaint: Structure Checklist | CourtMesh A working checklist for drafting a plaint under the CPC: cause title, cause of action, limitation, valuation, court fee, relief clause and verification. Read article Legal Research 6 June 2026 11 min read ### Find Supreme Court Judgments Free | CourtMesh Every legitimate free route to Supreme Court of India judgments, from the Court's own search and e-SCR to neutral citation, and the trade-offs of each. Read article Corporate & In-House 5 June 2026 15 min read ### Contract Repository Best Practices | CourtMesh Most CLM projects fail before they start, because the repository was never built. How to get from contracts in inboxes to a governed system of record. Read article Legal Research 5 June 2026 14 min read ### Doctrine of Precedent in India | CourtMesh The doctrine of precedent India runs on: who binds whom, bench strength, coordinate bench discipline, SLP dismissals and merger, and a hierarchy audit to run. Read article Judiciary 5 June 2026 13 min read ### High Court Jurisdictions in India | CourtMesh A working reference on the territorial reach, principal seats and benches of India's twenty-five High Courts, and the jurisdictional quirks that cost real time. Read article Legal Data 5 June 2026 17 min read ### Choosing a Legal Research API in India | CourtMesh A buyer's framework for Indian legal research APIs: corpus coverage, court breadth, pricing transparency, credit expiry and AI capability, with a scorecard. Read article Legal Data 3 June 2026 12 min read ### Check Case Status Online in India | CourtMesh How to check case status online in India using the CNR, case number, party name or filing number, and what each status label on the record really means. Read article Practice Management 3 June 2026 14 min read ### Preparing for a First Hearing Fast | CourtMesh A time-boxed protocol for mastering an unfamiliar brief in three days: record triage, limitation check, bench research, and the questions to answer first. Read article Legal Data 2 June 2026 18 min read ### Indian Court Cases API: Integration Guide | CourtMesh A working walkthrough of authenticating, searching Indian court records, fetching case detail, and handling pagination and rate limits in production. Read article Judiciary 2 June 2026 14 min read ### Indian Judiciary Structure Explained | CourtMesh The full institutional map of Indian courts, from taluka courts to the Supreme Court, and where tribunals actually sit in the appellate chain. Read article Corporate & In-House 2 June 2026 13 min read ### M&A Litigation Due Diligence India | CourtMesh How to verify a target's litigation exposure independently across Indian courts and tribunals, instead of relying on what management chose to disclose. Read article Legal Research 2 June 2026 16 min read ### Ratio Decidendi vs Obiter Dicta | CourtMesh A working method for ratio decidendi vs obiter dicta in Indian judgments: material facts, the reversal test, alternative grounds, and multi-opinion benches. Read article Compliance 8 May 2026 20 min read ### DPDP Act 2023 Compliance Guide for Law Firms in India A practical guide for law firms to prepare for the DPDP Act 2023. Understand compliance requirements, risks, and how to manage legal workflows efficiently. Read article --- # Terms of Service | CourtMesh URL: https://courtmesh.ai/terms # Terms of Service Last updated: July 15, 2026 These Terms of Service (“Terms”) are a legal agreement between you (“User” or “you”) and CourtMesh (“we,” “our,” or “us”). These Terms govern your access to and use of the CourtMesh website, API, and any related services (collectively, “the Service”). By accessing or using CourtMesh, you accept and agree to be bound by these Terms and all policies referenced herein (such as our Privacy Policy, Cancellation and Refund Policy, Public Records Policy, and General Disclaimer). If you do not agree with any of these terms, do not use the Service. ## Important notice about AI-generated content AI output must be verified against the primary source before use in any legal matter. We ground every AI answer in real judgments from official records and work continuously to reduce errors and prevent hallucination. Even so, AI can make mistakes. Your full obligations are set out in Section 11 (AI Features and Mandatory Human Verification) below, which forms part of these Terms. ## 1. Acceptance of Terms By accessing and using CourtMesh, you confirm that you have read, understood, and agreed to these Terms of Service in their entirety. Using the Service signifies your acceptance of and adherence to this agreement. You also agree to comply with any posted guidelines or rules applicable to our services, which may be updated from time to time. If you are using CourtMesh on behalf of an organization (for example, your law firm or company), you represent and warrant that you have the authority to bind that organization to these Terms. In that case, “you” and “your” will refer to the organization. If you do not agree to these Terms, you must refrain from using CourtMesh. ## 2. Changes to Terms CourtMesh may modify or update these Terms periodically. We will update the “Last updated” date at the top when we do so. In the event of material changes, we may also provide additional notice (such as a banner on the site or an email notification). It is your responsibility to review the Terms regularly. Your continued use of the Service after changes have been made constitutes your acceptance of the revised Terms. If you do not agree to a change, you should stop using CourtMesh. ## 3. Eligibility and Accounts - Eligibility: You must be at least 18 years old (or the age of majority in your jurisdiction) to create an account or use any paid features of CourtMesh. By using our Service, you represent that you have the legal capacity to enter into this agreement. If you are under 18, you may browse public areas of the site for informational purposes, but you should not provide personal information or use advanced features without parental consent. - Account Creation: To access certain features (such as personalized case alerts, saving research, or API usage), you may need to create a user account. When creating an account, you agree to provide truthful, accurate, and complete information about yourself as prompted by our registration form. You also agree to update your information if it changes, so we can maintain accuracy. - Account Security: You are responsible for maintaining the confidentiality of your account login credentials. Do not share your username or password with others. You are responsible for all activities that occur under your account. If you suspect any unauthorized use of your account or a security breach, you must notify us immediately at hello@courtmesh.ai . We are not liable for any loss or damage arising from your failure to safeguard your account credentials. - Account Sharing: Account sharing is strictly prohibited. Each account is meant to be used by a single individual or authorized user. We reserve the right to suspend or terminate accounts that are shared among multiple people or used in a manner that violates this agreement. ## 4. Subscription Plans and Payment - Free and Paid Plans: CourtMesh may offer various subscription plans, including a Free plan and paid plans with additional features (e.g., Premium or Enterprise plans). The specifics of each plan (such as access limits, number of AI credits, API access, etc.) are described on our Pricing page. By subscribing to a paid plan, you agree to pay the applicable fees and abide by any usage limits associated with your plan. - Billing and Renewal: Paid subscriptions are typically billed in advance on a periodic basis (e.g., monthly or annually), as per the plan you select. Subscription auto-renewal: UNLESS YOU CANCEL, PAID SUBSCRIPTIONS WILL AUTOMATICALLY RENEW at the end of each billing period, and you will be charged the then-current subscription fee to your provided payment method. We will inform you of any price changes or updates to plans at least 30 days in advance, in accordance with our policies. If you do not agree with a price change, you must cancel your subscription before the next billing cycle. - Cancellation: You may cancel your subscription at any time via your account settings or by contacting our support. If you cancel, your subscription will remain active until the end of the current billing period that you’ve already paid for, and will not auto-renew thereafter. However, we do not provide refunds or credits for any unused portion of your subscription period, except as stated in our Cancellation and Refund Policy or required by applicable law. (For example, if you cancel mid-month, you will retain access until the month’s end but will not receive a partial month refund.) - Refunds: Our general policy is that all charges are final and non-refundable once made. We do offer a free trial period (or a free tier) to evaluate the Service; once you transition to a paid plan, it is expected you are satisfied. In exceptional cases (such as a technical issue on our side, or if required by consumer protection law), we may, at our discretion, provide a refund or credit. Please see the detailed Cancellation and Refund Policy for more information. Note: If you dispute a charge or initiate a chargeback with your bank without contacting us first to resolve, we reserve the right to terminate your account for misuse of payment processes. - Promotions and Discounts: Any promotional offers or free trial periods must be used within the specified time. If your free trial ends and you have not cancelled, you will be converted to a paid subscription and charged according to the plan terms. Only one free trial per user/organization is allowed unless otherwise stated. Promotions (like discount codes) may have additional terms; if you use a promotion, you agree to comply with those terms. ## 5. Permitted Use and Restrictions License to Use: Subject to your compliance with these Terms, we grant you a limited, non-exclusive, non-transferable, revocable license to access and use CourtMesh for lawful purposes. This license is for personal or internal business use only. You may use our search functions, read case documents, utilize analytics, and download court judgments (where available) for research. If you have a Premium account, additional features like AI tools or bulk downloads are available as per your plan. Prohibited Conduct:You agree not to misuse the Service. In particular, you shall not: - Use CourtMesh to engage in any unlawful, illegal, or fraudulent activities. - Violate or attempt to violate the security of the site, including attempting to probe, scan, or test for vulnerabilities, or breaching authentication measures. - Scrape, harvest, or collect data from the Service in an automated way without prior authorization. Automated data extraction (scraping) is prohibited except as allowed through our official API with a valid API key (see Section 6). Normal search engine indexing of our public pages is permitted subject to our robots.txt rules, but any mass downloading of content outside the API or beyond what a human could reasonably do via a normal web browser is not allowed. - Use bots, crawlers, scripts, or other automated means to create accounts, access the Service, or generate queries, in a manner that burdens or interferes with our infrastructure. - Attempt to decipher, decompile, disassemble, or reverse engineer any of the software or components used to provide CourtMesh. - Remove or alter any copyright notices, trademarks, or other proprietary notices on the site or in the content. - Upload or transmit any viruses, malware, or harmful code, or take any action that could disable, overburden, or impair the proper working of the Service. - Resell or sub-license our services or content without permission. For example, you may not create a competing database by copying CourtMesh content, or charge others for access to CourtMesh data (except as enabled by an enterprise agreement with us). User Content: If you post or submit any content on CourtMesh (for example, comments, feedback, or if future features allow user contributions), you grant CourtMesh a worldwide, royalty-free, sub-licensable license to use, display, reproduce, and distribute that content in connection with providing the Service. You are responsible that any content you provide does not violate any third-party rights or laws. We reserve the right to remove any user-submitted content that we deem violates these Terms or is inappropriate. No Impersonation or Unauthorized Access: You must not impersonate any person or entity or misrepresent your affiliation with any person or entity while using CourtMesh. You shall not access any account that you are not authorized to access, or any non-public portions of the site. ## 6. API Usage CourtMesh offers a developer API for programmatic access to our data for authorized users and partners. Additional terms in this section apply if you use our API: - API Keys: To use the CourtMesh API, you must obtain a valid API key or credential from us. API access requires valid API keys. You are responsible for keeping your API keys secure and not sharing them publicly. All requests to our API must include your assigned credentials. You are accountable for any usage of the API through your keys, so do not embed keys in client-side code or anywhere they could be discovered. - Rate Limits: We impose rate limits and usage quotas on API requests to ensure the Service remains stable for all users. The specific rate limit (e.g., number of requests per minute) for your API access will be communicated to you (it may depend on your subscription level). You agree not to exceed these limits. If you need higher volumes, contact us about an enterprise plan. We may monitor your API usage, and if we detect excessive or abusive usage, we reserve the right to throttle your requests or suspend your API access. - API License: Subject to your compliance with these Terms and any additional API guidelines, we grant you a limited, non-exclusive, non-transferable license to use the CourtMesh API to develop, test, and integrate our legal data into your own application or workflow. This license is revocable and is meant for enhancing legal research or related purposes. We do not allow using our API to simply republish our data as-is as a competing service or to misuse it in violation of Section 5.2 above. - Attribution: If you display CourtMesh data retrieved via API in any public application or website, you must attribute the source (e.g., “Data from CourtMesh”) unless you have a separate agreement waiving this requirement. - Modifications and Deprecation: We reserve the right to modify, deprecate, or discontinue parts of the API (endpoints, response formats, etc.) with reasonable notice. We will strive to inform active API users of major changes, for example via email or our API changelog and announcements page . You are responsible for updating your integrations accordingly. We are not liable for any consequences of API changes or downtime, though we will make best efforts to maintain a stable service. - Additional Policies: All use of the API is also subject to the overall Terms of Service and Privacy Policy. Abuse of the API (such as breaching security or rate limits) may result in immediate termination of your API privileges and possibly your CourtMesh account. ## 7. Intellectual Property Rights - CourtMesh Content: The Service and all content provided on CourtMesh (except the text of public domain legal documents) are protected by intellectual property laws. This includes the compilation of the database, the website design, logos, graphics, any added commentary or analysis, and software code. CourtMesh retains all rights, title, and interest in and to the Service and its content. You are not granted any ownership of any intellectual property rights by using the Service. All trademarks, logos, and service marks displayed on CourtMesh are the property of their respective owners. You may not use any of these marks without prior written consent from the owner. - License to Judgments: The legal documents (judgments, orders, statutes, etc.) available on CourtMesh are public documents, which you are free to read and use for research or citation. However, the aggregation and arrangement of these documents on our platform is our intellectual effort. We grant you a license to use the documents for personal or internal business research. Bulk downloading or republication of a substantial part of our database requires our permission (except via the API under agreed terms). You should also credit the original source (court) when reusing any legal document content. - Feedback: If you send us feedback, suggestions, or ideas about CourtMesh (“Feedback”), you agree that we are free to use or not use such Feedback in any way for any purpose, without any obligation to you. Any improvements or modifications based on Feedback are our sole property. ## 8. Third-Party Resources CourtMesh may provide links or integrations to third-party websites, databases, or services (for example, links to court websites, or using a third-party AI model for generating answers). We do not control and are not responsible for third-party content or services. Your dealings with third parties (including lawyers or advertisers, if any, found via CourtMesh) are solely between you and that third party. CourtMesh is not liable for any loss or claim you may have against any third party. Be aware that third-party services have their own terms and privacy policies. For example, if we integrate an AI service or analytics service, your use of those features may be subject to the third party’s terms. We will endeavor to disclose such relationships clearly. ## 9. Termination - By You: You may stop using our Service at any time. You may also delete your account by contacting support, though we may retain certain information as required by law or for legitimate business purposes (see Privacy Policy for data retention details). - By Us: We reserve the right to suspend or terminate your access to CourtMesh (or portions of it) at our discretion, with or without notice, if we believe: (a) you have violated these Terms or any policy, (b) you pose a security or legal risk to us or other users, or (c) you fail to pay any fees due for a paid plan. In case of minor violations or where appropriate, we may give you a warning or opportunity to cure the violation, but we are not obligated to do so. - Effect of Termination: Upon termination of your account or access, your right to use the Service will immediately cease. Sections of these Terms which by their nature should survive termination (such as intellectual property provisions, indemnity, disclaimers, limitation of liability, and governing law) shall continue to apply. If your account is terminated due to a breach of these Terms or unlawful conduct, you will not be entitled to any refund for any remaining subscription period (if applicable). We also reserve the right to pursue legal action or cooperation with law enforcement if your misuse is unlawful. ## 10. Disclaimers of Warranties - No Warranty: CourtMesh is provided on an “AS IS” and “AS AVAILABLE” basis. To the fullest extent permitted by law, CourtMesh disclaims all warranties, express or implied, regarding the Service and its content. This includes, but is not limited to, implied warranties of accuracy, completeness, reliability, merchantability, fitness for a particular purpose, or non-infringement. We do not guarantee that the Service will meet your requirements, achieve any intended results, or operate without interruption or error. - Data Accuracy: While we endeavor to obtain information from reliable sources (official court records, government publications, etc.), we do not warrant that any legal information is up-to-date or error-free. Laws and case outcomes may have changed since a document was published. CourtMesh is not responsible if you rely on any information that turns out to be incorrect or outdated. Always double-check critical information against official sources or consult a professional. - Service Availability: We do not guarantee that CourtMesh will be available at all times or free from bugs or viruses. Downtime may occur for maintenance, updates, or due to technical issues. You are responsible for having appropriate hardware, software, and internet connection to use our Service. We are not responsible for any delays or failures in performance resulting from factors beyond our reasonable control (such as network outages, cyber-attacks, natural disasters, etc.). - No Legal Advice: As stated in the General Disclaimer, no information on CourtMesh should be taken as legal advice. We make no warranty that use of the Service will result in any particular outcome for any legal case or situation you are involved in. ## 11. AI Features and Mandatory Human Verification ### 11.1 The Nature of AI-Generated Output CourtMesh offers features powered by large language models and other machine-learning systems (collectively, the "AI Features"). These include, without limitation, semantic and meaning-based search, case summarisation, case chat, question answering, drafting assistance, citation suggestion, similar-case discovery, headnote and principle extraction, and any other functionality that generates, paraphrases, ranks, or synthesises text on your behalf. You acknowledge and agree that the AI Features are probabilistic and not deterministic. They operate by predicting statistically likely sequences of text conditioned on their inputs. They do not "know" the law, do not reason as a lawyer reasons, do not possess legal judgment, and do not verify their own assertions against any authoritative record before presenting those assertions to you. An output that is fluent, confident, well-structured, internally consistent, and formatted in the idiom of legal writing may nonetheless be wholly or partially incorrect. You further acknowledge that AI systems are subject to a failure mode commonly described as "hallucination", in which the system generates content that is fabricated, non-existent, or materially misdescribed while presenting that content with the same tone, structure, and apparent authority as accurate content. In the legal domain this failure mode may manifest as, without limitation: citation of judgments that do not exist; citation of judgments that exist but do not contain the proposition attributed to them; attribution of a holding, ratio, or obiter to the wrong court, bench, judge, or year; invention of paragraph numbers, diary numbers, neutral citations, or reporter references; misstatement of the procedural posture or disposition of a matter; assertion that a judgment remains good law when it has been overruled, distinguished, reversed, stayed, or superseded by statute; conflation of two or more distinct matters bearing similar case names or party names; and inaccurate summarisation of a judgment whose full text is nonetheless correctly retrieved and displayed. No filter, guardrail, retrieval mechanism, grounding technique, confidence indicator, ranking signal, or verification layer employed by CourtMesh eliminates this risk. Such measures are intended to reduce the frequency and severity of erroneous output. They do not and cannot reduce that risk to zero, and CourtMesh makes no representation that they do. ### 11.2 Mandatory Independent Human Verification This Section 2 states the central and non-negotiable condition on which access to the AI Features is granted to you. Your right to use the AI Features is conditional upon your continuing compliance with it. You agree that you will not use, rely upon, act upon, forward, reproduce, quote, adopt, submit, file, serve, publish, or otherwise put into effect any output of the AI Features in connection with any legal matter unless and until that output has been independently checked and confirmed by a qualified human being competent to assess it, against the primary source, prior to such use. - Scope of "legal matter" : For the purposes of these terms, "legal matter" is to be construed in its widest sense and includes, without limitation: any pleading, application, petition, affidavit, written statement, counter, rejoinder, appeal, revision, review, or other filing before any court, tribunal, authority, arbitral panel, or forum; any legal notice, reply notice, demand, or correspondence asserting or responding to a legal position; any opinion, memorandum, advice, or written or oral advisory communication to a client, employer, colleague, or counterparty; any contract, deed, instrument, undertaking, or other document intended to have legal effect; any submission, argument, or authority cited orally or in writing before any adjudicating body; any due diligence, compliance, audit, or risk assessment output; any academic, scholarly, journalistic, or educational publication; and any internal decision-making that may foreseeably affect the legal rights, obligations, liabilities, or interests of any person. - Minimum standard of verification : Verification for the purposes of this Section requires, at a minimum, each of the following steps in respect of every authority, proposition, and factual assertion contained in the AI output that you intend to use: (a) confirming that each cited judgment, order, statute, rule, regulation, notification, or other authority actually exists; (b) opening and reading the full text of that authority from the primary source, being the official record of the issuing court, tribunal, or authority, or a copy whose fidelity to that official record you have independently satisfied yourself of; (c) confirming that the authority in fact states the proposition attributed to it, in the sense and to the extent attributed, and reading the surrounding passage rather than an extracted snippet in isolation; (d) confirming the current status of that authority, including whether it has been overruled, reversed, set aside, stayed, distinguished, doubted, referred to a larger bench, or rendered otiose by subsequent legislation or judicial decision; (e) confirming that the authority is applicable to the jurisdiction, forum, court hierarchy, limitation regime, and factual matrix of your matter, and that it binds or persuades the forum before which you intend to deploy it; and (f) applying your own independent professional judgment to the question of whether the authority ought to be relied upon at all. - Verification is personal and non-delegable to the machine : The verification obligation in this Section may not be discharged by any automated means, including by asking the AI Features to check, confirm, re-confirm, self-assess, self-critique, grade, score, or validate their own output or the output of any other AI system. An AI system asserting that its own prior output is correct is a further instance of AI output and is subject to every limitation described in Section 1. The obligation is discharged only by a competent human being who has personally examined the primary source. - Convenience features are not verification : Where CourtMesh displays a source link, a retrieved document, a relevance score, a confidence signal, a citation chip, a highlighted passage, a linked judgment, or any similar affordance alongside AI output, such display is a convenience intended to assist you in performing your own verification. It is not itself verification, does not constitute a representation by CourtMesh that the AI output is accurate, and does not reduce, qualify, or discharge your obligation under this Section in any respect. - Time pressure is not an exception : You acknowledge that limitation periods, filing deadlines, listing dates, court timings, client expectations, cost constraints, and volume of work do not constitute exceptions to the verification obligation, and you agree that you will not invoke any of them as a justification for non-compliance. If you lack the time or resources to verify AI output, you must not use that output. ### 11.3 No Legal Advice and No Professional Relationship CourtMesh is a research, retrieval, and document-management platform. It is not a law firm, is not an advocate, is not enrolled with any Bar Council, and does not practise law in India or in any other jurisdiction. Nothing produced by the Service, and nothing produced by the AI Features in particular, constitutes legal advice, a legal opinion, a certification of any legal position, or a substitute for the advice of a qualified legal practitioner retained by you or by the person concerned. No advocate-client relationship, no attorney-client privilege, no fiduciary duty, and no duty of care in respect of the substance of any legal matter arises between you and CourtMesh by reason of your use of the Service, your subscription to any plan, your communication with our support personnel, or your use of the AI Features. Your queries, prompts, uploaded documents, and matter data are processed as described in our Privacy Policy and are not protected by legal professional privilege as against third parties by reason of having been submitted to CourtMesh. Where the AI Features produce output framed in the imperative or advisory register, including output that appears to recommend a course of action, assess the strength of a case, predict an outcome, or advise for or against a step, such framing is an artefact of the language model's training and must not be construed as advice from CourtMesh or from any person. ### 11.4 Your Professional and Regulatory Responsibility If you are an advocate enrolled under the Advocates Act, 1961, or are otherwise subject to the rules of the Bar Council of India or of any State Bar Council, or to the professional conduct rules of any other regulator, court, or professional body in any jurisdiction, you acknowledge and agree that your duties to the court, to your client, and to your regulator are yours alone, are unaffected by your use of the Service, and cannot be delegated, transferred, shared, or diminished by the use of any tool, including CourtMesh. Without limiting the generality of the foregoing, you acknowledge that your duty of candour to the court, your duty not to mislead any forum whether knowingly or through want of reasonable diligence, your duty to satisfy yourself as to the accuracy and current standing of every authority you place before a forum, your duty of competence, and your duty to supervise work done in your name each apply in full to any material derived in whole or in part from the AI Features. You further acknowledge that courts and tribunals in India and in other jurisdictions have imposed costs, adverse observations, disciplinary references, and other sanctions upon practitioners who have placed fabricated, non-existent, or misdescribed authorities before them, and that in such matters the fact that the material originated from an AI tool has not been accepted as a defence, an excuse, or a mitigating circumstance. You assume that risk entirely and solely. ### 11.5 Limits of the Underlying Corpus - Coverage is broad but not exhaustive : CourtMesh aggregates a large corpus of judgments and orders from the Supreme Court of India, the High Courts, District Courts, and Tribunals, sourced from official government portals and records. Notwithstanding the scale of that corpus, CourtMesh does not represent that it contains every judgment, order, or record of any court or tribunal, or that any particular matter, year, bench, registry, or category is completely represented. Absence of a matter from CourtMesh is not evidence that the matter does not exist, and must never be relied upon as a negative finding. - Enrichment and analysis cover a subset only : Structured analysis, headnotes, extracted principles, citation-graph relationships, disposition tagging, and similar derived data are computationally expensive to produce and exist for a subset of the corpus only. Such derived data is not available for every matter, may be incomplete or absent without notice or indication, and its absence in respect of any matter carries no meaning whatsoever. You must not infer from the presence, absence, or apparent completeness of derived data that any matter has or has not been analysed, cited, followed, distinguished, or overruled. - Upstream fidelity and delay : CourtMesh reproduces records as published by official sources. Those sources may publish late, publish incompletely, publish with redactions, republish with corrections, withdraw records, restrict records, or contain errors of their own, including errors of transcription, metadata, party naming, date, or disposition. CourtMesh does not independently audit, correct, or certify the accuracy of official records and is not liable for any error, omission, delay, or subsequent revision originating upstream. The official record of the issuing court or tribunal prevails over anything shown on CourtMesh in every case of discrepancy. - Currency : Case status, listing information, next-hearing dates, and disposal information are subject to change continuously and may be stale at the moment you view them. Nothing displayed on CourtMesh may be relied upon to determine whether a matter is listed, whether a limitation period has expired, whether a deadline falls due, or whether any step is required in any matter. Such determinations must be made against the official record and the official cause list. ### 11.6 Prohibited Reliance In addition to and without limiting the restrictions set out elsewhere in the Terms of Service, you agree that you will not, and will not permit any person under your direction, supervision, employment, or control to: - File, submit, serve, or place before any court, tribunal, authority, arbitral panel, or forum any material derived from the AI Features that has not been verified in accordance with Section 2. - Represent to any court, tribunal, client, counterparty, regulator, employer, or other person that any AI output has been checked, verified, or confirmed when it has not been so checked, verified, or confirmed by a competent human against the primary source. - Advise any client, or permit any client to act, on the basis of unverified AI output, whether such advice is given orally, in writing, or by conduct. - Present AI output to any person as the settled or authoritative state of the law, or as the work product of a qualified human being, without disclosing the extent of AI involvement where such disclosure is required by any court, tribunal, regulator, professional rule, client engagement term, or applicable law. - Rely on the AI Features to compute, confirm, or track any limitation period, filing deadline, appeal window, listing date, or other time limit in any matter. - Deploy the AI Features, or any output derived from them, in any workflow that acts upon that output automatically or without an intervening human review step, including any automated filing, automated advice, automated notice generation, or automated client communication system. - Hold out CourtMesh, or any output of the AI Features, as the source of any legal advice, opinion, certification, or professional judgment furnished by you to any person. ### 11.7 Third-Party Model Providers and Processing The AI Features may be implemented using models operated by CourtMesh and/or by third-party providers. Where third-party providers are engaged, your prompts, queries, selected documents, and related context may be transmitted to and processed by such providers strictly for the purpose of generating a response to you, and subject to our Privacy Policy and to the contractual terms we maintain with those providers. CourtMesh does not control the internal behaviour, training data, model weights, safety systems, availability, latency, output quality, or version lifecycle of any third-party model. Model providers may deprecate, upgrade, retrain, re-tune, restrict, rate-limit, or withdraw models with limited or no notice, and such changes may alter the character, quality, tone, format, latency, or accuracy of AI output without any change to CourtMesh itself and without notice to you. CourtMesh accepts no liability for any such change or for any consequence flowing from it. You must not submit to the AI Features any material that you are not entitled to disclose to a third-party processor, including without limitation material subject to a confidentiality undertaking, sealed-court order, in-camera direction, statutory secrecy obligation, or client instruction that prohibits such disclosure. Responsibility for determining what may lawfully and properly be submitted rests entirely with you. ### 11.8 No Warranty in Respect of AI Features The AI Features are provided on an "AS IS" and "AS AVAILABLE" basis. To the fullest extent permitted by applicable law, CourtMesh expressly disclaims all warranties, conditions, representations, and terms of any kind in respect of the AI Features, whether express, implied, statutory, or arising by course of dealing or usage of trade, including without limitation any warranty of accuracy, correctness, completeness, currency, reliability, availability, continuity, non-infringement, merchantability, satisfactory quality, or fitness for any particular purpose. Without limiting the foregoing, CourtMesh does not warrant that AI output will be accurate, that citations produced or suggested by the AI Features will exist or will support the propositions attributed to them, that the AI Features will identify all relevant authority or any particular authority, that the AI Features will detect that an authority has been overruled or is otherwise no longer good law, that the AI Features will perform consistently across queries, sessions, users, or time, or that any defect in the AI Features will be corrected. No advice, information, or statement, whether oral or written, obtained from CourtMesh or through the Service, and no output of the AI Features, creates any warranty, representation, or undertaking not expressly stated in these terms. ### 11.9 Allocation of Risk and Limitation of Liability You expressly acknowledge that the pricing of the Service reflects the allocation of risk set out in these terms, that CourtMesh would not make the AI Features available on the pricing offered in the absence of that allocation, and that this allocation is a fundamental basis of the bargain between you and CourtMesh. To the maximum extent permitted by applicable law, CourtMesh and its officers, directors, employees, contractors, agents, licensors, suppliers, and affiliates shall have no liability whatsoever, whether in contract, tort (including negligence), statute, restitution, or otherwise, for any loss or damage of any kind arising out of or in connection with your use of, or reliance upon, any output of the AI Features. This exclusion extends to and includes, without limitation: any adverse order, direction, finding, observation, or award of any court, tribunal, or forum; any costs, penalty, fine, or sanction imposed upon you or upon any person; any disciplinary proceeding, complaint, reference, or regulatory action; any loss of a case, claim, appeal, application, or opportunity; any expiry of limitation or missed deadline; any professional negligence claim brought against you; any loss of profit, revenue, business, contract, client, goodwill, reputation, or anticipated saving; and any indirect, special, incidental, consequential, exemplary, or punitive damages, in each case whether or not such loss was foreseeable and whether or not CourtMesh was advised of the possibility of it. Nothing in these terms excludes or limits any liability which cannot lawfully be excluded or limited, including liability for fraud or fraudulent misrepresentation, or liability for death or personal injury caused by negligence. Where liability cannot be excluded but may be limited, CourtMesh's aggregate liability is limited as provided in the Limitation of Liability section of the Terms of Service. The exclusions and limitations in this Section 9 apply in addition to, and do not replace, the Limitation of Liability section of the Terms of Service, and both apply cumulatively to your use of the AI Features. ### 11.10 Indemnity in Respect of AI Output You agree to indemnify, defend, and hold harmless CourtMesh and its officers, directors, employees, contractors, agents, licensors, suppliers, and affiliates from and against any and all claims, demands, proceedings, liabilities, damages, losses, costs, and expenses (including reasonable legal fees and the costs of investigation and defence) arising out of or in connection with: (a) your use of, or reliance upon, any output of the AI Features; (b) any breach by you of Section 2 or Section 6 of these terms; (c) any representation made by you to any court, tribunal, client, regulator, or other person as to the accuracy, provenance, verification status, or authorship of any material derived from the AI Features; and (d) any act or omission by any person under your direction, supervision, employment, or control in respect of the foregoing. CourtMesh reserves the right, at your expense, to assume the exclusive defence and control of any matter otherwise subject to indemnification by you, and you agree to cooperate with such defence and not to settle any such matter without CourtMesh's prior written consent. ### 11.11 Record of Acceptance, Changes, and Survival CourtMesh may record the fact, date, time, version, and account associated with your acceptance of these terms, and may produce that record in any proceeding in which the scope of your acknowledgement is relevant. CourtMesh may amend these AI Use Terms from time to time. Where an amendment is material, CourtMesh may require you to review and accept the amended terms before continuing to use the AI Features, and may suspend your access to the AI Features until you do so. Your continued use of the AI Features following acceptance constitutes your agreement to the amended terms. These AI Use Terms supplement and form part of the CourtMesh Terms of Service and are to be read together with the Privacy Policy, the General Disclaimer, the Public Records Policy, and the Case Removal Policy. In the event of any conflict between these AI Use Terms and the general Terms of Service in respect of the AI Features specifically, these AI Use Terms prevail. Sections which by their nature should survive termination, including Sections 2, 4, 6, 8, 9, and 10, survive termination of your account and cessation of your use of the Service. ### 11.12 Your Acknowledgement By accepting these terms you confirm that you have read and understood them; that you understand the AI Features can and do produce output that is confidently expressed and factually wrong, including citations to judgments that do not exist; that you accept the obligation in Section 2 to independently verify every AI output against the primary source before using it in any legal matter; that you accept sole and exclusive responsibility for every use you make of AI output; and that you accept the allocation of risk set out in Section 9. If you do not accept these terms, you must not use the AI Features. You may continue to use non-AI functionality of the Service where such functionality is separately available to you, subject to the Terms of Service. ## 12. Limitation of Liability To the maximum extent permitted by applicable law, in no event shall CourtMesh or our officers, directors, employees, or affiliates be liable for any indirect, incidental, special, consequential, or punitive damages whatsoever, including but not limited to damages for lost profits, lost data, business interruption, or other intangible losses, arising out of or related to your use of or inability to use the Service. In no case shall our aggregate liability for any claims arising out of or related to these Terms or the Service exceed the amount you paid to CourtMesh in the 12 months immediately preceding the event that gave rise to the claim (or INR 5,000 if no fees were paid). These limitations apply regardless of the theory of liability (contract, tort, negligence, strict liability, or otherwise) and even if we have been advised of the possibility of such damages. Some jurisdictions do not allow the exclusion or limitation of certain damages; in such jurisdictions, our liability will be limited to the minimum extent required by law. User’s Responsibility: You acknowledge that legal research and decisions carry inherent risks. You agree that you use CourtMesh at your own discretion and risk, and that you will be solely responsible for any damage or loss that results, including any legal decisions you make based on information from our Service. You should always use your own professional judgment or consult professionals when interpreting legal information. ## 13. Indemnification You agree to indemnify, defend, and hold harmless CourtMesh (and our officers, directors, employees, and agents) from and against any and all claims, liabilities, damages, losses, and expenses (including reasonable attorneys’ fees and costs) that arise out of or relate to: (a) your use or misuse of the Service, (b) your violation of these Terms or any policy, (c) your violation of any law or regulation or the rights of any third party, or (d) any content you submit or transmit through CourtMesh (including but not limited to any infringement or violation of third-party intellectual property or privacy rights). We reserve the right to assume the exclusive defense and control of any matter otherwise subject to indemnification by you (at your expense), and you agree to cooperate with our defense of such claim. You agree not to settle any such matter without the prior written consent of CourtMesh. ## 14. Governing Law and Dispute Resolution These Terms shall be governed by and construed in accordance with the laws of India, without regard to its conflict of law principles. The parties agree that any disputes arising under or in relation to these Terms or the Service shall be subject to the exclusive jurisdiction of the courts located in Mohali, Punjab, India. If you are using the Service on behalf of an entity, you and the entity also consent to the exclusive jurisdiction of such courts. Notwithstanding the above, CourtMesh retains the right to seek injunctive or equitable relief in any jurisdiction to prevent actual or threatened misuse of its intellectual property or violations of Section 5 (Permitted Use and Restrictions). ## 15. Miscellaneous - Entire Agreement: These Terms, together with our Privacy Policy and other policies referenced (which are incorporated by reference), constitute the entire agreement between you and us regarding your use of CourtMesh, superseding any prior agreements (written or oral) between you and us on the same subject. - Severability: If any provision of these Terms is found by a court of competent jurisdiction to be invalid or unenforceable, that provision will be enforced to the maximum extent permissible and the remainder of these Terms will remain in full force and effect. - No Waiver: Our failure to enforce any right or provision of these Terms shall not operate as a waiver of that right or provision. Any waiver of any provision of these Terms will be effective only if in writing and signed by an authorized representative of CourtMesh. - Assignment: You may not assign or transfer these Terms (or any of your rights or obligations hereunder) without our prior written consent. We may assign, transfer, or delegate any of our rights and obligations without consent in connection with a merger, acquisition, corporate reorganization, or sale of all or substantially all of our assets, or by operation of law or otherwise. These Terms are binding on and will inure to the benefit of each party’s successors and permitted assigns. - Relationship: No joint venture, partnership, employment, or agency relationship exists between you and CourtMesh as a result of this agreement or your use of the Service. - Headings: Section headings in these Terms are for convenience only and have no legal effect. ## 16. Contact Information If you have any questions about these Terms of Service, or wish to contact us for any reason regarding the Service, please reach out to: - Email: hello@courtmesh.ai - Attn: Legal Department / Terms of Service Inquiry By using CourtMesh, you acknowledge that you have read, understood, and agree to these Terms of Service. Thank you for using CourtMesh responsibly. --- # Privacy Policy | CourtMesh URL: https://courtmesh.ai/privacy # Privacy Policy Last updated: January 1, 2025 CourtMesh (“we,” “our,” or “us”) is committed to protecting your privacy. This Privacy Policy describes how we collect, use, share, and safeguard personal information when you use the CourtMesh website and services (“Service”). By using CourtMesh, you agree to the collection and use of information in accordance with this Privacy Policy and our Terms of Service. If you do not agree, please discontinue use of the Service. ## 1. Information We Collect Personal Information: When you create an account or contact us, we may collect personally identifiable information such as your name, email address, phone number, organization, and billing details. This information is provided directly by you and is used to create or manage your account and subscriptions. Usage Data: We automatically collect certain information when you use CourtMesh. This may include your IP address, browser type, device information, pages viewed, search queries, dates and times of access, and other analytics data. This Usage Data helps us analyze how the Service is used and improve performance. Cookies and Tracking: CourtMesh uses cookies and similar tracking technologies to enhance your experience. Cookies are small text files stored on your device. We use essential cookies for security and session management, and analytics cookies (like Google Analytics) to understand aggregate usage patterns. You can control or delete cookies through your browser settings, but note that disabling certain cookies may affect functionality of the Service. Public Data Inputs: If our Service allows you to input or upload content (for example, an AI chat query or document for analysis), we will collect that content to provide the feature. Do not upload any confidential or sensitive personal data that is not already public, as any information derived from public court records is considered non-confidential. ## 2. How We Use Your Information We use the collected information for the following purposes: - Providing and Improving the Service: Personal information and usage data are used to operate CourtMesh’s features, personalize your experience, and improve our search algorithms and AI tools. For example, we may use your search history to refine result relevancy or use feedback to enhance our AI case analysis. - Account Management and Communication: We use your contact information to create your account, provide customer support, send important updates about your subscription, and respond to inquiries. We may also send promotional emails or newsletters about new features if you opt-in, but you can unsubscribe at any time. - Billing and Payments: If you subscribe to a paid plan, we use your provided payment information to process transactions and manage billing. We do not store full credit card details on our servers; payments are handled through secure, compliant payment gateways. - Legal Compliance and Enforcement: We may process personal data as required to comply with legal obligations, such as verifying your identity for fraud prevention or responding to lawful requests by authorities. We also use information as necessary to enforce our Terms of Service and other policies (for instance, to detect and prevent misuse of the platform). ## 3. How We Share Information We value your privacy and handle your data with care. We do not sell your personal information. We may share information in the following circumstances: - Service Providers: We employ trusted third-party service providers to perform functions on our behalf – for example, cloud hosting, payment processing, analytics services, or email delivery. These providers have access to personal information only as needed to perform their functions and are obligated to maintain confidentiality and security of your data. - Legal Requirements: We may disclose your information if required to do so by law or in response to valid requests by public authorities (e.g., a court order or law enforcement subpoena). If we are involved in a merger, acquisition, or asset sale, your information may be transferred as part of that transaction with appropriate safeguards. - Protection of Rights: If necessary, we may share data to protect the rights, property, or safety of CourtMesh, our users, or the public. For example, we might share information with relevant authorities to prevent harm or illegal activities, or to investigate violations of our terms. ## 4. Public Records and Privacy CourtMesh primarily provides access to public records, specifically Indian court judgments and orders that are published by courts for public viewing. Information that is part of court judgments (such as names of parties, attorneys, judges, and details of a case) is generally considered publicly available information and not subject to the same privacy protections as private personal data. In fact, the law and courts in India have recognized that once a matter becomes part of the public record, the privacy rights in that information are greatly reduced or no longer applicable. No “Right to be Forgotten” for Court Judgments:Indian law does not currently recognize a broad "right to be forgotten" that would allow removal of lawful public records like court decisions simply at an individual's request. The Supreme Court in R. Rajagopal vs State of T.N. (1994) held that publishing public records, including court records, does not violate privacy rights. Even the 2017 Puttaswamy judgment on privacy acknowledged that privacy rights must be balanced with the public’s right to information and that court records remain open until the law provides otherwise. Our Policy on Case Data:Accordingly, we will not remove or obscure public court judgments on CourtMesh unless directed by a competent court or required by law. CourtMesh is one of many repositories of these judgments, and identical information may exist on official court websites and other archives. For details on how we handle requests to remove or redact case information (such as in sensitive cases), please see our Case Removal Policy and Public Records Policy. ## 5. Data Security We take appropriate security measures to protect your personal data. CourtMesh implements industry-standard security practices, including encryption of data in transit (HTTPS), firewalls, and regular security audits. User passwords are stored in hashed form, and our systems are designed to protect against unauthorized access. We also limit access to personal information to authorized personnel and contractors who need to know that information to operate our Service. Despite our efforts, no method of transmission over the Internet or electronic storage is 100% secure. Therefore, we cannot guarantee absolute security of your data. You are responsible for maintaining the confidentiality of your account credentials and for all activities that occur under your account. Please notify us immediately of any unauthorized use of your account. ## 6. Your Choices and Rights - Access and Correction: You may access and update certain account information by logging into your CourtMesh account. If you need assistance accessing, correcting, or deleting any personal information that you have provided to us, you can contact us at our support email (see Contact section below). We will respond to legitimate requests in accordance with applicable law. - Opt-Out: If you no longer wish to receive marketing or promotional communications from us, you can opt out by using the “unsubscribe” link in those emails or by contacting us. Please note that you will still receive transactional emails related to your account or subscription (e.g. payment receipts, important notices). - Do Not Track: Our website currently does not respond to “Do Not Track” signals. However, you can usually modify your browser settings to decline cookies if you prefer, though doing so may affect your ability to use certain features of our Service. Please note that since CourtMesh provides public legal documents, personal data contained within public court records cannot generally be altered or removed by user request, except as described in the Case Removal Policy. If a court issues an order to seal or redact information in a judgment that is on our site, we will comply and update our records accordingly. ## 7. International Data Transfer Our servers may be located in multiple regions (including India) to ensure reliability and speed. If you are accessing CourtMesh from outside India, be aware that your information may be transferred to and stored on servers in India or other countries which may have different data protection laws. By using our Service, you consent to such transfer of information. We ensure that wherever your data is processed, it is handled securely and in line with this Privacy Policy. ## 8. Changes to this Privacy Policy We may update this Privacy Policy from time to time to reflect changes in our practices or for other operational, legal, or regulatory reasons. When we make changes, we will update the “Last updated” date at the top of this policy. If the changes are significant, we may provide a more prominent notice (such as on our homepage or via email). We encourage you to review this page periodically to stay informed about how we are protecting your information. Your continued use of CourtMesh after any modifications to this Privacy Policy will constitute your acknowledgment of the changes and your agreement to abide by the updated policy. ## 9. Contact Us If you have any questions or concerns about this Privacy Policy or our data practices, please contact us at: - Email: hello@courtmesh.ai We will do our best to address your inquiries promptly. Your privacy matters to us, and we welcome your feedback. --- # Cancellation and Refund Policy | CourtMesh URL: https://courtmesh.ai/refund-cancellation # Cancellation and Refund Policy Last updated: January 1, 2025 This Cancellation and Refund Policy (“Policy”) outlines the terms for cancelling your CourtMesh subscription and any eligibility for refunds. It applies to all users who have subscribed to paid plans of CourtMesh. By purchasing a subscription, you agree to this Policy as part of our Terms of Service. ## 1. Free Plan 1.1 Free Plan: CourtMesh offers a Free plan (or free trial) that provides basic access at no cost. The Free plan does not require any payment information to sign up. Because it is free of charge, there are no payments and thus no refunds applicable to the Free plan. You can continue using the Free plan as long as it is offered. If you do not wish to continue using CourtMesh, you may simply stop using the service or delete your account - no cancellation is needed for the Free plan. ## 2. Paid Subscriptions 2.1 Paid Plans: CourtMesh’s paid subscription plans (such as Professional, Business, or Enterprise tiers) offer enhanced features and higher usage limits as described on our Pricing page. When you upgrade to a paid plan, you will be billed immediately for the chosen billing cycle (e.g., monthly or annually). All subscription charges are prepaid for the period of service. 2.2 Auto-Renewal:Paid subscriptions are set to auto-renew at the end of each billing period by default. This means: - Monthly Plans: If you subscribe on a monthly basis, your subscription will renew each month on the same date. Your payment method will be charged automatically at the start of each new month. - Annual Plans: If you subscribe on an annual basis, your plan will renew once every year on the anniversary of your sign-up date, with your payment method charged for the next year. We will consider the renewal as authorized unless you cancel before the renewal date. Please note that we may adjust pricing from time to time; however, any price change for your plan will be communicated to you in advance (generally via email or a notice on the site) and will only apply to subsequent renewals. If you do not agree to a price change, you must cancel your subscription before the new rate takes effect. 2.3 Payment Failures: It is your responsibility to ensure your payment information is accurate and up to date. If an auto-renewal charge is declined (for example, due to an expired credit card or insufficient funds), we will attempt to notify you. We may retry the charge. If payment is not completed within a grace period (typically a few days), we reserve the right to suspend your paid features until payment is resolved. If prolonged non-payment occurs, we may downgrade you to the Free plan or cancel your subscription. ## 3. How to Cancel Your Subscription We hope you find value in our service, but if you need to cancel, the process is straightforward: - Through Account Settings: Log in to your CourtMesh account, navigate to the “Account” or “Subscription” settings page, and choose the option to cancel or downgrade your plan. Follow the on-screen instructions to confirm cancellation. The cancellation will take effect at the end of your current billing cycle. You will retain access to paid features until that period ends, after which your account will revert to the Free plan (or be closed, if you choose). - Via Customer Support: If you encounter any issues cancelling through the website, you can email our support at hello@courtmesh.ai with the subject “Cancel Subscription.” Include your account email and subscription plan. We will process the cancellation for you and send a confirmation. (Please allow up to 2 business days for support requests.) - Confirmation: After cancellation, you should receive an email confirming that your subscription is set to not renew. Keep this confirmation for your records. If you do not receive confirmation, please contact support to ensure your request was received. Remember, uninstalling the website or simply not using the service does not automatically cancel recurring subscriptions – you must follow the steps above to formally cancel. ## 4. Refund Policy 4.1 General No Refund Policy: In line with common practice for subscription services, payments for CourtMesh subscriptions are non-refundable by default. Once a billing cycle has started (month or year), the fee for that period is owed in full and cannot be refunded if you decide to cancel part-way through. For example, if you cancel a monthly subscription 10 days into the month, you will not receive a refund for the remaining days of that month – your cancellation will prevent the next month from being charged, but the current month remains paid. 4.2 Prorated Refunds: CourtMesh generally does not offer prorated refunds for cancelling in the middle of a billing cycle. You will continue to have access to paid features until the period you paid for ends. After cancellation, you won’t be charged again, but we do not credit or refund unused days. One exception is if you mistakenly purchased duplicate subscriptions or were double-billed due to our error; in such cases, please contact us and we will correct the situation, including issuing a refund if applicable. 4.3 Money-Back Guarantee (if offered): At this time, CourtMesh does not advertise a money-back guarantee. We offer a free trial period (e.g., 30-day free trial for new users) to ensure you are satisfied before committing to a paid plan. Thus, once you transition to a paid plan and are billed, it is assumed the service meets your needs. However, if we ever explicitly offer a satisfaction guarantee or refund window as part of a promotion, the terms of that offer will override this general policy for those eligible customers. (For instance, if an offer says “cancel within 14 days for a full refund,” we will honor that as stated for those who qualify.) 4.4 Special Circumstances:We understand there may be special cases where a refund is warranted. These may include: - Service Outage or Defect: If our Service had a significant outage or technical problem that severely affected your use of a paid feature, you can request a partial refund or credit. We will assess these on a case-by-case basis. - Accidental Renewal: If you intended to cancel but forgot and a renewal just occurred, contact us immediately (generally within a few days of the charge). As a courtesy, we may refund the latest charge if we verify that you did not use the service after renewal and you genuinely meant to cancel. This courtesy refund is at our discretion and typically only once per user. - Jurisdictional Requirements: If applicable law in your jurisdiction mandates a refund right (for example, some regions have cooling-off periods for online purchases), we will comply with those laws. Please refer to your local consumer rights; you may need to notify us within a certain timeframe to exercise such rights. Any approved refunds will be issued to the original payment method. Please allow a reasonable time for the refund to process (typically 5-10 business days, depending on your bank/credit card). ## 5. Subscription Termination by Us 5.1 Violation of Terms: If you violate our Terms of Service or engage in prohibited activities (such as sharing your account, scraping data, or other misuse), we reserve the right to suspend or terminate your subscription immediately, without prior notice. In such cases of violation, you will not be eligible for any refund for unused days. For example, if we terminate your account for breach halfway through your paid month, you forfeit the remaining period’s fee due to your misconduct. 5.2 Fraud or Payment Issues: If any payment is identified as fraudulent or if a chargeback is initiated, we may terminate or suspend the associated account. We also reserve the right to contest chargebacks and provide these terms and your usage records as evidence that the charges were authorized and the service delivered. 5.3 Discontinuation of Service: In the unlikely event that we decide to discontinue the CourtMesh service entirely or cease offering subscriptions, we will provide notice and, at our discretion, either continue to provide the service for the duration of existing subscriptions or issue prorated refunds for the remaining unused portion of current subscriptions. ## 6. Changes to This Policy We may update or modify this Cancellation and Refund Policy from time to time. If we make significant changes, we will notify subscribers via email or a notice on our website. The latest version of the Policy will always be available on the CourtMesh website (see “Last updated” date above). Continued use of the Service or maintaining an active subscription after a Policy update constitutes acceptance of the changes. ## 7. Contact Us For any questions or assistance regarding cancellations or refunds, you can reach our billing support team at: - Email: hello@courtmesh.ai - Phone: Currently we provide support via email only Please include your account email and relevant details in any inquiry so we can assist you faster. We aim to respond to all support requests within 1-2 business days. Note: This Policy is part of the CourtMesh Terms of Service. By agreeing to the Terms, you also agree to abide by this Policy. We appreciate your business and are committed to fairness and transparency in our subscription practices. If you feel any part of this Policy is unclear or unfair, please let us know – customer feedback is valued as we refine our services and policies. --- # Shipping and Delivery Policy | CourtMesh URL: https://courtmesh.ai/shipping-delivery # Shipping and Delivery Policy Last updated: August 23, 2026 This Shipping and Delivery Policy explains how CourtMesh delivers its services after purchase. CourtMesh is a software-as-a-service (SaaS) platform for legal research, case management, and contract workflows. All our products are digital and delivered entirely online. No physical goods are sold, shipped, or delivered under any CourtMesh plan. ## 1. Nature of the Service 1.1 Digital Only: Every CourtMesh product, including subscription plans, credit packs, and add-ons, is a digital service accessed through your web browser at our website and application domains. There is no physical component to any purchase, so no courier, postal, or logistics service is ever involved. 1.2 No Shipping Charges: Because nothing is physically shipped, CourtMesh never charges shipping, handling, packaging, or delivery fees. The price shown at checkout (inclusive of applicable GST) is the complete amount payable. ## 2. How Delivery Works 2.1 Instant Activation: Your purchase is delivered by activating the corresponding features, plan entitlements, or credits on your CourtMesh account. Activation happens automatically once our payment partner confirms your payment, which is typically instant. In rare cases (for example, when a bank confirms a UPI auto-pay mandate asynchronously), activation may take a few minutes after you complete the payment steps. 2.2 Where You Receive It: Delivery is made to the CourtMesh account you were signed in with at the time of purchase. Simply sign in to access your upgraded plan or credits. A payment receipt and tax invoice are also sent to your registered email address and remain available for download in the Billing section of your account. 2.3 Enterprise Plans: For enterprise agreements, delivery timelines (such as onboarding, workspace setup, and credit provisioning) are as agreed in your order form or contract with us. In the absence of an agreed timeline, provisioning is completed within 2 business days of payment confirmation. ## 3. Exchanges 3.1 Not Applicable to Digital Services: As no physical goods are involved, product exchanges and returns in the traditional sense do not apply to CourtMesh. 3.2 Plan Changes: If you wish to move to a different plan, you can upgrade or change your subscription at any time from the Plans page in your account. Cancellations and any refund eligibility are governed by our Cancellation and Refund Policy. ## 4. Failed or Delayed Delivery 4.1 If Your Purchase Does Not Activate: If your payment was charged but your plan or credits do not appear on your account within 30 minutes, first try signing out and signing back in. If the purchase is still not reflected, contact us with your registered email address and the payment reference (visible in your bank or UPI app statement). We will investigate and either activate your purchase or refund the payment in full. 4.2 Our Commitment: You will never lose money for a service that was not delivered. Any payment we cannot match to a delivered service will be refunded to the original payment method. ## 5. Contact Us For any questions about delivery or activation of your purchase, reach our support team at: - Email: hello@courtmesh.ai - Phone: Currently we provide support via email only Please include your account email and payment reference in any inquiry so we can assist you faster. We aim to respond to all support requests within 1-2 business days. Note: This Policy is part of the CourtMesh Terms of Service and should be read together with our Cancellation and Refund Policy. --- # Case Removal Policy | CourtMesh URL: https://courtmesh.ai/case-removal-policy # Case Removal Policy Last updated: January 1, 2025 CourtMesh provides access to Indian court judgments by aggregating public records from official sources. We understand that individuals featured in court cases may have concerns about their names or personal details appearing online. This Case Removal Policy explains why your court case may appear on the internet and outlines our policies for removal, redaction, or de-indexing of case information. ## Court Judgments Are Public Records If a case is heard by an Indian court, its judgments and orders are considered public records by law. Courts themselves publish these records (for example, on official websites like supremecourt.gov.in or high court sites), and anyone is legally permitted to access and publish them unless a specific law or court order restricts it. In fact, the Indian Copyright Act (Section 52(1)(q)(iv)) explicitly states that publishing court judgments does not infringe any copyright. This open-public-record principle serves important public interests. It allows citizens to be informed about court proceedings, ensures transparency in the justice system, and enables the press, researchers, and public to scrutinize and discuss judicial decisions. CourtMesh strongly believes in open access to court information as a cornerstone of democracy and rule of law. Therefore, the presence of your case on CourtMesh simply reflects that it is part of the public court record. CourtMesh, like other legal databases, has not “created” this information; we have organized and indexed it from official public sources for easier access. If you find your name via Google or another search engine leading to CourtMesh, it is because the same public judgment is also indexed here (just as it might be on the court’s site or other legal portals). ## Privacy Concerns and the Law We understand that seeing your name or personal matters in an online judgment can feel like a privacy intrusion. However, Indian jurisprudence has consistently held that privacy rights do not extend to information in public records such as court proceedings. The Supreme Court’s decision in R. Rajagopal vs State of Tamil Nadu (1994) famously stated: “Once a matter becomes a matter of public record, the right to privacy no longer subsists and it becomes a legitimate subject for comment by press and media among others.” This means that publishing true court records is not deemed an invasion of privacy under current law. Even the 2017 Puttaswamy judgment (which recognized a constitutional right to privacy) acknowledged this principle and noted that any “right to be forgotten” would require specific legislation and careful balancing with the public’s right to know. That general position is no longer the whole picture. On 29 May 2026, the Delhi High Court, in Laksh Vir Singh Yadav v. Union of India (2026:DHC:4891, judgment published 1 June 2026), directed Google to de-index specified records from name-based search results, and separately directed Indian Kanoon to restrict name-based search for those same records. That order is currently in effect pending appeal. It does not create a general right to erase public court records from the internet, and it does not require removal of the underlying record itself, but it is a real, binding direction covering the specific records it names, and CourtMesh treats it as such. Where a de-indexing or masking order like this one applies to a record on CourtMesh, we honour it through the request process described below. As at 18 September 2026, there is still no general legislative “right to be forgotten” over public court records in India; the Delhi High Court order is a case-specific judicial direction, not a change to that general position. Note: the paragraph above, describing the Delhi High Court’s 29 May 2026 order, is pending review by counsel and may be revised. ## Our Removal and Redaction Policy CourtMesh will not remove, edit, or hide any court judgment or order unless we are required to do so by law or binding authority. In practical terms, this means: - Court Orders: If the competent court that issued a judgment (or a higher court) later directs that the judgment be removed from public access or anonymized, we will comply with that order. For example, if a court issues a sealing or redaction order for a case, we will remove or edit the content on CourtMesh accordingly once officially notified. - Legal Prohibitions: If a law in force prohibits the publication of certain information in a judgment, we will remove or mask that information. For instance, Indian law forbids disclosing the identity of sexual assault victims and juveniles in conflict with law. Specifically, Section 228A of the Indian Penal Code and allied laws prohibit naming rape victims, and Section 74 of the Juvenile Justice (Care and Protection of Children) Act, 2015 prohibits revealing the identity of juveniles in legal proceedings. If such details appear in any judgment text, we will redact names and identifying details of the victim or juvenile and replace them with generic terms like "NameRedacted" or "Child". We perform these redactions proactively for relevant cases and will update any that we might have missed as soon as we are made aware. - Victim Identity Protection: Beyond strict legal requirements, as a matter of policy we will remove or obscure the names and personal details of victims in sensitive cases like sexual offenses. For example, in cases under Section 376 of IPC (rape) and related sections, or sexual harassment laws, we will ensure victims are not identified on our site. We follow the practice of replacing names with descriptors in such judgments to respect the victim’s privacy and dignity. - Out-of-Scope Content: CourtMesh publishes judgments and orders from the Supreme Court of India, all 25 High Courts, District Courts, and Tribunals. We do not publish personal data that is not part of a court’s public record. If you see any content on CourtMesh that you believe is not a public record or violates someone’s privacy unlawfully, please notify us to investigate. Apart from the above circumstances, we do not remove or modify public documents. We emphasize that many copies of these court decisions exist elsewhere (on official sites, other archives, etc.), and removing it from one website (like CourtMesh) does not erase it from the public domain. ## Blocking Search Engine Indexing (De-indexing) In certain sensitive situations, even if we do not remove a judgment from CourtMesh, we may block search engines (like Google) from indexing a specific case page. This means the case would remain on CourtMesh (for those who search within our platform), but it would not appear in general web search results. Our de-indexing policy is limited to cases of a highly personal nature that do not involve broader public interest or precedent. Examples of cases we may consider for de-indexing from search engines include: divorce proceedings, family custody disputes, maintenance/alimony cases, or other matrimonial matters that are not appeals in higher courts. We will not de-index Supreme Court cases or any case that establishes legal precedent or has significant public importance, as public interest in those remains high. To request blocking a case from search engine results, you must identify the specific CourtMesh URL and provide a reason. If the case falls into the aforementioned categories (e.g., a personal family matter) and is not of ongoing public interest, we will add the relevant page to our robots.txt file to discourage indexing and will request removal from search indexes. Note that de-indexing is a courtesy and not a guaranteed right; we evaluate these requests carefully. Moreover, even after de-indexing, the case can still be accessed directly on CourtMesh and may still appear via our internal search. ## How to Request Removal or Redaction If you believe your situation merits an exception (for example, your name is in a judgment that has been expunged, or the case is causing a serious risk to your safety), you can reach out to us: - Contact Email: Send an email to hello@courtmesh.ai with the subject “Case Removal Request”. Include the URL/link of the case on CourtMesh, and a clear explanation of your request. Specify whether you are asking for complete removal, anonymization of a name, or search engine de-indexing. - Supporting Documentation: Provide any relevant documents that support your request. For instance, if a court has ordered a record sealed, attach a copy of that order. If you are a victim of identity theft or facing a security threat, explain the situation and include any police reports or legal documents if available. These help us evaluate the urgency and legitimacy of the request. - Identity Verification: In order to protect privacy, we will only consider requests from: (a) a party to the case (or their legal representative), (b) someone whose name or personal data is directly implicated in the case content, or (c) in case of a minor or legally incapacitated person, their parent or guardian. We may require verification of your identity and relationship to the case to prevent false or unauthorized requests. - Our Review Process: Once we receive a complete request, please allow us up to 30 days to review and respond. We consider factors such as: Has the record been sealed by a court? Does it expose someone to risk of harm or unwarranted hardship? Does it involve a minor or sensitive personal issue? We may get back to you for additional information. We do not charge any fee for processing such requests. - Outcome: After review, we will inform you of our decision in writing (via email). If approved, we will take appropriate action (redacting names, adding no-index tags, or in rare cases removing the document). If denied, you may reply with any new information or an appeal for reconsideration, but if no new compelling evidence is provided, our decision will be final. Please understand that we receive many requests, and we must balance individual concerns with the public’s right to information. We do not grant all removal or redaction requests. In particular, if a case has significant public interest, involves public figures or organizations, or the request is merely to avoid embarrassment, we will likely deny the request in order to maintain the integrity of our database and the principle of open justice. ## Important Notice Even if CourtMesh agrees to redact or de-index a record, the information may still exist on other websites or official sources beyond our control. The only way to completely remove a public court record from circulation is generally to obtain a formal sealing or expungement order from a court. We encourage individuals to pursue legal remedies for record sealing in parallel, if applicable. CourtMesh will gladly comply with any official court orders that fully seal or remove a case from the public record. By submitting a removal or redaction request to CourtMesh, you acknowledge that you have read and understood this policy. CourtMesh reserves the right to decline a request, or to reverse a redaction at a later date, if we determine that the information has significant public value or if circumstances change. Our goal is to be sensitive to individual privacy in exceptional cases while upholding the broader principle of public access to court information. For additional information on how we handle public data, please refer to our Public Records Policy. If you have questions about this Case Removal Policy or the status of a request, you may contact us at the same email address provided above. --- # General Disclaimer | CourtMesh URL: https://courtmesh.ai/general-disclaimer # General Disclaimer Last updated: January 1, 2025 CourtMesh strives to ensure that the information provided on our platform is accurate, up-to-date, and obtained from official sources. However, by using this website you acknowledge and agree to the following disclaimers: ## Source of Information and Aggregation Methodology CourtMesh aggregates court judgments and orders by automatically retrieving them from official government court websites and databases, including Supreme Court portals, High Court websites, eCourts services, and authorized government data repositories. We update our database regularly (typically daily) to capture newly published information. No Guarantee of Completeness: Despite our comprehensive aggregation efforts, we do not represent or warrant that our database contains all court cases or judgments. Official source courts may: - Not publish certain cases to their online portals - Experience technical issues preventing data access - Have inconsistent publication practices across time periods - Delay publication of some cases - Remove or modify previously published cases Additionally, there may be delays between when a court releases information and when it appears on CourtMesh. We cannot guarantee real-time updates or complete historical coverage for all courts and time periods. Users requiring comprehensive coverage should consult multiple sources including direct court records. ## Data Quality and Best Effort Basis All information on CourtMesh is provided "as is" and "as available", without any warranty of any kind, express or implied. CourtMesh aggregates court data from official government sources to provide what we believe to be the most comprehensive collection of Indian court information available. However, we make no representations or warranties regarding: - Completeness: Official court sources may not publish all cases uniformly. Some cases may be missing, delayed, or not published by source courts. Data availability varies by court and time period. - Accuracy: While we aggregate data directly from official sources, those sources may contain errors, omissions, or typographical mistakes. We do not independently verify the accuracy of each judgment or court record. - Currency: There may be delays between when a court publishes information and when it appears on CourtMesh. Courts may also update or correct information after our initial collection. - Metadata: Case categorizations, tags, AI-generated summaries, and other derived information are provided for convenience but may contain inaccuracies. CourtMesh makes no warranties, express or implied, regarding the accuracy, reliability, completeness, timeliness, or fitness for any particular purpose of any content on the site. Users should independently verify critical information against official court sources. Use of the information is entirely at your own risk. ## Not Legal Advice CourtMesh is a legal information service, not a law firm or a provider of legal advice. The content on this site – including case texts, summaries, analytics, or AI-generated answers – is for informational purposes only. It should not be interpreted as legal counsel or a substitute for professional advice. If you have specific legal questions, you should consult a qualified attorney. ## No Lawyer-Client Relationship Your use of CourtMesh does not create any attorney-client relationship or any confidential relationship between you and CourtMesh. Communications with our support or use of our AI assistant are not protected by legal privilege. Always seek independent legal advice for personal legal matters. ## Limitation of Liability To the maximum extent permitted by law: Under no circumstances shall CourtMesh or any of our officers, directors, employees, contractors, partners, licensors, or affiliates be liable to you or any third party for any direct, indirect, incidental, consequential, special, exemplary, or punitive damages whatsoever arising out of or related to: - Your use of or inability to use the CourtMesh platform or services - Any errors, omissions, or inaccuracies in the content or data provided - Any incompleteness of case coverage or missing court records - Any reliance on information found on CourtMesh for legal decisions or strategy - Any delays in updates or unavailability of the service - Loss of profits, revenue, data, goodwill, or other intangible losses - Legal consequences arising from use of incomplete or inaccurate information This limitation applies regardless of the theory of liability (whether based in contract, tort, negligence, strict liability, or otherwise), even if we have been advised of the possibility of such damages. In jurisdictions that do not allow the exclusion or limitation of certain warranties or damages, our liability will be limited to the maximum extent permitted by law. You acknowledge that you use CourtMesh at your sole risk and that legal research requires professional judgment and verification of information from authoritative sources. ## Comparative Statements and Market Position CourtMesh may make statements about being a comprehensive or leading source for Indian court data. Such statements reflect our good-faith belief based on our extensive aggregation from official sources, but are not absolute guarantees. When we describe CourtMesh as providing comprehensive coverage or being among the best available options for court data access, we mean: - We aggregate from multiple official government court portals (Supreme Court, all 25 High Courts, District Courts via eCourts / NJDG, and Tribunals including NCLT, NCLAT, ITAT, CESTAT, SAT, TDSAT, and other authorized sources) - We provide unified search and access across these distributed sources - We believe our coverage compares favorably to other third-party aggregation services - We continuously work to improve coverage and data quality However, we do not claim to have literally every case from every court, nor do we claim superiority over official court sources themselves (which remain the authoritative sources). Different data providers may have different strengths, coverages, and quality levels for different courts or time periods. Users should evaluate multiple sources for their specific needs. ## Endorsements and References Any reference to legal cases, laws, or external organizations on CourtMesh does not constitute an endorsement or legal verification by CourtMesh. We are an aggregator of information; we do not opine on the content of judgments or guarantee their outcomes. Testimonials and case studies represent individual experiences and should not be considered typical results. ## External Links CourtMesh may contain links to official court websites or other third-party sites for reference. These links are provided for convenience only. We have no control over and assume no responsibility for the content or accuracy of those external sites. Clicking on external links is at your own discretion. ## Use Constitutes Agreement By accessing and using CourtMesh, you imply your consent to this Disclaimer and agree to our Terms of Service and other policies. If you do not agree with any part of this disclaimer or our policies, you should discontinue use of our site. ## Updates and Contact We may update this General Disclaimer from time to time. The latest version will always be available on this page with the “Last updated” date. Your continued use of CourtMesh after updates constitutes acceptance of the revised disclaimer. If you have any questions about this disclaimer or if you believe you have discovered an error in our content, please contact us at hello@courtmesh.ai. We welcome feedback and will make corrections as needed when substantiated. --- # Public Records Policy | CourtMesh URL: https://courtmesh.ai/public-records-policy # Public Records Policy Last updated: January 1, 2025 CourtMesh believes in open access to public records and is committed to handling public legal information responsibly. This Public Records Policy explains what we consider public records, how we collect and publish them, and how we address concerns related to public data on our platform. This policy should be read in conjunction with our Privacy Policy and Case Removal Policy. ## 1. Open Access Philosophy At CourtMesh, we operate on the principle that public records belong to the public. Court records, legislation, and other government documents are created by public institutions and are generally open for anyone to inspect. Our mission is to organize these public records and make them universally accessible and useful to researchers, legal professionals, and citizens. By providing a user-friendly interface and search tools, we enhance transparency and the public’s ability to learn about the law. Access to public records serves vital public interests – it enables oversight of the judicial system, informed public discourse, and research into legal trends. As courts themselves have noted, public scrutiny promotes confidence in the justice system and helps ensure accountability. We align with these values in offering CourtMesh as a resource. ## 2. What Are Public Records? Public Records are documents or pieces of information that are not confidential and are maintained by government agencies, which the public has the right to access. In the context of CourtMesh, this primarily includes: - Court Judgments and Orders: Decisions from the Supreme Court of India, High Courts of various states, and other courts or tribunals (to the extent we cover them). These judgments are by law published for public knowledge and often available on official court websites or repositories. - Laws and Regulations: Acts of Parliament or State Legislatures, rules, notifications, and other legal texts which are published by the government. - Court Proceedings Data: Basic information about court cases such as party names, case numbers, filing dates, status, and hearing dates, which courts may publish (for example, cause lists or case status databases). - Publicly Available Information: In some cases, we may incorporate data from non-government sources that is publicly available – for instance, attorney directories or law journal summaries – to enrich the context, but only where it’s lawful and meant for public use. What We Do Not Publish:We do not intentionally collect or publish information that is not public. This means we avoid: - Sealed or expunged court records (cases that courts have ordered to be hidden or removed from public record). - Personal data that is protected by law (like private personal identifying information not contained in judgments). - Any information obtained through unauthorized means. If you find something on CourtMesh that you believe is not a legitimate public record or is published in error, please notify us immediately so we can investigate and take appropriate action. ## 3. Sources and Collection of Records CourtMesh gathers public records from official sources. We use automated scripts (“crawlers”) and partnerships to regularly collect data from: - Official court websites (e.g., the Supreme Court’s judgment portal, High Court websites for daily orders/judgments). - Government gazettes and legal information portals for statutes and regulations. - Authorized data feeds or APIs, where available, provided by governmental bodies. - Reputable third-party aggregators or archives that host public domain legal documents. Our crawlers operate at respectful intervals and often during off-peak hours so as not to burden the source websites. We comply with any terms of use of official sites and respect robots.txt and other access directives. The data we collect is then normalized and indexed in our system with consistent identifiers, metadata (court name, dates, judges, etc.), and made searchable. We do not collect: Personal communications, lawyer-client records, or any document that is filed in court but not publicly released. Data behind paywalls or requiring login from government sites, unless we have official permission to access it. ## 4. Accuracy and Integrity of Public Records We strive to present public records exactly as we obtain them, without alteration (except formatting or minor OCR error corrections). However, CourtMesh cannot guarantee that all public records on our site are error-free or complete. There are several reasons for this: - Source Errors: The original record from the court may contain typos or omissions. We typically do not alter the content of judgments, so any errors in the official copy will be reflected in ours. - Conversion Errors: Some documents might be processed via OCR (optical character recognition) if not provided in text format, which can introduce inaccuracies in text. We aim to correct significant OCR errors when identified. - Update Lag: If a court issues a correction or an updated judgment after our copy is collected, there might be a delay before we capture the update. We periodically refresh data to catch such changes. - Metadata and Organization: We generate certain metadata (like categorizing by topic, linking citations, etc.) which might not always be perfect. Use “As Is”: All information on CourtMesh is provided “AS IS” and “AS AVAILABLE,” without any warranties as to accuracy. We encourage users to double-check critical information against official sources. We disclaim liability for errors in the public records we publish, but we do take reasonable steps to verify and accurately reproduce the records. If you spot what appears to be an error in a document or its metadata, you can let us know, and we will review it. For example, if a case is mis-titled or a paragraph is garbled, we can attempt to fix the presentation (though we won’t change the substance of a judgment). ## 5. Use of Public Records – Responsible Use Responsible Use: We urge users of CourtMesh to use the public records data responsibly and ethically. Public court records should be used in a manner that respects their context and purpose: - Legal Research and Education: Using judgments for understanding the law, writing articles, or informing a legal case is encouraged – that’s the purpose of open access. - Journalistic Reporting: Media can quote from judgments, but should present facts accurately and avoid sensationalizing private details (especially in sensitive cases). - Personal Information Caution: While the presence of personal names and details in public records is lawful, we advise treating such information with sensitivity. For instance, if you are analyzing data for scholarly research, consider anonymizing individuals in your published analysis if they are private persons and the context doesn’t demand identification. - No Unlawful Use: Do not use information from CourtMesh to harass, stalk, or defame individuals. Just because information is public doesn’t mean it should be used to violate someone’s rights or privacy in a different context. Remember, public records are exempt from many privacy laws, but ethical considerations still apply. We expect all users to comply with applicable laws (like data protection regulations) when using CourtMesh data, especially if combining it with other personal data. ## 6. Privacy Laws and Public Data In jurisdictions like the United States, laws such as the California Consumer Privacy Act (CCPA) explicitly exempt publicly available government records from being treated as “personal information” under privacy law. In India, the new Digital Personal Data Protection Act (2023) also recognizes certain exemptions for personal data made public by law or court. Specifically, information that is in a public record (e.g., court judgments) is generally not protected by privacy rights once lawfully published. Important: The fact that court records are public does not necessarily mean an individual has no privacy rights at all – it means that the act of publishing or accessing those records is legally permissible and not a privacy violation in itself. Thus: - We handle personal data in judgments according to law (see the Case Removal Policy regarding victims and juveniles). - We do not entertain requests under privacy grounds alone to remove public case information (e.g., requests citing “right to be forgotten” without a legal basis are not granted, in line with current Indian law and court rulings). - For how we handle user personal data (like your account info), see our Privacy Policy. That is separate from the public case data, which is treated as described here. ## 7. Redaction and Removal Requests While public records are open, we recognize some situations that call for redaction (masking certain info) or removal. Our approach: - Sealed/Expunged Records: If a court seals a record or orders certain information removed from the public domain, we will comply by removing or redacting that information on CourtMesh as well. We rely on notification from requesters or periodic checks to know if a case was later sealed. (For example, if an order comes stating a particular case must be taken down from websites, we will do so once we verify the order.) - Personal Harm or Safety: If publishing a record poses a serious personal safety risk (e.g., it reveals the identity of a witness under protection, or someone facing credible threats), we will evaluate requests to redact names or temporarily remove such content. These decisions are made on a case-by-case basis, weighing the risk of harm against public interest. - Identity Theft Victims: If you are a victim of identity theft and the public record is a result of that (e.g., a fraudulent case filed in your name), and you can provide documentation, we may redact your personal identifiers from our copy as a courtesy. - Minors: We will remove or anonymize identifying details of minors involved in cases (especially in family court or juvenile matters) even if not explicitly ordered, in line with legal standards and our own policies. Process: To request a redaction or removal, see the instructions in our Case Removal Policy. Generally, you will need to submit a written request with the specific URL and reason, and include supporting documents if applicable. We do not charge for processing such requests. We will respond after careful consideration of the factors involved. No Guarantee: Submission of a request does not guarantee approval. As stated in the Case Removal Policy, we might deny requests that do not meet our criteria or if public interest outweighs the request. We may also choose to de-index a page from search engines as an alternative to removal, where appropriate. ## 8. Disclaimer Nothing in this Public Records Policy is intended to contradict our General Disclaimer or Terms of Service. Public records on CourtMesh are provided for informational purposes and we do not guarantee their accuracy or suitability for any purpose. Users are reminded that use of CourtMesh is subject to acceptance of our Terms, including disclaimers of warranty and liability. CourtMesh is not liable for how third parties use information from our site. If you republish or use CourtMesh data, you are responsible for compliance with all laws regarding that data use. ## 9. Changes to this Policy We may update our Public Records Policy from time to time. Changes will be effective when posted on this page. We include a “Last updated” date for reference. For significant changes, we may provide additional notice (e.g., via email or site banner). By continuing to use CourtMesh after a Policy update, you agree to the revised terms. Previous versions of this Policy (if any) may be archived and available upon request. We maintain transparency in how our stance on public records may shift over time. ## 10. Contact Information For questions or concerns regarding our Public Records Policy, or to submit a Public Records Redaction Request, please contact us: - Public Records Request: Use the instructions in the Case Removal Policy (email: hello@courtmesh.ai with subject “Public Record Redaction Request”). - General Inquiries on Policy: Email hello@courtmesh.ai with your query. For formal notices or documentation:Email: hello@courtmesh.ai Attn: Public Records Policy Inquiry We will review and respond to correspondence in a timely manner. We are dedicated to balancing openness of public records with fairness and respect for individual circumstances, and we welcome feedback on this policy. --- # System Status | CourtMesh URL: https://courtmesh.ai/status # System Status Live status for the CourtMesh API and the services it depends on, checked directly from your browser each time this page loads. Checking system status... Re-check now API Court data REST API (research.courtmesh.ai) Checking...Not yet checked Hosted MCP Model Context Protocol server for AI agents (mcp.courtmesh.ai) Checking...Not yet checked Identity Sign in, sessions and account management (iam.courtmesh.ai) Checking...Not yet checked Payments Billing, subscriptions and invoicing (payments.courtmesh.ai) Checking...Not yet checked ## What this page shows Each row above reflects a live health check made from your own browser when this page loaded (and again if you press "Re-check now"), not a historical uptime record. We do not publish a rolling uptime percentage (such as "99.9% over 90 days") because we do not yet keep the kind of independently monitored, tamper evident history that number would need to mean something. "Unknown / unreachable" can mean the component is down, or that the check itself could not complete from your network or browser; it is not a claim that anything is broken. For a proposed uptime commitment and support response targets, see the Service Level Agreement (draft). To report an incident, contact support@courtmesh.ai. --- # Service Level Agreement (Proposed) | CourtMesh URL: https://courtmesh.ai/sla # Service Level Agreement Proposed draft, last drafted September 19, 2026 Draft, pending finalisation This page is a proposed Service Level Agreement circulated for internal review. It is not yet approved, not yet signed with any customer, and does not by itself create a binding commitment. Every number below is a starting proposal, not a promise already in force. An actual Enterprise SLA is agreed in a signed contract, which may set different terms than this draft. ## Proposed target uptime Standard (self-serve plans) 99.5% monthly uptime, proposed Enterprise contracts 99.9% monthly uptime, proposed These are proposed targets for the API and dashboard, not a measured historical record. See the live status page for current, real-time component health; that page is deliberately separate from this one and does not itself track uptime history. ## Definition of downtime and exclusions Downtime (proposed) means the API returns error responses to a majority of well formed requests, or is unreachable, for reasons within CourtMesh's control. The following are proposed to be excluded from any downtime calculation: - Scheduled maintenance announced at least 24 hours in advance - Causes outside CourtMesh's reasonable control (upstream cloud provider outage, denial-of-service attack, internet backbone or ISP failure, force majeure) - Issues caused by a customer's own code, credentials, network, or misuse of the API - Free tier usage, which carries no uptime commitment - Any period a customer's account is suspended for a billing or policy reason ## Proposed support response targets, by tier TierChannelTarget first response FreeCommunity and email, best effortNo committed response time Pay as you go / ScaleEmail supportWithin 1 business day EnterpriseNamed account contactWithin 4 business hours (business day) ## Proposed service credits (Enterprise only) For Enterprise contracts only, a proposed remedy if the 99.9% monthly uptime target is missed. Not applicable to free, pay as you go, or Scale plans. Monthly uptime achievedProposed service credit Below 99.5% and at or above 99.0% monthly uptime10% of that month's fee Below 99.0% and at or above 95.0% monthly uptime25% of that month's fee Below 95.0% monthly uptime50% of that month's fee ### Proposed process to claim a credit - Email your named account contact or support@courtmesh.ai within 30 days of the month in question - Include the affected time windows and any request IDs or error logs you have - CourtMesh reviews against its own monitoring and confirms the uptime figure - An approved credit is applied to a future invoice, not paid out as cash Total credits in any month are proposed to be capped at 50% of that month's fee. Want an Enterprise SLA in your contract? Talk to sales about finalising terms for your organisation. Contact sales --- # Legal Research Software India | AI and Keyword Case Search URL: https://courtmesh.ai/legal-research-software Research # Legal research software for Indian law, built on the whole record. Two ways to search 315.6 million court records. Keyword for when you have the words, AI semantic search for when you only have the idea. Every result links back to the judgment at its official source. Start free See plans and pricing Corpus last counted 19 September 2026. Sourced only from official government portals, with no reseller in the chain. ### Keyword search across the whole corpus Exact word matching across 315.6 million records, with filters for court, year, judge, case type and date. This is the mode for when you already have the words: a section, a party, a case number, a phrase from a judgment you half remember. ### AI semantic search for when you only have the idea Describe a legal issue in plain language and get cases back that never use your wording. Semantic indexing covers a roughly 2 million judgment subset rather than the full corpus, and the product says so where it matters rather than implying a model has read all of it. ### Citation network See how a judgment has been treated by later courts: followed, distinguished, overruled or referred. This is a map of how cases reference each other, derived from the record, not an editor's written opinion on whether a case is still good law. ### Similar case finder and grounded case chat Start from one judgment and find the cases that resemble it on issues and facts rather than on vocabulary. Ask questions of a case and get answers tied back to the text of the record, with the source on screen. ### AI case analysis Issues, arguments, statutes relied on, precedents, case strength, chronology and issue spotting, produced against a specific judgment or your own uploaded matter. Outputs are a research starting point for a lawyer to verify, not a substitute for reading the judgment. ### Acts and provisions alongside the case law Bare Act text and individual provisions sit alongside the judgments, so a statutory question and the cases applying that section are reachable from the same place instead of two different subscriptions. ### Practising advocates and solo practitioners The corpus goes well past reported appellate judgments into the district judiciary and tribunals, which is where most Indian litigation actually sits. If your practice is section 138 complaints, execution petitions or NCLT work, a reported judgments archive will be quiet on most of your files. ### Litigation teams in law firms Research runs alongside matter management and contract work under one login with pooled credits, so a precedent found during research lands in the matter it belongs to rather than in somebody's downloads folder. ### In-house legal and compliance teams Party level litigation history and tribunal coverage answer the questions in-house teams are actually asked, which are usually about exposure and counterparties rather than about doctrine. ### Legal researchers and academics Filters on court, year, judge and case type make it possible to construct a defined set of judgments rather than a pile of search results, and judgment level metadata is exposed rather than buried. Most Indian legal research products are built on reported judgments: decided, usually appellate, usually edited opinions. That is a genuinely valuable corpus and the publishers who built it are better at it than we are. It is also a small slice of Indian litigation. CourtMesh indexes the record as the registries publish it, which means District Court filings, live case status, order sheet timelines and party level litigation history across the Supreme Court, all 25 High Courts, the district judiciary and tribunals. If your question is what has been held on a point of law, a reporting publisher answers it well. If your question is what is pending, against whom, and when it is next listed, a reporting publisher cannot answer it at all. The second difference is that both the corpus figure and its limits are published. The count above carries the date it was last taken, the split between keyword reach and AI analysed subset is stated rather than blurred into one number, and the coverage breakdown by court and year is on the coverage page instead of in a sales deck. - No editorially written headnotes or catchwords. The established Indian reporting publishers have decades of that work and CourtMesh has none of it. - No curated citator. The citation network shows how cases reference each other; it will not tell you authoritatively that a judgment has been overruled. - No journals, commentary or secondary literature. - AI semantic indexing covers a roughly 2 million judgment subset, not the full corpus. A record can be fully retrievable by keyword and carry no semantic indexing at all. - Coverage is not uniform. District Court records carry less metadata than High Court records, and older records are thinner than recent ones across every court. - This is a view of what registries published, not the official record. Confirm any position against the record of the court concerned before you rely on it. ### Plans and pricing What each tier includes, published rather than quoted on a call. ### The same corpus as an API REST endpoints with published per-call pricing, for building on rather than searching in. ### How we compare, with sources A sourced comparison of Indian legal research platforms, including where competitors are genuinely stronger. More writing on Indian legal research method is on the blog. ### What is the difference between keyword search and AI search here? ### Which courts does the research corpus cover? ### Does CourtMesh give me editorial headnotes or tell me if a case is still good law? ### Can I rely on a result without checking the official record? ### What does the free tier actually include? ### Is there an API for this, or is it only the web app? ## Put ten of your own questions to it No demo survives contact with real research questions off real files. Take ten from your own matters, including the awkward District Court one, and see what comes back. Start free See plans and pricing --- # Case Management Software for Advocates in India URL: https://courtmesh.ai/case-management-software-for-advocates My Cases # Case management software for advocates, wired to the court record. Run the matter from intake to closing, watch the names that matter to your practice, and invoice for the work, without three separate tools and a spreadsheet holding it together. Start free See plans and pricing ### The whole matter lifecycle Intake through to closing, with the matter carrying its court, case number, parties and history in one place. Notes and a timeline sit on the file rather than in an email thread, so a matter handed to a junior arrives with its own context. ### Hearings, tasks and deadlines Task workflows with due dates, hearing dates on the file, and reminders that fire before a limitation period rather than after it. The next date is a field on the matter, not something a clerk remembers. ### Private watchlists on party names Add a client, a counterparty or a name under diligence. When a new matter involving that name surfaces at an Indian court, it reaches you. Only your own organisation sees who you are watching. ### Team access with real roles Admin, manager and lawyer roles from the professional tier, so a chamber can give a junior the files they work on without giving them the finances. Enterprise adds department level configuration and bulk matter import. ### GST compliant invoicing Unlimited GST compliant invoices and bulk invoice generation from the professional tier, plus reporting on matter ageing, team workload and revenue. Billing that understands an Indian practice rather than a US one. ### AI on the matter file Case strength analysis, argument and counter argument generation, chronology, issue spotting, key facts extraction and citation checking, run against the documents on a matter. A drafting and thinking aid for a lawyer to check, not a decision maker. ### Solo practitioners The entry tier is built around a small docket: a capped number of active cases, tracking on one court, unlimited document upload, task workflows and a timeline. Invoicing and team access are not included at this level, which is the honest trade for the price. ### Small chambers and boutique firms Unlimited active cases, tracking across up to three courts, team access for up to four members with role based permissions, and full GST compliant invoicing with bulk generation. This is the tier the product is really designed around. ### Larger practices and legal departments Department level case configuration, bulk matter import, integration with external case trackers, SSO, audit logs and IP whitelisting, with advanced reporting on matter ageing, team workload and revenue. You can run a practice out of a general project management tool, and plenty of chambers do. The limit is that such a tool knows nothing about courts. Every case number, every next date and every status change gets in there because a human put it there, and stops being true the moment a human forgets. My Cases sits on the same platform as the court record, so two things become possible that a document and task tool cannot do at any price. First, a matter can carry status from the registry rather than from memory. Second, you can watch a party name across Indian courts and learn about a newly filed matter without anyone running a search, which is the difference between finding out in minutes and finding out when the other side tells you. The third difference is local. GST compliant invoicing, Indian court structure and hosting in AWS Mumbai with DPDP Act 2023 readiness in mind are not features bolted onto a product designed for another jurisdiction. - District Court coverage is live for a defined set of states, currently Delhi, Maharashtra, Karnataka, Tamil Nadu, Telangana, Uttar Pradesh, Gujarat, Rajasthan, Haryana, Kerala, and Punjab and Chandigarh, with more added each quarter. It is not yet every district in India. - Invoicing is not available on the entry tier, and team access starts at the professional tier. How many courts you can watch at once also scales by plan. - On the public developer API, the watchlist endpoints, the changes feed and webhook delivery are not live. They appear on the API pricing page as indicative pricing only. The watchlist inside the application is a different thing and does work today. - A watchlist match is a court record bearing a name, not a verified identity. Common personal and corporate names will produce matches that are not your party, and no alert is not proof that nothing was filed. - Automatic case status reflects what a registry published, and registries publish unevenly. Treat a surfaced status as a prompt to check the official record, never as a substitute for checking it. - This is not an enterprise legal operations suite. If you are buying for a large in-house department that needs multi currency eBilling and outside counsel spend management, vendors who build only for that buyer will fit better. ### Plans and pricing Every tier gate on this page, with the prices attached. ### Court case tracking The watchlist and alerting side in detail, including what is not live yet. ### How we compare, with sources A sourced comparison of case management tools used in India, competitors included. Building your own workflow instead? The same court record is available through the court data API, and more writing on practice operations is on the blog. ### How is this different from a generic project management tool? ### Who is it actually built for? ### Does it update case status automatically? ### What are the honest limits of this product today? ### Who can see the parties I am watching? ### Can I use it alongside a research tool I already pay for? ## Put your five busiest matters in it Not a demo dataset. Your own files, with their real next dates and their real mess. That is the only test that tells you whether a case management tool fits your practice. Start free Talk to the team --- # Contract Lifecycle Management India | CourtMesh My Agreements URL: https://courtmesh.ai/contract-lifecycle-management My Agreements # Contract lifecycle management for Indian legal teams. Intake, drafting, playbook review, approvals, signature, and every obligation and renewal date after it. Plus the one thing a documents-only CLM cannot do: screen the counterparty against the Indian court record before you sign. Start free See plans and pricing ### Intake and pipeline A single queue for every agreement coming at the legal team, and a pipeline view of everything live. The question a general counsel is asked most often is what is outstanding and with whom, and this is the screen that answers it. ### Draft from a template library Standard templates on the entry tier, plus custom template creation from the professional tier, so the clauses your organisation has already settled on are the starting point rather than a document someone copied from the last deal. ### AI clause extraction and playbook review Extraction pulls the operative clauses out of an incoming draft and flags risk, missing clauses and non standard terms. Playbook review compares them against your own agreed positions and auto flags deviations, so a cap that exceeds your limit is caught before it reaches counsel. ### Redlines and multi stage approval Tracked changes on the document and a configurable multi stage approval rail with named reviewers, plus a counterparty portal so the other side is working on the same version rather than on an attachment from nine emails ago. Every step lands in the audit trail. ### Obligation and renewal tracking Signature is the middle of a contract's life, not the end. Date based obligation reminders on the entry tier, full obligation and SLA tracking from the professional tier, so an auto renewal does not arrive as a surprise. ### Counterparty litigation screening Screen the entity on the other side against the Indian court record for live and historic litigation and insolvency exposure, before you sign rather than after something goes wrong. A contract platform built on documents alone knows what the agreement says. It knows nothing about who is signing it. So the standard process is that legal reviews the clauses, the business signs, and nobody finds out that the counterparty is carrying a winding up petition or a string of recovery suits until it matters. Because My Agreements sits on the same platform as the Indian court record, screening is part of the contract workflow rather than a separate diligence exercise on a different tool weeks later. You screen the entity for live and historic litigation and insolvency exposure at the point the agreement is in front of you. That screening carries the same honesty as the rest of the platform. A match is a court record bearing that name, scored with a confidence band rather than handed back as a bare hit, and a clean result means nothing matching surfaced in the corpus as filtered, not that the counterparty has no litigation anywhere. The mechanics are documented on the litigation check page. ### In-house legal teams The pipeline view, the approval rail and obligation tracking exist because the recurring in-house problem is volume and visibility rather than difficulty. Counterparty screening answers the question the business actually asks, which is whether this company is worth contracting with. ### Legal operations and procurement Configurable multi stage approvals, a counterparty portal, an audit trail and analytics on contract cycle times and risk make the process auditable rather than anecdotal. Enterprise adds HRMS, CRM and ERP integration and full API access. ### Law firms advising on contracts Playbooks let a firm encode its own positions once and apply them consistently across clients and juniors, instead of the quality of a review depending on who happened to pick up the draft. - The entry tier caps contracts per month, offers standard templates only with basic clause extraction, exports to PDF only, and has no playbooks, no approval workflows and no counterparty portal. - Playbooks, unlimited contracts, deep clause extraction, redlines, the counterparty portal and the audit trail start at the professional tier. API access and HRMS, CRM and ERP integrations are enterprise only. - AI extracts, flags and compares. It does not approve, negotiate or execute anything on its own, and it will miss things a careful reader would catch. Every flag is for a human to decide on. - Counterparty screening searches court records by name. Common personal and corporate names produce matches that are not your counterparty, and an absence of matches is not a clean record, only that nothing matching surfaced in the corpus as filtered. - This is not an eBilling or outside counsel spend management platform, and it does not do multi currency legal spend. Enterprise legal management vendors who build only for that are better at it. ### Plans and pricing Every tier gate named on this page, with the prices attached. ### Counterparty screening by API The same screening as an endpoint, with confidence bands and published pricing. ### Writing on contracting Approval workflow design, renewals, repositories and counterparty diligence. ### What does the contract lifecycle actually cover here? ### What makes this different from a general purpose CLM tool? ### Is it built for Indian legal teams specifically? ### What is not included, and on which tier? ### Does AI approve or negotiate contracts on its own? ### Are our contracts used to train AI models? ## Run one real agreement through it Take a draft you are actually negotiating, load your playbook positions, and see what the review flags. Then screen the counterparty and see whether anything comes back. Start free Talk to the team --- # Court Case Tracking India | Watchlist and Filing Alerts URL: https://courtmesh.ai/court-case-tracking Watchlist # Court case tracking across India, by name rather than by case number. Add a party to your watchlist once. When a new matter involving that name reaches the record at any Indian court, the alert comes to you, instead of somebody having to remember to search for it again next month. Set up a watchlist See plans and pricing ### Watch any party by name A client, a counterparty, opposing counsel, or any entity under diligence. When a matter involving that name surfaces at an Indian court, you hear about it without anyone running the search again. ### Across the court structure, not one court The Supreme Court, all 25 High Courts, District Courts and tribunals, on one watchlist rather than eleven separate portal logins and eleven separate CAPTCHAs. ### Delivered where you already are In app, by email and on WhatsApp, with Slack, Microsoft Teams, Outlook and Google Calendar among the integrations, and webhooks to push filing and matter events into your own systems. ### Private to your organisation Only you and your own team see who you are watching. The list of names a practice monitors is itself sensitive information about its clients and its matters, and it is treated that way. The underlying corpus is 315.6 million court records taken from official government portals, spanning the Supreme Court, all 25 High Courts, the district judiciary and tribunals. Watching runs over that record. District Court tracking is live in: Delhi, Maharashtra, Karnataka, Tamil Nadu, Telangana, Uttar Pradesh, Gujarat, Rajasthan, Haryana, Kerala, Punjab and Chandigarh. More states are added each quarter. If the districts you litigate in are not on that list yet, that is worth knowing before you buy rather than after. The breakdown by court and by year, including where coverage genuinely thins out, is published on the coverage page rather than summarised into one headline figure. ## Two watchlists, and only one of them is live The watchlist in the application. Live today. It is what this page describes and what you get when you sign up. The watchlist endpoints on the developer API. Not live. The changes feed, the watchlist endpoints and webhook delivery are listed on the API pricing page as indicative pricing so integrators can plan for them, and they carry a not yet available marker everywhere they appear. We are spelling this out because a pricing table that lists an endpoint reads like a shipped endpoint, and building an integration against something that does not exist yet is an expensive way to find out. ### Litigation practices Know when a client is sued before the client calls you about it, and when a matter you are watching escalates from the district judiciary to a High Court. The next date lives on the matter file rather than in a diary somebody has to remember to open. ### In-house legal and compliance Track the entities that create exposure for the business: group companies, key vendors, distributors, and the counterparties on your larger contracts. A new filing against a major supplier is commercial information, not just legal information. ### Credit, risk and diligence teams Monitor a borrower, an investee or an acquisition target over time rather than screening once at onboarding and never looking again. Litigation exposure changes after the diligence memo is signed off. India has no public bulk feed of court filings. The official portals put a CAPTCHA on every search and offer no API and no bulk download, and each High Court runs its own site with its own structure. So the default way to track a party is that somebody types the name into several portals, several times a week, forever, and the quality of your monitoring is the quality of that person's week. That approach fails quietly rather than loudly. Nobody reports the search they did not run. The first sign of a gap is usually the matter you should have known about a month ago. Watching by name changes what has to happen for you to find out. Nobody has to remember, and nobody has to be at their desk. The trade, stated honestly in the limits below, is that a name match is not a verified identity and silence is not proof of a clean record. - Nothing can reach you before the registry publishes it. The speed claim is about the gap between publication and your notification, not between filing and publication, and registries publish unevenly across courts. - District Court tracking is live for a defined set of states, listed on this page, with more added each quarter. It is not yet every district in India. - How many courts one account can watch at once scales by plan: one court on the entry tier, up to three on the professional tier, unlimited on enterprise. - A match is a court record bearing a name, not a verified identity. Common personal and corporate names will surface matters that are not your party. - Silence is not a clean record. No alert means nothing matching your watched name appeared in the corpus as filtered, not that nothing was filed anywhere. - Name based search in India is subject to court ordered restrictions on specified records, and CourtMesh honours every de-indexing and masking order that applies to it. A restricted record is withheld. ### Case management Where a watched matter lands once it is yours: the file, the tasks, the invoice. ### Plans and pricing How many courts and how many tracked names each tier allows. ### The court data API Search, case detail and timelines as REST endpoints, with published pricing. More on cause lists, hearing dates and case lifecycle tracking is on the blog. ### What can I put on a watchlist? ### How quickly does an alert arrive? ### Which courts are watched? ### Where do alerts get delivered? ### Are the watchlist and change feed API endpoints available? ### Can someone tell that I am watching them? ### Does an alert mean the case definitely involves my client? ## Start with the names you would hate to miss Your three largest clients and your two most litigious counterparties. If nothing comes back in a month, you have lost nothing. If something does, you found out first. Set up a watchlist Talk to the team