client.deployment.license_status() -> DeploymentLicenseStatusResponse
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.deployment.license_status()
-
-
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.head(...) -> DocHead200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.head( doc_id="docId", )
-
-
-
doc_id:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.changes(...) -> DocChanges200Response
-
-
-
Each change stands on its own and names itself by
opId: a refused change rolls back alone, and the answer lists every change in order, applied with its result or refused with its error. Asked again under itsopId, a change gets the same answer, refusals included; a different change under an answeredopIdis refused (IdempotencyKeyReused).{ opId, undoOf }undoes an earlier change of the caller, here or in an earlier request; an undo leaves alone what was changed since, and the undo of an undo redoes. A redaction, a flatten, a form repair or a completed signature ends undo for the changes before it (UndoUnavailable). Each op is checked against its own capability: annotation ops needdoc.annotate.modify, form valuesdoc.forms.fill, form structuredoc.forms.modify, metadatadoc.metadata.modify, outlinedoc.outline.modify, pagesdoc.pages.assemble, embedded filesdoc.attachments.modify. Bytes (a stamp's drawing, an attached file, a signature's artwork, a PDF whose pages come in) travel as multipart: a JSONbodypart, each op naming its files by role asresources: { <role>: '<key>' }, and each file as the partresource:<key>. At most 64 changes per request and 512 ops per change.
-
-
-
from cloudpdf import CloudPDFClient from cloudpdf.doc import DocChangesRequestChangesItem client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.changes( doc_id="docId", layer_name="layerName", changes=[ DocChangesRequestChangesItem( op_id="opId", ) ], )
-
-
-
doc_id:
str
-
layer_name:
str
-
changes:
typing.List[DocChangesRequestChangesItem]
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.download(...) -> typing.Iterator[bytes]
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.download( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.download_link(...) -> DocDownloadLink200Response
-
-
-
The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with
layer_name, adownload: { docVersion, mode: "incremental" }claim and a shortexp, passed aslinkon the versioned download URL.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.download_link( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
expires_in:
typing.Optional[int]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.manifest(...) -> DocManifest200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.manifest( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.render(...) -> typing.Iterator[bytes]
-
-
-
Render parameters (viewport, format) pass as flat dotted query keys, e.g.
?viewport.kind=width&viewport.width=800; the full grammar is documented with the viewer.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.render( doc_id="docId", layer_name="layerName", page_key="pageKey", )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.text(...) -> DocText200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.text( doc_id="docId", layer_name="layerName", page_key="pageKey", )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.shares.exchange(...) -> SharesExchange200Response
-
-
-
Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until
passwordis supplied. A link that asks its visitors who they are on open returns 422 VisitorIdentityRequired until the required answers are given;error.detailscarriesfields(what the link asks),missing,invalid,purposeandprivacyUrl. A link that asks before the first change issues the session at once withvisitor.identityRequest, and writes answer 403 VisitorIdentityRequired with the same details until the visitor exchanges again with their answers. Answers that can not be taken answer 422 on any link. Mounted only when the deployment can sign (HS256 mode).
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.shares.exchange( share_token="shareToken", )
-
-
-
share_token:
str
-
password:
typing.Optional[str]
-
visitor_handle:
typing.Optional[str]
-
restart:
typing.Optional[bool]
-
visitor_identity:
typing.Optional[SharesExchangeRequestVisitorIdentity]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.shares.list(...) -> SharesList200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.shares.list( tenant_id="tenantId", )
-
-
-
tenant_id:
str
-
limit:
typing.Optional[int]
-
cursor:
typing.Optional[str]
-
doc_id:
typing.Optional[str]
-
archived:
typing.Optional[bool]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.shares.create(...) -> SharesCreate200Response
-
-
-
The returned share id is the public share token. Mounted only when the deployment can sign (HS256 mode) β exchange mints session JWTs, so grants exist only where minting does.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.shares.create( tenant_id="tenantId", doc_id="docId", scope=[ "scope" ], )
-
-
-
tenant_id:
str
-
doc_id:
str
-
scope:
typing.List[str]
-
layer_mode:
typing.Optional[SharesCreateRequestLayerMode]
-
layer_name:
typing.Optional[str]
-
keep_visitor_layers:
typing.Optional[bool]
-
visitor_idle_seconds:
typing.Optional[int]
-
visitor_identity:
typing.Optional[SharesCreateRequestVisitorIdentity]
-
identity:
typing.Optional[Identity]
-
origins:
typing.Optional[typing.List[str]]
-
password:
typing.Optional[str]
-
session_ttl_seconds:
typing.Optional[int]
-
expires_at:
typing.Optional[int]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.shares.get(...) -> SharesGet200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.shares.get( tenant_id="tenantId", share_id="shareId", )
-
-
-
tenant_id:
str
-
share_id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.shares.delete(...)
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.shares.delete( tenant_id="tenantId", share_id="shareId", )
-
-
-
tenant_id:
str
-
share_id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.shares.update(...) -> SharesUpdate200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.shares.update( tenant_id="tenantId", share_id="shareId", )
-
-
-
tenant_id:
str
-
share_id:
str
-
layer_mode:
typing.Optional[SharesUpdateRequestLayerMode]
-
layer_name:
typing.Optional[str]
-
keep_visitor_layers:
typing.Optional[bool]
-
visitor_idle_seconds:
typing.Optional[int]
-
visitor_identity:
typing.Optional[SharesUpdateRequestVisitorIdentity]
-
identity:
typing.Optional[Identity]
-
scope:
typing.Optional[typing.List[str]]
-
origins:
typing.Optional[typing.List[str]]
-
password:
typing.Optional[str]
-
session_ttl_seconds:
typing.Optional[int]
-
disabled:
typing.Optional[bool]
-
expires_at:
typing.Optional[int]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.shares.archive(...) -> SharesArchive200Response
-
-
-
Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (
disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.shares.archive( tenant_id="tenantId", share_id="shareId", )
-
-
-
tenant_id:
str
-
share_id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tenants.list(...) -> TenantsList200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.tenants.list()
-
-
-
limit:
typing.Optional[int]
-
cursor:
typing.Optional[str]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tenants.create(...) -> TenantsCreate200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.tenants.create( id="id", )
-
-
-
id:
str
-
name:
typing.Optional[str]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tenants.get(...) -> TenantsGet200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.tenants.get( tenant_id="tenantId", )
-
-
-
tenant_id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tenants.delete(...)
-
-
-
Destroys the tenant and everything in its namespace β documents, layers, stored bytes, audit history. Irreversible.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.tenants.delete( tenant_id="tenantId", )
-
-
-
tenant_id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tenants.resume(...)
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.tenants.resume( tenant_id="tenantId", )
-
-
-
tenant_id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tenants.suspend(...)
-
-
-
Instantly reversible with resume. The API token is exempt, so a suspended tenant can still be inspected, exported, resumed, or deleted.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.tenants.suspend( tenant_id="tenantId", )
-
-
-
tenant_id:
str
-
reason:
typing.Optional[str]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tenants.usage(...) -> TenantsUsage200Response
-
-
-
Facts only β no limits or billing state. Views count share exchanges plus authorized /v1/access grants, deduplicated across the two.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.tenants.usage( tenant_id="tenantId", )
-
-
-
tenant_id:
str
-
period:
typing.Optional[str]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.list(...) -> DocumentsList200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.list( tenant_id="tenantId", )
-
-
-
tenant_id:
str
-
limit:
typing.Optional[int]
-
cursor:
typing.Optional[str]
-
state:
typing.Optional[ListDocumentsRequestState]β Only documents in this state. Without it, every state except deleting.
-
q:
typing.Optional[str]β Only documents whose name contains this text, ignoring case.
-
folder_id:
typing.Optional[str]β Only documents directly in this folder (root: the top level). Without it, documents in every folder.
-
sort:
typing.Optional[ListDocumentsRequestSort]β createdAt (default), name (ignoring case), or size (stored bytes; 0 while pending).
-
order:
typing.Optional[ListDocumentsRequestOrder]β Defaults to the reading order of the sort: A to Z for name, newest and largest first otherwise.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.get(...) -> DocumentsGet200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.get( tenant_id="tenantId", id="id", )
-
-
-
tenant_id:
str
-
id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.delete(...)
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.delete( tenant_id="tenantId", id="id", )
-
-
-
tenant_id:
str
-
id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.update(...) -> DocumentsUpdate200Response
-
-
-
A document that is being deleted answers 404.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.update( tenant_id="tenantId", id="id", name="name", )
-
-
-
tenant_id:
str
-
id:
str
-
name:
strβ What people call the document: shown in dashboards, searched and sorted by. 1 to 255 characters, no control characters, no leading or trailing whitespace. Names need not be unique.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.commit(...) -> DocumentsCommit200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.commit( tenant_id="tenantId", id="id", sha256="sha256", )
-
-
-
tenant_id:
str
-
id:
str
-
sha256:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.download(...) -> typing.Iterator[bytes]
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.download( tenant_id="tenantId", id="id", )
-
-
-
tenant_id:
str
-
id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.thumbnail(...) -> typing.Iterator[bytes]
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.thumbnail( tenant_id="tenantId", id="id", )
-
-
-
tenant_id:
str
-
id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.upload_proxy(...) -> DocumentsUploadProxy200Response
-
-
-
This bounded origin-mediated fallback must only be used after documents.init returns upload.kind=proxy. Auto mode prefers a presigned object-store PUT whenever available.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.upload_proxy( tenant_id="tenantId", id="id", file="example_file", )
-
-
-
tenant_id:
str
-
id:
str
-
file:
core.File
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.import_from(...) -> DocumentsImportFrom200Response
-
-
-
Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes β the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration);
revisionis provider-interpreted (S3 VersionId, GCS generation, Azure version id).
-
-
-
from cloudpdf import CloudPDFClient from cloudpdf.documents import DocumentsImportFromRequestSource_Url client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.import_from( tenant_id="tenantId", source=DocumentsImportFromRequestSource_Url( url="url", ), )
-
-
-
tenant_id:
str
-
source:
DocumentsImportFromRequestSourceβ Where CloudPDF pulls the bytes from. The two shapes differ in who supplies the authority to read, not in which storage vendor holds the file.
-
expected:
typing.Optional[DocumentsImportFromRequestExpected]β Integrity pins, enforced when present. When absent, the server-observed values become authoritative.
-
name:
typing.Optional[str]β What people call the document: shown in dashboards, searched and sorted by. 1 to 255 characters, no control characters, no leading or trailing whitespace. Names need not be unique.
-
folder_id:
typing.Optional[str]β A folder id, or root for the top level.
-
metadata:
typing.Optional[typing.Dict[str, typing.Any]]
-
idempotency_key:
typing.Optional[str]β Retrying with the same key resumes the same document rather than importing a second copy β including after a 502.
-
dedup_mode:
typing.Optional[DocumentsImportFromRequestDedupMode]β always-create (default) creates a new document every time. reuse-existing returns a document that already holds the same content instead of storing it twice.
-
doc_id:
typing.Optional[str]
-
mode:
typing.Optional[DocumentsImportFromRequestMode]β sync (default) holds the response open for the whole transfer. async answers 202 with the document pending and transfers in the background; it requires a connection source, and filesystem connections additionally require expected.sha256.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.init(...) -> DocumentsInit200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.init( tenant_id="tenantId", content_length=1.1, content_sha256="contentSha256", )
-
-
-
tenant_id:
str
-
content_length:
float
-
content_sha256:
str
-
name:
typing.Optional[str]β What people call the document: shown in dashboards, searched and sorted by. 1 to 255 characters, no control characters, no leading or trailing whitespace. Names need not be unique.
-
folder_id:
typing.Optional[str]β A folder id, or root for the top level.
-
metadata:
typing.Optional[typing.Dict[str, typing.Any]]
-
idempotency_key:
typing.Optional[str]
-
dedup_mode:
typing.Optional[DocumentsInitRequestDedupMode]β always-create (default) creates a new document every time. reuse-existing returns a document that already holds the same content instead of storing it twice.
-
doc_id:
typing.Optional[str]
-
upload_ttl_sec:
typing.Optional[float]
-
upload_preference:
typing.Optional[DocumentsInitRequestUploadPreference]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.folders.list(...) -> FoldersList200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.folders.list( tenant_id="tenantId", )
-
-
-
tenant_id:
str
-
limit:
typing.Optional[int]
-
cursor:
typing.Optional[str]
-
parent_id:
typing.Optional[str]β Only the folders directly in this folder (root: the top level). Without it, every folder.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.folders.create(...) -> FoldersCreate200Response
-
-
-
409 Conflict carries
details.reason:name-taken(a sibling has the name, ignoring case;details.name) ortoo-deep(folders nest at most 100 levels;details.maxDepth). 404 when the parent folder does not exist.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.folders.create( tenant_id="tenantId", name="name", )
-
-
-
tenant_id:
str
-
name:
strβ What people call the folder: 1 to 255 characters, no control characters, no leading or trailing whitespace, and unique among the folder's siblings, ignoring case.
-
parent_id:
typing.Optional[str]β A folder id, or root for the top level.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.folders.get(...) -> FoldersGet200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.folders.get( tenant_id="tenantId", folder_id="folderId", )
-
-
-
tenant_id:
str
-
folder_id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.folders.delete(...)
-
-
-
Without recursive, a folder with anything inside is refused: 409 Conflict with
details.reasonnot-emptyand what it holds, counted over every level below, indetails.foldersanddetails.documents. With recursive=true, the folder and every folder under it go at once, and every document in them stops opening, leaves every list and stops answering its share links at once; their stored files and links are removed in the background. Uploads into those folders that have not committed cannot commit.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.folders.delete( tenant_id="tenantId", folder_id="folderId", )
-
-
-
tenant_id:
str
-
folder_id:
str
-
recursive:
typing.Optional[bool]β true deletes everything in the folder too. Never the default.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.folders.update(...) -> FoldersUpdate200Response
-
-
-
409 Conflict with
details.reasonname-takenwhen a sibling has the name, ignoring case.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.folders.update( tenant_id="tenantId", folder_id="folderId", name="name", )
-
-
-
tenant_id:
str
-
folder_id:
str
-
name:
strβ What people call the folder: 1 to 255 characters, no control characters, no leading or trailing whitespace, and unique among the folder's siblings, ignoring case.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.folders.move_into(...)
-
-
-
Up to 1,000 ids in total. A folder moves with everything in it. 404 NotFound names the ids that do not exist or are being deleted in
details.documentIdsanddetails.folderIds. 409 Conflict carriesdetails.reason:cycle(the destination is a moved folder or inside one;details.folderId),too-deep(the move would nest folders deeper than 100 levels;details.maxDepth) orname-taken(a moved folder's name is taken in the destination, ignoring case;details.name).
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.folders.move_into( tenant_id="tenantId", folder_id="folderId", )
-
-
-
tenant_id:
str
-
folder_id:
strβ A folder id, or root for the top level.
-
document_ids:
typing.Optional[typing.List[str]]
-
folder_ids:
typing.Optional[typing.List[str]]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tokens.issue(...) -> TokensIssue200Response
-
-
-
kind "tenant" requires the API token β authority mints only downward. Mounted only when the deployment can sign (HS256 mode); asymmetric deployments mint with their own private key.
-
-
-
from cloudpdf import CloudPDFClient, TokensIssueRequest_Doc client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.tokens.issue( tenant_id="tenantId", request=TokensIssueRequest_Doc( sub="sub", doc_id="docId", scope=[ "scope" ], expires_in=1, ), )
-
-
-
tenant_id:
str
-
request:
TokensIssueRequest
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tokens.revoke(...)
-
-
-
Mounted only when the deployment enables token revocation.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.tokens.revoke( tenant_id="tenantId", jti="jti", )
-
-
-
tenant_id:
str
-
jti:
str
-
reason:
typing.Optional[str]
-
expires_at_seconds:
typing.Optional[int]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.annotations.list_all(...) -> DocAnnotationsListAll200Response
-
-
-
Returns one entry per page plus the audit-log cursor for reconciling subsequent document events. Page order is unspecified; join by
page(aPageRef) when display order matters.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.list_all( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.annotations.list(...) -> DocAnnotationsList200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.list( doc_id="docId", layer_name="layerName", page_key="pageKey", )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.annotations.create(...) -> DocAnnotationsCreate200Response
-
-
-
Doc JWTs may instead carry collab scopes (annotations:create:self, β¦) that refine per-annotation authorship rules; the API token is exempt from both.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.create( doc_id="docId", layer_name="layerName", page_key="pageKey", request={ "key": "value" }, )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
request:
DocAnnotationsCreateRequest
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.annotations.delete(...) -> DocAnnotationsDelete200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.delete( doc_id="docId", layer_name="layerName", page_key="pageKey", annot_key="annotKey", )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
annot_key:
strβ The annotation's address on the page:obj:N, its indirect object number, orbase:Nfor an annotation the uploaded file stored inline (without an object number of its own), the position it was born at in the page's /Annots. The name the annotation'srefcarries for life.
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.annotations.update(...) -> DocAnnotationsUpdate200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.update( doc_id="docId", layer_name="layerName", page_key="pageKey", annot_key="annotKey", request={ "key": "value" }, )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
annot_key:
strβ The annotation's address on the page:obj:N, its indirect object number, orbase:Nfor an annotation the uploaded file stored inline (without an object number of its own), the position it was born at in the page's /Annots. The name the annotation'srefcarries for life.
-
request:
DocAnnotationsUpdateRequest
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.annotations.read_appearance(...) -> typing.Iterator[bytes]
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.read_appearance( doc_id="docId", layer_name="layerName", page_key="pageKey", annot_key="annotKey", )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
annot_key:
strβ The annotation's address on the page:obj:N, its indirect object number, orbase:Nfor an annotation the uploaded file stored inline (without an object number of its own), the position it was born at in the page's /Annots. The name the annotation'srefcarries for life.
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.annotations.read_file(...) -> typing.Iterator[bytes]
-
-
-
A file that decodes past the server's limit is refused (PayloadTooLarge).
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.read_file( doc_id="docId", layer_name="layerName", page_key="pageKey", annot_key="annotKey", )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
annot_key:
strβ The annotation's address on the page:obj:N, its indirect object number, orbase:Nfor an annotation the uploaded file stored inline (without an object number of its own), the position it was born at in the page's /Annots. The name the annotation'srefcarries for life.
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.annotations.export_appearance(...) -> typing.Iterator[bytes]
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.export_appearance( doc_id="docId", layer_name="layerName", page_key="pageKey", request={ "string": {"key": "value"} }, )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
request:
DocAnnotationsExportAppearanceRequest
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.annotations.flatten(...) -> DocAnnotationsFlatten200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.flatten( doc_id="docId", layer_name="layerName", page_key="pageKey", request={ "key": "value" }, )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
request:
DocAnnotationsFlattenRequest
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.annotations.reorder(...) -> DocAnnotationsReorder200Response
-
-
-
from cloudpdf import CloudPDFClient, AnnotationRef_ObjectNumber, PageRef client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.reorder( doc_id="docId", layer_name="layerName", page_key="pageKey", refs=[ AnnotationRef_ObjectNumber( page=PageRef( kind="objectNumber", object_number=1, ), object_number=1, ) ], position="start", )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
refs:
typing.List[AnnotationRef]
-
position:
AnnotationPosition
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.attachments.download(...) -> typing.Iterator[bytes]
-
-
-
A file that decodes past the server's limit is refused (PayloadTooLarge).
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.attachments.download( doc_id="docId", layer_name="layerName", file_key="fileKey", )
-
-
-
doc_id:
str
-
layer_name:
str
-
file_key:
strβ The embedded file's name-tree key (itsref.key), token-text encoded, asfieldKeyis.
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.attachments.list(...) -> DocAttachmentsList200Response
-
-
-
A file-attachment annotation's file is listed with the annotation; read its bytes with
doc.annotations.readFile.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.attachments.list( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.forms.list(...) -> DocFormsList200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.forms.list( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.forms.reorder_calculations(...) -> DocFormsReorderCalculations200Response
-
-
-
from cloudpdf import CloudPDFClient, FormFieldRef_ObjectNumber client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.forms.reorder_calculations( doc_id="docId", layer_name="layerName", fields=[ FormFieldRef_ObjectNumber( object_number=1, ) ], position="start", )
-
-
-
doc_id:
str
-
layer_name:
str
-
fields:
typing.List[FormFieldRef]
-
position:
FieldPosition
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.forms.set_value(...) -> DocFormsSetValue200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.forms.set_value( doc_id="docId", layer_name="layerName", field_key="fieldKey", request={ "key": "value" }, )
-
-
-
doc_id:
str
-
layer_name:
str
-
field_key:
str
-
request:
DocFormsSetValueRequest
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.forms.reset(...) -> DocFormsReset200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.forms.reset( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
refs:
typing.Optional[typing.List[FormFieldRef]]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.forms.delete_widget(...) -> DocFormsDeleteWidget200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.forms.delete_widget( doc_id="docId", layer_name="layerName", page_key="pageKey", annot_key="annotKey", )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
annot_key:
strβ The annotation's address on the page:obj:N, its indirect object number, orbase:Nfor an annotation the uploaded file stored inline (without an object number of its own), the position it was born at in the page's /Annots. The name the annotation'srefcarries for life.
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.forms.update_widget(...) -> DocFormsUpdateWidget200Response
-
-
-
from cloudpdf import CloudPDFClient, WidgetPatch client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.forms.update_widget( doc_id="docId", layer_name="layerName", page_key="pageKey", annot_key="annotKey", patch=WidgetPatch(), )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
annot_key:
strβ The annotation's address on the page:obj:N, its indirect object number, orbase:Nfor an annotation the uploaded file stored inline (without an object number of its own), the position it was born at in the page's /Annots. The name the annotation'srefcarries for life.
-
patch:
WidgetPatch
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.forms.reorder_widgets(...) -> DocFormsReorderWidgets200Response
-
-
-
from cloudpdf import CloudPDFClient, AnnotationRef_ObjectNumber, PageRef client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.forms.reorder_widgets( doc_id="docId", layer_name="layerName", page_key="pageKey", widgets=[ AnnotationRef_ObjectNumber( page=PageRef( kind="objectNumber", object_number=1, ), object_number=1, ) ], position="start", )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
widgets:
typing.List[AnnotationRef]
-
position:
AnnotationPosition
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.metadata.get(...) -> DocMetadataGet200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.metadata.get( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.outline.get(...) -> DocOutlineGet200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.outline.get( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.pages.set_scale(...) -> DocPagesSetScale200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.pages.set_scale( doc_id="docId", layer_name="layerName", page_key="pageKey", )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
measure:
typing.Optional[DocPagesSetScaleRequestMeasure]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.pages.viewports(...) -> DocPagesViewports200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.pages.viewports( doc_id="docId", layer_name="layerName", page_key="pageKey", )
-
-
-
doc_id:
str
-
layer_name:
str
-
page_key:
strβ The page's address,obj:N: the page's indirect object number, the durable identity everyPageLayout.refcarries. MirrorsannotKeyandfieldKey.
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.pages.extract(...) -> typing.Iterator[bytes]
-
-
-
A read, not a mutation: the source document is untouched and no event is published. Body is
{"pages": PageRef[], "flatten"?: {"usage"?: "display" | "print"}, "includeAnnotations"?: boolean, "includeFormFields"?: boolean}; the response body is the new PDF. Withflattenthe copy is the pages as they draw forusage("print": a print copy): the annotations and form fields painted in, nothing interactive left, layers in their state for the usage. A flattened copy takesdoc.downloadordoc.download.flattened, and paints only what the caller may read;includeAnnotationsandincludeFormFieldschoose what it paints, and are refused withoutflatten.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.pages.extract( doc_id="docId", layer_name="layerName", request={ "string": {"key": "value"} }, )
-
-
-
doc_id:
str
-
layer_name:
str
-
request:
DocPagesExtractRequest
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.pages.flatten(...) -> DocPagesFlatten200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.pages.flatten( doc_id="docId", layer_name="layerName", request={ "key": "value" }, )
-
-
-
doc_id:
str
-
layer_name:
str
-
request:
DocPagesFlattenRequest
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.pages.set_name(...) -> DocPagesSetName200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.pages.set_name( doc_id="docId", layer_name="layerName", request={ "key": "value" }, )
-
-
-
doc_id:
str
-
layer_name:
str
-
request:
DocPagesSetNameRequest
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.pages.remove_name(...) -> DocPagesRemoveName200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.pages.remove_name( doc_id="docId", layer_name="layerName", request={ "key": "value" }, )
-
-
-
doc_id:
str
-
layer_name:
str
-
request:
DocPagesRemoveNameRequest
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.redactions.apply(...) -> DocRedactionsApply200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.redactions.apply( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
idempotency_key:
typing.Optional[str]β Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.
-
pages:
typing.Optional[typing.List[PageRef]]
-
annotations:
typing.Optional[typing.List[AnnotationRef]]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.signatures.list(...) -> DocSignaturesList200Response
-
-
-
Describes the bytes the layer is over: the base version's signatures plus the layer's own edits as the last revision. Signed bytes (contents, digests, revision prefixes) are served per base version under /versions.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.signatures.list( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.signatures.cancel(...) -> DocSignaturesCancel200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.signatures.cancel( doc_id="docId", layer_name="layerName", signing_id="signingId", )
-
-
-
doc_id:
str
-
layer_name:
str
-
signing_id:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.signatures.complete(...) -> DocSignaturesComplete200Response
-
-
-
cmsis the detached CMS over the prepared digest, base64.expectedVersionmust be what prepare returned. Idempotent by signing id: the same CMS again answersalready-completed. The new version is the layer's own: only this layer moves to it, and the document and every other layer stay as they were. Refetch the manifest after a completion.
-
-
-
from cloudpdf import CloudPDFClient from cloudpdf.doc.signatures import DocSignaturesCompleteRequestExpectedVersion client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.signatures.complete( doc_id="docId", layer_name="layerName", signing_id="signingId", cms="cms", expected_version=DocSignaturesCompleteRequestExpectedVersion( base_sha256="baseSha256", edits_version=1, ), )
-
-
-
doc_id:
str
-
layer_name:
str
-
signing_id:
str
-
cms:
str
-
expected_version:
DocSignaturesCompleteRequestExpectedVersion
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.signatures.analysis(...) -> DocSignaturesAnalysis200Response
-
-
-
Exactly one of
since.signature=<index>orsince.revision=<index>; the layer's pending edits are the end.level=fill|annotate|lta|noneevaluates exploratorily and never becomes a verdict. For history between two base revisions use the version analysis.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.signatures.analysis( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
since_signature:
typing.Optional[int]
-
since_revision:
typing.Optional[int]
-
level:
typing.Optional[AnalysisSignaturesRequestLevel]
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.signatures.prepare(...) -> DocSignaturesPrepare200Response
-
-
-
Multipart: a JSON
bodypart (field, subFilter, digest, contentsSize, signer, certify, lock), naming the appearance PDF it may carry asresources: { appearance: '<key>' }, and that PDF as the partresource:<key>. A certification (certify.permission) additionally requiresdoc.sign.certify. The layer is read-only until the signing completes, is cancelled, or expires (15 minutes). The signature is made over the layer's own base: the upload, or the version its last signature made.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.signatures.prepare( doc_id="docId", layer_name="layerName", file="example_file", )
-
-
-
doc_id:
str
-
layer_name:
str
-
file:
core.File
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.versions.list(...) -> DocVersionsList200Response
-
-
-
Every completed signature makes a new version of its layer; another layer's versions are never listed. Never cached: the list grows.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.versions.list( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.versions.analysis(...) -> DocVersionsAnalysis200Response
-
-
-
Exactly one of
since.signature/since.revision;until=<revision>defaults to the last. The same answer for every caller.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.versions.analysis( doc_id="docId", layer_name="layerName", sha="sha", )
-
-
-
doc_id:
str
-
layer_name:
str
-
sha:
str
-
since_signature:
typing.Optional[int]
-
since_revision:
typing.Optional[int]
-
level:
typing.Optional[AnalysisVersionsRequestLevel]
-
until:
typing.Optional[int]
-
policy:
typing.Optional[int]
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.versions.download(...) -> typing.Iterator[bytes]
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.versions.download( doc_id="docId", layer_name="layerName", sha="sha", )
-
-
-
doc_id:
str
-
layer_name:
str
-
sha:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.versions.revision(...) -> typing.Iterator[bytes]
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.versions.revision( doc_id="docId", layer_name="layerName", sha="sha", index=1, )
-
-
-
doc_id:
str
-
layer_name:
str
-
sha:
str
-
index:
int
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.versions.signatures(...) -> DocVersionsSignatures200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.versions.signatures( doc_id="docId", layer_name="layerName", sha="sha", )
-
-
-
doc_id:
str
-
layer_name:
str
-
sha:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.versions.signature_contents(...) -> typing.Iterator[bytes]
-
-
-
fieldKeyis the field's fully qualified name, token-text encoded (the same encoding attachment keys use).
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.versions.signature_contents( doc_id="docId", layer_name="layerName", sha="sha", field_key="fieldKey", )
-
-
-
doc_id:
str
-
layer_name:
str
-
sha:
str
-
field_key:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.versions.signature_digest(...) -> typing.Iterator[bytes]
-
-
-
What a CMS verifier compares its message digest to.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.versions.signature_digest( doc_id="docId", layer_name="layerName", sha="sha", field_key="fieldKey", algorithm="sha1", )
-
-
-
doc_id:
str
-
layer_name:
str
-
sha:
str
-
field_key:
str
-
algorithm:
SignatureDigestVersionsRequestAlgorithm
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.doc.metadata.custom.get(...) -> DocMetadataCustomGet200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.doc.metadata.custom.get( doc_id="docId", layer_name="layerName", )
-
-
-
doc_id:
str
-
layer_name:
str
-
document_password:
typing.Optional[str]β Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.layers.list(...) -> DocumentsLayersList200Response
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.layers.list( tenant_id="tenantId", id="id", )
-
-
-
tenant_id:
str
-
id:
str
-
limit:
typing.Optional[int]
-
cursor:
typing.Optional[str]
-
share_id:
typing.Optional[str]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.documents.layers.delete(...)
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.documents.layers.delete( tenant_id="tenantId", id="id", layer_name="layerName", )
-
-
-
tenant_id:
str
-
id:
str
-
layer_name:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.shares.visitors.list(...) -> SharesVisitorsList200Response
-
-
-
An archived link's visitors are listed too.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.shares.visitors.list( tenant_id="tenantId", share_id="shareId", )
-
-
-
tenant_id:
str
-
share_id:
str
-
limit:
typing.Optional[int]
-
cursor:
typing.Optional[str]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.shares.visitors.delete(...)
-
-
-
Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing.
-
-
-
from cloudpdf import CloudPDFClient client = CloudPDFClient( token="<token>", base_url="https://yourhost.com/path/to/api", ) client.shares.visitors.delete( tenant_id="tenantId", share_id="shareId", visitor_id="visitorId", )
-
-
-
tenant_id:
str
-
share_id:
str
-
visitor_id:
str
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-