Learn Cookbook Keys Metadata Key metadata Reading or writing key definitions requires an admin key. Problem You need to store additional metadata within a key document. Solution Set the data field in a key: JAVASCRIPTPYTHONGO.NET/C#JAVASHELLCopied! adminClient.query( q.Update( q.Ref(q.Keys(), '1'), { data: { team: 'Engineering', }, }, ) ) .then((ret) => console.log(ret)) .catch((err) => console.error( 'Error: [%s] %s: %s', err.name, err.message, err.errors()[0].description, )) { ref: Ref(Keys(), "1"), ts: 1631728043380000, role: 'admin', hashed_secret: '$2a$05$kdsBSqgV/EoShNny0aoCMuccN94tHSqJOuTTbJ58SRIrHixS/MUhm', data: { team: 'Engineering' } } JAVASCRIPTPYTHONGO.NET/C#JAVASHELLCopied! result = adminClient.query( q.update( q.ref(q.keys(), "1"), { "data": { "team": "Engineering" } } ) ) print(result) {'ref': Ref(id=1, collection=Ref(id=keys)), 'ts': 1631728104560000, 'role': 'admin', 'hashed_secret': '$2a$05$Lo9hpVwalRvyIFbhIZbgy.Y/PEoDjAM/5RzQiVmJoJuiVic5kr/IK', 'data': {'team': 'Engineering'}} JAVASCRIPTPYTHONGO.NET/C#JAVASHELLCopied! result, err := adminClient.Query( f.Update( f.Ref(f.Keys(), "1"), f.Obj{ "data": f.Obj{ "team": "Engineering", }, }, )) if err != nil { fmt.Fprintln(os.Stderr, err) } else { fmt.Println(result) } map[data:map[team:Engineering] hashed_secret:$2a$05$6APJkVtuIG9nrNzsfnLt4e.D.wVqCLK6sQU2GkqOWov4dSrScgaXK ref:{1 0xc000103aa0 0xc000103aa0 <nil>} role:admin ts:1631728147980000] JAVASCRIPTPYTHONGO.NET/C#JAVASHELLCopied! try { Value result = await adminClient.Query( Update( Ref(Keys(), "1"), Obj( "data", Obj( "team", "Engineering" ) ) ) ); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine($"ERROR: {e.Message}"); } ObjectV(ref: RefV(id = "1", collection = RefV(id = "keys")),ts: LongV(1631728225420000),role: StringV(admin),hashed_secret: StringV($2a$05$W5HR2L6lJQ/fLllyqpvVw.knusY0BqHVYztLznZsBF8lvXqGNCE/S),data: ObjectV(team: StringV(Engineering))) JAVASCRIPTPYTHONGO.NET/C#JAVASHELLCopied! System.out.println( adminClient.query( Update( Ref(Keys(), "1"), Obj( "data", Obj( "team", Value("Engineering") ) ) ) ).get()); {ref: ref(id = "1", collection = ref(id = "keys")), ts: 1631728316710000, role: "admin", hashed_secret: "$2a$05$DDEdo7/UaZmkwaz/enpFDOMljr39oHsZEIE4mZFH7cPQVOHFGGTnW", data: {team: "Engineering"}} JAVASCRIPTPYTHONGO.NET/C#JAVASHELLCopied! Update( Ref(Keys(), '1'), { data: { team: "Engineering" } } ) { ref: Ref(Keys(), "1"), ts: 1631727967280000, role: 'admin', hashed_secret: '$2a$05$qbGb.Xk0N.7Dnu9LP6MF7up7bgAlR1RiJyyZ4zaRXT521OWwL0Sam', data: { team: 'Engineering' } } Query metrics: bytesIn: 104 bytesOut: 222 computeOps: 1 readOps: 0 writeOps: 1 readBytes: 128 writeBytes: 222 queryTime: 368ms retries: 0 Discussion You can add the metadata while creating or updating a key document. List Tokens