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

# Policy Scan Pdf

<Warning>
  **Legacy**: This page documents the legacy Policy Scan PDF API. Use the new [Guardrail Scan PDF](/api-introductions/guardrails-api-reference/guardrail-introductions/Guardrail_Scan_Pdf) instead, which supports separate input/output detectors via `X-Enkrypt-Mode`.
</Warning>

Scans a PDF file for security threats using a specific policy. The detector analyzes the provided base64-encoded PDF and returns details about any detected threats on a per-page basis, according to the selected policy.

## Example request:

<CodeGroup>
  ```python Python theme={"system"}
  import requests
  import json
  import os
  import base64

  # Read and encode PDF file
  with open("document.pdf", "rb") as f:
      file_base64 = base64.b64encode(f.read()).decode("utf-8")

  url = "https://api.enkryptai.com/guardrails/policy/scan-pdf"
  payload = json.dumps({
      "file": file_base64
  })
  headers = {
      'Content-Type': 'application/json',
      'apikey': os.getenv('ENKRYPTAI_API_KEY'),
      'X-Enkrypt-Policy': 'my-policy'
  }
  response = requests.post(url, headers=headers, data=payload)
  print(response.json())
  ```

  ```python Python SDK theme={"system"}
  from enkryptai_sdk import *
  import base64

  client = GuardrailsClient(api_key="YOUR_API_KEY")

  # Read and encode PDF file
  with open("document.pdf", "rb") as f:
      file_base64 = base64.b64encode(f.read()).decode("utf-8")

  result = client.policy_scan_pdf("my-policy", file_base64)
  print(result)
  ```
</CodeGroup>

## Example response:

```json JSON theme={"system"}
{
    "summary": {
        "policy_violation": 0,
        "injection_attack": 0
    },
    "details": {
        "total_pages": 1,
        "pages_with_detections": 0,
        "detections": []
    }
}
```
