diff --git a/src/main/java/de/ids_mannheim/korap/annotation/FreeResourceParser.java b/src/main/java/de/ids_mannheim/korap/annotation/FreeResourceParser.java
index e8047d3..be84ed9 100644
--- a/src/main/java/de/ids_mannheim/korap/annotation/FreeResourceParser.java
+++ b/src/main/java/de/ids_mannheim/korap/annotation/FreeResourceParser.java
@@ -62,7 +62,10 @@
                     resourceDao.createResource(resource.at("/id").asText(),
                             resource.at("/de_title").asText(),
                             resource.at("/en_title").asText(),
-                            resource.at("/en_description").asText(), layers);
+                            resource.at("/en_description").asText(), 
+                            layers,
+                            resource.at("/institution").asText(),
+                            resource.at("/corpus_query").asText());
                 }
             }
             catch (Exception e) {
diff --git a/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java b/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java
index 62d3b79..79cfad7 100644
--- a/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java
+++ b/src/main/java/de/ids_mannheim/korap/dao/ResourceDao.java
@@ -69,13 +69,14 @@
     @Transactional
     public void createResource (String id, String germanTitle,
             String englishTitle, String englishDescription,
-            Set<AnnotationLayer> layers) throws KustvaktException {
+            Set<AnnotationLayer> layers, String institution, 
+            String corpusQuery) throws KustvaktException {
         ParameterChecker.checkStringValue(id, "id");
         ParameterChecker.checkStringValue(englishTitle, "en_title");
         ParameterChecker.checkStringValue(germanTitle, "de_title");
 
         Resource r = new Resource(id, germanTitle, englishTitle,
-                englishDescription, layers);
+                englishDescription, layers, institution, corpusQuery);
         entityManager.persist(r);
 
     }
diff --git a/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java b/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java
index 27952a6..063861e 100644
--- a/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java
+++ b/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java
@@ -21,11 +21,14 @@
     private String description;
     private String[] languages;
     private Map<Integer, String> layers;
+    private String institution;
+    private String landingPage;
 
     @Override
     public String toString () {
         return "resourceId= " + resourceId + ", description= " + description
                 + ", titles= " + titles + ", languages= " + languages
-                + ", layers= " + layers;
+                + ", layers= " + layers + ", institution=" + institution
+                + ", landingPage=" + landingPage;
     }
 }
diff --git a/src/main/java/de/ids_mannheim/korap/dto/converter/ResourceConverter.java b/src/main/java/de/ids_mannheim/korap/dto/converter/ResourceConverter.java
index 0ee0bef..5f13d52 100644
--- a/src/main/java/de/ids_mannheim/korap/dto/converter/ResourceConverter.java
+++ b/src/main/java/de/ids_mannheim/korap/dto/converter/ResourceConverter.java
@@ -48,6 +48,8 @@
                 layers.put(annotationPair.getId(), code);
             }
             dto.setLayers(layers);
+            dto.setLandingPage("https://korap.ids-mannheim.de?" +r.getCorpusQuery());
+            dto.setInstitution(r.getInstitution());
 
             resourceDtoList.add(dto);
         }
diff --git a/src/main/java/de/ids_mannheim/korap/entity/Resource.java b/src/main/java/de/ids_mannheim/korap/entity/Resource.java
index cd5ba9a..4e9906b 100644
--- a/src/main/java/de/ids_mannheim/korap/entity/Resource.java
+++ b/src/main/java/de/ids_mannheim/korap/entity/Resource.java
@@ -38,6 +38,11 @@
 
     @Column(name = "en_description")
     private String englishDescription;
+    
+    @Column(name = "corpus_query")
+    private String corpusQuery;
+    
+    private String institution;
 
     @ManyToMany(fetch = FetchType.EAGER)
     @JoinTable(name = "resource_layer", joinColumns = @JoinColumn(name = "resource_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "layer_id", referencedColumnName = "id"))
@@ -46,19 +51,23 @@
     public Resource () {}
 
     public Resource (String id, String germanTitle, String englishTitle,
-                     String englishDescription, Set<AnnotationLayer> layers) {
+                     String englishDescription, Set<AnnotationLayer> layers,
+                     String institution, String corpusQuery) {
         this.id = id;
         this.germanTitle = germanTitle;
         this.englishTitle = englishTitle;
         this.englishDescription = englishDescription;
         this.layers = layers;
+        this.corpusQuery = corpusQuery;
+        this.institution=institution;
     }
 
     @Override
     public String toString () {
         return "id=" + id + ", germanTitle=" + germanTitle + ", englishTitle="
                 + englishTitle + ", description=" + englishDescription
-                + ", layers= " + layers;
+                + ", layers= " + layers + ", institution=" + institution
+                + ", corpusQuery=" + corpusQuery;
     }
 
 }
diff --git a/src/main/resources/db/sqlite/V4.1__resource_alteration.sql b/src/main/resources/db/sqlite/V4.1__resource_alteration.sql
new file mode 100644
index 0000000..20a9aa3
--- /dev/null
+++ b/src/main/resources/db/sqlite/V4.1__resource_alteration.sql
@@ -0,0 +1,5 @@
+ALTER TABLE resource 
+ADD COLUMN institution VARCHAR(100) DEFAULT NULL;
+
+ALTER TABLE resource 
+ADD COLUMN corpus_query VARCHAR(500) DEFAULT NULL;
\ No newline at end of file
diff --git a/src/main/resources/json/free-resources.json b/src/main/resources/json/free-resources.json
index b41581e..95ee585 100644
--- a/src/main/resources/json/free-resources.json
+++ b/src/main/resources/json/free-resources.json
@@ -10,7 +10,9 @@
         "opennlp/p",
         "tt/l",
         "tt/p"
-    ]
+    ],
+    "corpus_query":"corpusSigle=WPD17",
+    "institution" : "Wikimedia Foundation"
 },
 {
     "id": "WDD17",
@@ -24,7 +26,9 @@
         "opennlp/p",
         "tt/l",
         "tt/p"
-    ]
+    ],
+    "corpus_query":"corpusSigle=WDD17",
+    "institution" : "Wikimedia Foundation"
 },
 {
     "id": "WUD17",
@@ -38,6 +42,8 @@
         "opennlp/p",
         "tt/l",
         "tt/p"
-    ]
+    ],
+    "corpus_query":"corpusSigle=WUD17",
+    "institution" : "Wikimedia Foundation"
 }
 ]
\ No newline at end of file
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/FreeResourceControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/FreeResourceControllerTest.java
index c909064..2343dd7 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/FreeResourceControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/FreeResourceControllerTest.java
@@ -19,13 +19,19 @@
         Response response = target().path(API_VERSION).path("resource")
                 .request().get();
         String entity = response.readEntity(String.class);
-        JsonNode n = JsonUtils.readTree(entity).get(0);
-        assertEquals("WPD17", n.at("/resourceId").asText());
-        assertEquals("Deutsche Wikipedia Artikel 2017",
-                n.at("/titles/de").asText());
-        assertEquals("German Wikipedia Articles 2017",
-                n.at("/titles/en").asText());
-        assertEquals(n.at("/languages").size(), 1);
-        assertEquals(n.at("/layers").size(), 6);
+        JsonNode n = JsonUtils.readTree(entity);
+        assertEquals(3, n.size());
+
+        n = n.get(0);
+        assertEquals(n.at("/resourceId").asText(), "WPD17");
+        assertEquals(n.at("/titles/de").asText(), 
+                "Deutsche Wikipedia Artikel 2017");
+        assertEquals(n.at("/titles/en").asText(), 
+                "German Wikipedia Articles 2017");
+        assertEquals(1, n.at("/languages").size());
+        assertEquals(6, n.at("/layers").size());
+        assertEquals("Wikimedia Foundation", n.at("/institution").asText());
+        assertEquals("https://korap.ids-mannheim.de?corpusSigle=WPD17", 
+                n.at("/landingPage").asText());
     }
 }
