# Files ## Upload File `FileCreateResponse files().create(FileCreateParamsparams, RequestOptionsrequestOptions = RequestOptions.none())` **post** `/api/v1/beta/files` Upload a file using multipart/form-data. Set `purpose` to indicate how the file will be used: `user_data`, `parse`, `extract`, `classify`, `split`, `sheet`, or `agent_app`. Returns the created file metadata including its ID for use in subsequent parse, extract, or classify operations. ### Parameters - `FileCreateParams params` - `Optional organizationId` - `Optional projectId` - `String file` The file to upload - `String purpose` The intended purpose of the file. Valid values: 'user_data', 'parse', 'extract', 'split', 'classify', 'sheet', 'agent_app'. This determines the storage and retention policy for the file. - `Optional externalFileId` The ID of the file in the external system ### Returns - `class FileCreateResponse:` An uploaded file. - `String id` Unique file identifier - `String name` File name including extension - `String projectId` Project this file belongs to - `Optional downloadUrl` Schema for a presigned URL. - `LocalDateTime expiresAt` The time at which the presigned URL expires - `String url` A presigned URL for IO operations against a private file - `Optional formFields` Form fields for a presigned POST request - `Optional expiresAt` When the file expires and may be automatically removed. Null means no expiration. - `Optional externalFileId` Optional ID for correlating with an external system - `Optional fileType` File extension (pdf, docx, png, etc.) - `Optional lastModifiedAt` When the file was last modified (ISO 8601) - `Optional purpose` How the file will be used: user_data, parse, extract, classify, split, sheet, or agent_app ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.models.files.FileCreateParams; import com.llamacloud_prod.api.models.files.FileCreateResponse; import java.io.ByteArrayInputStream; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); FileCreateParams params = FileCreateParams.builder() .file(new ByteArrayInputStream("Example data".getBytes())) .purpose("purpose") .build(); FileCreateResponse file = client.files().create(params); } } ``` #### Response ```json { "id": "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "name": "invoice.pdf", "project_id": "123e4567-e89b-12d3-a456-426614174000", "download_url": { "expires_at": "2019-12-27T18:11:19.117Z", "url": "https://example.com", "form_fields": { "foo": "string" } }, "expires_at": "2019-12-27T18:11:19.117Z", "external_file_id": "ext-12345", "file_type": "pdf", "last_modified_at": "2019-12-27T18:11:19.117Z", "purpose": "parse" } ``` ## Query Files `FileQueryResponse files().query(FileQueryParamsparams = FileQueryParams.none(), RequestOptionsrequestOptions = RequestOptions.none())` **post** `/api/v1/beta/files/query` Query files with filtering and pagination. Deprecated: use `GET /files`. ### Parameters - `FileQueryParams params` - `Optional organizationId` - `Optional projectId` - `Optional filter` Filter parameters for file queries. - `Optional dataSourceId` Filter by data source ID - `Optional externalFileId` Filter by external file ID - `Optional> fileIds` Filter by specific file IDs - `Optional fileName` Filter by file name - `Optional onlyManuallyUploaded` Filter only manually uploaded files (data_source_id is null) - `Optional projectId` Filter by project ID - `Optional orderBy` A comma-separated list of fields to order by, sorted in ascending order. Use 'field_name desc' to specify descending order. - `Optional pageSize` The maximum number of items to return. The service may return fewer than this value. If unspecified, a default page size will be used. The maximum value is typically 1000; values above this will be coerced to the maximum. - `Optional pageToken` A page token, received from a previous list call. Provide this to retrieve the subsequent page. ### Returns - `class FileQueryResponse:` Paginated list of files. - `List items` The list of items. - `String id` Unique file identifier - `String name` File name including extension - `String projectId` Project this file belongs to - `Optional downloadUrl` Schema for a presigned URL. - `LocalDateTime expiresAt` The time at which the presigned URL expires - `String url` A presigned URL for IO operations against a private file - `Optional formFields` Form fields for a presigned POST request - `Optional expiresAt` When the file expires and may be automatically removed. Null means no expiration. - `Optional externalFileId` Optional ID for correlating with an external system - `Optional fileType` File extension (pdf, docx, png, etc.) - `Optional lastModifiedAt` When the file was last modified (ISO 8601) - `Optional purpose` How the file will be used: user_data, parse, extract, classify, split, sheet, or agent_app - `Optional nextPageToken` A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages. - `Optional totalSize` The total number of items available. This is only populated when specifically requested. The value may be an estimate and can be used for display purposes only. ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.models.files.FileQueryParams; import com.llamacloud_prod.api.models.files.FileQueryResponse; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); FileQueryResponse response = client.files().query(); } } ``` #### Response ```json { "items": [ { "id": "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "name": "invoice.pdf", "project_id": "123e4567-e89b-12d3-a456-426614174000", "download_url": { "expires_at": "2019-12-27T18:11:19.117Z", "url": "https://example.com", "form_fields": { "foo": "string" } }, "expires_at": "2019-12-27T18:11:19.117Z", "external_file_id": "ext-12345", "file_type": "pdf", "last_modified_at": "2019-12-27T18:11:19.117Z", "purpose": "parse" } ], "next_page_token": "next_page_token", "total_size": 0 } ``` ## List Files `FileListPage files().list(FileListParamsparams = FileListParams.none(), RequestOptionsrequestOptions = RequestOptions.none())` **get** `/api/v1/beta/files` List files with optional filtering and pagination. Filter by `file_name`, `file_ids`, or `external_file_id`. Supports cursor-based pagination and custom ordering. ### Parameters - `FileListParams params` - `Optional> expand` Fields to expand on each file. - `Optional externalFileId` Filter by external file ID. - `Optional> fileIds` Filter by specific file IDs. - `Optional fileName` Filter by file name (exact match). - `Optional orderBy` A comma-separated list of fields to order by, sorted in ascending order. Use 'field_name desc' to specify descending order. - `Optional organizationId` - `Optional pageSize` The maximum number of items to return. Defaults to 50, maximum is 1000. - `Optional pageToken` A page token received from a previous list call. Provide this to retrieve the subsequent page. - `Optional projectId` ### Returns - `class FileListResponse:` An uploaded file. - `String id` Unique file identifier - `String name` File name including extension - `String projectId` Project this file belongs to - `Optional downloadUrl` Schema for a presigned URL. - `LocalDateTime expiresAt` The time at which the presigned URL expires - `String url` A presigned URL for IO operations against a private file - `Optional formFields` Form fields for a presigned POST request - `Optional expiresAt` When the file expires and may be automatically removed. Null means no expiration. - `Optional externalFileId` Optional ID for correlating with an external system - `Optional fileType` File extension (pdf, docx, png, etc.) - `Optional lastModifiedAt` When the file was last modified (ISO 8601) - `Optional purpose` How the file will be used: user_data, parse, extract, classify, split, sheet, or agent_app ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.models.files.FileListPage; import com.llamacloud_prod.api.models.files.FileListParams; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); FileListPage page = client.files().list(); } } ``` #### Response ```json { "items": [ { "id": "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "name": "invoice.pdf", "project_id": "123e4567-e89b-12d3-a456-426614174000", "download_url": { "expires_at": "2019-12-27T18:11:19.117Z", "url": "https://example.com", "form_fields": { "foo": "string" } }, "expires_at": "2019-12-27T18:11:19.117Z", "external_file_id": "ext-12345", "file_type": "pdf", "last_modified_at": "2019-12-27T18:11:19.117Z", "purpose": "parse" } ], "next_page_token": "next_page_token", "total_size": 0 } ``` ## Delete File `files().delete(FileDeleteParamsparams = FileDeleteParams.none(), RequestOptionsrequestOptions = RequestOptions.none())` **delete** `/api/v1/beta/files/{file_id}` Delete a file from the project. ### Parameters - `FileDeleteParams params` - `Optional fileId` - `Optional organizationId` - `Optional projectId` ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.models.files.FileDeleteParams; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); client.files().delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"); } } ``` ## Read File Content `PresignedUrl files().get(FileGetParamsparams = FileGetParams.none(), RequestOptionsrequestOptions = RequestOptions.none())` **get** `/api/v1/beta/files/{file_id}/content` Get a presigned URL to download the file content. ### Parameters - `FileGetParams params` - `Optional fileId` - `Optional expiresAtSeconds` - `Optional organizationId` - `Optional projectId` ### Returns - `class PresignedUrl:` Schema for a presigned URL. - `LocalDateTime expiresAt` The time at which the presigned URL expires - `String url` A presigned URL for IO operations against a private file - `Optional formFields` Form fields for a presigned POST request ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.models.files.FileGetParams; import com.llamacloud_prod.api.models.files.PresignedUrl; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); PresignedUrl presignedUrl = client.files().get("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"); } } ``` #### Response ```json { "expires_at": "2019-12-27T18:11:19.117Z", "url": "https://example.com", "form_fields": { "foo": "string" } } ``` ## Domain Types ### File - `class File:` Schema for a file. - `String id` Unique identifier - `String name` - `String projectId` The ID of the project that the file belongs to - `Optional createdAt` Creation datetime - `Optional dataSourceId` The ID of the data source that the file belongs to - `Optional expiresAt` The expiration date for the file. Files past this date can be deleted. - `Optional externalFileId` The ID of the file in the external system - `Optional fileSize` Size of the file in bytes - `Optional fileType` File type (e.g. pdf, docx, etc.) - `Optional lastModifiedAt` The last modified time of the file - `Optional permissionInfo` Permission information for the file - `class UnionMember0:` - `List` - `String` - `double` - `boolean` - `Optional purpose` The intended purpose of the file (e.g., 'user_data', 'parse', 'extract', 'split', 'classify') - `Optional resourceInfo` Resource information for the file - `class UnionMember0:` - `List` - `String` - `double` - `boolean` - `Optional updatedAt` Update datetime ### Presigned URL - `class PresignedUrl:` Schema for a presigned URL. - `LocalDateTime expiresAt` The time at which the presigned URL expires - `String url` A presigned URL for IO operations against a private file - `Optional formFields` Form fields for a presigned POST request