コンテンツを検索

get
https://api.box.com/2.0
/search/

ユーザーまたは会社全体が利用できる項目を検索します。

リクエスト

Bearer [ACCESS_TOKEN]
application/json

クエリパラメータ

stringクエリ内省略可能
file

このタイプの項目のみに検索結果を絞り込みます。

次の値のいずれか1つ: file,folder,web_link

stringクエリ内省略可能
4535234,234123235,2654345

指定したフォルダリスト内の項目のみに検索結果を絞り込みます。

フォルダの定義には、フォルダIDのカンマ区切りリストを使用します。

検索結果にはサブフォルダ内の項目も含まれます。

string arrayクエリ内省略可能
["name","description"]

指定したコンテンツタイプの項目のみに検索結果を絞り込みます。

コンテンツタイプの定義には、Boxで認識される コンテンツタイプのカンマ区切りリストを使用します。

stringクエリ内省略可能
2014-05-15T13:35:01-07:00,2014-05-17T13:35:01-07:00

指定した日付範囲内に作成された項目のみに検索結果を絞り込みます。

日付範囲はカンマ区切りのRFC3339タイムスタンプとして定義されます。

開始日が省略されている場合(,2014-05-17T13:35:01-07:00)、 代わりに直近の既知の日付が開始日として使用されます。

終了日が省略されている場合(2014-05-15T13:35:01-07:00,)、代 わりに現在の日付が終了日として使用されます。

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

検索結果の並べ替えの方向を定義します。デフォルト値はDESCです。

結果がrelevanceを基準にして並べ替えられると、順序はDESCなり、このパラメータの値は無視されます。

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

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

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

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

stringクエリ内省略可能
pdf,png,gif

カンマ区切りリストで指定したファイル拡張子のみに検索結果を絞り込みます。

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

返す項目の最大数。

object arrayクエリ内省略可能
[{"scope":"enterprise","templateKey":"marketingCollateral","filters":{"documentType":"datasheet"}}]

メタデータテンプレートの名前とコンテンツに一致する項目のみに検索結果を絞り込みます。

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

応答が開始される項目のオフセット。

stringクエリ内省略可能
123422,23532,3241212

指定したリストの所有者が所有する項目のみに検索結果を絞り込みます。

所有者の定義には、ユーザーIDのカンマ区切りリストを使用します。

stringクエリ内必須
sales

検索する文字列。このクエリは、項目名、説明、ファイルの テキストコンテンツなど、さまざまな項目タイプのフィールドと照合されます。

stringクエリ内省略可能
user_content

ユーザーのスコープのみに検索結果を絞り込みます。

デフォルトではuser_contentに設定され、現在のユーザーが利用可能なコンテンツのみが検索されます。

これをenterprise_contentに設定すると、企業全体で利用可能なコンテンツにまで検索範囲が拡大されます。管理者がこのスコープを利用できるようにするには、サポートにご連絡ください。

次の値のいずれか1つ: user_content,enterprise_content

stringクエリ内省略可能
1000000,5000000

特定のファイルサイズ範囲内の項目のみに検索結果を絞り込みます。

ファイルサイズの範囲を定義するには、バイトサイズをカンマ区切って指定します。

上限または下限を省略すると、上限または下限のないサイズ範囲を指定できます。

stringクエリ内省略可能
modified_at"relevance"

結果が返される順序を定義します。デフォルトでは、relevanceになっています。

  • relevance (デフォルト)を指定すると、クエリの検索語との関連性を基準として並べ替えられた結果が返されます。
  • modified_atを指定すると、項目が最後に変更された日付の降順で並べ替えられた結果が返されます。

次の値のいずれか1つ: modified_at,relevance

stringクエリ内省略可能
non_trashed_only

ごみ箱内の項目を検索対象に含めるかどうかを制御します。

デフォルト値はnon_trashed_onlyです

次の値のいずれか1つ: non_trashed_only,trashed_only

stringクエリ内省略可能
2014-05-15T13:35:01-07:00,2014-05-17T13:35:01-07:00

指定した日付範囲内に更新された項目のみに検索結果を絞り込みます。

日付範囲はカンマ区切りのRFC3339タイムスタンプとして定義されます。

開始日が省略されている場合(,2014-05-17T13:35:01-07:00)、代わりに直近の既知の日付が開始日として使用されます。

終了日が省略されている場合(2014-05-15T13:35:01-07:00,)、代わりに現在の日付が終了日として使用されます。

レスポンス

application/jsonItems

検索結果のコレクションを返します。一致する検索結果がない場合、entries配列は空になります。

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

get
コンテンツを検索
このドキュメント内で一部のAPIを試せるようになりました。
ログイン

リクエストの例

cURL
curl -X GET https://api.box.com/2.0/search?query=sales \
     -H 'Authorization: Bearer <ACCESS_TOKEN>'
.NET
// Search for PDF or Word documents matching "Meeting Notes"
BoxCollection<BoxItem> results = await client.SearchManager
    .QueryAsync("Meeting Notes", fileExtensions: new { "pdf", "docx" });
Java
// Find the first 10 files matching "taxes"
long offsetValue = 0;
long limitValue = 10;
BoxSearch boxSearch = new BoxSearch(api);
BoxSearchParameters searchParams = new BoxSearchParameters();
searchParams.setQuery("taxes");
searchParams.setType("file");
PartialCollection<BoxItem.Info> searchResults = boxSearch.searchRange(offsetValue, limitValue, searchParams);
Python
items = client.search().query(query='TEST QUERY', limit=100, file_extensions=['pdf', 'doc'])
for item in items:
    print('The item ID is {0} and the item name is {1}'.format(item.id, item.name))
Node
// Search for PDF or Word documents matching "Mobile"
client.search.query(
	'Mobile',
	{
		fields: 'name,modified_at,size,extension,permissions,sync_state',
		file_extensions: 'pdf,doc',
		limit: 200,
		offset: 0
	})
	.then(results => {
		/* results -> {
			total_count: 1,
			entries: 
			[ { type: 'file',
				id: '11111',
				sequence_id: '1',
				etag: '1',
				sha1: 'f89d97c5eea0a68e2cec911s932eca34a52355d2',
				name: 'Box for Sales - Empowering Your Mobile Worker White paper 2pg (External).pdf',
				description: '',
				size: 408979,
				path_collection: 
					{ total_count: 2,
					entries: 
					[ { type: 'folder',
						id: '0',
						sequence_id: null,
						etag: null,
						name: 'All Files' },
						{ type: 'folder',
						id: '22222',
						sequence_id: '1',
						etag: '1',
						name: 'Marketing Active Work' } ] },
				created_at: '2014-05-17T12:59:45-07:00',
				modified_at: '2014-05-17T13:00:20-07:00',
				trashed_at: null,
				purged_at: null,
				content_created_at: '2014-05-17T12:58:58-07:00',
				content_modified_at: '2014-05-17T12:58:58-07:00',
				created_by: 
					{ type: 'user',
					id: '33333',
					name: 'Example User',
					login: 'user@example.com' },
				modified_by: 
					{ type: 'user',
					id: '33333',
					name: 'Example User',
					login: 'user@example.com' },
				owned_by: 
					{ type: 'user',
					id: '33333',
					name: 'Example User',
					login: 'user@example.com' },
				shared_link: null,
				parent: 
					{ type: 'folder',
					id: '22222',
					sequence_id: '1',
					etag: '1',
					name: 'Marketing Active Work' },
				item_status: 'active' } ],
			limit: 200,
			offset: 0 }
		*/
	});
iOS
client.search.query(query: "Quarterly Business Review") { results in
    switch results {
    case let .success(iterator):
        for i in 1 ... 10 {
            iterator.next { result in
                switch result {
                case let .success(item):
                    switch item {
                    case let .file(file):
                        print("- File \(file.name) (ID: \(file.id))")
                    case let .folder(folder):
                        print("- Folder \(file.name) (ID: \(file.id))")
                    case let .webLink(webLink):
                        print("- Web Link \(file.name) (ID: \(file.id))")
                    }
                case let .failure(error):
                    print(error)
                }
            }
        }
    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"
      },
      "description": "Contract for Q1 renewal",
      "size": 629644,
      "path_collection": {
        "total_count": 1,
        "entries": [
          {
            "id": 12345,
            "etag": 1,
            "type": "folder",
            "sequence_id": 3,
            "name": "Contracts"
          }
        ]
      },
      "created_at": "2012-12-12T10:53:43-08:00",
      "modified_at": "2012-12-12T10:53:43-08:00",
      "trashed_at": "2012-12-12T10:53:43-08:00",
      "purged_at": "2012-12-12T10:53:43-08:00",
      "content_created_at": "2012-12-12T10:53:43-08:00",
      "content_modified_at": "2012-12-12T10:53:43-08:00",
      "created_by": {
        "id": 11446498,
        "type": "user",
        "name": "Aaron Levie",
        "login": "ceo@example.com"
      },
      "modified_by": {
        "id": 11446498,
        "type": "user",
        "name": "Aaron Levie",
        "login": "ceo@example.com"
      },
      "owned_by": {
        "id": 11446498,
        "type": "user",
        "name": "Aaron Levie",
        "login": "ceo@example.com"
      },
      "shared_link": {
        "url": "https://www.box.com/s/vspke7y05sb214wjokpk",
        "download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
        "vanity_url": "https://acme.app.box.com/v/my_url/",
        "access": "open",
        "effective_access": "company",
        "effective_permission": "can_download",
        "unshared_at": "2018-04-13T13:53:23-07:00",
        "is_password_enabled": true,
        "permissions": {
          "can_download": true,
          "can_preview": true
        },
        "download_count": 3,
        "preview_count": 3
      },
      "parent": {
        "id": 12345,
        "etag": 1,
        "type": "folder",
        "sequence_id": 3,
        "name": "Contracts"
      },
      "item_status": "active",
      "allowed_invitee_roles": [
        "editor"
      ],
      "is_externally_owned": true,
      "has_collaborations": true
    }
  ],
  "limit": 1000,
  "offset": 2000,
  "order": [
    {
      "by": "type",
      "direction": "ASC"
    }
  ],
  "total_count": 5000
}