{"skill":{"slug":"merge-pdf","displayName":"Merge PDF","summary":"Merge multiple user-provided PDF files by uploading them to Cross-Service-Solutions, polling until completion, then returning a download URL for the merged PDF.","description":"---\r\nname: merge-pdf\r\ndescription: Merge multiple user-provided PDF files by uploading them to Cross-Service-Solutions, polling until completion, then returning a download URL for the merged PDF.\r\nlicense: MIT\r\ncompatibility:\r\n  agentskills: \">=0.1.0\"\r\nmetadata:\r\n  category: document-processing\r\n  tags:\r\n    - pdf\r\n    - merge\r\n    - cross-service-solutions\r\n  provider: Cross-Service-Solutions (XSS)\r\nallowed-tools:\r\n  - http\r\n  - files\r\n---\r\n\r\n# merge-pdf-files\r\n\r\n## Purpose\r\nThis skill merges multiple PDFs by:\r\n1) accepting multiple PDF files from the user,\r\n2) uploading them to the Cross-Service-Solutions merge API,\r\n3) polling the job status until it is finished,\r\n4) returning the merged PDF download URL.\r\n\r\n## Credentials\r\nThe API requires an API key used as a Bearer token:\r\n- `Authorization: Bearer <API_KEY>`\r\n\r\nHow the user gets an API key:\r\n- https://login.cross-service-solutions.com/register\r\n- Or the user can provide an API key directly.\r\n\r\n**Rule:** never echo or log the API key.\r\n\r\n## API endpoints\r\nBase URL:\r\n- `https://api.xss-cross-service-solutions.com/solutions/solutions`\r\n\r\nCreate merge job:\r\n- `POST /api/30`\r\n- `multipart/form-data` parameters:\r\n  - `files` (PDF Dokument) — required — multiple PDF files (multiple_files)\r\n\r\nGet result by ID:\r\n- `GET /api/<ID>`\r\n\r\nWhen done, the response contains:\r\n- `output.files[]` with `{ name, path }` where `path` is a downloadable URL.\r\n\r\n## Inputs\r\n### Required\r\n- One or more PDF files (binary)\r\n- An API key (string)\r\n\r\n### Optional\r\n- None (ordering is determined by the provided file list order)\r\n\r\n## Output\r\nReturn a structured result:\r\n- `job_id` (number)\r\n- `status` (string)\r\n- `download_url` (string, when done)\r\n- `file_name` (string, when available)\r\n- `input_files` (array of strings)\r\n\r\nExample output:\r\n```json\r\n{\r\n  \"job_id\": 456,\r\n  \"status\": \"done\",\r\n  \"download_url\": \"https://.../merged.pdf\",\r\n  \"file_name\": \"merged.pdf\",\r\n  \"input_files\": [\"a.pdf\", \"b.pdf\", \"c.pdf\"]\r\n}\r\n","topics":["PDF"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":1756,"installsAllTime":66,"installsCurrent":4,"stars":0,"versions":1},"createdAt":1770555605824,"updatedAt":1778486077727},"latestVersion":{"version":"1.0.0","createdAt":1770555605824,"changelog":"Initial release of merge-pdf (v1.0.0):\n\n- Enables merging of multiple user-uploaded PDF files using Cross-Service-Solutions.\n- Handles file upload, job status polling, and returns a download URL for the merged PDF.\n- Requires user-provided API key for authentication.\n- Returns a structured response with job ID, status, download URL, file name, and input file list.","license":null},"metadata":null,"owner":{"handle":"crossservicesolutions","userId":"s177d5e22d11bz43r6pegrm47s8845v0","displayName":"CrossServiceSolutions","image":"https://avatars.githubusercontent.com/u/201191521?v=4"},"moderation":null}