---
title: "Handle Data Table Processing Webhook"
method: POST
path: "/api/webhooks/data-table-processing/{job_id}"
---

# Handle Data Table Processing Webhook

`POST /api/webhooks/data-table-processing/{job_id}`

## Request

- Base URL: `https://api.openpaper.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openpaper.ai/api/webhooks/data-table-processing/{job_id}`
- Auth: none declared

Handle webhook from data table processing jobs service.

Deliberately sync (no `async`): the body is synchronous end-to-end and
includes a blocking LLM call (`name_data_table`). As `async def` it ran on
the event loop and froze the whole server for the duration of that call —
FastAPI runs sync handlers in the threadpool instead.

## Path parameters

- `job_id` string, required

## Request body

- DataTableProcessingResultWebhookData: Schema for webhook data from data table processing service.
  - `task_id` string, required
  - `status` string, required
  - `result` DataTableResult, required: Result of a data table extraction job.
    - `success` boolean, required: Whether the extraction was successful
    - `columns` string[], required: List of column names in the data table.
    - `rows` DataTableRow[]: Row data per paper
      - `paper_id` string, required: The ID of the paper this row corresponds to
      - `values` object, required: Mapping of column name to cell value with citations
    - `row_failures` string[]: List of paper IDs that failed extraction
  - `error` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/openpaper/apis/open-paper.md) - [All operations](https://skmtc.dev/openpaper/apis/open-paper/llms.txt) - [OpenAPI document](https://skmtc.dev/openpaper/apis/open-paper/revisions/c2ad03216101?raw)
