Change permissions of PDF
by @crossservicesolutions
Change a PDF’s permission flags (edit, print, copy, forms, annotations, etc.) by uploading it to the Solutions API, polling until completion, then returning a download URL for the updated PDF.
clawhub install change-pdf-permissions📖 About This Skill
name: change-pdf-permissions description: Change a PDF’s permission flags (edit, print, copy, forms, annotations, etc.) by uploading it to the Solutions API, polling until completion, then returning a download URL for the updated PDF. license: MIT compatibility: agentskills: ">=0.1.0" metadata: category: document-security tags: - pdf - permissions - restrict - allow - security - cross-service-solutions provider: Cross-Service-Solutions (Solutions API) allowed-tools: - http - files
change-pdf-permissions
Purpose
This skill changes the permission flags of a PDF (e.g., whether it can be printed, edited, or copied) by: 1) accepting a PDF file from the user, 2) accepting desired permission settings (true/false), 3) uploading them to the Solutions API, 4) polling the job status until it is finished, 5) returning the download URL for the updated PDF.Credentials
The API requires an API key used as a Bearer token:Authorization: Bearer How the user gets an API key:
Rule: never echo or log the API key.
API endpoints
Base URL:https://api.xss-cross-service-solutions.com/solutions/solutionsCreate permission-change job:
POST /api/75multipart/form-data parameters:file — required — PDF file
- canModify — required — "true" or "false"
- canModifyAnnotations — required — "true" or "false"
- canPrint — required — "true" or "false"
- canPrintHighQuality — required — "true" or "false"
- canAssembleDocument — required — "true" or "false"
- canFillInForm — required — "true" or "false"
- canExtractContent — required — "true" or "false"
- canExtractForAccessibility — required — "true" or "false"Get result by ID:
GET /api/When done, the response contains:
output.files[] with { name, path } where path is a downloadable URL.Inputs
Required
Optional
Defaults (recommended)
If the user does not specify permissions, use a conservative default that disallows modification and extraction, but allows printing:These defaults can be adjusted per product policy.
Output
Return a structured result:job_id (number)status (string)download_url (string, when done)file_name (string, when available)permissions (object) reflecting the final values sentExample output: ```json { "job_id": 7501, "status": "done", "download_url": "https://.../permissions.pdf", "file_name": "permissions.pdf", "permissions": { "canModify": false, "canModifyAnnotations": false, "canPrint": true, "canPrintHighQuality": true, "canAssembleDocument": false, "canFillInForm": true, "canExtractContent": false, "canExtractForAccessibility": true } }