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

# Extract Complete Shipping Bill Data

> Extract the full structured contents of a shipping bill PDF, returning every parsed field for reconciliation, record keeping, and mapping to inward remittances.

Extract the complete structured contents of a shipping bill PDF. Use [the eBRC-specific variant](/api-reference/extraction/shipping-bills) when you only need the fields for filing.

`POST /shipping-bills/extract/full` on the [Tradelens host](/api-reference/extraction/introduction#base-url).

## Request

<ParamField body="file" type="file" required>
  The shipping bill PDF document to process. Must be a valid PDF file under 5 MB.
</ParamField>

### Headers

<ParamField header="x-api-key" type="string" required>
  Your Tradelens API key. This is a separate key from your eBRC API key.
</ParamField>

<ParamField header="accept" type="string" default="application/json">
  Response content type (application/json)
</ParamField>

## Example request

<CodeGroup>
  ```bash cURL theme={"dark"}
  curl --location 'https://tradelens-apis.eximfiles.io/platform/shipping-bills/extract/full' \
  --header 'x-api-key: <TRADELENS_API_KEY>' \
  --header 'accept: application/json' \
  --form 'file=@"/path/to/shipping-bill.pdf"'
  ```

  ```javascript JavaScript theme={"dark"}
  const formData = new FormData();
  formData.append('file', fileInput.files[0]);

  fetch('https://tradelens-apis.eximfiles.io/platform/shipping-bills/extract/full', {
    method: 'POST',
    headers: {
      'x-api-key': '<TRADELENS_API_KEY>',
      'accept': 'application/json'
    },
    body: formData
  })
  .then(response => response.json())
  .then(data => console.log(data));
  ```

  ```python Python theme={"dark"}
  import requests

  url = "https://tradelens-apis.eximfiles.io/platform/shipping-bills/extract/full"
  headers = {
      "x-api-key": "<TRADELENS_API_KEY>",
      "accept": "application/json"
  }
  files = {
      "file": open("shipping-bill.pdf", "rb")
  }

  response = requests.post(url, headers=headers, files=files)
  data = response.json()
  ```
</CodeGroup>

## Response

<ResponseField name="status" type="string">
  Processing status (success/error)
</ResponseField>

<ResponseField name="data" type="object">
  Extracted shipping bill data
</ResponseField>

## Related

* [Extract eBRC-specific Shipping Bill Data](/api-reference/extraction/shipping-bills) for a filing-focused subset.
* [Extract Invoice Data](/api-reference/extraction/invoices) for invoice PDFs.
* [Data Extraction overview](/api-reference/extraction/introduction) for auth and limits.
