Developers
A REST API for documents, data rooms, and view-tracking — secured with OAuth 2.0. It's the same API that powers the official Plox Zapier integration.
Authentication
Plox acts as an OAuth 2.0 authorization server. Registered clients (such as Zapier) redirect the user to /oauth/authorize, the user reviews and approves the requested scopes, and the client exchanges the returned authorization code for an access token at /api/oauth/token.
Both the authorization_code and refresh_token grant types are supported, with optional PKCE (S256). Access tokens are short-lived; refresh tokens are rotated on use.
Every API request is authenticated with a bearer token:
Authorization: Bearer <access_token>Scopes
| documents:read | View your documents |
| documents:write | Upload and modify documents |
| datarooms:read | View your data rooms and their files |
| datarooms:write | Create and modify data rooms |
| analytics:read | Read views, visitors and engagement |
Base URL
https://app.tryplox.com/api/v1Requests and responses are JSON. Successful writes return 201 (created) or 204 (no content); errors return a JSON body shaped { "error": "..." } with a 4xx status.
Reference
/meIdentity check — verifies the access token and returns who it belongs to. Used to confirm a connection.
Response
{
"id": "user_3Fs660s1uSIIwHcNmJzYuIlpZwU",
"orgId": null,
"scopes": ["datarooms:read", "datarooms:write", "documents:read", "documents:write", "analytics:read"]
}/documentsdocuments:readList the caller's documents, most recently updated first.
Response
{
"documents": [
{
"id": "2R_Zzu4mSuvQxvC4_aXue",
"name": "Sample Document",
"mime_type": "application/pdf",
"size": 13264,
"created_at": "2026-06-30T20:29:53.292Z",
"updated_at": "2026-06-30T20:29:53.292Z",
"share_url": "https://docs.tryplox.com/document/2R_Zzu4mSuvQxvC4_aXue/view"
}
]
}/documentsdocuments:writeCreate a document from a publicly hosted file URL — Plox fetches and stores it.
Request body
{
"name": "Sample Document",
"download_url": "https://example.com/file.pdf"
}Response
{
"id": "2R_Zzu4mSuvQxvC4_aXue",
"name": "Sample Document",
"mime_type": "application/pdf",
"size": 13264,
"created_at": "2026-06-30T20:29:53.292Z",
"updated_at": "2026-06-30T20:29:53.292Z",
"share_url": "https://docs.tryplox.com/document/2R_Zzu4mSuvQxvC4_aXue/view"
}/dataroomsdatarooms:readList the caller's data rooms.
Response
{
"datarooms": [
{
"id": "zE7idlHcGfpXqJBuLa7f_",
"name": "Sample Dataroom",
"created_at": "2026-06-30T20:29:43.962Z",
"updated_at": "2026-06-30T20:29:43.962Z",
"share_url": "https://docs.tryplox.com/dataroom/zE7idlHcGfpXqJBuLa7f_/view"
}
]
}/dataroomsdatarooms:writeCreate a new data room, optionally from a folder template.
Request body
{
"name": "Sample Dataroom",
"template_key": "due-diligence"
}Response
{
"id": "zE7idlHcGfpXqJBuLa7f_",
"name": "Sample Dataroom",
"created_at": "2026-06-30T20:29:43.962Z",
"updated_at": "2026-06-30T20:29:43.962Z",
"share_url": "https://docs.tryplox.com/dataroom/zE7idlHcGfpXqJBuLa7f_/view"
}/hooksSubscribe a target URL to a trigger event (REST Hook). Plox POSTs the event payload to your URL as it happens.
Request body
{
"event": "document_viewed",
"target_url": "https://hooks.zapier.com/your-endpoint"
}Response
{ "id": "ck5uIZfi5ICXFR3XZrErn" }/hooks/:idUnsubscribe a previously created hook. Returns 204 with no body.
Response
HTTP/1.1 204 No Content/triggers/:eventanalytics:readSample/recent events for a trigger, built from your most recent real documents or data rooms — used by integration builders (and Zapier's editor) to map fields before going live.
Response
{
"events": [
{
"id": "2R_Zzu4mSuvQxvC4_aXue-sample",
"event": "document_viewed",
"occurred_at": "2026-06-30T20:29:53.292Z",
"viewer_email": null,
"viewer_name": null,
"viewer_country": null,
"viewer_city": null,
"document_id": "2R_Zzu4mSuvQxvC4_aXue",
"document_name": "Sample Document"
}
]
}Webhooks
Subscribe via POST /hooks. When a matching event fires, Plox sends a POST to your target_url with a JSON body. Delivery is best-effort — a failed delivery never retries indefinitely.
| document_viewed | Fires when someone views a shared document. |
| dataroom_viewed | Fires when someone views a data room. |
| new_lead | Fires when a viewer submits their details to access a data room. |
Example payload
{
"event": "document_viewed",
"id": "evt_8sH2kLp0qR",
"occurred_at": "2026-06-30T20:31:10.000Z",
"document_id": "2R_Zzu4mSuvQxvC4_aXue",
"document_name": "Sample Document",
"viewer_email": "investor@example.com",
"viewer_name": "Jane Doe",
"viewer_country": "US",
"viewer_city": "San Francisco"
}Use the API directly, or automate Plox alongside 7,000+ apps with Zapier — no code required.