360 Secure SkillHub
360 安全技能中心

Remove password from PDF

接收受密码保护的 PDF 与当前密码,由 Python 脚本上传至 Solutions API 创建解锁任务并轮询状态,完成后返回解锁 PDF 的下载地址;输出结构化结果,含 job_id、status、download_url、file_name。调用需 API Key 作为 Bearer 令牌。

crossservicesolutions
crossservicesolutions
热度 89.65
最近更新 2026-05-11 15:54:52
分类:效率依赖:代码执行 / 读写文件 / 第三方 API应用场景:文件转换 / 工作流 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add remove-password-from-pdf
Metadata
name
remove-password-from-pdf
description
Remove password protection from a PDF by uploading it (with its current password) to the Solutions API, polling until completion, then returning a download URL for the unlocked PDF.
license
MIT
compatibility
{"agentskills":">=0.1.0"}
metadata
{"category":"document-security","tags":["pdf","unlock","remove-password","decrypt","cross-service-solutions"],"provider":"Cross-Service-Solutions (Solutions API)"}
allowed-tools
["http","files"]

remove-password-from-pdf

Purpose

This skill removes password protection from a PDF by:

  1. accepting a password-protected PDF from the user,
  2. accepting the current password from the user,
  3. uploading both to the Solutions API,
  4. polling the job status until it is finished,
  5. returning the download URL for the unlocked PDF.

Credentials

The API requires an API key used as a Bearer token:

  • Authorization: Bearer <API_KEY>

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/solutions

Create remove-password job:

  • POST /api/33
  • multipart/form-data parameters:
    • file (PDF-Datei) — required — PDF file
    • password (Password) — required — string (current password to unlock)

Get result by ID:

  • GET /api/<ID>

When done, the response contains:

  • output.files[] with { name, path } where path is a downloadable URL.

Inputs

Required

  • PDF file (binary)
  • Current password (password, 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": 654,
  "status": "done",
  "download_url": "https://.../unlocked.pdf",
  "file_name": "unlocked.pdf"
}