OpenClaw · Skill
Password Protect Pdf
This skill password-protects a PDF by:
Install
Start with the primary install command. Alternate entrypoints are included below for ClawHub and OpenClaw CLI users.
Primary command
clawhub install crossservicesolutions/password-protect-pdfClawHub installer
npx clawhub@latest install crossservicesolutions/password-protect-pdfOpenClaw CLI
openclaw skills install crossservicesolutions/password-protect-pdfDirect OpenClaw install
openclaw install crossservicesolutions/password-protect-pdfWhat this skill does
This skill password-protects a PDF by:
Why it matters
Handles the full upload-poll-download cycle automatically, so users get a protected file without manually managing API calls or job status checks.
Typical use cases
- Locking a contract PDF before sending to a client
- Protecting a confidential report shared over email
- Adding a password to a scanned document before archiving
- Securing an invoice PDF with a recipient-specific password
- Restricting access to a sensitive form before distribution
Source instructions
password-protect-pdf
Purpose
This skill password-protects a PDF by:
- accepting a PDF file from the user,
- accepting a password from the user,
- uploading both to the Solutions API,
- polling the job status until it is finished,
- returning the download URL for the password-protected PDF.
Credentials
The API requires an API key used as a Bearer token:
Authorization: Bearer <API_KEY>
How the user gets an API key:
- https://login.cross-service-solutions.com/register
- Or the user can provide an API key directly.
Rule: never echo or log the API key.
API endpoints
Base URL:
https://api.xss-cross-service-solutions.com/solutions/solutions
Create password-protect job:
POST /api/32multipart/form-dataparameters:file(PDF-Datei) — required — PDF fileuserPass(Passwort) — required — string password
Get result by ID:
GET /api/<ID>
When done, the response contains:
output.files[]with{ name, path }wherepathis a downloadable URL.
Inputs
Required
- PDF file (binary)
- Password (
userPass, string) - API key (string)
Optional
- None
Output
Return a structured result:
job_id(number)status(string)download_url(string, when done)file_name(string, when available)
Example output:
{
"job_id": 321,
"status": "done",
"download_url": "https://.../protected.pdf",
"file_name": "protected.pdf"
}