E-Bar: Non-US Bar Candidates Hero Banner

Breadcrumb

Study for a U.S. bar exam anywhere in the world

Study for the US Bar Exam from Anywhere in the World

Whether you are a qualified lawyer in a jurisdiction outside of the United States considering sitting for a U.S. state bar exam, a LL.M. student at a U.S. law school, or you just want more time to study due to other commitments, BARBRI's Extended U.S. Bar prep course offers the support and flexibility you need to pass the California Bar Exam, the New York Bar Exam, or any U.S. state that administers the Uniform Bar Exam (UBE.)

Non-US Bar Candidates VP Cards

Extended Bar Course Features

Non-US Bar Candidates Tab Section

Which Bar Prep Course is Best for You?

Non-US Bar Candidates - Check for Scholarship

Extended Bar Review Options Table

Extended Bar Review Options + Features

  • Adaptive, Personal Study Plan info
  • BARBRI Mobile App info
  • Engaging 20-30 Minute Lectures info
  • Simulated MBE + Pass Predictor info
  • Bar Prep Progress Center info
  • Diagnostic Mock Exams info
  • In-Course Substantive Support info
  • Unlimited Essay Grading info
  • Hardcopy + Digital Books info
  • MBE Score Maximizer info
  • Expert Bar Coaching info
  • Early Start Access info
  • Simulated MBE customized report
  • NCBE®-Licensed Questions info
  • MCQ Bank info
  • Hard Copy + Digital Flashcards info
  • Professional Development info
  • AdaptiBar® MBE Simulator info
  • 1:1 Mentorship info

Check for scholarships and discounts to unlock extra savings! Use our wizard today to conveniently find additional discounts all in one place.

Check for Discounts
Extended Bar
6 month course

Study an average of 20-25 hours a week

An error occurred while processing the template.
The following has evaluated to null or missing:
==> barbriSiteConfigService  [in template "20096#20121#435047" at line 1, column 24]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign checkoutURL = barbriSiteConfi...  [in template "20096#20121#435047" at line 1, column 1]
----
1<#assign checkoutURL = barbriSiteConfigService.getCheckoutURL(themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getLayout().getPlid())> 
2<#assign checkoutURL = checkoutURL + "?type="> 
3<#if (ProductType.getData())??> 
4	<#assign checkoutURL = checkoutURL + ProductType.getData()> 
5</#if> 
6<#assign checkoutURL = checkoutURL + "&year="> 
7<#if (Year.getData())?? && (Year.getData()?number > 0)> 
8	<#assign checkoutURL = checkoutURL + Year.getData()> 
9</#if> 
10<#assign checkoutURL = checkoutURL + "&session="> 
11<#if (Session.getData())??> 
12	<#assign checkoutURL = checkoutURL + Session.getData() > 
13</#if> 
14<#assign checkoutURL = checkoutURL + "&billMyEmployer="> 
15<#if (BillEmployer.getData())??> 
16	<#assign checkoutURL = checkoutURL + BillEmployer.getData()> 
17</#if> 
18 
19<#if getterUtil.getBoolean(Active.getData())> 
20<#assign currency = "$"/> 
21			<#if (currencyFormat.getData()?has_content) && (currencyFormat.getData() == "GBP")> 
22				<#assign currency = "£"/> 
23			</#if> 
24<div class="monthly_price"> 
25    <span class="old-price retail-price"> 
26				<#if (Price.getData())?? && (Price.getData()?has_content)> 
27					${currency}${Price.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number?string("#,##0")} 
28				</#if> 
29			</span> 
30			<span class="old-price original-unit-price hide"> 
31				<#if (UnitPrice.getData())?? && (UnitPrice.getData()?has_content)> 
32					${currency}${UnitPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number?string("#,##0")} 
33				</#if> 
34			</span> 
35			<span class="sale-price original-price"> 
36				<#if (UnitPrice.getData())?? && (UnitPrice.getData()?has_content)> 
37					${currency}${UnitPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number?string("#,##0")} 
38				</#if> 
39			</span> 
40			<span class="sale-price after-alumni-scholoarship-applied-price hide"> 
41			<#if (AlumniPrice.getData()?has_content)> 
42				${currency}${AlumniPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number?string("#,##0")} 
43			</#if> 
44		</span> 
45		<span class="sale-price after-pi-scholoarship-applied-price hide"> 
46			<#if (PublicInterestPrice.getData()?has_content)> 
47				${currency}${PublicInterestPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number?string("#,##0")} 
48			</#if> 
49		</span> 
50		<em class="scholarship-save-alumni hide"> 
51			<#-- For Alumni/PI price --> 
52			<#if (AlumniPrice.getData()?has_content) && (AlumniPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number > 0) > 
53				<#assign scholarshipPrice = (AlumniPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number) /> 
54				<#assign savePrice = UnitPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number - scholarshipPrice?number /> 
55				<#if savePrice?number gt 0> 
56					Save ${currency}${savePrice?number?string("#,##0")} 
57				</#if> 
58			</#if> 
59		</em> 
60		<em class="scholarship-save-pi hide"> 
61			<#-- For Alumni/PI price --> 
62			<#if (PublicInterestPrice.getData()?has_content) && (PublicInterestPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number > 0)> 
63				<#assign scholarshipPrice = (PublicInterestPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number) /> 
64				<#assign savePrice = UnitPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number - scholarshipPrice?number /> 
65				<#if savePrice?number gt 0> 
66					Save ${currency}${savePrice?number?string("#,##0")} 
67				</#if> 
68			</#if> 
69		</em> 
70    <div class="PaymentAvailable"> 
71					<#if getterUtil.getBoolean(IsFinanceable.getData())> 
72						Payments as low as <#if (AffirmPrice.getData())??> 
73							${AffirmPrice.getData()} 
74						</#if>/mo with <a href=""> <img class="logo_img" 
75								src="/o/barbri-global-theme/images/barbri/afirm-logo.svg"> </a> 
76					</#if> 
77				</div> 
78 
79    <a href="${checkoutURL}" class="btn pc_theme_btn btn-primary"> <span class="material-symbols-rounded"> shopping_cart </span> 
80        Checkout </a> 
81</div> 
82</#if> 
Extended Bar
10 month course

Study an average of 10-15 hours a week

An error occurred while processing the template.
The following has evaluated to null or missing:
==> barbriSiteConfigService  [in template "20096#20121#435047" at line 1, column 24]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign checkoutURL = barbriSiteConfi...  [in template "20096#20121#435047" at line 1, column 1]
----
1<#assign checkoutURL = barbriSiteConfigService.getCheckoutURL(themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getLayout().getPlid())> 
2<#assign checkoutURL = checkoutURL + "?type="> 
3<#if (ProductType.getData())??> 
4	<#assign checkoutURL = checkoutURL + ProductType.getData()> 
5</#if> 
6<#assign checkoutURL = checkoutURL + "&year="> 
7<#if (Year.getData())?? && (Year.getData()?number > 0)> 
8	<#assign checkoutURL = checkoutURL + Year.getData()> 
9</#if> 
10<#assign checkoutURL = checkoutURL + "&session="> 
11<#if (Session.getData())??> 
12	<#assign checkoutURL = checkoutURL + Session.getData() > 
13</#if> 
14<#assign checkoutURL = checkoutURL + "&billMyEmployer="> 
15<#if (BillEmployer.getData())??> 
16	<#assign checkoutURL = checkoutURL + BillEmployer.getData()> 
17</#if> 
18 
19<#if getterUtil.getBoolean(Active.getData())> 
20<#assign currency = "$"/> 
21			<#if (currencyFormat.getData()?has_content) && (currencyFormat.getData() == "GBP")> 
22				<#assign currency = "£"/> 
23			</#if> 
24<div class="monthly_price"> 
25    <span class="old-price retail-price"> 
26				<#if (Price.getData())?? && (Price.getData()?has_content)> 
27					${currency}${Price.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number?string("#,##0")} 
28				</#if> 
29			</span> 
30			<span class="old-price original-unit-price hide"> 
31				<#if (UnitPrice.getData())?? && (UnitPrice.getData()?has_content)> 
32					${currency}${UnitPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number?string("#,##0")} 
33				</#if> 
34			</span> 
35			<span class="sale-price original-price"> 
36				<#if (UnitPrice.getData())?? && (UnitPrice.getData()?has_content)> 
37					${currency}${UnitPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number?string("#,##0")} 
38				</#if> 
39			</span> 
40			<span class="sale-price after-alumni-scholoarship-applied-price hide"> 
41			<#if (AlumniPrice.getData()?has_content)> 
42				${currency}${AlumniPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number?string("#,##0")} 
43			</#if> 
44		</span> 
45		<span class="sale-price after-pi-scholoarship-applied-price hide"> 
46			<#if (PublicInterestPrice.getData()?has_content)> 
47				${currency}${PublicInterestPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number?string("#,##0")} 
48			</#if> 
49		</span> 
50		<em class="scholarship-save-alumni hide"> 
51			<#-- For Alumni/PI price --> 
52			<#if (AlumniPrice.getData()?has_content) && (AlumniPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number > 0) > 
53				<#assign scholarshipPrice = (AlumniPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number) /> 
54				<#assign savePrice = UnitPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number - scholarshipPrice?number /> 
55				<#if savePrice?number gt 0> 
56					Save ${currency}${savePrice?number?string("#,##0")} 
57				</#if> 
58			</#if> 
59		</em> 
60		<em class="scholarship-save-pi hide"> 
61			<#-- For Alumni/PI price --> 
62			<#if (PublicInterestPrice.getData()?has_content) && (PublicInterestPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number > 0)> 
63				<#assign scholarshipPrice = (PublicInterestPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number) /> 
64				<#assign savePrice = UnitPrice.getData()?replace(",", "")?replace("$", "")?replace("£", "")?number - scholarshipPrice?number /> 
65				<#if savePrice?number gt 0> 
66					Save ${currency}${savePrice?number?string("#,##0")} 
67				</#if> 
68			</#if> 
69		</em> 
70    <div class="PaymentAvailable"> 
71					<#if getterUtil.getBoolean(IsFinanceable.getData())> 
72						Payments as low as <#if (AffirmPrice.getData())??> 
73							${AffirmPrice.getData()} 
74						</#if>/mo with <a href=""> <img class="logo_img" 
75								src="/o/barbri-global-theme/images/barbri/afirm-logo.svg"> </a> 
76					</#if> 
77				</div> 
78 
79    <a href="${checkoutURL}" class="btn pc_theme_btn btn-primary"> <span class="material-symbols-rounded"> shopping_cart </span> 
80        Checkout </a> 
81</div> 
82</#if> 

Video: 1:1 mentor

Dedicated 1:1 Mentorship

  • check_circle Receive academic and emotional support
  • check_circle Get tips + techniques to help you pass the bar
  • check_circle Benefit from a personal relationship with a legal expert to help you achive your dream

E-Bar BARBRI Bar Review Guarantee

The BARBRI Bar Review Guarantee

Reassurance if you need a second chance.

BARBRI Bar Review is designed to help you pass the bar exam the first time. However, we know that sometimes life gets in the way, or the day doesn’t go as you planned, and you need a second chance. If you previously purchased a BARBRI Bar Review course and did not pass the first time, the BARBRI Extended Bar Review Guarantee allows you one retake for the next administration of the same exam with proof of sitting for the exam, plus retake exam fee reimbursement (up to $500) OR one Premium course for an additional jurisdiction within two years of the original course. BARBRI gives you peace of mind and is with you every step of the way.