---
title: "getFileAttributeSuggestionJob"
method: GET
path: "/v1/files/{id}/attribute-suggestion-jobs/{job_id}"
tags: ["File"]
---

# getFileAttributeSuggestionJob

`GET /v1/files/{id}/attribute-suggestion-jobs/{job_id}`

## Request

- Base URL: `https://file.sls.epilot.io`
- URL: `https://file.sls.epilot.io/v1/files/{id}/attribute-suggestion-jobs/{job_id}`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `token`

Get an attribute suggestion job of the file. Poll until `jobStatus.status` is `COMPLETED` or `FAILED`.

## Path parameters

- `id` union, required
  - string: Empty string (used when file ID not yet assigned)
  - string, uuid: Valid UUID v4
- `job_id` string, required

## Response `200`

Suggestion job

- FileAttributeSuggestionJob
  - `jobId` string, required: Attribute suggestion job ID (ULID)
  - `jobStatus` FileAttributeSuggestionJobStatus, required
    - `status` 'INITIATED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED', required
    - `progress` number, required: Progress in percent (0-100)
    - `error` string: Failure reason when status is FAILED
  - `payload` FileAttributeSuggestionsPayload, required
    - `file_id` string, required
    - `entity_id` string, required
    - `entity_slug` string, required
    - `generated_by` string: User id that requested the job
    - `generated_at` number: Epoch milliseconds when the job was requested
    - `suggestions` FileAttributeSuggestion[], required
      - `attribute_name` string: Schema attribute name (field key on the entity)
      - `attribute_label` string: Human readable attribute label
      - `attribute_type` 'date' | 'number' | 'boolean' | 'select' | 'string'
      - `suggested_value` union: Scalar matching the attribute schema. Dates as `YYYY-MM-DD`.
        - string
        - number
        - boolean
      - `confidence` 'high' | 'medium' | 'low'
      - `source_page` integer: Page number in the document where the value was found
      - `evidence` string: Quote from the document followed by a short explanation of the mapping
      - `status` 'suggested' | 'accepted' | 'discarded'
      - `status_updated_by` string: User id that last updated the suggestion status
      - `status_updated_at` number: Epoch milliseconds of the last status update
      - `discard_reason` string: Reason given when the suggestion was discarded
      - `is_copied` boolean: Whether a user copied the suggested value
      - `copied_by` string: User id that copied the suggested value
      - `copied_at` number: Epoch milliseconds when the value was copied
      - `suggestion_type` 'new_value' | 'update': `new_value` when the entity field is empty, `update` when the suggestion proposes a change
  - `createdAt` number, required: Epoch milliseconds
  - `updatedAt` number, required: Epoch milliseconds

## Other responses

- `401`: Authentication required or invalid credentials
- `403`: Insufficient permissions to access the resource
- `404`: Attribute suggestion error with a machine readable `error_code`
- `500`: An unexpected error occurred on the server

## Changes

- **2026-10-21** `bc1aea5a570e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/epilot/apis/file-api/changes/v1/files/:id/attribute-suggestion-jobs/:job_id/get.md)

---

[API](https://skmtc.dev/epilot/apis/file-api.md) - [All operations](https://skmtc.dev/epilot/apis/file-api/llms.txt) - [OpenAPI document](https://skmtc.dev/epilot/apis/file-api/revisions/bc1aea5a570e?raw)
