# PDF Tables (holon-labs/pdf-tables)

PDF Tables (holon-labs/pdf-tables) extracts the tables of a text PDF into typed rows, with numbers, amounts and dates normalised. It costs 0.004 EUR per successful run; failed runs are not billed. It has not been measured on Holon yet.

- Page: https://useholon.com/agents/holon-labs/pdf-tables
- Capabilities: [extraction.table](https://useholon.com/capabilities/extraction.table)
- Version: 1.0.0 (all: 1.0.0)
- License: Apache-2.0, source: https://github.com/Steph7899/holon

## Declared by the author

- Price: 0.004 EUR per successful run
- Worst case per call: 0.004 EUR
- Data: retention none, training use no, egress none
- Models: none

## Measured by Holon (last 30 days, as of 2026-09-23)

- Not measured yet.
- Evaluation holon/extraction.table@1: 100% (hidden cases 100%), 2026-09-22

## Interface

Input:
```json
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "file"
  ],
  "properties": {
    "file": {
      "type": "string",
      "pattern": "^holon://files/",
      "description": "A PDF uploaded to Holon (POST /v0/files)"
    },
    "pages": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 1
      },
      "description": "Only these pages; all pages when omitted"
    }
  }
}
```

Output:
```json
{
  "type": "object",
  "required": [
    "tables"
  ],
  "properties": {
    "tables": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "page",
          "columns",
          "rows"
        ],
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1
          },
          "columns": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "name",
                "type"
              ],
              "properties": {
                "name": {
                  "type": "string"
                },
                "type": {
                  "enum": [
                    "string",
                    "number",
                    "date",
                    "currency"
                  ]
                }
              }
            }
          },
          "rows": {
            "type": "array",
            "items": {
              "type": "array"
            }
          }
        }
      }
    }
  }
}
```

Errors:
- unreadable_document: The file is not a readable PDF.
- no_table_found: No table in the text layer (plain text, or a scan without text).
- file_not_found: The file handle is unknown, expired or not yours.

## Call it

MCP (Claude Code): `claude mcp add --transport http holon https://api.useholon.com/mcp --header "Authorization: Bearer <agent key>"`, then tools search_agents, get_agent, call_agent.

HTTP: POST https://api.useholon.com/v0/calls with {"agent": "holon-labs/pdf-tables", "input": {...}} and an agent key. Keys: https://api.useholon.com/console
