@@ -167,6 +167,45 @@ def include_metadata(self):
167167 self .entry_queryable_param ['include_metadata' ] = 'true'
168168 return self
169169
170+ def asset_fields (self , * field_names ):
171+ """
172+ Include specific asset fields in the response.
173+ Supported values: user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups.
174+ Pass one or more field names. Can be called multiple times to add more fields.
175+
176+ :param field_names: One or more asset field names (user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups)
177+ :return: self: so you can chain this call.
178+
179+ Example (Query):
180+ >>> import contentstack
181+ >>> stack = contentstack.Stack('api_key', 'delivery_token', 'environment')
182+ >>> content_type = stack.content_type('content_type_uid')
183+ >>> query = content_type.query()
184+ >>> query = query.asset_fields('user_defined_fields', 'visual_markups')
185+ >>> result = query.find()
186+
187+ Example (Entry):
188+ >>> import contentstack
189+ >>> stack = contentstack.Stack('api_key', 'delivery_token', 'environment')
190+ >>> content_type = stack.content_type('content_type_uid')
191+ >>> entry = content_type.entry('entry_uid')
192+ >>> entry = entry.asset_fields('user_defined_fields', 'visual_markups')
193+ >>> result = entry.fetch()
194+ """
195+ if field_names :
196+ values = []
197+ for name in field_names :
198+ if isinstance (name , (list , tuple )):
199+ values .extend (str (v ) for v in name )
200+ else :
201+ values .append (str (name ))
202+ if values :
203+ existing = self .entry_queryable_param .get ('asset_fields[]' , [])
204+ if not isinstance (existing , list ):
205+ existing = [existing ]
206+ self .entry_queryable_param ['asset_fields[]' ] = existing + values
207+ return self
208+
170209 def add_param (self , key : str , value : str ):
171210 """
172211 This method adds key and value to an Entry.
0 commit comments