Apdf — PDF Tracking & Reader Analytics
The PDF engagement layer for apps and agents.
Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data
What it can do
- List Documents: List documents. Returns active documents by default; pass "status" to include archived. Supports paging via "page" and "per_page".
- Get Document: Get a single document by its public id.
- Create Document: Create a trackable document from a PDF URL.
What data it sees
Do you need an account
No: the server works without sign-in
The PDF engagement layer for apps and agents. Share documents as per-recipient tracking links, then query page-level read analytics, viewer sessions, form submissions and annotations. Includes a full PDF toolset: create, merge, split, compress, convert and encrypt. 40+ tools, one OAuth endpoint.
Server tool list (45)
Raw names from tools/list. Only developers need these.
| list-documents | List documents. Returns active documents by default; pass "status" to include archived. Supports paging via "page" and "per_page". |
| get-document | Get a single document by its public id. |
| create-document | Create a trackable document from a PDF URL. |
| delete-document | Delete a document (and its underlying PDF file) by its public id. |
| archive-document | Archive a document by its public id. Archived documents stop counting toward the workspace's tracked-documents quota and become inert. Reversible via "unarchive-document". |
| unarchive-document | Restore a previously archived document. The document becomes active again and counts toward the workspace's tracked-documents quota. |
| make-document-public | Make a document public by its public id, so it can be viewed without a recipient link. Reversible via "make-document-private". |
| make-document-private | Make a document private by its public id, so it only opens through a valid recipient link. Reversible via "make-document-public". |
| list-document-links | List all recipient links for a document. Supports paging via "page" and "per_page". |
| create-document-link | Create a new recipient link for a document. |
| delete-document-link | Delete a document link by its token. |
| activate-document-link | Activate (enable) a recipient link by its token. Reversible via "deactivate-document-link". |
| deactivate-document-link | Deactivate (disable) a recipient link by its token. Reversible via "activate-document-link". |
| list-document-annotations | List annotations for a document. Supports paging via "page" and "per_page". |
| list-document-form-submissions | List form submissions for a document. Supports paging via "page" and "per_page". |
| get-document-analytics | Get aggregate KPIs (sessions, viewers, completion rate, downloads, ...) for a document. |
| list-document-sessions | List viewing sessions for a document with per-session metrics. Supports paging via "page" and "per_page". |
| get-document-session | Get full detail (events, metrics, page-by-page breakdown) for a single viewing session. |
| list-automations | List all automations. Supports paging via "page" and "per_page". |
| get-automation | Get a single automation by its id, including its trigger, conditions and webhook action. |
| create-automation | Create a when/filter/then rule that posts reader events to a webhook. The automation starts out active. |
| delete-automation | Delete an automation and its execution history. To keep the rule and only stop it from firing, use "deactivate-automation". |
| activate-automation | Activate (enable) an automation so it fires again. Counts against the active-automations limit. Reversible via "deactivate-automation". |
| deactivate-automation | Deactivate (pause) an automation so it stops firing. The rule and its execution history are kept. Reversible via "activate-automation". |
| duplicate-automation | Copy an automation with its trigger, conditions, webhook and documents. The copy is named after the original with "(Copy)" appended and starts out active. |
| list-automation-executions | List all automation executions. Each entry includes the matched event, the payload sent and the endpoint response. Supports paging via "page" and "per_page". |
| create-pdf-file | Create a PDF from the given HTML and return its hosted URL. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback. |
| split-pdf-file | Split a PDF file into multiple files using a page-range expression (e.g. "1-3,4-6" for explicit ranges or "n3" for fixed chunks of 3 pages). |
| merge-pdf-files | Merge multiple PDF files (optionally limited to a page-range each) into a single PDF. |
| compress-pdf-file | Compress a PDF file to reduce its file size. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback. |
| convert-pdf-to-image | Render PDF pages as images (PNG/JPG/...) at a given DPI. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback. |
| extract-pdf-pages | Extract a subset of pages from a PDF and return the result as a new PDF. |
| delete-pdf-pages | Delete a subset of pages in a PDF and return the resulting PDF without those pages. |
| rotate-pdf-pages | Rotate one or more pages in a PDF by a multiple of 90 degrees. |
| overlay-pdf-pages | Overlay another PDF on top of pages of a base PDF (e.g. for watermarks above content). |
| underlay-pdf-pages | Underlay another PDF beneath pages of a base PDF (e.g. for backgrounds behind content). |
| search-pdf-content | Search for text in a PDF file and return the matches with their positions. |
| read-pdf-content | Extract the textual content of a PDF file, page by page. |
| convert-pdf-with-ocr | Run OCR over a scanned PDF and return a searchable PDF with embedded text. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback. |
| search-pdf-content-with-ocr | OCR a scanned PDF and search for text in it. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback. The completed job result contains matches with their positions. |
| read-pdf-content-with-ocr | OCR a scanned PDF and return the extracted textual content, page by page. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback. |
| add-pdf-security | Add password-based security restrictions (owner / optional user password) to a PDF. |
| remove-pdf-security | Remove password-based security restrictions from a PDF. |
| read-pdf-metadata | Read metadata (title, author, page count, file size, ...) from a PDF file. |
| check-job-status | Check the status (and result, if any) of an asynchronous api job by its id. |