The HelpySelf API
Use the same tools from a script, or from an AI assistant. No account needed to start; your plan's limits apply when you sign in.
Use these tools inside your AI assistant
HelpySelf speaks the Model Context Protocol, so Claude, Cursor and ChatGPT can call these tools directly during a conversation — resize an image, merge a PDF, convert a file, without leaving the chat. Add this one address; every tool appears, and new ones show up on their own.
https://helpyself.com/mcpNo token needed to start — calls run at the anonymous limits. Add your token in the client's header settings to use your own plan's limits instead.
What this is actually for
Once the tools are connected, they are things your assistant can do rather than sites you have to visit. These are ordinary requests — no syntax to learn, and no file leaves the conversation unless you ask for one.
- “Merge these four PDFs and make the result smaller.”
- “Resize every image in this folder to 1200px on the long edge.”
- “Turn this logo into a favicon set with the HTML to go with it.”
- “Take the white background off this product photo.”
Why call these rather than write them
Each of these is an afternoon of work the first time and a maintenance job forever after — PDF page trees, colour profiles, EXIF orientation, the eight ways a JPEG can be subtly wrong. They are solved here, they are free to call, and they behave the same whether a person clicks them or a script does. There is no upload step and no storage to manage: a file goes in the request and comes back in the response. Nothing is kept unless you ask us to keep it.
Making a call
Every tool is one POST, and no token is needed to try it. Send the tool's options as JSON; add a bearer token when you want your own plan's limits instead of the anonymous ones.
curl https://helpyself.com/api/v1/tools/case-converter -H "Content-Type: application/json" -d '{"text":"hello world","mode":"upper"}'Files travel base64-encoded in the JSON body. The response is JSON too, with the result base64-encoded where a tool produces a file.
Limits
- Files at a time
- 20
- 1,000
- Largest file
- 50 MB
- 500 MB
- Requests
- 60 per minute
- 60 per minute
These are your plan's limits, not separate API limits — a call can never do more than you could do in the browser. Each tool also has its own ceiling where its code stops coping, and the smaller of the two applies. Calling without a token gets the anonymous limits.
When something is refused
- 402
- Larger than your plan allows. The response says the limit, what Pro allows, and where to upgrade.
- 404
- That tool has no API. The list below is the complete one.
- 413
- Too many files, or a file larger than your plan allows.
- 429
- Too many requests. Wait a moment.
- 400
- The body did not match what the tool expects. The response says which field.
Every tool, callable
all 29
Each takes the same options as the tool page, because both call the same code. Open one to see an example request.
- Base64 Encoder & Decoder
Encode and decode Base64 text instantly.
/api/v1/tools/base64Request
POST /api/v1/tools/base64 Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "action": "encode", "urlSafe": false }Response — produced by actually running the request above
Open Base64 Encoder & Decoder{ "ok": true, "output": "aGVsbG8gd29ybGQ=", "source": "helpyself.com" } - Bulk Image Resizer
Resize a whole folder of images at once, in your browser.
/api/v1/tools/bulk-image-resizerRequest
Open Bulk Image ResizerPOST /api/v1/tools/bulk-image-resizer Authorization: Bearer hs_your_token_here Content-Type: application/json { "name": "image.png", "type": "image/png", "data": "<base64-encoded file bytes>", "maxEdge": 100, "format": "keep", "quality": 0.82 } - Case Converter
Convert text between camelCase, snake_case and more.
/api/v1/tools/case-converterRequest
POST /api/v1/tools/case-converter Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world" }Response — produced by actually running the request above
Open Case Converter{ "ok": true, "results": [ { "name": "camel", "label": "camelCase", "value": "helloWorld" }, { "name": "pascal", "label": "PascalCase", "value": "HelloWorld" }, { "name": "snake", "label": "snake_case", "value": "hello_world" }, { "name": "constant", "label": "CONSTANT_CASE", "value": "HELLO_WORLD" }, { "name": "kebab", "label": "kebab-case", "value": "hello-world" }, { "name": "title", "label": "Title Case", "value": "Hello World" }, { "name": "sentence", "label": "Sentence case", "value": "Hello world" }, { "name": "upper", "label": "UPPERCASE", "value": "HELLO WORLD" }, { "name": "lower", "label": "lowercase", "value": "hello world" } ], "source": "helpyself.com" } - Colour Converter
Convert colours between HEX, RGB and HSL.
/api/v1/tools/color-converterRequest
POST /api/v1/tools/color-converter Authorization: Bearer hs_your_token_here Content-Type: application/json { "color": "#ffffff" }Response — produced by actually running the request above
Open Colour Converter{ "ok": true, "formats": { "hex": "#ffffff", "hexAlpha": "#ffffff", "rgb": "rgb(255, 255, 255)", "hsl": "hsl(0, 0%, 100%)", "channels": { "r": 255, "g": 255, "b": 255, "a": 1 }, "hslChannels": { "h": 0, "s": 0, "l": 100 }, "preferredTextColor": "#000000" }, "source": "helpyself.com" } - Compress PDF
Make a PDF smaller without turning the text into a picture.
/api/v1/tools/pdf-compressRequest
POST /api/v1/tools/pdf-compress Authorization: Bearer hs_your_token_here Content-Type: application/json { "name": "document.pdf", "data": "<base64-encoded file bytes>", "level": "balanced", "structureOnly": false }Response — produced by actually running the request above
Open Compress PDF{ "ok": true, "name": "document.pdf", "inputBytes": 851, "outputBytes": 851, "alreadyOptimised": true, "imagesRecompressed": 0, "imagesSkipped": 0, "imagesUnsupported": 0, "type": "application/pdf", "bytes": 851, "data": "<1136 base64 characters>", "source": "helpyself.com" } - Contrast Checker
Check colour contrast against WCAG accessibility levels.
/api/v1/tools/contrast-checkerRequest
POST /api/v1/tools/contrast-checker Authorization: Bearer hs_your_token_here Content-Type: application/json { "foreground": "#ffffff", "background": "#ffffff", "suggest": false, "target": 4.5 }Response — produced by actually running the request above
Open Contrast Checker{ "ok": true, "report": { "ratio": 1, "foreground": "#ffffff", "background": "#ffffff", "checks": [ { "id": "aa-normal", "label": "AA · normal text", "required": 4.5, "passes": false }, { "id": "aa-large", "label": "AA · large text", "required": 3, "passes": false }, { "id": "aaa-normal", "label": "AAA · normal text", "required": 7, "passes": false }, { "id": "aaa-large", "label": "AAA · large text", "required": 4.5, "passes": false }, { "id": "ui", "label": "UI components & graphics", "required": 3, "passes": false } ], "summary": "Fail" }, "source": "helpyself.com" } - Crop Image
Trim an image to the part you actually want, at any aspect ratio.
/api/v1/tools/image-cropperRequest
Open Crop ImagePOST /api/v1/tools/image-cropper Authorization: Bearer hs_your_token_here Content-Type: application/json { "name": "image.png", "type": "image/png", "data": "<base64-encoded file bytes>", "x": 0, "y": 0, "width": 100, "height": 100, "format": "auto", "quality": 0.9 } - Favicon Generator
Turn any image into a complete favicon set.
/api/v1/tools/favicon-generatorRequest
Open Favicon GeneratorPOST /api/v1/tools/favicon-generator Authorization: Bearer hs_your_token_here Content-Type: application/json { "name": "image.png", "type": "image/png", "data": "<base64-encoded file bytes>" } - Hash Generator
Generate SHA-1, SHA-256, SHA-384 and SHA-512 hashes.
/api/v1/tools/hash-generatorRequest
POST /api/v1/tools/hash-generator Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "algorithms": [ "SHA-256" ] }Response — produced by actually running the request above
Open Hash Generator{ "ok": true, "hashes": [ { "algorithm": "SHA-256", "hex": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9", "base64": "uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek=" } ], "source": "helpyself.com" } - Image Compressor
Shrink JPEG, PNG and WebP images in your browser — one or a whole folder.
/api/v1/tools/image-compressorRequest
Open Image CompressorPOST /api/v1/tools/image-compressor Authorization: Bearer hs_your_token_here Content-Type: application/json { "name": "image.png", "type": "image/png", "data": "<base64-encoded file bytes>", "quality": 0.8, "format": "auto" } - Image Converter
Convert images between WebP, JPEG and PNG — one or a whole folder.
/api/v1/tools/image-converterRequest
Open Image ConverterPOST /api/v1/tools/image-converter Authorization: Bearer hs_your_token_here Content-Type: application/json { "name": "image.png", "type": "image/png", "data": "<base64-encoded file bytes>", "target": "image/jpeg", "quality": 0.9 } - Image Resizer
Resize an image to any size, and see the result before you download.
/api/v1/tools/image-resizerRequest
Open Image ResizerPOST /api/v1/tools/image-resizer Authorization: Bearer hs_your_token_here Content-Type: application/json { "name": "image.png", "type": "image/png", "data": "<base64-encoded file bytes>", "mode": "dimensions", "keepAspect": true, "quality": 0.85, "allowUpscale": false } - Images to PDF
Turn photos and scans into a single PDF.
/api/v1/tools/images-to-pdfRequest
Open Images to PDFPOST /api/v1/tools/images-to-pdf Authorization: Bearer hs_your_token_here Content-Type: application/json { "images": [ { "name": "image.jpg", "type": "image/png", "data": "<base64-encoded file bytes>" } ], "pageSize": "fit", "orientation": "auto", "margin": 0 } - JSON Formatter
Format, validate and beautify JSON instantly.
/api/v1/tools/json-formatterRequest
POST /api/v1/tools/json-formatter Authorization: Bearer hs_your_token_here Content-Type: application/json { "json": "{\"hello\":\"world\"}", "action": "format", "indent": 2, "sortKeys": false }Response — produced by actually running the request above
Open JSON Formatter{ "ok": true, "output": "{\n \"hello\": \"world\"\n}", "source": "helpyself.com" } - JWT Decoder
Decode and inspect JSON Web Tokens safely.
/api/v1/tools/jwt-decoderRequest
POST /api/v1/tools/jwt-decoder Authorization: Bearer hs_your_token_here Content-Type: application/json { "token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.signature" }Response — produced by actually running the request above
Open JWT Decoder{ "ok": true, "decoded": { "header": { "alg": "HS256" }, "payload": { "sub": "123" }, "signature": "signature", "algorithm": "HS256", "expired": null, "claims": [ { "key": "sub — Subject", "value": "123" } ] }, "verified": false, "source": "helpyself.com" } - Lorem Ipsum Generator
Generate placeholder text for mockups and layouts.
/api/v1/tools/lorem-ipsumRequest
POST /api/v1/tools/lorem-ipsum Authorization: Bearer hs_your_token_here Content-Type: application/json { "count": 3, "unit": "paragraphs", "startWithLorem": true }Response — produced by actually running the request above
Open Lorem Ipsum Generator{ "ok": true, "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cillum laudantium nemo tempor enim magna do beatae. Exercitation sed vitae et nisi eiusmod. Aliqua laudantium mollit laborum proident velit enim laborum dolor sunt, pariatur fugiat ex. Quis enim eu ab, adipiscing dicta ex vitae et commodo nostrud et.\n\nNon ad deserunt nostrud error veniam laudantium et amet, eaque natus exercitation error architecto adipiscing. Velit nisi minim error ipsa beatae magna. Unde laboris in veniam, vitae irure ab nulla voluptatem doloremque. Id laboris nulla adipiscing officia ea unde nostrud sint. Omnis irure ad totam, veritatis dicta incididunt dicta ex explicabo occaecat labore.\n\nAute sunt aliqua enim nostrud sint consectetur, totam nostrud nemo. Eu reprehenderit error est, quasi voluptate voluptate labore laborum et. Labore consequat et et, omnis non beatae eu doloremque qui. Exercitation veniam voluptatem incididunt dolor mollit excepteur aliqua. Et irure laudantium eiusmod adipiscing eaque pariatur in.", "source": "helpyself.com" } - Merge PDF
Combine several PDF files into one.
/api/v1/tools/pdf-mergeRequest
POST /api/v1/tools/pdf-merge Authorization: Bearer hs_your_token_here Content-Type: application/json { "files": [ { "name": "document.pdf", "data": "<base64-encoded file bytes>" }, { "name": "document.pdf", "data": "<base64-encoded file bytes>" } ] }Response — produced by actually running the request above
Open Merge PDF{ "ok": true, "pageCount": 2, "sources": [ { "name": "document.pdf", "pageCount": 1 }, { "name": "document.pdf", "pageCount": 1 } ], "data": "<1364 base64 characters>", "source": "helpyself.com" } - Password Generator
Create strong random passwords in your browser.
/api/v1/tools/password-generatorRequest
POST /api/v1/tools/password-generator Authorization: Bearer hs_your_token_here Content-Type: application/json { "length": 20, "lowercase": true, "uppercase": true, "digits": true, "symbols": true, "excludeAmbiguous": false, "count": 1 }Response — produced by actually running the request above
Open Password Generator{ "ok": true, "passwords": [ "#q^MT7Fzj-Dh4V?O3hQm" ], "alphabetSize": 76, "entropyBits": 125, "source": "helpyself.com" } - QR Code Generator
Turn any link or text into a QR code.
/api/v1/tools/qr-generatorRequest
POST /api/v1/tools/qr-generator Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "size": 512, "margin": 4, "errorCorrection": "M", "dark": "#000000", "light": "#ffffff" }Response — produced by actually running the request above
Open QR Code Generator{ "ok": true, "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"512\" height=\"512\" viewBox=\"0 0 29 29\" shape-rendering=\"crispEdges\"><path fill=\"#ffffff\" d=\"M0 0h29v29H0z\"/><path stroke=\"#000000\" d=\"M4 4.5h7m2 0h1m1 0h2m1 0h7M4 5.5h1m5 0h1m3 0h1m3 0h1m5 0h1M4 6.5h1m1 0h3m1 0h1m1 0h4m2 0h1m1 0h3m1 0h1M4 7.5h1m1 0h3m1 0h1m1 0h3m1 0h1m1 0h1m1 0h3m1 0h1M4 8.5h1m1 0h3m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h3m1 0h1M4 9.5h1m5 0h1m1 0h1m2 0h1m2 0h1m5 0h1M4 10.5h7m1 0h1m1 0h1m1 0h1m1 0h7M12 11.5h1m1 0h1M4 12.5h1m1 0h5m2 0h1m1 0h1m2 0h5M5 13.5h2m1 0h2m1 0h1m1 0h1m1 0h8m1 0h1M4 14.5h1m1 0h1m1 0h4m1 0h2m1 0h3m2 0h3M4 15.5h1m1 0h1m2 0h1m3 0h1m1 0h3m2 0h3M7 16.5h1m1 0h5m2 0h3m5 0h1M12 17.5h1m1 0h1m1 0h1m3 0h2m2 0h1M4 18.5h7m4 0h1m2 0h1m3 0h2M4 19.5h1m5 0h1m1 0h1m4 0h1m1 0h1m1 0h4M4 20.5h1m1 0h3m1 0h1m1 0h1m2 0h1m2 0h2m4 0h1M4 21.5h1m1 0h3m1 0h1m1 0h2m2 0h6M4 22.5h1m1 0h3m1 0h1m1 0h2m2 0h1m2 0h1m2 0h1M4 23.5h1m5 0h1m2 0h2m1 0h2m2 0h3M4 24.5h7m1 0h2m1 0h2m1 0h1m1 0h1m2 0h1\"/></svg>\n", "source": "helpyself.com" } - Regex Tester
Test regular expressions against your text safely.
/api/v1/tools/regex-testerRequest
POST /api/v1/tools/regex-tester Authorization: Bearer hs_your_token_here Content-Type: application/json { "pattern": "\\d+", "flags": "g", "text": "hello world" }Response — produced by actually running the request above
Open Regex Tester{ "ok": true, "count": 0, "truncated": false, "limit": 1000, "matches": [], "source": "helpyself.com" } - Remove Background
Make a solid background transparent, instantly and in your browser.
/api/v1/tools/background-removerRequest
Open Remove BackgroundPOST /api/v1/tools/background-remover Authorization: Bearer hs_your_token_here Content-Type: application/json { "name": "image.png", "type": "image/png", "data": "<base64-encoded file bytes>", "tolerance": 20, "reach": "edges", "feather": 30 } - Rotate PDF
Turn sideways or upside-down PDF pages the right way up.
/api/v1/tools/pdf-rotateRequest
POST /api/v1/tools/pdf-rotate Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "name": "document", "angle": 90, "only": "all" }Response — produced by actually running the request above
Open Rotate PDF{ "ok": true, "name": "document-rotated.pdf", "pageCount": 1, "rotated": [ 1 ], "data": "<1160 base64 characters>", "source": "helpyself.com" } - Slug Generator
Turn any title into a clean URL slug.
/api/v1/tools/slug-generatorRequest
POST /api/v1/tools/slug-generator Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "separator": "-", "lowercase": true, "maxLength": 0, "expandDiacritics": true }Response — produced by actually running the request above
Open Slug Generator{ "ok": true, "slug": "hello-world", "source": "helpyself.com" } - Split PDF
Extract pages from a PDF or split it into separate files.
/api/v1/tools/pdf-splitRequest
POST /api/v1/tools/pdf-split Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "name": "document", "mode": "extract" }Response — produced by actually running the request above
Open Split PDF{ "ok": true, "sourcePageCount": 1, "files": [ { "name": "document-extracted.pdf", "pageCount": 1, "data": "<1148 base64 characters>" } ], "source": "helpyself.com" } - Text Diff
Compare two texts and see exactly what changed.
/api/v1/tools/text-diffRequest
POST /api/v1/tools/text-diff Authorization: Bearer hs_your_token_here Content-Type: application/json { "original": "hello world", "changed": "hello world", "ignoreCase": false, "ignoreWhitespace": false }Response — produced by actually running the request above
Open Text Diff{ "ok": true, "lines": [ { "op": "equal", "text": "hello world", "left": 1, "right": 1 } ], "stats": { "added": 0, "removed": 0, "unchanged": 1 }, "identical": true, "source": "helpyself.com" } - Timestamp Converter
Convert Unix timestamps to dates and back.
/api/v1/tools/timestamp-converterRequest
POST /api/v1/tools/timestamp-converter Authorization: Bearer hs_your_token_here Content-Type: application/json { "value": "1735689600" }Response — produced by actually running the request above
Open Timestamp Converter{ "ok": true, "converted": { "unixSeconds": 1735689600, "unixMilliseconds": 1735689600000, "iso": "2025-01-01T00:00:00.000Z", "utc": "Wednesday, 1 January 2025 at 00:00:00 UTC", "local": "Wednesday, 1 January 2025 at 01:00:00 CET", "relative": "2 years ago", "dayOfWeek": "Wednesday", "detectedUnit": "seconds" }, "source": "helpyself.com" } - URL Encoder & Decoder
Percent-encode and decode URLs and query strings.
/api/v1/tools/url-encoderRequest
POST /api/v1/tools/url-encoder Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "action": "encode", "mode": "component" }Response — produced by actually running the request above
Open URL Encoder & Decoder{ "ok": true, "output": "hello%20world", "source": "helpyself.com" } - UUID Generator
Generate random UUID v4 identifiers instantly.
/api/v1/tools/uuid-generatorRequest
POST /api/v1/tools/uuid-generator Authorization: Bearer hs_your_token_here Content-Type: application/json { "count": 1, "uppercase": false }Response — produced by actually running the request above
Open UUID Generator{ "ok": true, "uuids": [ "a4960c32-80b0-42ab-bb9b-df89ddc39442" ], "source": "helpyself.com" } - Word Counter
Count words, characters and reading time as you type.
/api/v1/tools/word-counterRequest
POST /api/v1/tools/word-counter Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world" }Response — produced by actually running the request above
Open Word Counter{ "ok": true, "stats": { "characters": 11, "charactersNoSpaces": 10, "words": 2, "sentences": 1, "paragraphs": 1, "lines": 1, "readingMinutes": 0.008888888888888889, "speakingMinutes": 0.013333333333333334, "topWords": [ { "word": "hello", "count": 1 }, { "word": "world", "count": 1 } ] }, "source": "helpyself.com" }
Every tool has an API — that is a rule the build enforces, not a target. It is what lets tools be chained together later.
API tokens
The API is open to everyone — a call with no token gets the same limits as browsing without an account. A token raises a script to your own plan's limits, and can be revoked without changing your password.