> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unsiloed.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Response Format

> Response shape from the /v2/extract endpoint, with a field-by-field reference.

A completed extraction job returns job metadata plus a `result` object with one entry per top-level field in your schema. The example below is from a real invoice extraction.

```json theme={null}
{
  "job_id": "283c77a1-ae1b-4b96-b89e-1c5e63fd89aa",
  "status": "completed",
  "file_name": "invoice.pdf",
  "file_url": "https://example-bucket.s3.amazonaws.com/...",
  "created_at": "2026-05-25T15:38:11.821Z",
  "updated_at": "2026-05-25T15:38:42.196Z",
  "metadata": {
    "page_count": 1,
    "order": ["invoice_number", "vendor_name", "total_amount_due"],
    "schema": { "...": "..." }
  },
  "result": {
    "invoice_number": {
      "value": "NC-2025-00417",
      "score": 0.97
    },
    "vendor_name": {
      "value": "NORTHWIND CONSULTING LLC",
      "score": 0.95
    },
    "total_amount_due": {
      "value": 12586.0,
      "score": 0.97
    }
  }
}
```

## Top-Level Fields

* **`job_id`:** unique identifier for the extraction job
* **`status`:** job state (`completed`, `failed`, or an in-progress value such as `processing`)
* **`file_name`:** name of the uploaded file
* **`file_url`:** temporary signed S3 URL to the uploaded file
* **`created_at`:** ISO 8601 timestamp when the job was submitted
* **`updated_at`:** ISO 8601 timestamp of the most recent status update
* **`metadata`:** object containing `page_count`, the original `order` of fields in your schema, and an echo of the `schema` you submitted
* **`result`:** object containing one entry per top-level field in your schema

## Extracted Field Structure

Each entry in the `result` object describes one extracted field:

* **`value`:** the extracted data, typed to match your schema (`string`, `number`, `boolean`, `object`, or `array`)
* **`score`:** confidence score between 0 and 1, higher is better

## Array and Nested Object Fields

When your schema includes an array of objects (like `line_items` in an invoice), each row comes back as a structured object where every property has its own `value` and `score`:

```json theme={null}
"line_items": {
  "score": 0.99,
  "value": [
    {
      "description": { "value": "Strategic planning workshop facilitation", "score": 0.98 },
      "hours":  { "value": 12,     "score": 0.97 },
      "rate":   { "value": 275.0,  "score": 0.97 },
      "amount": { "value": 3300.0, "score": 0.98 }
    }
  ]
}
```

The top-level `score` on the array (`0.99` above) reflects whether the parser identified the array structure correctly. Each cell carries its own score, so downstream code can flag individual uncertain values without rejecting the whole row.

## Error Responses

If the schema fails validation or the job errors during processing, the API returns a JSON body with an error description. See the [Extract API reference](/api-reference/extraction/extract-data) for the exact error shapes and status codes.
