apyhub
DATA EXTRACTION · FINANCE

AI Document Receipt Data Extraction API

What it does

Receipt Data Extraction lets you send a receipt as a URL or upload a receipt file, then get parsed receipt data back. Choose whether the response comes from apyhub or azure, depending on the extraction engine you want to use.

Use POST /url when the receipt is already hosted online: pass a url, and optionally include requested_service and an azure credentials object if you want Azure processing. Use POST /file when you have the receipt as a binary file upload: send file, and optionally include requested_service plus Azure fields such as azure_key, azure_region, azure_endpoint, azure_account_id, and azure_access_token.

The response contains a data object with either apyhub or azure parsing output, so you can inspect the structured result that was returned for the receipt. That makes it useful for expense apps, bookkeeping workflows, purchase-order reconciliation, and any pipeline that needs to turn receipt images or PDFs into machine-readable data.

If you are building ingestion or accounting automation, this service gives you a straightforward way to extract receipt content from hosted documents or uploaded files without writing your own OCR and parsing flow.

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

QUICKSTART

GUIDE

Quickstart

Send a receipt image URL to extract its data.

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

What you'll get back

Returns a JSON object with a data object field. The data object may contain azure with raw Azure Document Intelligence output and/or apyhub with structured ApyHub receipt extraction output.

{
  "data": {
    "azure": {},
    "apyhub": {}
  }
}
TRY ITLIVE · 500 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
azure
Custom credentials for Azure services.
Azure subscription key.
Azure service region.
Azure endpoint URL.
Azure account ID.
OAuth access token for Azure service.

About this endpoint

What it does

Extracts receipt data from a document URL. You send a url, and the response returns a JSON object with a data object containing parsed output for azure and/or apyhub as defined by the output schema.

Request Body

ParameterTypeMandatoryDescription
urlStringYesA receipt document URL. Must be a valid URI.
azureObjectNoCustom credentials for Azure services. Includes optional key, region, endpoint, account_id, and access_token fields.
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_serviceENUMNoWhich extraction service to use. Allowed values: azure, apyhub. Default: apyhub.

Response

Returns a JSON object with a data object field. The data object can contain azure and apyhub object fields, which hold the parsed receipt extraction output for the respective service.

ParameterTypeMandatoryDescription
dataObjectNoContainer for the extraction result.
data.azureObjectNoRaw Azure Document Intelligence parsing output.
data.apyhubObjectNoStructured ApyHub Receipt Extraction parsing output.

Body

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

QUICKSTART

GUIDE

Quickstart

Upload a receipt image to extract data with ApyHub’s receipt parser.

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

What you'll get back

Returns a JSON object with a data object field. That data object can contain azure for raw Azure Document Intelligence output and apyhub for structured ApyHub receipt extraction output.

{
  "data": {
    "azure": {},
    "apyhub": {}
  }
}
TRY ITLIVE · 500 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*

About this endpoint

What it does

Uploads a receipt file and returns extracted receipt data. The response includes parsed output objects for the available extraction service(s).

Request Body

ParameterTypeMandatoryDescription
fileStringYesReceipt file to upload. Binary file input.
azure_keyStringNoAzure key used for Azure-based extraction.
azure_regionStringNoAzure region used for Azure-based extraction.
azure_endpointStringNoAzure endpoint URL used for Azure-based extraction.
azure_account_idStringNoAzure account ID used for Azure-based extraction.
requested_serviceENUMNoExtraction service to use. Allowed values: azure, apyhub. Default: apyhub.
azure_access_tokenStringNoAzure access token used for Azure-based extraction.

Response

Returns a JSON object with a data object field. The data object may contain azure and apyhub object fields with the raw Azure Document Intelligence output and the structured ApyHub receipt extraction output, respectively.

ParameterTypeMandatoryDescription
dataObjectNoResponse wrapper containing extraction results.
data.azureObjectNoRaw Azure Document Intelligence parsing output.
data.apyhubObjectNoStructured ApyHub Receipt 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.