フォルダ内の項目のリストを取得

get
https://api.box.com/2.0
/folders/:folder_id/items

フォルダ内の項目のページを取得します。これらの項目はファイル、 フォルダ、ウェブリンクのいずれかになります。

フォルダ自体の詳細情報 (サイズなど) をリクエストするには、代わりにフォルダを取得エンドポイントを使用します。

リクエスト

bearer [ACCESS_TOKEN]
application/json

パスパラメータ

stringパス内必須
"12345"

フォルダを表す一意の識別子。

フォルダIDを確認するには、ウェブアプリケーションでこのフォルダにアクセスして、URLからIDをコピーします。たとえば、URLがhttps://*.app.box.com/folder/123の場合、folder_id123です。

Boxアカウントのルートフォルダは常にID 0で表されます。

クエリパラメータ

stringクエリ内省略可能
"ASC"

結果を並べ替える方向。アルファベットの昇順 (ASC) または降順 (DESC) のいずれかを指定できます。

次の値のいずれか1つ: ASC,DESC

string arrayクエリ内省略可能
id,type,name

レスポンスに含める属性のカンマ区切りリスト。このパラメータを使用すると、標準のレスポンスには通常含まれないフィールドをリクエストできます。

このパラメータを指定すると、明示的に指定しない限り標準フィールドはレスポンスに含まれず、リクエストしたフィールドのほかには、Mini版の表示のフィールドしか返されないことに注意してください。

また、このフィールドを使用すると、ファイルに適用されている任意のメタデータに対してクエリを実行できます。その際、metadataフィールドのほか、取得するテンプレートのスコープとキー (例: ?field=metadata.enterprise_12345.contractTemplate) も指定します。

integer / int64クエリ内省略可能
10001000

返す項目の1ページあたりの最大数。

stringクエリ内省略可能
"JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii"

結果が返される開始位置のマーカー。マーカーベースのページ割りを使用している場合に使用されます。

これを使用するには、usemarkertrueに設定する必要があります。

integer / int64クエリ内省略可能
10000

レスポンスが開始される項目のオフセット。

オフセットパラメータ値が10,000を超えているクエリは拒否され、400レスポンスが返されます。

stringクエリ内省略可能
"id"

項目並べ替えの2番目の基準として使用される属性を定義します。

フォルダの種類は、項目の並べ替え方法に影響します。

  • 標準フォルダ: 項目は必ず最初にtypeを基準にして並べ替えられ、フォルダはファイルよりも前に、ファイルはウェブリンクよりも前にリストされます。

  • ルートフォルダ: ルートフォルダ

    (id0のフォルダ) の場合、マーカーベースのページ割りでこのパラメータはサポートされません。

  • 関連付けられたフォルダの親パスがコラボレータに表示される共有フォルダ: 項目は必ず最初にtypeを基準にして並べ替えられ、フォルダはファイルよりも前に、ファイルはウェブリンクよりも前にリストされます。

次の値のいずれか1つ: id,name,date,size

booleanクエリ内省略可能
true

オフセットベースのページ割り方式ではなくマーカーベースのページ割り方式を使用するかどうかを指定します。同時に使用できるページ割りの方式は1つのみです。

この値をtrueに設定すると、APIは、レスポンスの次のページを取得するために、このエンドポイントにパラメータとして渡すことができるmarkerフィールドを返します。

リクエストヘッダー

stringヘッダー内
省略可能
"shared_link=[link]&shared_link_password=[password]"

この項目の共有リンクのURLと省略可能なパスワード。

このヘッダーを使用すると、ユーザーと明示的に共有されていない項目にアクセスできます。

shared_link=[link]形式を使用するか、パスワードが必要な場合はshared_link=[link]&shared_link_password=[password]を使用します。

このヘッダーは、共有されているファイルまたはフォルダのほか、その項目内にネストされているすべてのファイルやフォルダで使用できます。

レスポンス

application/jsonItems

フォルダに含まれるファイル、フォルダ、およびウェブリンクのコレクションを返します。

Authorizationヘッダーで指定されているアクセストークンが認識されないか、指定されていない場合に返されます。

フォルダが見つからない場合、またはユーザーにフォルダへのアクセス権限が与えられていない場合に返されます。

folder_idが認識されていない形式で指定されている場合に返されます。

予期しないクライアントエラー。

get
フォルダ内の項目のリストを取得
このドキュメント内で一部のAPIを試せるようになりました。
ログイン

リクエストの例

cURL
curl -i -X GET "https://api.box.com/2.0/folders/0/items" \
     -H "authorization: Bearer <ACCESS_TOKEN>"
.NET
BoxCollection<BoxItem> folderItems = await client.FoldersManager.GetFolderItemsAsync("11111", 100);
Java
BoxFolder folder = new BoxFolder(api, "id");
for (BoxItem.Info itemInfo : folder) {
    if (itemInfo instanceof BoxFile.Info) {
        BoxFile.Info fileInfo = (BoxFile.Info) itemInfo;
        // Do something with the file.
    } else if (itemInfo instanceof BoxFolder.Info) {
        BoxFolder.Info folderInfo = (BoxFolder.Info) itemInfo;
        // Do something with the folder.
    }
}
Python
items = client.folder(folder_id='22222').get_items()
for item in items:
    print(f'{item.type.capitalize()} {item.id} is named "{item.name}"')
Node
client.folders.getItems(
    '12345',
    {
        usemarker: 'false',
        fields: 'name',
        offset: 0,
        limit: 25
    })
    .then(items => {
        /* items -> {
            total_count: 2,
            entries: 
            [ { type: 'folder',
                id: '11111',
                sequence_id: '1',
                etag: '1',
                name: 'Personal Documents' },
                { type: 'file',
                id: '22222',
                sequence_id: '0',
                etag: '0',
                name: 'Q2 Strategy.pptx' } ],
            offset: 0,
            limit: 25,
            order: 
            [ { by: 'type', direction: 'ASC' },
                { by: 'name', direction: 'ASC' } ] }
        */
    });
iOS
let iterator = client.folders.listItems(folderId: "22222", sort: .name, direction: .ascending)
iterator.next { results in
    switch results {
    case let .success(page):
        for item in page.entries {
            switch item {
            case let .file(file):
                print("File \(file.name) (ID: \(file.id)) is in the folder")
            case let .folder(folder):
                print("Subfolder \(folder.name) (ID: \(folder.id)) is in the folder")
            case let .webLink(webLink):
                print("Web link \(webLink.name) (ID: \(webLink.id)) is in the folder")
            }
        }

    case let .failure(error):
        print(error)
    }
}

レスポンスの例

{
  "entries": [
    {
      "id": "12345",
      "etag": "1",
      "type": "file",
      "sequence_id": "3",
      "name": "Contract.pdf",
      "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37",
      "file_version": {
        "id": "12345",
        "type": "file_version",
        "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc"
      }
    }
  ],
  "limit": 1000,
  "offset": 2000,
  "order": [
    {
      "by": "type",
      "direction": "ASC"
    }
  ],
  "total_count": 5000
}