## Retrieve a file `client.File.Get(ctx, id) (*FileRetrieveResponse, error)` **get** `/v1/files/{id}` Retrieves a single file by its ID. **[Required scope](/using-the-api/scopes/):** `files:read` **[Rate limit category](/using-the-api/rate-limits/):** Read ### Parameters - `id string` Unique identifier of the file to retrieve. ### Returns - `type FileRetrieveResponse struct{…}` - `ID string` Unique identifier for the file. - `CompletedAt string` When the file upload was completed. - `CreatedAt string` When the file upload session was created. - `ExpiresAt string` When the upload session expires. Null once completed, cancelled, or expired. - `Filename string` Original filename. - `MimeType string` MIME type of the file. - `SizeBytes int64` File size in bytes. - `Status FileRetrieveResponseStatus` Current upload status of the file. - `const FileRetrieveResponseStatusPending FileRetrieveResponseStatus = "PENDING"` - `const FileRetrieveResponseStatusCompleted FileRetrieveResponseStatus = "COMPLETED"` - `const FileRetrieveResponseStatusCancelled FileRetrieveResponseStatus = "CANCELLED"` - `const FileRetrieveResponseStatusExpired FileRetrieveResponseStatus = "EXPIRED"` ### Example ```go package main import ( "context" "fmt" "github.com/Lightfld/lightfield-go" "github.com/Lightfld/lightfield-go/option" ) func main() { client := githubcomlightfldlightfieldgo.NewClient( option.WithAPIKey("My API Key"), ) fileRetrieveResponse, err := client.File.Get(context.TODO(), "id") if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", fileRetrieveResponse.ID) } ``` #### Response ```json { "id": "id", "completedAt": "completedAt", "createdAt": "createdAt", "expiresAt": "expiresAt", "filename": "filename", "mimeType": "mimeType", "sizeBytes": -9007199254740991, "status": "PENDING" } ```