Skip to main content

Hi Support,


I was looking for an API call to list all items in a folder including files inside the children and sub-children folders.


I checked the https://developer.box.com/reference/get-folders-id-items/ API call, but it lists only files and folders inside that exact folder rather than child folders.


I am looking forward to the community response.

Hi @user49 ! Welcome to the Forum ! 😃



Very good question ! I don’t see any solution to retrieve all the files from a path.



You can try the SEARCH endpoint : https://developer.box.com/reference/get-search/


This would allow you to list files for a folder and a subfolder, but I think you would need to specify a search term in your query.



For your parameters, you can select :


-type : this will allow you to limit the search to file types


-ancestor_folder_ids : this will allow you to return results for a specific file path.


Thanks for the reply @CodeBoxSeb


I tried this API but “query” parameters seem to be a mandatory field, although is marked optional in the documentation. I get the error message “‘to_search’ is required” with 400 bad request error. Is there any way I can execute a wildcard search on the query parameter?


Hi,



You can recursively list all items…



Here is a python example:



from typing import List

from boxsdk import JWTAuth, Client

from boxsdk.object.item import Item

from boxsdk.object.folder import Folder





class SimpleItem:

"""simple item class"""



box_type: str

id: str

name: str

parent_id: str



def __init__(self, item: Item, parent_id: str = None):

self.box_type = item.type

self.id = item.id

self.name = item.name

self.parent_id = parent_id



def __repr__(self):

return f"{self.box_type}\t{self.id}\t{self.name}\t{self.parent_id}\n"





class CFG:

"""config class"""



JWT_CONFIG_FILE = ".jwt.config.json"

AS_USER = "18622116055"

PARENT_FOLDER_ID = "172599089223" # folder id 0 is root folder





def get_box_client(as_user: bool = False):

"""get a box client"""

auth = JWTAuth.from_settings_file(CFG.JWT_CONFIG_FILE)

service_client = Client(auth)

if not as_user:

return service_client

user = service_client.user(CFG.AS_USER)

return service_client.as_user(user)





def folder_items(folder: Folder) -> ListsItem]:

"""list folder items recursively"""

items = folder.get_items()

result = =]

for item in items:

simple_item = SimpleItem(item, folder.id)

result.append(simple_item)

if item.type == "folder":

result.extend(folder_items(item))

return result





def main():

"""main function"""



client = get_box_client(as_user=True)



# get starting folder

folder = client.folder(CFG.PARENT_FOLDER_ID).get()



folder_list = folder_items(folder)



print(folder_list)





if __name__ == "__main__":

main()

print("\n")

print("-" * 80)

print("All Done!")





Resulting in:



❯ python main.py

folder 176840203842 Cenotes 172599089223

, folder 176841790581 2022-10-16 176840203842

, folder 176838913195 Jane Smith 176841790581

, file 1037492412345 Box-Dive-Waiver.pdf 176838913195

, folder 178059063249 2022-10-21 176840203842

, folder 178059476189 Barbosa 178059063249

, file 1044375500347 Box-Dive-Waiver.pdf 178059476189

, file 1044379452138 dan-sample.jpeg 178059476189

, file 1044391737893 padi-sample.jpeg 178059476189

, folder 176840211427 Eagle Ray Bay 172599089223

, folder 176840892622 2022-10-16 176840211427

, folder 176840808257 Jane Smith 176840892622

, file 1037494109933 Box-Dive-Waiver.pdf 176840808257

, folder 176841144813 Ras Mohamed 172599089223

, folder 176842575003 2022-10-16 176841144813

, folder 176840991040 Jane Smith 176842575003

, file 1037491776095 Box-Dive-Waiver.pdf 176840991040

, folder 176839738500 Sharks Bay 172599089223

, folder 176841319327 2022-10-16 176839738500

, folder 176841099298 Jane Smith 176841319327

, file 1037492217945 Box-Dive-Waiver.pdf 176841099298

, folder 176838773123 Thistlegorm 172599089223

, folder 176834671641 2022-10-16 176838773123

, folder 176840496781 Jane Smith 176834671641

, file 1037498578259 Box-Dive-Waiver.pdf 176840496781

, folder 191152978144 2023-01-21 176838773123

, folder 191155574713 John Smith 191152978144

, file 1118910257949 Box-Dive-Waiver.pdf 191155574713

, folder 175969946454 Tropicana 172599089223

, folder 175970887672 2022-10-05 175969946454

, folder 175971722615 Barbas 175970887672

, file 1032450614414 Box-Dive-Waiver.pdf 175971722615

, file 1032446518305 CARD-CERTIFICATION.jpg 175971722615

, file 1032444093760 CARD-INSURANCE.jpg 175971722615

, folder 176841518705 2022-10-16 175969946454

, folder 176841372656 Jane Smith 176841518705

, file 1037493295732 Box-Dive-Waiver.pdf 176841372656

]



Let us know if this helps.



Cheers


Reply