apyhub
DATA EXTRACTION · DEVELOPER TOOLS

AI Document Table Data Extraction API

What it does

Table Extraction pulls tabular data out of documents and returns it in a structured response you can work with. Send a PDF or other file upload, or pass a document URL, and choose whether you want ApyHub’s structured table extraction output or raw Azure Document Intelligence parsing output.

Use the /url endpoint when the source document is already hosted online. Send a url, and optionally set requested_service to azure or apyhub. If you need to route through Azure directly, include the azure object with key, region, endpoint, account_id, or access_token as needed. The /file endpoint accepts a binary file upload and the same service choice, with Azure credentials supplied as azure_key, azure_region, azure_endpoint, azure_account_id, or azure_access_token.

The response contains a data object with an azure result and an apyhub result. That makes it straightforward to compare extraction paths or plug the output into downstream processing without having to build your own table parser.

Use Table Extraction for invoice line items, reports, scanned forms, and any workflow where you need tables captured from documents instead of manually copied into spreadsheets.

▣ ENDPOINT 01 / 02
POST
Extract table data (URL input)
https://api.eu.apyverse.com/apyhub/extract-table-data/url

QUICKSTART

GUIDE

Quickstart

Send a PDF or webpage URL to extract table data with ApyHub.

curl -X POST "https://api.eu.apyverse.com/apyhub/extract-table-data/url" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/table.pdf"
  }'

What you'll get back

Returns a JSON object with a data object field. The data object may contain structured extraction results under azure and/or apyhub, depending on the service used.

{
  "data": {
    "azure": {},
    "apyhub": {}
  }
}
TRY ITLIVE · 500 ATOMS
Loading playground…

About this endpoint

What it does

Extracts table data from a document at the provided URL and returns parsed results in a JSON object. You can optionally supply Azure credentials and choose whether to request Azure or ApyHub processing through requested_service.

Request Body

ParameterTypeMandatoryDescription
urlStringYesDocument URL to extract table data from. Must be a valid URI.
azureObjectNoCustom credentials for Azure services. Contains optional fields: key, region, endpoint, account_id, access_token.
azure.keyStringNoAzure subscription key.
azure.regionStringNoAzure service region.
azure.endpointStringNoAzure endpoint URL.
azure.account_idStringNoAzure account ID.
azure.access_tokenStringNoOAuth access token for Azure service.
requested_serviceENUMNoService to use. Allowed values: azure, apyhub. Default: apyhub.

Response

Returns a JSON object with a data object field. The data object may contain azure and/or apyhub fields, each of which is an object holding the corresponding table extraction output.

ParameterTypeMandatoryDescription
dataObjectNoResponse wrapper containing extraction results. May include azure and apyhub objects.
data.azureObjectNoRaw Azure Document Intelligence parsing output.
data.apyhubObjectNoStructured ApyHub Table Extraction parsing output.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 02
POST
Extract table data (file upload)
https://api.eu.apyverse.com/apyhub/extract-table-data/file

QUICKSTART

GUIDE

Quickstart

Upload a file to extract table data with the default ApyHub output.

curl -X POST "https://api.eu.apyverse.com/apyhub/extract-table-data/file" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/file.pdf"

What you'll get back

Returns a JSON object with a data object field. The data object may include apyhub for structured ApyHub Table Extraction output and/or azure for raw Azure Document Intelligence parsing output.

{
  "data": {
    "apyhub": {},
    "azure": {}
  }
}
TRY ITLIVE · 500 ATOMS
Loading playground…

About this endpoint

What it does

Uploads a file and returns table extraction output. You can choose whether the response should include the raw Azure Document Intelligence result, the structured ApyHub result, or both depending on the requested service handling.

Request Body

ParameterTypeMandatoryDescription
fileStringYesFile to upload as binary data.
azure_keyStringNoAzure key value.
azure_regionStringNoAzure region.
azure_endpointStringNoAzure endpoint URL.
azure_account_idStringNoAzure account ID.
requested_serviceENUMNoAllowed values: azure, apyhub. Default: apyhub.
azure_access_tokenStringNoAzure access token.

Response

Returns a JSON object with a data object field. The data object can contain azure and apyhub object fields with the respective table extraction outputs.

ParameterTypeMandatoryDescription
dataObjectNoWrapper for the extraction results.
data.azureObjectNoRaw Azure Document Intelligence parsing output.
data.apyhubObjectNoStructured ApyHub Table Extraction parsing output.

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.