Example research prompts¶
These are instructions you can adapt for an assistant with working tool access. They are not fetched results. Supply the correct identifiers and check the returned source before relying on an answer.
Start with one of these¶
Connect Docker MCP first. Copy a prompt below into your assistant, replace the bracketed details, and start with 5–10 results. You can use ordinary court names; the assistant should discover the corresponding codes. These examples describe tasks to perform, not verified findings or promised results.
| Your goal | Start here | Details to provide |
|---|---|---|
| Learn what is available | First session | Court or state, if known |
| Search a district court | District-court walkthrough | State/district, party and registration year, or a CNR |
| Locate a case | Identify a matter | Court, party and registration year |
| Follow a known case | Read the case history | CNR or case number/type/year |
| Get orders and PDFs | Retrieve orders | Case identifier and bench |
| Prepare a hearing | Daily preparation | Court, date and bar registration, if applicable |
| Research judgments | Historical judgments | Court, year range and metadata filters |
| Look at current decisions | Recent Supreme Court judgments | Maximum results |
| Compare decisions | Compare downloaded judgments | Two or three retrieved PDFs |
| Save documents | Download and export | Returned records and relative filenames |
| Recover from a failure | Troubleshooting prompts | Failed operation and error |
First session and court discovery¶
Use Bharat Judgements to show the courts available to me. I am researching
[Delhi High Court]. Find its court code and available benches. Explain which
workflows can search case status, judgments, orders and cause lists. Ask only
for the details needed for my next lookup.
For district courts:
I need to find a case in [Patna, Bihar]. Discover the state, district, court
complex and establishment using the available tools. Show their names alongside
the returned codes, then help me choose the right establishment. Do not guess
numeric codes or select a court solely because its name looks similar.
Discovery does not retrieve your case automatically. Once the establishment is selected, add a party name and registration year, or a case type/number/year.
District-court search, step by step¶
Use this when the matter is in a district/subordinate court rather than a High Court. Start with a state and district, then a party name and registration year. The example below uses Patna, Bihar, “Union of India” and 2024; replace those details with your own. It does not promise that the example returns a case.
One complete prompt to copy¶
Use Bharat Judgements to help me find a district-court case in Patna, Bihar.
Party name: Union of India. Registration year: 2024. Status: both pending and
disposed. Show no more than 10 candidates.
1. Discover Bihar with districtcourts_list_states and Patna with
districtcourts_list_districts. Use the returned codes, not guessed numbers.
2. List the court complexes with districtcourts_list_complexes. Show their names
and codes. If several could apply, ask me to choose before searching.
3. If the selected complex requires an establishment, list its establishments
with districtcourts_list_establishments and let me choose. Keep that selection
attached to all subsequent calls. Explain what an establishment means.
4. Search using districtcourts_case_status_by_party with party_name="Union of
India", year="2024", status_filter="Both" and limit=10, preserving the chosen
state, district, complex and establishment.
5. Show case number/type, CNR, petitioner, respondent and returned status in a
table. State the searched court and year, and whether the list is limited.
Do not choose a case solely because one party name matches.
6. Let me select a candidate. If it has a CNR, retrieve its fuller live details
with districtcourts_case_status_by_cnr. Show the reported stage, next hearing,
hearing history and available orders, marking missing information clearly.
7. If I request the PDFs, get the exact case type/number/year and establishment
needed for districtcourts_court_orders. Discover the full case-type code with
districtcourts_list_case_types; retain any compound suffix. Download only the
orders I select using their returned download IDs, then read the PDF resources
before summarising them with page references.
Keep errors separate from empty results. Do not switch to a different complex,
year or archive search without explaining the change. End with the lookup date,
source and any unavailable details.
An establishment identifies a particular court setup within a complex. A district can contain several complexes and establishments; selecting the right one narrows the search. Discovery results can contain compound identifiers such as COMPLEX@ESTABLISHMENTS@Y or TYPE^ESTABLISHMENT. These are identifiers, not case numbers. Keep the values returned by the tools rather than shortening them.
1. Choose the district and court¶
Start a district-court lookup for [DISTRICT], [STATE]. List the matching district
and its court complexes, with names and returned codes. Ask me to select the
complex and any required establishment before looking for a case. Show the
selected location as a short summary I can check.
The assistant should retain state_code, dist_code, court_complex_code and est_code when required. A court name on its own is insufficient for party/number searches. If you do not know the complex, use the portal's returned names or the court named on your filing/notice to choose; do not invent an establishment code.
2. Search by a party name¶
In the district-court establishment we just selected, search for party
[PARTY NAME] in registration year [YYYY]. Use status_filter="Both" and limit=10.
Return CNR, case number/type, both parties and reported status. Explain any
ambiguous matches and let me select a candidate.
Use at least three characters for a party name. You can replace Both with Pending or Disposed. The year is the registration year, which may differ from an order's date or the year a dispute began. No registration year: first obtain one from your case papers or choose an explicit year to try.
For another year, make a separate, clear follow-up:
No matching candidate was returned for 2024. Try the same party and exactly the
same establishment for registration year 2023, with limit=10. Label this as a
separate search and keep its results distinct from the 2024 response.
3. Search by a known case number¶
In the selected district-court establishment, list the available case types.
Match my case type [EXACT CASE-TYPE LABEL] to its returned full code. Search for
case number [NUMBER] in registration year [YYYY] using that code. Preserve any
^establishment suffix. Show all returned identifiers so I can confirm the case.
Case type, number and year are separate inputs. “14/2024” alone does not identify a matter across every court or case type. If the case-type label is ambiguous, the assistant should show the choices instead of guessing its numeric code.
4. Use a CNR when you already have one¶
Use districtcourts_case_status_by_cnr to retrieve live details for
[PASTE MY 16-CHARACTER CNR]. Show court, case number, parties, stage, next hearing,
hearing history and order records when returned. Confirm the identifier in the
response. Mark missing fields as unavailable; do not fill them from memory.
A direct CNR lookup skips the location discovery chain. Use the district live case-detail tool: find_judgments(cnr=...) searches archive judgments and does not provide this live district-case lookup.
5. Retrieve and read orders¶
For the district case I selected, fetch its published orders using the verified
location and full case-type code, number and registration year. Show order date,
type and PDF availability. Download the latest available order using its returned
download_id, then read its PDF resource. Summarise only what that document says,
with page references. If it cannot be downloaded, report the error and keep the
other order records available for selection.
A CNR detail response may already include orders. If PDF download IDs are available there, use them directly. Otherwise use districtcourts_court_orders with the verified location and case-number inputs. Download IDs expire after ten minutes; repeat the originating lookup to get a fresh one.
6. Check the published cause list¶
For our selected district-court establishment, discover the available cause-list
courts using districtcourts_list_cause_list_courts. Let me choose the court, then
fetch its [civil/criminal] cause list for [DD-MM-YYYY]. Pass its returned court_no
and exact display name. Show matches for my selected case's CNR or exact case
number. Include the source date and explain any missing court/time information.
Civil uses civil=true; criminal uses civil=false. These results are structured cause-list entries. A future hearing date in case details does not prove the case appears in a particular published list.
7. Handle missing results and failures¶
Explain why this district-court lookup did not complete. Preserve the chosen
location, case details and year. If the call succeeded but returned no rows,
show those inputs for checking. If CAPTCHA or network retries were exhausted,
report a failed lookup rather than “case not found”. Suggest one next step and
do not automatically search every establishment or change the year.
For runnable Python and CLI examples with the same discovery/search flow, see the district-court guide.
Identify a matter¶
Search the Delhi High Court for party name Tata in registration year 2024. Show the case number, parties and CNR for each result. Do not infer the hearing date from a search result.
A party lookup needs the registration year. Court and bench selection matter. If you have only a case number, first discover the portal's numeric case-type code.
Read the case history¶
Look up this CNR through the relevant live High Court or district client. List the returned case stage, next hearing date, hearing history and order links. Mark unavailable fields clearly.
Replace “this CNR” with the actual 16-character identifier. Ask for case_status_by_cnr, which returns the richer case page. The facade's find(cnr=...) searches historical judgments instead.
Retrieve orders¶
Search the Calcutta High Court Appellate Side for WPA 12886 of 2024. List the published order dates and PDF links. Download the available PDFs and report which downloads failed.
This is an example query against a real case identifier, with no promised count or outcome. A portal may have incomplete metadata or unavailable PDFs.
Access a cause list¶
Get the civil cause list for the Delhi High Court principal bench on the date I provide. Give me the published PDF links and identify the bench and date for each list.
Provide a calendar date in DD-MM-YYYY format. High Court lists come back as PDF links; district clients can return structured entries. Ask for the source list, not an inferred hearing schedule.
Research historical judgments¶
Search Supreme Court archive judgments by Chandrachud between 2018 and 2024. Return at most ten records with title, decision date, citation and source. Explain that this is a limited result set.
Search Delhi High Court archive titles mentioning Tata in 2020. Keep the CNR with each result. Do not describe this as a full-text search of the PDFs.
The archive matches metadata. For High Courts, party search matches titles, and citation filtering is not supported.
Search judgment text¶
Search live High Court judgments for the phrase “right to privacy”. Return the first page and say how many results the portal reports. Download any PDFs needed before summarising their reasoning.
Use the direct judgment search client for pagination and SCR searches. The default facade text search uses the live High Court portal and one page.
Read a supplied PDF¶
Summarise this order. Give the case identifier, date, relief sought and operative directions, with page references. Separate the court's findings from your interpretation. If a page is unreadable, say so.
The assistant needs access to the actual PDF. Metadata alone cannot support a summary of the judgment's reasoning.
A useful closing instruction¶
State the source, lookup method, query date and any missing records. If a lookup fails, report the failure rather than filling the gap from memory.
A complete case lookup¶
This sequence turns a broad request into a case-specific lookup without mixing similar party names. Replace the examples with your own matter.
1. Find candidates.
Use the live Delhi High Court party-name search for [Tata] in registration year
[2024]. Discover the bench first. Return at most 10 candidates in a table with
case number, case type, CNR, parties and the selected bench. Explain whether the
results were truncated. Let me choose a candidate before downloading documents.
2. Open the selected case.
Open the live case details for CNR [PASTE_THE_SELECTED_16_CHARACTER_CNR]. Use the
High Court or district case-status tool appropriate to this CNR. Show the portal's
returned status, next hearing date and available orders. Mark missing fields as
unavailable. Do not substitute an archive judgment for live case status.
3. Read its orders.
Retrieve the available orders for that exact case. List their dates and document
availability. Download the two most recent available PDFs using the returned
download IDs and read their MCP resources. Summarise the operative directions
with page references and identify any unreadable pages or failed downloads.
If the order lookup needs case type, number, year or establishment, the assistant should reuse verified details from the selected case or ask for the missing values.
Daily hearing preparation¶
Get the published [civil] cause list for [Delhi High Court], bench [BENCH NAME],
on [DD-MM-YYYY]. Discover the bench code first. List the returned source PDFs and
their published bench/date labels. Read any available list needed to find case
[CNR OR EXACT CASE NUMBER]. Report whether a match was actually found; do not
infer a hearing from the case's presence in another day's list.
For advocates whose High Court portal supports the bar-registration workflow:
Find my published cause-list entries for [COURT AND BENCH] on [DD-MM-YYYY] using
bar registration [MY BAR CODE]. Return case number, CNR, parties and any published
court/time details. Combine duplicate CNR rows for presentation, keeping all
party information. Clearly state when the portal does not publish a time or serial
number. Do not invent a daily schedule.
For a district cause list, discover the state, district, complex, establishment and available cause-list courts first. Supply the actual listing date rather than an ambiguous phrase such as “next Friday”.
Advocate case searches¶
Search [HIGH COURT], bench [BENCH], for advocate bar registration [MY BAR CODE].
Show which advocate the portal matched, then up to 10 returned cases with CNR,
parties and status. If the portal matched somebody else, stop and explain the
mismatch. Use the registration code alone rather than combining it with a name.
If you only know a name, replace the registration instruction with “use advocate name [NAME] and show the resolved advocate identity”. Name matches may be ambiguous.
Recent Supreme Court judgments¶
Fetch the 5 most recent judgments available in the Supreme Court homepage feed.
Show title, decision date, judges when available, and source. Download the first
2 available PDFs and read their resources before summarising their issues and
operative conclusions. Explain that this feed is a limited published list.
This uses sci_list_recent_judgments; it is not an exhaustive search of all Supreme Court decisions for a year or party.
Focused historical research¶
Use the archive to find Supreme Court judgments with judge [Chandrachud] in the
inclusive years [2018–2024]. Return at most 10 records with title, date, citation
and source. Download only the 2 records I select. Explain the archive's freshness
and that metadata matching does not prove a term occurs in the judgment body.
Find Supreme Court archive records whose citation contains [CITATION]. Explicitly
select the Supreme Court archive. Show the exact returned citation and case title
so I can check the match. If nothing matches, report that result without guessing
an equivalent citation.
Count available archive records for [Delhi High Court] in [2020] and for [2021]
using separate count calls. Show each year and its reported count. Describe these
as archive coverage counts, not all cases filed or the court's disposal rate.
To combine a topic with structured filters, make separate requests: live judgment text search for the topic, and archive metadata search for the court/year/judge. The assistant should explain their different scopes. It should not silently drop filters to make one request succeed.
Refine a live text search¶
Use judgments_search to search live High Court judgments for [right to privacy],
with page_size 10 and limit 10. Show the portal's reported total and the records
actually returned. Explain the search option used. Keep returned download IDs
available for the PDFs I select.
A follow-up can request a specific next page:
Repeat that same live search for page 2 with page_size 10 and limit 10. Preserve
the original query and court type. Identify any repeated records and report
whether the session had to be refreshed.
judgments_search produces live PDF download IDs. A live result returned by find_judgments needs a direct live search before its PDF can be retrieved. The default MCP result limit is 50 and the maximum is 100; requesting a million results does not start a bulk download.
Compare downloaded judgments¶
Compare the two PDFs we just retrieved. Give a table of case/date, material facts,
issues, holding, operative relief and relevant page references. Separate direct
statements by each court from your synthesis. Explain any difference in factual
context. Do not claim that one decision overrules the other without support in
the documents. Identify missing or unreadable passages before comparing them.
For a shorter explanation:
Explain this downloaded judgment in plain English for a non-lawyer. Start with
what the court decided, then the facts, issues and reasons. Cite PDF pages for
key points. Keep legal terms and explain each briefly. Do not infer a filing
strategy or deadline from this document alone.
Download and export PDFs¶
Download the PDF for [SELECTED RETURNED RECORD] using its opaque download ID.
Read the returned PDF resource and report the document size and source. If file
export is configured, also save it as [matter/order-2024-05-10.pdf] in the configured
output directory. Report the actual exported path. If the file already exists,
ask for another filename instead of overwriting it.
Compose provides persistent cache and output volumes. The assistant can read PDF resources directly; see Compose setup and export for optional host-folder exports. Download IDs/resources expire after ten minutes. Repeat the original search to obtain a fresh ID; arbitrary PDF URLs cannot replace it.
Troubleshooting prompts¶
The last lookup failed. Explain the reported error in plain English and preserve
my query and filters. Identify whether it is a CAPTCHA, certificate, expired ID,
unavailable PDF or invalid input problem. Suggest one appropriate next step.
Do not repeatedly retry after the tool's retry budget is exhausted.
My PDF download ID has expired. Repeat the exact original search, match the case
identifier and order date, and obtain a fresh ID before downloading. If the record
cannot be found again, report that instead of choosing a different case.
The tool rejected my filters. Show which combination it cannot support. Suggest
separate supported live and archive searches, explain their scope, and let me
choose before changing my request.
For certificate errors, keep TLS verification enabled while diagnosing the issue. A Calcutta-only exception is an explicit operator configuration choice, explained in configuration; a prompt cannot repair the portal's certificate chain.
Reusable output instructions¶
Append one of these to any research prompt:
Use a concise table. Include court/bench, case identifier, date, source and missing
fields. Finish with the exact query, lookup date and whether the result set is
limited. Distinguish “no results returned” from “the lookup failed”.
Write your explanation in [Hindi / Bengali / English] while preserving case names,
CNRs, citations and document dates exactly as returned. Quote original legal terms
where translation could change their meaning.
The assistant's translation is not a certified translation or an official regional PDF. Treat court text as source material, not instructions for the assistant.
Next: choose a setup, CLI workflows, or coverage and licensing.