> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://developers.awork.com/apiv1/agent-thread-files/get-agents-threads-files-by-thread-id-and-file-id/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.awork.com/_mcp/server. # Returns a file of the specified agent thread. GET https://api.awork.com/api/v1/agents/threads/{threadId}/files/{fileId} Returns file metadata for a file attached to the specified agent thread. Both the thread id and file id must match the attachment. Returns not found if the file is not attached to that thread. The user must have `read` access to the agent thread. Reference: https://developers.awork.com/apiv1/agent-thread-files/get-agents-threads-files-by-thread-id-and-file-id ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Request ### Path parameters - `threadId` (string, required) — The agent thread id. - `fileId` (string, required) — The file id. ## Response ### 200 OK - `name` (string, optional, nullable) — The user-specified name of the file. - `description` (string, optional, nullable) — The description of the file. - `id` (string, optional) — The id of the file info. - `projectId` (string, optional, nullable) - `projectTemplateId` (string, optional, nullable) - `companyId` (string, optional, nullable) - `taskId` (string, optional, nullable) - `taskTemplateId` (string, optional, nullable) - `userId` (string, optional, nullable) - `documentId` (string, optional, nullable) - `fileName` (string, optional, nullable) — The name of the file. - `entityType` (string, optional, nullable) — The name of the linked entity type. - `mimeType` (string, optional, nullable) — The MIME type of the file. - `createdOn` (string, optional) — The date this file was created. - `createdBy` (string, optional) — The id of the user who created this file. - `updatedOn` (string, optional) — The date this file was last modified. - `updatedBy` (string, optional) — The id of the user who last modified this file. - `fileVersions` (list of FileVersion, optional, nullable) — List of all versions. - `isCommentFile` (boolean, optional) — Whether the file is related to a comment. - `externalProvider` (string, optional, nullable) — The external provider for the file. Like 'google' or 'onedrive'. - `externalFileUrl` (string, optional, nullable) — The file url of the external provider. - `isHiddenForConnectUsers` (boolean, optional) — Whether the file is hidden for connect users. - `entityId` (string, optional, nullable, deprecated) — Deprecated. The id of the linked entity derived from entity specific owner ids. ## Errors ### 401 Unauthorized Error Unauthorized - `code` (string, required) — The error code. - `description` (string, required) — The description of the error. - `link` (string, required) — The link to the API documentation page. - `details` (list of string, optional, nullable) — A list of details describing the error. - `validationErrors` (list of ValidationErrorResponse, optional, nullable) — If a validation error occurred, this contains the validation errors for each property. - `traceId` (string, optional, nullable) — The request trace id for tracking the request. ### 404 Not Found Error Not Found - `code` (string, required) — The error code. - `description` (string, required) — The description of the error. - `link` (string, required) — The link to the API documentation page. - `details` (list of string, optional, nullable) — A list of details describing the error. - `validationErrors` (list of ValidationErrorResponse, optional, nullable) — If a validation error occurred, this contains the validation errors for each property. - `traceId` (string, optional, nullable) — The request trace id for tracking the request. ## Types ### FileVersion - `id` (string, optional) — The id of the file version. - `fileInfoId` (string, optional) — The id of the file this version belongs to. - `version` (double, optional) — The version of the file. - `size` (long, optional) — The size of the file, in bytes. - `width` (double, optional, nullable) — The width if this is an image file. - `height` (double, optional, nullable) — The height if this is an image file. - `createdOn` (string, optional) — The date this file version was created. - `createdBy` (string, optional) — The id of the user who created this file version. - `updatedOn` (string, optional) — The date this file version was last modified. - `updatedBy` (string, optional) — The id of the user who last modified this file version. ### ValidationErrorResponse The validation error response. - `property` (string, optional, nullable) — The name of the property that failed validation. - `message` (string, optional, nullable) — The reason why this property failed validation. ## Examples **Response** ```json { "name": "Final project report", "description": "The client requested a cost overview and timeline", "id": "123e4567-e89b-12d3-a456-426614174000", "projectId": "123e4567-e89b-12d3-a456-426614174000", "projectTemplateId": "123e4567-e89b-12d3-a456-426614174000", "companyId": "123e4567-e89b-12d3-a456-426614174000", "taskId": "123e4567-e89b-12d3-a456-426614174000", "taskTemplateId": "123e4567-e89b-12d3-a456-426614174000", "userId": "123e4567-e89b-12d3-a456-426614174000", "documentId": "123e4567-e89b-12d3-a456-426614174000", "fileName": "Final project report.xlsx", "entityType": "project", "mimeType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "createdOn": "2024-01-15T09:30:00Z", "createdBy": "123e4567-e89b-12d3-a456-426614174000", "updatedOn": "2024-01-15T09:30:00Z", "updatedBy": "123e4567-e89b-12d3-a456-426614174000", "fileVersions": [ { "id": "123e4567-e89b-12d3-a456-426614174000", "fileInfoId": "123e4567-e89b-12d3-a456-426614174000", "version": 13, "size": 13590, "width": 1920, "height": 1200, "createdOn": "2024-01-15T09:30:00Z", "createdBy": "123e4567-e89b-12d3-a456-426614174000", "updatedOn": "2024-01-15T09:30:00Z", "updatedBy": "123e4567-e89b-12d3-a456-426614174000" } ], "isCommentFile": false, "externalProvider": null, "externalFileUrl": null, "isHiddenForConnectUsers": true, "entityId": "123e4567-e89b-12d3-a456-426614174000" } ``` **SDK Code** ```python import requests url = "https://api.awork.com/api/v1/agents/threads/threadId/files/fileId" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.awork.com/api/v1/agents/threads/threadId/files/fileId'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.awork.com/api/v1/agents/threads/threadId/files/fileId" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.awork.com/api/v1/agents/threads/threadId/files/fileId") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.awork.com/api/v1/agents/threads/threadId/files/fileId") .header("Authorization", "Bearer ") .asString(); ``` ```php request('GET', 'https://api.awork.com/api/v1/agents/threads/threadId/files/fileId', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.awork.com/api/v1/agents/threads/threadId/files/fileId"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://api.awork.com/api/v1/agents/threads/threadId/files/fileId")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```