Overview
Vitark connects ChatGPT to Indian case law and legislation for research grounded in source records. Search Supreme Court and High Court judgments and available tribunal and regulator decisions; find a case by name, case number, neutral citation or CNR; retrieve available judgment text; and look up statutory provisions. Explore similar cases, entity-linked cases and available citation links. Results include available source identifiers and retrieval limits. Judgment text may arrive in slices, and citation links may be unresolved candidates rather than verified later treatment. Verify the underlying text before relying on a result. Connect your existing Vitark account through secure sign-in. Successful substantive research calls use its credit balance; checking the balance is free. Vitark provides legal research information and does not replace advice from a qualified advocate.
Tools
vitark_case_citations
ChatGPTacts_referred and cases_referred are what THIS judgment cites. citing_candidates are judgments that appear to cite it, matched by cited CNR or by normalised title, so a title collision can put an unrelated case in the list. Each candidate carries citation_matched / reverse_edge_resolved: false means the edge itself was not confirmed, not that the candidate is fake. reverse_edges_resolved is true when every candidate resolved — including an empty list, where there is nothing left to resolve. treatment is the producer's own label: followed, relied_on, distinguished, overruled, referred, doubted, or "unknown" when extraction read the judgment and found no express statement. "not_checked" appears only when the producer supplied no treatment value at all — the field absent or null — which says the pipeline has not examined the case, not that the case is unmarked. Neither label is a finding that the case is still good law. entity_coverage.status "not_covered" means this CNR sits outside the entity-extraction subset: the judgment is real and readable through vitark_case_text, only its extracted relationships are missing, and reverse_edges_resolved is true because there is nothing left to resolve. error_code "capability_unavailable" means the citation index is down — a tool outage, never a finding about the case. An error carrying error_class "caller_error" is a bad argument in this call instead. Successful calls can spend credits from the signed-in Vitark account. Repeating a call can spend credits again.vitark_case_find
ChatGPTresolver: "cnr_lookup". Results include an opening snippet and may include a clean title and summary. Args: name: Party or case name, without conversational filler. Optional when case_number is supplied. case_number: Docket number, neutral citation, or CNR. Optional when name is supplied. court: Optional exact court name filter. year: Optional decision year. Returns: The envelope contains match_count, match_definitive, resolver, notes, match_kind, match_confidence, and results. Resolver values are cnr_lookup, full_catalog, legacy_extracted_subset, or full_catalog+legacy_extracted_subset. For a zero-result envelope, match_definitive=true records that every applicable lookup completed; false records incomplete coverage. The flag describes lookup coverage and does not grade a returned match. pagination_incomplete records an uninspected remainder. named_lookup_failed with error class capability_unavailable records that lookup was unavailable. match_kind can be cnr, case_number, docket, party, query, or partial; match_confidence can be exact, high, or candidate. Row extras may contain cnr, bench, judges, case type, petitioner, respondent, url, citation, doc_kind, forum, court type, treatment, text availability, chunk offset, and quality flags. A treatment value of not_checked records that later judicial treatment was not examined. Successful calls can spend credits from the signed-in Vitark account. Repeating a call can spend credits again.vitark_case_text
ChatGPTresolved_from set. offset: first character to read, for judgements longer than one 50,000-character slice. Pass the next_offset of the previous call to read on; omit it (0) for the beginning. Returns: - cnr: the case identifier the text belongs to - text: raw UTF-8 judgement text (up to 50,000 chars per call) - char_count: character count of this slice - truncated: true when more text remains after this slice - offset / next_offset: where this slice starts, and the offset to pass back to read the next one (null when nothing remains) - resolved_from: the reference given, when it was not a CNR When a reference names several judgments the result is {status: "error", error_code: "ambiguous_case_reference", candidates: [{cnr, title, court, year}]} — call this tool again with the CNR of the one you want. Successful calls can spend credits from the signed-in Vitark account. Repeating a call can spend credits again.vitark_cases_by
ChatGPTtotal is the producer's count for the whole filter, capped at 1000 — total_capped: true means the real total is at least that, so page rather than quote the number. This index covers only the part of the corpus with entity extraction, so it is never exhaustive. entity_coverage.status is "complete" (the coverage block is authoritative), "unavailable" (coverage could not be read; say the answer is not exhaustive) or "not_covered" (the requested case or filter sits outside the extracted subset — real, just not indexed here). It is also topic-blind: it filters on who and what, never on what was held. error_code "missing_filter" means no filter was supplied, "invalid_act_year" means act_year arrived without act/act_norm, "section_requires_act" means section arrived without act/act_norm (a section is scoped inside an Act; resolve one with vitark_entity_suggest type="act"), and "capability_unavailable" means this index is down — never a finding about the person, Act or case. An error carrying error_class "caller_error" is a bad argument in this call: fix the argument and retry. Every other error is an outage, so do not retry it as though it were. Row extras: every row's extras may carry url, citation, doc_kind, forum, court_type, treatment (later judicial treatment — "not_checked" means nothing was examined, NOT that the case is good law), text_available, chunk_offset and quality_flags. An absent key is absent data, never a negative finding. Successful calls can spend credits from the signed-in Vitark account. Repeating a call can spend credits again.vitark_entity_suggest
ChatGPT*_norm` cases-by filter. Successful calls can spend credits from the signed-in Vitark account. Repeating a call can spend credits again.vitark_search
ChatGPTlimit case rows AND at most limit statute rows. Excerpts are capped, so ask for what you need — a small limit is a small response. decision_date_from / decision_date_to inclusive YYYY-MM-DD decision-date bounds, finer than year_from/year_to; cases only. cnr exact canonical case identifier, copied from an earlier envelope; cases only. act_year_from / act_year_to inclusive enactment-year bounds for statutes. ministry exact statute ministry filter. Returns one envelope: results (case rows, each with extras.source, extras.court_type, extras.forum, extras.year, extras.url) counted by `result_count…vitark_similar_cases
ChatGPTadditional_passages) so top_k counts JUDGMENTS. Retrieval and ordering are unchanged; default false keeps the historical passage-level shape. Returns: - reference_cnr: the input CNR - extracted_issue: the core legal issue used for the search - query: the effective search query (same as extracted_issue) - source_system: "vitark" - result_count: number of ROWS returned - case_count: number of distinct judgments those rows cover — lower than result_count whenever a judgment contributed more than one passage - grouped_by_case: whether the rows are per-judgment - results: list of cases in the same schema as vitark_search Successful calls can spend credits from the signed-in Vitark account. Repeating a call can spend credits again.vitark_statute_search
ChatGPTsection_text; quote from that field, never from snippet. snippet holds the same text as a display excerpt and is clipped elsewhere in the system, so a long section read only from a snippet can be missing its later sub-sections. Only section_text_complete: true confirms the complete stored section. Any other row can be a search fragment: re-request it by act_id and section_number before claiming to have read the whole section. Args: query: Natural-language statute query. top_k: Upper bound on returned statute rows. act_id: Addresses one Act exactly by its stable identifier. Use it when a previous result carried an act_id, in place of guessing an act_slug string. act_slug: Exact Act slug. act_year_from: Inclusive Act-year lower bound. act_year_to: Inclusive Act-year upper bound. section_number: Exact section identifier. ministry: Exact ministry filter. collection: Collection filter — "central", "regulations", or a state name. Returns: A statute envelope with status, source_outcomes, result_count and results; statute_results and statute_count are aliases for mixed-search envelope consumers, and case_count is always 0 here. Each result carries act_title, section_number, a display snippet, the verbatim unclipped section_text, the Act's act_id (pass it back to address that Act exactly), resolved_by ("catalog" for an exact Act match, "vector" for a semantic one), section_text_complete (true only when the row is the complete stored section) and pinned. pinned: true means you supplied section_number with act_id or act_slug and the producer matched that exact Act and section from its catalog — the strongest identity this tool reports. support_level is strong (some row is pinned), weak (rows, none pinned) or none (no rows). support_basis is "catalog_identity_not_relevance": on this envelope the level grades whether the right Act and section were identified, NOT whether the section answers the question. The case envelopes use the same word for rerank relevance ("rerank_relevance_not_legal_entailment"), so read the basis before comparing two levels. Both fields appear at the top of the envelope and again inside resolved_scope, on either envelope. candidates_reviewed is the number of rows the leg reviewed before duplicates were collapsed, so it can exceed statute_count. resolved_scope reports statute_collections searched and legs {planned, ok, partial, partial_detail}, where partial_detail names each source that did not complete; its court fields stay empty here. notes carries producer advisories about how the request was read — for example that an act_slug was ignored in favour of the act_id you sent. Successful calls can spend credits from the signed-in Vitark account. Repeating a call can spend credits again.Capabilities
Example Prompts
Click any prompt to copy it.






