Integration details
Description
BIA Edge helps users research U.S. immigration law in ChatGPT by retrieving case law, statutes and regulations, agency policy, unpublished decisions, validity and citation treatment, visa bulletins, EOIR statistics, doctrine data, and criminal-code text. Its 42 tools are read-only and return source-grounded records and warnings for the model to evaluate. It does not provide legal advice.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Legal Research Engines
- Secondary Subcategories
- None listed
- Brand
- BIA Edge
- Access
- Account required
- First tracked
- 2026-08-08
- Tool count
- 35
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for BIA Edge
Get updates when BIA Edge’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Legal Research Engines
View Category35 tools agents can invoke
Fetch a structured record by a search/exact-lookup item ID. Use this after search tools return case:, unpublished:, reference:, statute:, or regulatory_update: IDs and you need metadata plus available text. Use corpus-lane get_document (include='text') when you need raw local document source text by numeric document_id; use get_*_by_citation first when starting from a known citation. Case records carry metadata.propositions (statements of law with literal source excerpts, bounded by propositions_limit) plus a propositions_note when the case has propositions; propositions are never validity signals, so use check_validity to review identified treatment and source evidence. Absence of a warning does not establish good law. ImmCite status values and treatment filters: see the check_validity tool description.
fetch
Find pinpoint snippets inside an already identified reference section. Use this after search_references or get_reference_by_citation. Use fetch when you need fuller section text. Default results are compact and overlap-deduped; explicitly raise around_chars or limit for expansion.
find_in_reference
Find pinpoint snippets inside an already identified statute or regulation. Use this after search_statutes, get_statute_by_citation, or fetch(statute:...). This also accepts criminal-code provision IDs returned by lookup_criminal_code. Use get_statute, fetch, or the criminal-code provision tools when you need fuller source text. Default results are compact and overlap-deduped; explicitly raise around_chars or limit for expansion.
find_in_statute
Resolve a known case from the live corpus before relying on it, then use check_validity for central or dispositive authority. Do not rely on model memory alone for substantive immigration-law claims; it may miss post-cutoff authority or policy changes. Resolve a known case citation, parallel citation, or ``Case Name, citation`` string. Use this before search_cases when the user gives a reporter/admin citation. Bare party-name captions such as ``Mellouli v. Lynch`` are not exact citation lookups; use search_cases for those. After this returns a record, use the numeric document_id for check_validity, get_citations, or corpus source-text tools. ImmCite status values and treatment filters: see the check_validity tool description.
get_case_by_citation
Browse compact citation lists with historical treatment labels and separate current warnings. Lists live once in records[0].metadata.citation_pages. Request a row's related_document_id and a single direction for full evidence for that pair. Follow any result with get_document or another get_citations call. Each direction has its own next_cursor; continue with that single direction and the same filters until has_more is false. Page size is bounded for clients. A case's treatment of this authority is separate from its own current warning. Counts cover the stored public index, not all cases ever decided.
get_citations
Report corpus coverage, freshness, and inventory metadata for routing decisions. Use this before time-sensitive, current-policy, recent-case, unpublished, or visa-bulletin research, and to discover valid category slugs, source codes, and corpus-wide counts. It is a planning/inventory check, not a source retrieval tool. The default summary view is intentionally compact; use view="detail" with section/limit/offset for bounded freshness pages, or section='categories'/'sources'/'database_stats' for corpus inventory.
get_corpus_info
Get one state or federal criminal-code provision's text and metadata. Use this after lookup_criminal_code returns a provision_id; the provision's own jurisdiction determines the response, so no jurisdiction parameter is needed. Pass offense_date or conviction_date for stored historical text; offense_date takes precedence. Read version_status and coverage/review warnings. Repeat the same dates and citation when following next_offset.
get_criminal_code_provision
Get metadata and extracted text for a federal district court decision. Args: document_id: The document ID from search_district_court_decisions or search_cases max_chars: Maximum extracted-text characters to return (default 12000, max 50000)
get_district_court_decision
Get a case/document by database ID: metadata, full text, and/or propositions. include='metadata' (default) returns case name, citation, date, deciding body, summary, source, court, outcome, word count, and ImmCite treatment details. ImmCite does not certify that a case is valid. Detail values include treatment_available (history available, not clearance), caution, negative, overruled, vacated, reinstated, unchecked, unchecked_no_treatment_data, and not_applicable. When the case has propositions, the metadata record also carries metadata.propositions (proposition text, literal source excerpt with offsets, proposition_type, controlling_status, risk_flags, qualifications, and a validity_label) plus a propositions_note; propositions are never validity signals, and validity_label reads "Validity not yet assessed" until ImmCite assesses the point (use check_validity). include_propositions=false omits them; propositions_limit bounds them (default 25). include='text' returns the full extracted decision text (truncated to max_chars); use it when you need to read the actual decision, not just metadata. include='propositions' returns the propositions as a readable record; a decision whose propositions are not written yet returns an empty section. Combine sections with commas. Args: document_id: The document ID (from search results or citation lookups) include: Comma-separated sections: metadata, text, propositions. max_chars: Maximum text characters when include contains 'text' (default 15000, max 100000) include_propositions: Attach metadata.propositions to the metadata section (default true). propositions_limit: Maximum propositions per case; clamped to 1-100 (default 25). ImmCite status values and treatment filters: see the check_validity tool description.
get_document
Return one EOIR judge's or court's descriptive statistics profile with denominators. This is an analytics primitive: it surfaces metrics, denominators, source hash, and caveats. It does not provide legal strategy, forum-shopping guidance, or judge predictions.
get_eoir_profile
Fetch the next ranked tranche of an earlier search. Use this when a search response reports meta.has_more with a meta.next_cursor token: it continues the same ranked result list where the previous window ended. Green searches read a retained bounded ordering and refresh treatment warnings (caution or null); a missing warning does not establish good law. Lost windows require a fresh search. It never changes the query — to search differently, call the search tool again. Continuation depth is capped (rank offset 100) because deeper ranked tails are low-relevance; an expired or edited cursor returns a coded error and the original search must be re-run for a fresh cursor.
get_more_results
Rank immigration cases by citation count within the Passim AI corpus. This is a corpus citation-count ranking, not an editorial judgment that a case is legally controlling, important, or still good law. Args: source: Filter by source: 'bia', 'aao', 'ag', 'circuit-courts' limit: Max results (default 25)
get_most_cited
Fetch exact evidence spans by IDs returned from search_passages. When a returned span's case has propositions, the response also carries a top-level propositions list (one block per document with the propositions, a propositions_note, and counts, bounded by propositions_limit) so the span can be read against the case's propositions. Propositions are never validity signals; use check_validity to review identified treatment and source evidence. Absence of a warning does not establish good law. Args: span_ids: Span IDs such as case:123:corpus_block:789, case:123:issue_unit:456 or historical case:123:block:789. include_propositions: Attach per-document propositions blocks (default true). propositions_limit: Maximum propositions per document; clamped to 1-100 (default 25).
get_passages
Find state opinions citing a statutory provision and exact subsection. Returns source-bound pinpoint passages and official/document links. Links identify citation mentions; interpretive significance remains unreviewed. State authority is not immigration precedent and has no ImmCite treatment. First use lookup_criminal_code/get_criminal_code_provision with offense_date or conviction_date for the applicable stored statute text and coverage limits. Opinions do not automatically apply the statutory version at decision date.
get_provision_case_law
Get full text for a reference-section record. Args: reference_id: The reference section ID (from search_references results) max_chars: Max characters of full text to return (default 15000) section: Optional heading/subsection title to retrieve from a long reference
get_reference
Resolve a known USCIS, FAM, form-instruction, or practice-reference citation. Use this before search_references when the citation or source label is known. Use find_in_reference for pinpoint snippets or fetch for larger section text after a reference is resolved.
get_reference_by_citation
Check recent BIA/AG decisions, CFR and Federal Register changes, and USCIS policy updates whenever timing may affect the answer. Do not rely on model memory alone for substantive immigration-law claims; it may miss post-cutoff authority or policy changes. Get recent regulatory and policy changes in immigration law. Includes new BIA/AG decisions, CFR amendments, policy manual updates, and Federal Register notices. Args: days: Look back period in days (default 30) limit: Max results (default 20) category: legal_update (default), reference, or all include_trade_technical: include CBP trade-automation pages (default False) include_press_releases: include USCIS enforcement press releases (default False) topic: optional topic filter (a known topic name, or free-text terms that must all appear; generic agency words such as citizenship or immigration are ignored and a warning names the terms used). Known topics are the litigation-tracker topics plus doctrinal topics: unlawful presence, adjustment of status, waivers, criminal grounds, cancellation of removal, motions to reopen, in absentia, voluntary departure, fraud, credibility, representation; a statute section such as 212(a)(9) also works as a free-text term include_library_additions: include late catalog backfills of old decisions (default False) update_type: optional comma-separated update types filtered in the database (e.g. new_decision) source: optional comma-separated source codes filtered in the database (e.g. bia,scotus) include_information_collections: include routine Federal Register paperwork renewals (default False) cursor: meta.next_cursor from the previous page; original filters are retained
get_regulatory_updates
Get the Passim AI legal-research playbook to follow for serious research. Fetch and follow deep_research_method before filing-facing work: legal memos, briefs, authority packets, RFE/NOID support, crimmigration screens, or any research where a wrong answer creates filing or malpractice risk. Fetch unpublished_routing before searching unpublished BIA/AAO decisions. Fetch authority_taxonomy when classifying binding vs. non-precedent authority. Fetch research_method for the overall method: request-mode classification, operating principles, research floors, validity-check discipline, memo structure, and citation rules. Fetch tool_routing for the complete tool-by-tool routing map. Returns the requested section as markdown. The playbook is methodology, not law: it tells you how to research and present authority, and the direct source tools remain the only source of legal content. Follow it yourself; the server does not synthesize final legal work product. Args: section: Which playbook section to return (default research_method).
get_research_playbook
Get the full text of a specific statutory or regulatory provision. Args: provision_id: The provision ID (from search_statutes results)
get_statute
Resolve governing INA, USC, or CFR text from the live corpus before stating the rule. Do not rely on model memory alone for substantive immigration-law claims; it may miss post-cutoff authority or policy changes. Resolve a known INA, USC immigration, or CFR citation. Use this before search_statutes when the citation is known. Use lookup_criminal_code(jurisdiction='federal') for Title 18 and other federal criminal-code provisions instead of treating a statute search miss as absence.
get_statute_by_citation
Return Visa Bulletin priority dates loaded in Passim AI, or check one priority date. Without priority_date, returns one bulletin-table record (omit month/year for the latest loaded bulletin, or provide both for a historical month): the record text is the full markdown table, and metadata.columns/rows carry the same data with final-action and dates-for-filing cells as ISO dates or Current / Unavailable / Not Published; metadata.uscis_chart_designations maps categories to the USCIS-accepted chart. With priority_date plus category and chargeability, answers whether that date is available under the selected chart. Use this for stored priority-date research, not case-law research; call get_corpus_info or verify official Department of State sources when the latest bulletin timing matters.
get_visa_bulletin
List the organized district-court decision families and live corpus counts. Use this before district-court MCP searches when you need to choose a practitioner-facing corpus slice. The listed decisions are nonprecedential federal district court decisions and are persuasive only.
list_district_court_decision_families
Search state or federal criminal-code provisions for crimmigration research. Use this before categorical-approach analysis to find the statute of conviction by citation, section number, title, or text. Results include official-source status, parser/ingestion status, and the text for the best match when available. State coverage is penal-title-only for some states, so a miss is not proof a state offense does not exist; the empty response lists the official source records Passim AI holds. search_statutes is the immigration statute/regulation lane and is not proof of criminal-code absence. Use get_criminal_code_provision after lookup when you need one provision's full text and metadata. Dates select stored historical text. Historical-only sections also accept exact archive citations, such as 'MS § 97-1-1' or 'Me. Rev. Stat. tit. 17, § 1', with a date; edition-year coverage is not proof of effective dates. Historical keyword search is not covered. Repeat the same dates and citation when following next_offset.
lookup_criminal_code
Lookup current USCIS/EOIR form-page and form/instruction PDF records. EOIR-numbered forms (EOIR-26, EOIR-28, EOIR-33/IC, EOIR-42B, ...) route to the eoir_forms immigration-court/BIA catalog; all other numbers route to the uscis_forms catalog. Args: form_number: USCIS or EOIR form number such as I-751, I-485, N-400, EOIR-28, or EOIR-42B. max_chars: Maximum source snippet characters per returned source. Defaults compact; use returned reference_id values with get_reference or find_in_reference for full source text.
lookup_uscis_form
Query EOIR statistics rollups as descriptive analytics data. This read-only primitive returns facts, denominators, filters, and caveats. It intentionally does not produce legal strategy, judge predictions, or recommendations.
query_eoir_stats
Review identified treatment of central or dispositive cases in the live ImmCite records before relying on them. Do not rely on model memory alone for substantive immigration-law claims; it may miss post-cutoff authority or policy changes. Review identified ImmCite treatment and source evidence for a resolved case document_id. Use this after get_case_by_citation or search_cases identifies a central case. This tool does not certify that a case is valid. It returns precise adverse treatment and available history, including positive, negative, distinguishing, and overruling relationship entries that sit behind it (metadata.treatments); read the entries and status_reason, not just the status, before relying on an authority. Pass document_ids to review several central cases in one call (compact summaries; follow each record's metadata.detail for full evidence before relying on it). Follow meta.next_call when the response budget requires another page. Exact proposition-keyed current-law queries stay on this tool by supplying ``proposition_key`` with the resolved document_id. Free-text proposition queries first route through search/search_cases, then call this tool for the selected authority. ImmCite status vocabulary: caution, negative, overruled, vacated, reinstated, unchecked, treatment_available, unchecked_no_treatment_data, not_applicable. treatment_available means history is available, not affirmative clearance. Search shows caution for adverse treatment and otherwise no label. Absence of a warning does not establish good law. unchecked means an eligible authority has no stored public status; unchecked_no_treatment_data is the MCP explanation for eligible authorities with no treatment row; not_applicable means the document is outside the precedential ImmCite corpus. ImmCite treatment filters: all, positive, negative, distinguishing, and overruling. Relationship entries still expose their stored relationship_type for source verification.
check_validity
Generic structured search for ChatGPT/Codex MCP clients. Case results expose validity_status="caution" for identified adverse treatment, otherwise null. Absence of a warning does not establish good law. Use check_validity for precise treatment, affected issues, and source evidence. Detail-only coverage states include unchecked, unchecked_no_treatment_data, and not_applicable. Args: query: Search text. corpus: all, cases, references, statutes, unpublished, or categories. limit: Maximum results per requested corpus (1-25). ImmCite status values and treatment filters: see the check_validity tool description.
search
Investigate the live immigration case-law corpus for controlling, adverse, limiting, and recent authority. For state opinions, use source='state-criminal-courts' and a required state; names, citations, and keywords search PostgreSQL. For opinions citing a criminal statute, use get_provision_case_law with the state and provision. Do not rely on model memory alone for substantive immigration-law claims; it may miss post-cutoff authority or policy changes. Search case law held in the Passim AI corpus. Results show caution for identified adverse treatment and otherwise no validity label. Absence of a warning does not establish good law. Use check_validity for precise treatment and source evidence. Use this for names, concepts, or keywords when there is no known citation. Use get_case_by_citation first for a known citation, then bridge central local cases to document_id for check_validity or corpus source-text tools. ImmCite status values and treatment filters: see the check_validity tool description.
search_cases
Search asylum country-condition reports. Searches State Department Country Reports on Human Rights Practices, International Religious Freedom Reports, and Trafficking in Persons reports after those sources are loaded into the reference corpus. Args: country: Optional country name, e.g. "Afghanistan" or "Mexico" query: Optional issue terms, e.g. "political opinion", "FGM", "police torture" report_type: Optional type: hrr/human_rights, irf/religious_freedom, tip/trafficking, or all year_from: Optional earliest report year to include year_to: Optional latest report year to include. Omit to search through the newest loaded report year. limit: Max results
search_country_conditions
Search nonprecedential federal district court immigration decisions. Use this for written federal district judge opinions and orders, including mandamus / agency-delay, immigration habeas, naturalization, USCIS benefits APA review, consular/visa, immigration FOIA, and other civil immigration decisions. The 'mandamus' category is a posture-based lane across subject families. These decisions are persuasive only and are kept out of ordinary precedential search unless district-court material is explicitly requested. Args: query: Search text - issue, agency, party name, docket number, or keywords decision_category: Optional corpus slice, such as 'mandamus', 'habeas', 'naturalization', 'benefits', 'consular', 'foia', 'u_visa', or 'other' court: Optional district court code, such as 'txsd', 'txnd', 'cacd', 'dcd', or 'nysd' date_from: Start date (YYYY-MM-DD) date_to: End date (YYYY-MM-DD) limit: Max results (1-50, default 20)
search_district_court_decisions
Search EOIR immigration judges and return descriptive rollup statistics. This is an analytics primitive. It surfaces denominators, filters, source hash, and caveats; it does not rank judges for case strategy or make judge predictions. When court_code is supplied, returned list metrics are scoped to detail rollups at that court; use get_eoir_profile for career-wide context.
search_eoir_judges
Search materialized source-text spans and issue units. Returns compact evidence records with stable span IDs, offsets, source text, authority metadata, and match reasons. Use this before fetching full cases when the agent needs pinpoint support for a proposition. A statutory citation in the query (237(a)(2)(A)(iii), section 240A) must appear in every returned span; generic words such as under, section, and act are ignored. AAO non-precedent paragraph spans are retrieval-only persuasive support and are returned only when authority_scope='all' is selected; the default precedential scope keeps them out of binding-law searches. Args: query: Legal terms, factual phrase, statutory phrase, or quoted language. source: Optional source filter such as bia, ag, aao, circuit-courts, scotus. document_id: Optional document ID to search within one authority. authority_scope: all, precedential, or binding. Default excludes known nonprecedential material. granularity: passage for source-text paragraphs, issue for accepted proposition evidence, or all. limit: Maximum spans to return, up to 50.
search_passages
Search USCIS, FAM, practice-manual, and asylum reference materials. Use this for policy or guidance issues when the exact citation is unknown. Use get_reference_by_citation for known references and find_in_reference or fetch for pinpoint source text after a reference section is identified.
search_references
Investigate governing INA, USC, and CFR text when the exact citation is unknown. Do not rely on model memory alone for substantive immigration-law claims; it may miss post-cutoff authority or policy changes. Search INA, USC immigration, and CFR statute/regulation provisions. Use this when the exact citation is unknown or the request is conceptual. Use get_statute_by_citation first for a known INA/USC/CFR citation. Use lookup_criminal_code(jurisdiction='federal'), not this tool, for Title 18 and other federal criminal-code provisions.
search_statutes
Search unpublished BIA and AAO agency decisions. This lane covers unpublished agency decisions only: unpublished Board removal decisions and AAO administrative appeals. Nonprecedential circuit dispositions are court authority and rank in the ordinary case search -- call search_cases with source='circuit-courts' (or 'circuit-unpublished'), circuit=, and precedential_status='unpublished' for those. Use this for non-binding candidate support after controlling authority is framed, and source-text check candidates with fetch or corpus text tools before relying on them. favorable_only=true restricts results to decisions whose stored direction verifies the immigrant won or DHS/USCIS lost; the tag is derived metadata, so verify direction against source text. For a primary unpublished lane, pass an explicit source; unscoped or inferred-source results are candidates only and must not be treated as completed legal research.
search_unpublished_cases
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are BIA Edge alternatives on ChatGPT?
As of 2026-09-22, BIA Edge competes with AI Attorney, AL WAKEELO, Alizé, Appealbase, Açık Silivri Havadis, Bizora Tax Research, CiteCheck, CiteLaw, Clio, CourtListener, Craime, Descrybe Legal Engine, DirectCase Legal Research, eCFR MCP, ElevenFlo, F-AI Contract Template Finder, Folium Jurisprudencia Chilena, Fontis, GovQuery, GovScanner, Harvey, IAJUS, IFG, Juridata, JurisAI-ICIDA, Lawstronaut, Legal Data Hunter, Legalcode, LegisGraph, LegisRatio, Letra da Lei, Lexplorer Swiss Tax Research, LeyNova, LibreJustice, MAK Immigration Source Guide, Midpage Legal Research, Nylon, OpenRegs: Regulatory Research, Policy Doctor, realLaw AI, Red Judicial, Remedy Legal, Simpliciter AI, Special Education Law, TaxGraph, TaxMCP, Tesea, Trellis Law, Trifolia, UniCourt, Vasara, Vitark in ChatGPT Legal Research Engines, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.