client.Deployment.LicenseStatusAsync() -> WithRawResponseTask<DeploymentLicenseStatusResponse>
-
-
-
await client.Deployment.LicenseStatusAsync();
-
-
client.Doc.HeadAsync(HeadDocRequest { ... }) -> WithRawResponseTask<DocHead200Response>
-
-
-
await client.Doc.HeadAsync(new HeadDocRequest { DocId = "docId" });
-
-
-
request:
HeadDocRequest
-
-
client.Doc.DownloadAsync(DownloadDocRequest { ... }) -> WithRawResponseTask<Stream>
-
-
-
await client.Doc.DownloadAsync(new DownloadDocRequest { DocId = "docId", LayerName = "layerName" });
-
-
-
request:
DownloadDocRequest
-
-
client.Doc.ManifestAsync(ManifestDocRequest { ... }) -> WithRawResponseTask<DocManifest200Response>
-
-
-
await client.Doc.ManifestAsync(new ManifestDocRequest { DocId = "docId", LayerName = "layerName" });
-
-
-
request:
ManifestDocRequest
-
-
client.Doc.RenderAsync(RenderDocRequest { ... }) -> WithRawResponseTask<Stream>
-
-
-
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.
-
-
-
await client.Doc.RenderAsync( new RenderDocRequest { DocId = "docId", LayerName = "layerName", Pon = 1, } );
-
-
-
request:
RenderDocRequest
-
-
client.Doc.TextAsync(TextDocRequest { ... }) -> WithRawResponseTask<DocText200Response>
-
-
-
await client.Doc.TextAsync( new TextDocRequest { DocId = "docId", LayerName = "layerName", Pon = 1, } );
-
-
-
request:
TextDocRequest
-
-
client.Shares.ExchangeAsync(SharesExchangeRequest { ... }) -> WithRawResponseTask<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. Mounted only when the deployment can sign (HS256 mode).
-
-
-
await client.Shares.ExchangeAsync(new SharesExchangeRequest { ShareToken = "shareToken" });
-
-
-
request:
SharesExchangeRequest
-
-
client.Shares.ListAsync(ListSharesRequest { ... }) -> WithRawResponseTask<SharesList200Response>
-
-
-
await client.Shares.ListAsync(new ListSharesRequest { TenantId = "tenantId" });
-
-
-
request:
ListSharesRequest
-
-
client.Shares.CreateAsync(SharesCreateRequest { ... }) -> WithRawResponseTask<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.
-
-
-
await client.Shares.CreateAsync( new SharesCreateRequest { TenantId = "tenantId", DocId = "docId", Scope = new List<string>() { "scope" }, } );
-
-
-
request:
SharesCreateRequest
-
-
client.Shares.GetAsync(GetSharesRequest { ... }) -> WithRawResponseTask<SharesGet200Response>
-
-
-
await client.Shares.GetAsync(new GetSharesRequest { TenantId = "tenantId", ShareId = "shareId" });
-
-
-
request:
GetSharesRequest
-
-
client.Shares.DeleteAsync(DeleteSharesRequest { ... }) -> WithRawResponseTask
-
-
-
await client.Shares.DeleteAsync( new DeleteSharesRequest { TenantId = "tenantId", ShareId = "shareId" } );
-
-
-
request:
DeleteSharesRequest
-
-
client.Shares.UpdateAsync(SharesUpdateRequest { ... }) -> WithRawResponseTask<SharesUpdate200Response>
-
-
-
await client.Shares.UpdateAsync( new SharesUpdateRequest { TenantId = "tenantId", ShareId = "shareId" } );
-
-
-
request:
SharesUpdateRequest
-
-
client.Tenants.ListAsync(ListTenantsRequest { ... }) -> WithRawResponseTask<TenantsList200Response>
-
-
-
await client.Tenants.ListAsync(new ListTenantsRequest());
-
-
-
request:
ListTenantsRequest
-
-
client.Tenants.CreateAsync(TenantsCreateRequest { ... }) -> WithRawResponseTask<TenantsCreate200Response>
-
-
-
await client.Tenants.CreateAsync(new TenantsCreateRequest { Id = "id" });
-
-
-
request:
TenantsCreateRequest
-
-
client.Tenants.GetAsync(GetTenantsRequest { ... }) -> WithRawResponseTask<TenantsGet200Response>
-
-
-
await client.Tenants.GetAsync(new GetTenantsRequest { TenantId = "tenantId" });
-
-
-
request:
GetTenantsRequest
-
-
client.Tenants.DeleteAsync(DeleteTenantsRequest { ... }) -> WithRawResponseTask
-
-
-
Destroys the tenant and everything in its namespace — documents, layers, stored bytes, audit history. Irreversible.
-
-
-
await client.Tenants.DeleteAsync(new DeleteTenantsRequest { TenantId = "tenantId" });
-
-
-
request:
DeleteTenantsRequest
-
-
client.Tenants.ResumeAsync(ResumeTenantsRequest { ... }) -> WithRawResponseTask
-
-
-
await client.Tenants.ResumeAsync(new ResumeTenantsRequest { TenantId = "tenantId" });
-
-
-
request:
ResumeTenantsRequest
-
-
client.Tenants.SuspendAsync(TenantsSuspendRequest { ... }) -> WithRawResponseTask
-
-
-
Instantly reversible with resume. The API token is exempt, so a suspended tenant can still be inspected, exported, resumed, or deleted.
-
-
-
await client.Tenants.SuspendAsync(new TenantsSuspendRequest { TenantId = "tenantId" });
-
-
-
request:
TenantsSuspendRequest
-
-
client.Tenants.UsageAsync(UsageTenantsRequest { ... }) -> WithRawResponseTask<TenantsUsage200Response>
-
-
-
Facts only — no limits or billing state. Views count share exchanges plus authorized /v1/access grants, deduplicated across the two.
-
-
-
await client.Tenants.UsageAsync(new UsageTenantsRequest { TenantId = "tenantId" });
-
-
-
request:
UsageTenantsRequest
-
-
client.Documents.ListAsync(ListDocumentsRequest { ... }) -> WithRawResponseTask<DocumentsList200Response>
-
-
-
await client.Documents.ListAsync(new ListDocumentsRequest { TenantId = "tenantId" });
-
-
-
request:
ListDocumentsRequest
-
-
client.Documents.GetAsync(GetDocumentsRequest { ... }) -> WithRawResponseTask<DocumentsGet200Response>
-
-
-
await client.Documents.GetAsync(new GetDocumentsRequest { TenantId = "tenantId", Id = "id" });
-
-
-
request:
GetDocumentsRequest
-
-
client.Documents.DeleteAsync(DeleteDocumentsRequest { ... }) -> WithRawResponseTask
-
-
-
await client.Documents.DeleteAsync(new DeleteDocumentsRequest { TenantId = "tenantId", Id = "id" });
-
-
-
request:
DeleteDocumentsRequest
-
-
client.Documents.CommitAsync(DocumentsCommitRequest { ... }) -> WithRawResponseTask<DocumentsCommit200Response>
-
-
-
await client.Documents.CommitAsync( new DocumentsCommitRequest { TenantId = "tenantId", Id = "id", Sha256 = "sha256", } );
-
-
-
request:
DocumentsCommitRequest
-
-
client.Documents.DownloadAsync(DownloadDocumentsRequest { ... }) -> WithRawResponseTask<Stream>
-
-
-
await client.Documents.DownloadAsync( new DownloadDocumentsRequest { TenantId = "tenantId", Id = "id" } );
-
-
-
request:
DownloadDocumentsRequest
-
-
client.Documents.ThumbnailAsync(ThumbnailDocumentsRequest { ... }) -> WithRawResponseTask<Stream>
-
-
-
await client.Documents.ThumbnailAsync( new ThumbnailDocumentsRequest { TenantId = "tenantId", Id = "id" } );
-
-
-
request:
ThumbnailDocumentsRequest
-
-
client.Documents.UploadProxyAsync(UploadProxyDocumentsRequest { ... }) -> WithRawResponseTask<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.
-
-
-
await client.Documents.UploadProxyAsync( new UploadProxyDocumentsRequest { TenantId = "tenantId", Id = "id" } );
-
-
-
request:
UploadProxyDocumentsRequest
-
-
client.Documents.ImportFromAsync(DocumentsImportFromRequest { ... }) -> WithRawResponseTask<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).
-
-
-
await client.Documents.ImportFromAsync( new DocumentsImportFromRequest { TenantId = "tenantId", Source = new DocumentsImportFromRequestSource( new DocumentsImportFromRequestSource.Url( new DocumentsImportFromRequestSourceUrl { Url = "url" } ) ), } );
-
-
-
request:
DocumentsImportFromRequest
-
-
client.Documents.InitAsync(DocumentsInitRequest { ... }) -> WithRawResponseTask<DocumentsInit200Response>
-
-
-
await client.Documents.InitAsync( new DocumentsInitRequest { TenantId = "tenantId", ContentLength = 1.1, ContentSha256 = "contentSha256", } );
-
-
-
request:
DocumentsInitRequest
-
-
client.Tokens.IssueAsync(IssueTokensRequest { ... }) -> WithRawResponseTask<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.
-
-
-
await client.Tokens.IssueAsync( new IssueTokensRequest { TenantId = "tenantId", Body = new TokensIssueRequest( new TokensIssueRequest.Doc( new TokensIssueRequestDoc { Sub = "sub", DocId = "docId", Scope = new List<string>() { "scope" }, ExpiresIn = 1, } ) ), } );
-
-
-
request:
IssueTokensRequest
-
-
client.Tokens.RevokeAsync(TokensRevokeRequest { ... }) -> WithRawResponseTask
-
-
-
Mounted only when the deployment enables token revocation.
-
-
-
await client.Tokens.RevokeAsync(new TokensRevokeRequest { TenantId = "tenantId", Jti = "jti" });
-
-
-
request:
TokensRevokeRequest
-
-
client.Doc.Annotations.ListAllAsync(ListAllAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsListAll200Response>
-
-
-
Returns one entry per page plus the audit-log cursor for reconciling subsequent document events. Page order is unspecified; join by
pageState.pageObjectNumberwhen display order matters.
-
-
-
await client.Doc.Annotations.ListAllAsync( new ListAllAnnotationsRequest { DocId = "docId", LayerName = "layerName" } );
-
-
-
request:
ListAllAnnotationsRequest
-
-
client.Doc.Annotations.ListAsync(ListAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsList200Response>
-
-
-
await client.Doc.Annotations.ListAsync( new ListAnnotationsRequest { DocId = "docId", LayerName = "layerName", Pon = 1, } );
-
-
-
request:
ListAnnotationsRequest
-
-
client.Doc.Annotations.CreateAsync(CreateAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsCreate200Response>
-
-
-
Doc JWTs may instead carry collab scopes (annotations:create:self, …) that refine per-annotation authorship rules; the API token is exempt from both.
-
-
-
await client.Doc.Annotations.CreateAsync( new CreateAnnotationsRequest { DocId = "docId", LayerName = "layerName", Pon = 1, Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
CreateAnnotationsRequest
-
-
client.Doc.Annotations.DeleteAsync(DeleteAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsDelete200Response>
-
-
-
await client.Doc.Annotations.DeleteAsync( new DeleteAnnotationsRequest { DocId = "docId", LayerName = "layerName", Pon = 1, AnnotKey = "annotKey", } );
-
-
-
request:
DeleteAnnotationsRequest
-
-
client.Doc.Annotations.UpdateAsync(UpdateAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsUpdate200Response>
-
-
-
await client.Doc.Annotations.UpdateAsync( new UpdateAnnotationsRequest { DocId = "docId", LayerName = "layerName", Pon = 1, AnnotKey = "annotKey", Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
UpdateAnnotationsRequest
-
-
client.Doc.Annotations.ExportAppearanceAsync(ExportAppearanceAnnotationsRequest { ... }) -> WithRawResponseTask<Stream>
-
-
-
await client.Doc.Annotations.ExportAppearanceAsync( new ExportAppearanceAnnotationsRequest { DocId = "docId", LayerName = "layerName", Pon = 1, Body = new Dictionary<string, object?>() { { "string", new Dictionary<object, object?>() { { "key", "value" } } }, }, } );
-
-
-
request:
ExportAppearanceAnnotationsRequest
-
-
client.Doc.Annotations.FlattenAsync(FlattenAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsFlatten200Response>
-
-
-
await client.Doc.Annotations.FlattenAsync( new FlattenAnnotationsRequest { DocId = "docId", LayerName = "layerName", Pon = 1, Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
FlattenAnnotationsRequest
-
-
client.Doc.Forms.GetAsync(GetFormsRequest { ... }) -> WithRawResponseTask<DocFormsGet200Response>
-
-
-
await client.Doc.Forms.GetAsync(new GetFormsRequest { DocId = "docId", LayerName = "layerName" });
-
-
-
request:
GetFormsRequest
-
-
client.Doc.Forms.ExportDataAsync(ExportDataFormsRequest { ... }) -> WithRawResponseTask<Stream>
-
-
-
await client.Doc.Forms.ExportDataAsync( new ExportDataFormsRequest { DocId = "docId", LayerName = "layerName" } );
-
-
-
request:
ExportDataFormsRequest
-
-
client.Doc.Forms.ImportDataAsync(ImportDataFormsRequest { ... }) -> WithRawResponseTask<DocFormsImportData200Response>
-
-
-
await client.Doc.Forms.ImportDataAsync( new ImportDataFormsRequest { DocId = "docId", LayerName = "layerName", Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
ImportDataFormsRequest
-
-
client.Doc.Forms.ResetAsync(ResetFormsRequest { ... }) -> WithRawResponseTask<DocFormsReset200Response>
-
-
-
await client.Doc.Forms.ResetAsync( new ResetFormsRequest { DocId = "docId", LayerName = "layerName", FieldKey = "fieldKey", } );
-
-
-
request:
ResetFormsRequest
-
-
client.Doc.Forms.SetValueAsync(SetValueFormsRequest { ... }) -> WithRawResponseTask<DocFormsSetValue200Response>
-
-
-
await client.Doc.Forms.SetValueAsync( new SetValueFormsRequest { DocId = "docId", LayerName = "layerName", FieldKey = "fieldKey", Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
SetValueFormsRequest
-
-
client.Doc.Metadata.GetAsync(GetMetadataRequest { ... }) -> WithRawResponseTask<DocMetadataGet200Response>
-
-
-
await client.Doc.Metadata.GetAsync( new GetMetadataRequest { DocId = "docId", LayerName = "layerName" } );
-
-
-
request:
GetMetadataRequest
-
-
client.Doc.Pages.DeleteAsync(DeletePagesRequest { ... }) -> WithRawResponseTask<DocPagesDelete200Response>
-
-
-
await client.Doc.Pages.DeleteAsync( new DeletePagesRequest { DocId = "docId", LayerName = "layerName", Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
DeletePagesRequest
-
-
client.Doc.Pages.ExtractAsync(ExtractPagesRequest { ... }) -> WithRawResponseTask<Stream>
-
-
-
A read, not a mutation: the source document is untouched and no event is published. Body is
{"pageObjectNumbers": number[]}; the response body is the new PDF.
-
-
-
await client.Doc.Pages.ExtractAsync( new ExtractPagesRequest { DocId = "docId", LayerName = "layerName", Body = new Dictionary<string, object?>() { { "string", new Dictionary<object, object?>() { { "key", "value" } } }, }, } );
-
-
-
request:
ExtractPagesRequest
-
-
client.Doc.Pages.FlattenAsync(FlattenPagesRequest { ... }) -> WithRawResponseTask<DocPagesFlatten200Response>
-
-
-
await client.Doc.Pages.FlattenAsync( new FlattenPagesRequest { DocId = "docId", LayerName = "layerName", Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
FlattenPagesRequest
-
-
client.Doc.Pages.InsertAsync(InsertPagesRequest { ... }) -> WithRawResponseTask<DocPagesInsert200Response>
-
-
-
Multipart mutation envelope: a
bodyfield holding{"destIndex"?: number}(omitted → append) plus aresource:sourcefile part carrying the standalone PDF whose pages are copied in. The inserted copies get fresh page object numbers, returned in insertion order.
-
-
-
await client.Doc.Pages.InsertAsync( new InsertPagesRequest { DocId = "docId", LayerName = "layerName" } );
-
-
-
request:
InsertPagesRequest
-
-
client.Doc.Pages.InsertBlankAsync(InsertBlankPagesRequest { ... }) -> WithRawResponseTask<DocPagesInsertBlank200Response>
-
-
-
Body is
{"size": {"width", "height"}, "count"?, "destIndex"?}— size in PDF points, count in [1, 100], destIndex omitted → append.
-
-
-
await client.Doc.Pages.InsertBlankAsync( new InsertBlankPagesRequest { DocId = "docId", LayerName = "layerName", Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
InsertBlankPagesRequest
-
-
client.Doc.Pages.MoveAsync(MovePagesRequest { ... }) -> WithRawResponseTask<DocPagesMove200Response>
-
-
-
await client.Doc.Pages.MoveAsync( new MovePagesRequest { DocId = "docId", LayerName = "layerName", Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
MovePagesRequest
-
-
client.Doc.Pages.SetNameAsync(SetNamePagesRequest { ... }) -> WithRawResponseTask<DocPagesSetName200Response>
-
-
-
await client.Doc.Pages.SetNameAsync( new SetNamePagesRequest { DocId = "docId", LayerName = "layerName", Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
SetNamePagesRequest
-
-
client.Doc.Pages.RemoveNameAsync(RemoveNamePagesRequest { ... }) -> WithRawResponseTask<DocPagesRemoveName200Response>
-
-
-
await client.Doc.Pages.RemoveNameAsync( new RemoveNamePagesRequest { DocId = "docId", LayerName = "layerName", Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
RemoveNamePagesRequest
-
-
client.Doc.Pages.RotateAsync(RotatePagesRequest { ... }) -> WithRawResponseTask<DocPagesRotate200Response>
-
-
-
await client.Doc.Pages.RotateAsync( new RotatePagesRequest { DocId = "docId", LayerName = "layerName", Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
RotatePagesRequest
-
-
client.Doc.Redactions.ApplyAsync(ApplyRedactionsRequest { ... }) -> WithRawResponseTask<DocRedactionsApply200Response>
-
-
-
await client.Doc.Redactions.ApplyAsync( new ApplyRedactionsRequest { DocId = "docId", LayerName = "layerName", Body = new Dictionary<string, object?>() { { "key", "value" } }, } );
-
-
-
request:
ApplyRedactionsRequest
-
-