Skip to content

Reading grants

When the subject approves and fulfills an item, it becomes a grant you can view. Nothing is ever downloadable — you open a hosted, watermarked, view-only session.

List / fetch grants

GET /partner/v1/grants · GET /partner/v1/grants/:id

Scope: grants:read.

json
{
  "grantId": "…",
  "requestId": "…",
  "requestItemId": "…",
  "state": "active",
  "document": {
    "name": "passport.pdf",
    "syntheticId": "LK-8F3K2A9C",
    "classification": "passport",
    "sensitivity": "restricted",
    "pageCount": 2
  },
  "viewsUsed": 1,
  "maxViews": 5,
  "expiresAt": 1767225600000,
  "viewerUrl": "https://…/viewer/…",
  "createdAt": 1767140000000
}

viewerUrl opens the hosted watermarked viewer in the console — the simplest way for a human reviewer to look at the document.

Mint a watermarked viewing session

POST /partner/v1/grants/:id/sessions

Scope: grants:read. Mints a fresh watermarked viewing session and consumes one view (recorded in the owner's audit trail):

json
{
  "sessionId": "…",
  "expiresAt": 1767141800000,
  "document": {
    "name": "passport.pdf",
    "syntheticId": "LK-8F3K2A9C",
    "sensitivity": "restricted",
    "pageCount": 2
  },
  "watermarkLines": ["Shared via Lockey", "Acme HR · employment_verification", "…"],
  "pages": [ /* page image URLs, watermark burned into the pixels */ ]
}

The watermark is burned into the page images server-side — viewer name, purpose, timestamp, session id, synthetic id, and sensitivity. There is no clean copy to fetch and no overlay to strip.

A session consumes a view

Each minted session counts against the grant's maxViews and is logged. Mint one per actual review, not per page render — render all pages from the single pages array the call returns.

When a grant can't be viewed

If the grant is revoked, paused, or over its view cap:

http
409 { "error": "grant_not_viewable" }

The owner's billing/state is never disclosed in that response — you only learn that it isn't currently viewable, not why.

Next: Rate limits →

Upload once · Share many times · Track forever.