diff --git a/Changes b/Changes
index e0576b0..07bb314 100644
--- a/Changes
+++ b/Changes
@@ -1,4 +1,4 @@
-0.66 2026-08-03
+0.66 2026-09-02
         - Fix link to NEGRA corpus (diewald)
         - Use M::P::Localize from CPAN (diewald)
         - Update dependency to Mojolicious (diewald)
@@ -11,6 +11,8 @@
           (diewald)
         - Fix shift issue when clicking on empty sidebar(uyen-nhu, closes #242)
         - Fix 'Query by match' constraint line (uyen-nhu, closes #276)
+        - Add configurable match-info extension (fixes part of Krill-Issue #271;
+          diewald; with AI assistance, GPT-5.4 Mini)
 
 0.65 2026-04-21
         - Expose colors and forms to plugins (diewald)
diff --git a/README.md b/README.md
index 43039c4..0800d9f 100644
--- a/README.md
+++ b/README.md
@@ -332,7 +332,7 @@
 
 ### Original Software
 
-Copyright (C) 2015-2025, [IDS Mannheim](https://www.ids-mannheim.de/)<br>
+Copyright (C) 2015-2026, [IDS Mannheim](https://www.ids-mannheim.de/)<br>
 Author: [Nils Diewald](https://www.nils-diewald.de/), Helge Stallkamp<br>
 Contributor: Uyen-Nhu Tran, Eliza Margaretha (Documentation), Susanne Feix
 and Rebecca Wilm (Translation), Leo Repp
diff --git a/dev/js/src/api.js b/dev/js/src/api.js
index effa9f8..a718d8a 100644
--- a/dev/js/src/api.js
+++ b/dev/js/src/api.js
@@ -24,6 +24,9 @@
 
     // match is a KorAP.Match object
     let url = KorAP.URL + '/corpus';
+    const matchInfoExtended = document.body
+      ? document.body.getAttribute('data-match-info-extended')
+      : null;
     /*
       url += '/' + match.corpusID;
       url += '/' + match.docID;
@@ -56,7 +59,7 @@
         docFragment += '/'+param['layer'];
       }
     }
-    
+
     // { spans : false, layer: [Array of KorAP.InfoLayer] }
     else {
       // TODO
@@ -64,6 +67,11 @@
       url += 'spans=false';
     };
 
+    if (matchInfoExtended) {
+      url += '&extended=' + encodeURIComponent(matchInfoExtended);
+      docFragment += ' +extended=' + matchInfoExtended;
+    }
+
     if (KorAP.ResponsePipe != null)
       url += '&response-pipe=' + KorAP.ResponsePipe.toString();
 
diff --git a/kalamar.conf b/kalamar.conf
index e0ff62c..d364d97 100644
--- a/kalamar.conf
+++ b/kalamar.conf
@@ -71,6 +71,7 @@
     #   items_per_page => 20,
     #   context => '20-t,20-t',
     #   alignment => 'left' # or 'right' or 'center'
+    #   match_info_extended => 'max',
     # },
 
     # proxies => [{
diff --git a/lib/Kalamar.pm b/lib/Kalamar.pm
index 0d835e9..99e7d8f 100644
--- a/lib/Kalamar.pm
+++ b/lib/Kalamar.pm
@@ -347,7 +347,7 @@
 
   if (exists $conf->{defaults}) {
     my $def = $conf->{defaults};
-    foreach (qw!items_per_page context alignment!) {
+    foreach (qw!items_per_page context alignment match_info_extended!) {
       $self->defaults($_ => $def->{$_}) if $def->{$_};
     };
   };
diff --git a/lib/Kalamar/Controller/Search.pm b/lib/Kalamar/Controller/Search.pm
index 70fceac..472fd31 100644
--- a/lib/Kalamar/Controller/Search.pm
+++ b/lib/Kalamar/Controller/Search.pm
@@ -482,6 +482,7 @@
   $v->optional('foundry');
   $v->optional('layer');
   $v->optional('spans')->in(qw/true false/);
+  $v->optional('extended', 'trim');
   $v->optional('response-pipe', 'trim');
 
   # Check validation
@@ -518,6 +519,10 @@
     $query{spans} = $v->param('spans') if $v->param('spans');
   };
 
+  if (defined $v->param('extended') && $v->param('extended') ne '') {
+    $query{extended} = $v->param('extended');
+  };
+
   # Response pipe
   if ($v->param('response-pipe')) {
 
@@ -814,6 +819,11 @@
 Boolean value - either C<true> or C<false> - indicating, whether span information
 (i.e. for tree structures) should be retrieved.
 
+=item B<extended>
+
+Optional value forwarded to the backend match-info request. Configure this to
+request wider match context, for example C<max>.
+
 =back
 
 
diff --git a/t/match_info.t b/t/match_info.t
index edd84b4..1230e7d 100644
--- a/t/match_info.t
+++ b/t/match_info.t
@@ -10,7 +10,13 @@
 my $mount_point = '/realapi/';
 $ENV{KALAMAR_API} = $mount_point;
 
-my $t = Test::Mojo->new('Kalamar');
+my $t = Test::Mojo->new('Kalamar' => {
+  Kalamar => {
+    defaults => {
+      match_info_extended => 'max'
+    }
+  }
+});
 
 # Mount fake backend
 # Get the fixture path
@@ -24,6 +30,12 @@
 # Configure fake backend
 $fake_backend->pattern->defaults->{app}->log($t->app->log);
 
+# The config is exposed on rendered pages
+$t->get_ok('/')
+  ->status_is(200)
+  ->element_exists('body[data-match-info-extended="max"]')
+  ;
+
 # Query passed
 $t->get_ok('/corpus/WPD15/232/39681/p2133-2134?spans=false&foundry=*&_format=json')
   ->status_is(200)
@@ -40,6 +52,12 @@
   ->json_is('/meta/responsePipes','glemm')
   ;
 
+# Extended match-info request is accepted and forwarded
+$t->get_ok('/corpus/GOE/AGF/02286/p75682-75683?extended=max&_format=json')
+  ->status_is(200)
+  ->json_is('/textSigle', 'GOE/AGF/02286')
+  ;
+
 # TODO:
 #   It's surprising, that it doesn't return a 404!
 $t->get_ok('/corpus/notfound/X/X/p0-1?_format=json')
diff --git a/templates/layouts/main.html.ep b/templates/layouts/main.html.ep
index b3bd049..fe50269 100644
--- a/templates/layouts/main.html.ep
+++ b/templates/layouts/main.html.ep
@@ -60,6 +60,7 @@
         data-korap-url="<%== $api %>"
         data-hint-foundries="<%= join(',', @{stash('hint_foundries') // []}) %>"
         data-vc-helper-fields="<%= stash('vc_helper_fields') // '' %>"
+        data-match-info-extended="<%= stash('match_info_extended') // '' %>"
         itemscope
         itemtype="http://schema.org/<%= stash('schematype') || 'WebApplication' %>">
     
