diff --git a/src/servers/model/query/schemas.ts b/src/servers/model/query/schemas.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0ffdd02fcbce683e436c0030ffe0517135c6ceda
--- /dev/null
+++ b/src/servers/model/query/schemas.ts
@@ -0,0 +1 @@
+// TODO
\ No newline at end of file
diff --git a/src/servers/model/server/api.ts b/src/servers/model/server/api.ts
index d05ae9dea9714780dd6be5225898381821b3214e..44135d39d9fb89ab54744183c2e055c1488e5735 100644
--- a/src/servers/model/server/api.ts
+++ b/src/servers/model/server/api.ts
@@ -77,7 +77,7 @@ const QueryMap: { [id: string]: Partial<QueryDefinition> } = {
     },
     'symmetryMates': {
         niceName: 'Symmetry Mates',
-        description: 'Computes crystal symmetry mates within the specified radius',
+        description: 'Computes crystal symmetry mates within the specified radius.',
         query: () => Queries.generators.all,
         structureTransform(p, s) {
             return StructureSymmetry.builderSymmetryMates(s, p.radius).run();
@@ -85,11 +85,18 @@ const QueryMap: { [id: string]: Partial<QueryDefinition> } = {
     },
     'assembly': {
         niceName: 'Assembly',
-        description: 'Computes crystal symmetry mates within the specified radius',
+        description: 'Computes structural assembly.',
         query: () => Queries.generators.all,
         structureTransform(p, s) {
-            return StructureSymmetry.builderSymmetryMates(s, p.radius).run();
+            return StructureSymmetry.buildAssembly(s, '' + p.name).run();
         },
+        params: [{
+            name: 'name',
+            type: QueryParamType.String,
+            defaultValue: '1',
+            exampleValues: ['1'],
+            description: 'Assembly name.'
+        }]
     },
     'residueInteraction': {
         niceName: 'Residues Inside a Sphere',