Search

PythonReactSEOPDF
OpenClaw

compress-pdf

Compress a user-provided PDF by uploading it to Cross-Service-Solutions, polling until completion, then returning a download URL for the compressed file.

crossservicesolutions0 source installs☆ 0 Repository stars

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

SkillHub CLI

skillhub install crossservicesolutions/compress-pdf

Inspect the source and compatibility requirements, then follow its installation steps.

Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.

View source ↗Guides

Skill instructions

compress-pdf

Purpose

This skill compresses a PDF by:

  1. accepting a PDF file from the user,
  2. uploading it to the Cross-Service-Solutions compression API,
  3. polling the job status until it is finished,
  4. returning the compressed file download URL.

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 compression job:

  • POST /api/29
  • multipart/form-data parameters:
    • file (PDF Dokument) — required — PDF file
    • imageQuality — required — number 0..100 (default 75)
    • dpi — required — number 72..300 (default 144)

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
  • A PDF file (binary)
  • An API key (string)
Optional
  • imageQuality (0..100), default 75
  • dpi (72..300), default 144

Output

Return a structured result:

  • job_id (number)
  • status (string)
  • download_url (string, when done)
  • file_name (string, when available)
  • settings (object)

Example output:

{
  "job_id": 123,
  "status": "done",
  "download_url": "https://.../compressed.pdf",
  "file_name": "compressed.pdf",
  "settings": { "imageQuality": 75, "dpi": 144 }
}

Source information

Source
github
Repository
openclaw/skills
Path
skills/crossservicesolutions/compress-pdf
Version
—
Commit
648205ed8f9384a3e26a5c3a2a4d3d930d7fbde2
Classification source
rules
Status
active
Visibility
public

These signals come from indexed source analysis and may lag behind changes. Check the current source files.

README


README.md

# compress-pdf (OpenClaw Skill)

Compress a PDF by uploading it to Cross-Service-Solutions and returning a download URL for the compressed file.

## What you need
- A PDF file
- A Cross-Service-Solutions API key (Bearer token)
  - Register / get key: https://login.cross-service-solutions.com/register

## How it works
1) Upload PDF to `POST https://api.xss-cross-service-solutions.com/solutions/solutions/api/29`
2) Poll `GET https://api.xss-cross-service-solutions.com/solutions/solutions/api/<job_id>` until done
3) Return `output.files[0].path` as the download URL

## Defaults
- imageQuality: 75
- dpi: 144

## Script (CLI)
A helper script is included:

```bash
python scripts/compress_pdf.py \
  --pdf "/path/to/file.pdf" \
  --api-key "$SOLUTIONS_API_KEY" \
  --image-quality 75 \
  --dpi 144

Extracted content

SKILL.md
# compress-pdf

## Purpose
This skill compresses a PDF by:
1) accepting a PDF file from the user,
2) uploading it to the Cross-Service-Solutions compression API,
3) polling the job status until it is finished,
4) returning the compressed file download URL.

## Credentials
The API requires an API key used as a Bearer token:
- `Authorization: Bearer <API_KEY>`

How the user gets an API key:
- They can sign up and get their key at:
  https://login.cross-service-solutions.com/register
- Or they can provide an API key directly to the bot.

**Rule:** never echo or log the API key.

## API endpoints
Base URL:
- `https://api.xss-cross-service-solutions.com/solutions/solutions`

Create compression job:
- `POST /api/29`
- `multipart/form-data` parameters:
  - `file` (PDF Dokument) — required — PDF file
  - `imageQuality` — required — number 0..100 (default 75)
  - `dpi` — required — number 72..300 (default 144)

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
- A PDF file (binary)
- An API key (string)

### Optional
- `imageQuality` (0..100), default 75
- `dpi` (72..300), default 144

## Output
Return a structured result:
- `job_id` (number)
- `status` (string)
- `download_url` (string, when done)
- `file_name` (string, when available)
- `settings` (object)

Example output:
```json
{
  "job_id": 123,
  "status": "done",
  "download_url": "https://.../compressed.pdf",
  "file_name": "compressed.pdf",
  "settings": { "imageQuality": 75, "dpi": 144 }
}
README
---

## `README.md`

```md
# compress-pdf (OpenClaw Skill)

Compress a PDF by uploading it to Cross-Service-Solutions and returning a download URL for the compressed file.

## What you need
- A PDF file
- A Cross-Service-Solutions API key (Bearer token)
  - Register / get key: https://login.cross-service-solutions.com/register

## How it works
1) Upload PDF to `POST https://api.xss-cross-service-solutions.com/solutions/solutions/api/29`
2) Poll `GET https://api.xss-cross-service-solutions.com/solutions/solutions/api/<job_id>` until done
3) Return `output.files[0].path` as the download URL

## Defaults
- imageQuality: 75
- dpi: 144

## Script (CLI)
A helper script is included:

```bash
python scripts/compress_pdf.py \
  --pdf "/path/to/file.pdf" \
  --api-key "$SOLUTIONS_API_KEY" \
  --image-quality 75 \
  --dpi 144

Related skills

OpenClaw

13-Day Sprint Method

galizki

Productivity system based on Maya calendar with 13 natural tones for project management and personal development

OpenClaw

1password

daggerkun007

Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.