diff --git a/bin/efa b/bin/efa
index 4b2e4ca43e23034ac234721967517beaad09b278..6c47f64b92b7e492ef1075e7b154131a8d702338 100755
--- a/bin/efa
+++ b/bin/efa
@@ -38,6 +38,7 @@ GetOptions(
 	'date=s'    => \$date,
 	'debug'     => \$debug,
 	'time-for=s' => \$time_for,
+	'post=s'    => \%post,
 );
 
 unless (@to == 2 and @from == 2) {
@@ -172,4 +173,12 @@ Define whether the time means time of departure (default) or time of arrival
 
 Journey date
 
+=item B<--post> I<key>=I<value>
+
+Add I<key> with I<value> to the HTTP POST request sent to the EFA server.
+This can be used to use setting B<efa> does not yet cover, like
+C<--post lineRestriction=400> to also show IC and ICE trains.
+Note that B<--post> will be overridden by the standard efa options, such as
+B<--time>.
+
 =back
diff --git a/provides/zsh/completions/_efa b/provides/zsh/completions/_efa
index a07c978ea79a3c692b3b801624be997f445e8d88..096e928a831e28f164bc7a253bb20b6d241b9a99 100644
--- a/provides/zsh/completions/_efa
+++ b/provides/zsh/completions/_efa
@@ -8,6 +8,7 @@ arguments=(
 	'--time:time'
 	'--time-for:event:(arrival departure)'
 	'--date:date'
+	'*--post:POST key=value'
 )
 
 _arguments -s $arguments