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
- Batches (for batch tools)
- 10
- 50
- Max file size
- 50 MB
- 50 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 113
Each takes the same options as the tool page, because both call the same code. Open one to see an example request.
- Add Page Numbers to PDF
Add page numbers to a PDF — starting where you want, skipping the pages that should stay clean.
/api/v1/tools/pdf-page-numbersRequest
POST /api/v1/tools/pdf-page-numbers Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "name": "document", "position": "bottom-centre", "format": "plain", "from": 1, "startAt": 1 }Response — produced by actually running the request above
Open Add Page Numbers to PDF{ "ok": true, "name": "document-numbered.pdf", "numbered": 1, "data": "<1640 base64 characters>", "source": "helpyself.com" } - Age Calculator
An age calculator: your exact age in years, months and days, from a date of birth.
/api/v1/tools/age-calculatorRequest
POST /api/v1/tools/age-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "birth": "2000-01-01" }Response — produced by actually running the request above
Open Age Calculator{ "asOf": "2026-09-17", "years": 26, "months": 8, "days": 16, "totalDays": 9756, "totalWeeks": 1393, "totalMonths": 320, "totalHours": 234144, "totalMinutes": 14048640, "bornOn": 6, "nextBirthday": { "date": { "year": 2027, "month": 1, "day": 1 }, "inDays": 106, "turning": 27, "isToday": false }, "source": "helpyself.com" } - App Background Preview
Find the app background image size that survives on every phone and tablet.
/api/v1/tools/app-background-previewRequest
POST /api/v1/tools/app-background-preview Authorization: Bearer hs_your_token_here Content-Type: application/json { "width": 16, "height": 9, "mode": "fill", "respectInsets": false }Response — produced by actually running the request above
Open App Background Preview{ "ok": true, "image": { "width": 16, "height": 9 }, "mode": "fill", "safe": { "x": 6, "y": 1, "width": 4, "height": 6 }, "safeCoverage": 0.1522, "devices": [ { "device": "phone-21-9", "name": "Cinematic phone", "ratio": "21:9", "models": [ "Sony Xperia 1 & 5", "Galaxy Z Flip (open)" ], "orientation": "portrait", "screen": { "width": 411, "height": 960 }, "visible": { "x": 6, "y": 0, "width": 4, "height": 9 }, "unobstructed": { "x": 6, "y": 0, "width": 4, "height": 9 }, "coverage": 0.2408, "letterboxed": false, "distorted": false }, { "device": "phone-21-9", "name": "Cinematic phone", "ratio": "21:9", "models": [ "Sony Xperia 1 & 5", "Galaxy Z Flip (open)" ], "orientation": "landscape", "screen": { "width": 960, "height": 411 }, "visible": { "x": 0, "y": 1, "width": 16, "height": 7 }, "unobstructed": { "x": 0, "y": 1, "width": 16, "height": 7 }, "coverage": 0.7611, "letterboxed": false, "distorted": false }, { "device": "android-tall", "name": "Tall Android", "ratio": "20:9", "models": [ "Google Pixel 9, 8, 7, 6", "OnePlus 12, 11", "Xiaomi, most modern Android" ], "orientation": "portrait", "screen": { "width": 412, "height": 915 }, "visible": { "x": 6, "y": 0, "width": 4, "height": 9 }, "unobstructed": { "x": 6, "y": 0, "width": 4, "height": 9 }, "coverage": 0.2533, "letterboxed": false, "distorted": false }, { "device": "android-tall", "name": "Tall Android", "ratio": "20:9", "models": [ "Google Pixel 9, 8, 7, 6", "OnePlus 12, 11", "Xiaomi, most modern Android" ], "orientation": "landscape", "screen": { "width": 915, "height": 412 }, "visible": { "x": 0, "y": 1, "width": 16, "height": 7 }, "unobstructed": { "x": 0, "y": 1, "width": 16, "height": 7 }, "coverage": 0.8005, "letterboxed": false, "distorted": false }, { "device": "iphone-tall", "name": "Tall iPhone", "ratio": "19.5:9", "models": [ "iPhone 16, 15, 14, 13, 12", "iPhone 11 Pro, XS, X", "all sizes incl. Plus & Pro Max" ], "orientation": "portrait", "screen": { "width": 393, "height": 852 }, "visible": { "x": 6, "y": 0, "width": 4, "height": 9 }, "unobstructed": { "x": 6, "y": 1, "width": 4, "height": 8 }, "coverage": 0.2595, "letterboxed": false, "distorted": false }, { "device": "iphone-tall", "name": "Tall iPhone", "ratio": "19.5:9", "models": [ "iPhone 16, 15, 14, 13, 12", "iPhone 11 Pro, XS, X", "all sizes incl. Plus & Pro Max" ], "orientation": "landscape", "screen": { "width": 852, "height": 393 }, "visible": { "x": 0, "y": 1, "width": 16, "height": 7 }, "unobstructed": { "x": 0, "y": 1, "width": 16, "height": 7 }, "coverage": 0.82, "letterboxed": false, "distorted": false }, { "device": "phone-19-9", "name": "Mid-range Android", "ratio": "19:9", "models": [ "Galaxy A series", "Moto G", "many 2019-era Android" ], "orientation": "portrait", "screen": { "width": 360, "height": 760 }, "visible": { "x": 6, "y": 0, "width": 4, "height": 9 }, "unobstructed": { "x": 6, "y": 0, "width": 4, "height": 8 }, "coverage": 0.2664, "letterboxed": false, "distorted": false }, { "device": "phone-19-9", "name": "Mid-range Android", "ratio": "19:9", "models": [ "Galaxy A series", "Moto G", "many 2019-era Android" ], "orientation": "landscape", "screen": { "width": 760, "height": 360 }, "visible": { "x": 0, "y": 1, "width": 16, "height": 8 }, "unobstructed": { "x": 0, "y": 1, "width": 16, "height": 7 }, "coverage": 0.8421, "letterboxed": false, "distorted": false }, { "device": "phone-18-5-9", "name": "Galaxy S (older)", "ratio": "18.5:9", "models": [ "Galaxy S10, S9, S8", "Galaxy Note 9, 8" ], "orientation": "portrait", "screen": { "width": 360, "height": 740 }, "visible": { "x": 6, "y": 0, "width": 4, "height": 9 }, "unobstructed": { "x": 6, "y": 0, "width": 4, "height": 8 }, "coverage": 0.2736, "letterboxed": false, "distorted": false }, { "device": "phone-18-5-9", "name": "Galaxy S (older)", "ratio": "18.5:9", "models": [ "Galaxy S10, S9, S8", "Galaxy Note 9, 8" ], "orientation": "landscape", "screen": { "width": 740, "height": 360 }, "visible": { "x": 0, "y": 1, "width": 16, "height": 8 }, "unobstructed": { "x": 0, "y": 1, "width": 16, "height": 8 }, "coverage": 0.8649, "letterboxed": false, "distorted": false }, { "device": "phone-18-9", "name": "Univisium phone", "ratio": "18:9 (2:1)", "models": [ "LG G6, V30", "Pixel 2 XL", "early tall Android" ], "orientation": "portrait", "screen": { "width": 360, "height": 720 }, "visible": { "x": 6, "y": 0, "width": 5, "height": 9 }, "unobstructed": { "x": 6, "y": 0, "width": 5, "height": 8 }, "coverage": 0.2813, "letterboxed": false, "distorted": false }, { "device": "phone-18-9", "name": "Univisium phone", "ratio": "18:9 (2:1)", "models": [ "LG G6, V30", "Pixel 2 XL", "early tall Android" ], "orientation": "landscape", "screen": { "width": 720, "height": 360 }, "visible": { "x": 0, "y": 1, "width": 16, "height": 8 }, "unobstructed": { "x": 0, "y": 1, "width": 16, "height": 8 }, "coverage": 0.8889, "letterboxed": false, "distorted": false }, { "device": "phone-16-9", "name": "Older phone", "ratio": "16:9", "models": [ "iPhone SE (2nd & 3rd gen)", "iPhone 8, 7, 6s", "older & budget Android" ], "orientation": "portrait", "screen": { "width": 375, "height": 667 }, "visible": { "x": 5, "y": 0, "width": 5, "height": 9 }, "unobstructed": { "x": 5, "y": 0, "width": 5, "height": 9 }, "coverage": 0.3162, "letterboxed": false, "distorted": false }, { "device": "phone-16-9", "name": "Older phone", "ratio": "16:9", "models": [ "iPhone SE (2nd & 3rd gen)", "iPhone 8, 7, 6s", "older & budget Android" ], "orientation": "landscape", "screen": { "width": 667, "height": 375 }, "visible": { "x": 0, "y": 0, "width": 16, "height": 9 }, "unobstructed": { "x": 0, "y": 0, "width": 16, "height": 9 }, "coverage": 0.9995, "letterboxed": false, "distorted": false }, { "device": "android-tablet", "name": "Android tablet", "ratio": "16:10", "models": [ "Galaxy Tab S9, S8", "Pixel Tablet", "most Android tablets" ], "orientation": "portrait", "screen": { "width": 800, "height": 1280 }, "visible": { "x": 5, "y": 0, "width": 6, "height": 9 }, "unobstructed": { "x": 5, "y": 0, "width": 6, "height": 9 }, "coverage": 0.3516, "letterboxed": false, "distorted": false }, { "device": "android-tablet", "name": "Android tablet", "ratio": "16:10", "models": [ "Galaxy Tab S9, S8", "Pixel Tablet", "most Android tablets" ], "orientation": "landscape", "screen": { "width": 1280, "height": 800 }, "visible": { "x": 1, "y": 0, "width": 14, "height": 9 }, "unobstructed": { "x": 1, "y": 0, "width": 14, "height": 9 }, "coverage": 0.9, "letterboxed": false, "distorted": false }, { "device": "ipad-modern", "name": "iPad Air & Pro 11\"", "ratio": "1.43:1", "models": [ "iPad Air 11\"", "iPad Pro 11\"", "iPad 10.9\" (10th gen)" ], "orientation": "portrait", "screen": { "width": 834, "height": 1194 }, "visible": { "x": 5, "y": 0, "width": 6, "height": 9 }, "unobstructed": { "x": 5, "y": 0, "width": 6, "height": 9 }, "coverage": 0.3929, "letterboxed": false, "distorted": false }, { "device": "ipad-modern", "name": "iPad Air & Pro 11\"", "ratio": "1.43:1", "models": [ "iPad Air 11\"", "iPad Pro 11\"", "iPad 10.9\" (10th gen)" ], "orientation": "landscape", "screen": { "width": 1194, "height": 834 }, "visible": { "x": 2, "y": 0, "width": 13, "height": 9 }, "unobstructed": { "x": 2, "y": 0, "width": 13, "height": 9 }, "coverage": 0.8053, "letterboxed": false, "distorted": false }, { "device": "tablet-3-2", "name": "Small tablet", "ratio": "3:2", "models": [ "iPad mini", "Surface Pro", "3:2 Chromebooks" ], "orientation": "portrait", "screen": { "width": 912, "height": 1368 }, "visible": { "x": 5, "y": 0, "width": 6, "height": 9 }, "unobstructed": { "x": 5, "y": 0, "width": 6, "height": 9 }, "coverage": 0.375, "letterboxed": false, "distorted": false }, { "device": "tablet-3-2", "name": "Small tablet", "ratio": "3:2", "models": [ "iPad mini", "Surface Pro", "3:2 Chromebooks" ], "orientation": "landscape", "screen": { "width": 1368, "height": 912 }, "visible": { "x": 1, "y": 0, "width": 14, "height": 9 }, "unobstructed": { "x": 1, "y": 0, "width": 14, "height": 9 }, "coverage": 0.8438, "letterboxed": false, "distorted": false }, { "device": "ipad-4-3", "name": "Classic iPad", "ratio": "4:3", "models": [ "iPad 10.2\" (9th gen)", "iPad Pro 12.9\"", "older iPads" ], "orientation": "portrait", "screen": { "width": 768, "height": 1024 }, "visible": { "x": 5, "y": 0, "width": 7, "height": 9 }, "unobstructed": { "x": 5, "y": 0, "width": 7, "height": 9 }, "coverage": 0.4219, "letterboxed": false, "distorted": false }, { "device": "ipad-4-3", "name": "Classic iPad", "ratio": "4:3", "models": [ "iPad 10.2\" (9th gen)", "iPad Pro 12.9\"", "older iPads" ], "orientation": "landscape", "screen": { "width": 1024, "height": 768 }, "visible": { "x": 2, "y": 0, "width": 12, "height": 9 }, "unobstructed": { "x": 2, "y": 0, "width": 12, "height": 9 }, "coverage": 0.75, "letterboxed": false, "distorted": false }, { "device": "fold-cover", "name": "Foldable, closed", "ratio": "23:9", "models": [ "Galaxy Z Fold cover screen", "the narrowest screen here" ], "orientation": "portrait", "screen": { "width": 373, "height": 956 }, "visible": { "x": 6, "y": 0, "width": 4, "height": 9 }, "unobstructed": { "x": 6, "y": 0, "width": 4, "height": 9 }, "coverage": 0.2195, "letterboxed": false, "distorted": false }, { "device": "fold-cover", "name": "Foldable, closed", "ratio": "23:9", "models": [ "Galaxy Z Fold cover screen", "the narrowest screen here" ], "orientation": "landscape", "screen": { "width": 956, "height": 373 }, "visible": { "x": 0, "y": 1, "width": 16, "height": 6 }, "unobstructed": { "x": 0, "y": 1, "width": 16, "height": 6 }, "coverage": 0.6936, "letterboxed": false, "distorted": false }, { "device": "fold-open", "name": "Foldable, open", "ratio": "6:5", "models": [ "Galaxy Z Fold inner screen", "Pixel Fold", "nearly square" ], "orientation": "portrait", "screen": { "width": 748, "height": 898 }, "visible": { "x": 4, "y": 0, "width": 7, "height": 9 }, "unobstructed": { "x": 4, "y": 0, "width": 7, "height": 9 }, "coverage": 0.4685, "letterboxed": false, "distorted": false }, { "device": "fold-open", "name": "Foldable, open", "ratio": "6:5", "models": [ "Galaxy Z Fold inner screen", "Pixel Fold", "nearly square" ], "orientation": "landscape", "screen": { "width": 898, "height": 748 }, "visible": { "x": 3, "y": 0, "width": 11, "height": 9 }, "unobstructed": { "x": 3, "y": 0, "width": 11, "height": 9 }, "coverage": 0.6753, "letterboxed": false, "distorted": false } ], "source": "helpyself.com" } - ASCII Table
The full ASCII table, with the control codes explained rather than left blank.
/api/v1/tools/ascii-tableRequest
POST /api/v1/tools/ascii-table Authorization: Bearer hs_your_token_here Content-Type: application/json { "search": "", "includeExtended": false }Response — produced by actually running the request above
Open ASCII Table{ "ok": true, "count": 128, "results": [ { "decimal": 0, "hex": "00", "octal": "000", "binary": "00000000", "character": "NUL", "name": "Null", "printable": false, "note": "Ends a string in C, and means nothing at all in text — a null byte in a text file is usually a sign something wrote binary by mistake." }, { "decimal": 1, "hex": "01", "octal": "001", "binary": "00000001", "character": "SOH", "name": "Start of Heading", "printable": false }, { "decimal": 2, "hex": "02", "octal": "002", "binary": "00000010", "character": "STX", "name": "Start of Text", "printable": false }, { "decimal": 3, "hex": "03", "octal": "003", "binary": "00000011", "character": "ETX", "name": "End of Text", "printable": false, "note": "What Ctrl+C sends as a character, though the interrupt it triggers in a terminal is a separate mechanism." }, { "decimal": 4, "hex": "04", "octal": "004", "binary": "00000100", "character": "EOT", "name": "End of Transmission", "printable": false, "note": "Ctrl+D — what closes standard input at a shell prompt." }, { "decimal": 5, "hex": "05", "octal": "005", "binary": "00000101", "character": "ENQ", "name": "Enquiry", "printable": false }, { "decimal": 6, "hex": "06", "octal": "006", "binary": "00000110", "character": "ACK", "name": "Acknowledge", "printable": false }, { "decimal": 7, "hex": "07", "octal": "007", "binary": "00000111", "character": "BEL", "name": "Bell", "printable": false, "note": "Rang an actual bell on a teletype. Terminals still beep or flash at it." }, { "decimal": 8, "hex": "08", "octal": "010", "binary": "00001000", "character": "BS", "name": "Backspace", "printable": false }, { "decimal": 9, "hex": "09", "octal": "011", "binary": "00001001", "character": "HT", "name": "Horizontal Tab", "printable": false, "note": "The tab key. Distinct from a run of spaces, which is the root of a great many diffs." }, { "decimal": 10, "hex": "0A", "octal": "012", "binary": "00001010", "character": "LF", "name": "Line Feed", "printable": false, "note": "A newline on Unix and macOS. On Windows a line ends with CR then LF, which is why files gain stray ^M characters crossing between them." }, { "decimal": 11, "hex": "0B", "octal": "013", "binary": "00001011", "character": "VT", "name": "Vertical Tab", "printable": false }, { "decimal": 12, "hex": "0C", "octal": "014", "binary": "00001100", "character": "FF", "name": "Form Feed", "printable": false, "note": "Ejected the page on a printer; still used to separate sections in some source files." }, { "decimal": 13, "hex": "0D", "octal": "015", "binary": "00001101", "character": "CR", "name": "Carriage Return", "printable": false, "note": "Returned the print head to the left margin. Alone it is an old Mac newline; before LF it is a Windows one." }, { "decimal": 14, "hex": "0E", "octal": "016", "binary": "00001110", "character": "SO", "name": "Shift Out", "printable": false }, { "decimal": 15, "hex": "0F", "octal": "017", "binary": "00001111", "character": "SI", "name": "Shift In", "printable": false }, { "decimal": 16, "hex": "10", "octal": "020", "binary": "00010000", "character": "DLE", "name": "Data Link Escape", "printable": false }, { "decimal": 17, "hex": "11", "octal": "021", "binary": "00010001", "character": "DC1", "name": "Device Control 1", "printable": false, "note": "XON — resumes a paused terminal. Ctrl+Q." }, { "decimal": 18, "hex": "12", "octal": "022", "binary": "00010010", "character": "DC2", "name": "Device Control 2", "printable": false }, { "decimal": 19, "hex": "13", "octal": "023", "binary": "00010011", "character": "DC3", "name": "Device Control 3", "printable": false, "note": "XOFF — pauses a terminal. Ctrl+S, and the reason a terminal sometimes appears to freeze after a mistyped save." }, { "decimal": 20, "hex": "14", "octal": "024", "binary": "00010100", "character": "DC4", "name": "Device Control 4", "printable": false }, { "decimal": 21, "hex": "15", "octal": "025", "binary": "00010101", "character": "NAK", "name": "Negative Acknowledge", "printable": false }, { "decimal": 22, "hex": "16", "octal": "026", "binary": "00010110", "character": "SYN", "name": "Synchronous Idle", "printable": false }, { "decimal": 23, "hex": "17", "octal": "027", "binary": "00010111", "character": "ETB", "name": "End of Transmission Block", "printable": false }, { "decimal": 24, "hex": "18", "octal": "030", "binary": "00011000", "character": "CAN", "name": "Cancel", "printable": false }, { "decimal": 25, "hex": "19", "octal": "031", "binary": "00011001", "character": "EM", "name": "End of Medium", "printable": false }, { "decimal": 26, "hex": "1A", "octal": "032", "binary": "00011010", "character": "SUB", "name": "Substitute", "printable": false, "note": "Ctrl+Z, and the end-of-file marker in DOS text files." }, { "decimal": 27, "hex": "1B", "octal": "033", "binary": "00011011", "character": "ESC", "name": "Escape", "printable": false, "note": "Begins every terminal escape sequence — colour, cursor movement, everything a terminal does beyond printing." }, { "decimal": 28, "hex": "1C", "octal": "034", "binary": "00011100", "character": "FS", "name": "File Separator", "printable": false, "note": "One of four separators for structured data, from the tape era. Occasionally still used to delimit fields that might contain commas." }, { "decimal": 29, "hex": "1D", "octal": "035", "binary": "00011101", "character": "GS", "name": "Group Separator", "printable": false }, { "decimal": 30, "hex": "1E", "octal": "036", "binary": "00011110", "character": "RS", "name": "Record Separator", "printable": false }, { "decimal": 31, "hex": "1F", "octal": "037", "binary": "00011111", "character": "US", "name": "Unit Separator", "printable": false }, { "decimal": 32, "hex": "20", "octal": "040", "binary": "00100000", "character": " ", "name": "Space", "printable": true }, { "decimal": 33, "hex": "21", "octal": "041", "binary": "00100001", "character": "!", "name": "Exclamation mark", "printable": true }, { "decimal": 34, "hex": "22", "octal": "042", "binary": "00100010", "character": "\"", "name": "Double quote", "printable": true, "htmlEntity": """ }, { "decimal": 35, "hex": "23", "octal": "043", "binary": "00100011", "character": "#", "name": "Number sign", "printable": true }, { "decimal": 36, "hex": "24", "octal": "044", "binary": "00100100", "character": "$", "name": "Dollar sign", "printable": true }, { "decimal": 37, "hex": "25", "octal": "045", "binary": "00100101", "character": "%", "name": "Percent sign", "printable": true }, { "decimal": 38, "hex": "26", "octal": "046", "binary": "00100110", "character": "&", "name": "Ampersand", "printable": true, "htmlEntity": "&" }, { "decimal": 39, "hex": "27", "octal": "047", "binary": "00100111", "character": "'", "name": "Apostrophe", "printable": true, "htmlEntity": "'" }, { "decimal": 40, "hex": "28", "octal": "050", "binary": "00101000", "character": "(", "name": "Left parenthesis", "printable": true }, { "decimal": 41, "hex": "29", "octal": "051", "binary": "00101001", "character": ")", "name": "Right parenthesis", "printable": true }, { "decimal": 42, "hex": "2A", "octal": "052", "binary": "00101010", "character": "*", "name": "Asterisk", "printable": true }, { "decimal": 43, "hex": "2B", "octal": "053", "binary": "00101011", "character": "+", "name": "Plus sign", "printable": true }, { "decimal": 44, "hex": "2C", "octal": "054", "binary": "00101100", "character": ",", "name": "Comma", "printable": true }, { "decimal": 45, "hex": "2D", "octal": "055", "binary": "00101101", "character": "-", "name": "Hyphen-minus", "printable": true }, { "decimal": 46, "hex": "2E", "octal": "056", "binary": "00101110", "character": ".", "name": "Full stop", "printable": true }, { "decimal": 47, "hex": "2F", "octal": "057", "binary": "00101111", "character": "/", "name": "Slash", "printable": true }, { "decimal": 48, "hex": "30", "octal": "060", "binary": "00110000", "character": "0", "name": "Digit 0", "printable": true }, { "decimal": 49, "hex": "31", "octal": "061", "binary": "00110001", "character": "1", "name": "Digit 1", "printable": true }, { "decimal": 50, "hex": "32", "octal": "062", "binary": "00110010", "character": "2", "name": "Digit 2", "printable": true }, { "decimal": 51, "hex": "33", "octal": "063", "binary": "00110011", "character": "3", "name": "Digit 3", "printable": true }, { "decimal": 52, "hex": "34", "octal": "064", "binary": "00110100", "character": "4", "name": "Digit 4", "printable": true }, { "decimal": 53, "hex": "35", "octal": "065", "binary": "00110101", "character": "5", "name": "Digit 5", "printable": true }, { "decimal": 54, "hex": "36", "octal": "066", "binary": "00110110", "character": "6", "name": "Digit 6", "printable": true }, { "decimal": 55, "hex": "37", "octal": "067", "binary": "00110111", "character": "7", "name": "Digit 7", "printable": true }, { "decimal": 56, "hex": "38", "octal": "070", "binary": "00111000", "character": "8", "name": "Digit 8", "printable": true }, { "decimal": 57, "hex": "39", "octal": "071", "binary": "00111001", "character": "9", "name": "Digit 9", "printable": true }, { "decimal": 58, "hex": "3A", "octal": "072", "binary": "00111010", "character": ":", "name": "Colon", "printable": true }, { "decimal": 59, "hex": "3B", "octal": "073", "binary": "00111011", "character": ";", "name": "Semicolon", "printable": true }, { "decimal": 60, "hex": "3C", "octal": "074", "binary": "00111100", "character": "<", "name": "Less-than sign", "printable": true, "htmlEntity": "<" }, { "decimal": 61, "hex": "3D", "octal": "075", "binary": "00111101", "character": "=", "name": "Equals sign", "printable": true }, { "decimal": 62, "hex": "3E", "octal": "076", "binary": "00111110", "character": ">", "name": "Greater-than sign", "printable": true, "htmlEntity": ">" }, { "decimal": 63, "hex": "3F", "octal": "077", "binary": "00111111", "character": "?", "name": "Question mark", "printable": true }, { "decimal": 64, "hex": "40", "octal": "100", "binary": "01000000", "character": "@", "name": "At sign", "printable": true }, { "decimal": 65, "hex": "41", "octal": "101", "binary": "01000001", "character": "A", "name": "Capital A", "printable": true }, { "decimal": 66, "hex": "42", "octal": "102", "binary": "01000010", "character": "B", "name": "Capital B", "printable": true }, { "decimal": 67, "hex": "43", "octal": "103", "binary": "01000011", "character": "C", "name": "Capital C", "printable": true }, { "decimal": 68, "hex": "44", "octal": "104", "binary": "01000100", "character": "D", "name": "Capital D", "printable": true }, { "decimal": 69, "hex": "45", "octal": "105", "binary": "01000101", "character": "E", "name": "Capital E", "printable": true }, { "decimal": 70, "hex": "46", "octal": "106", "binary": "01000110", "character": "F", "name": "Capital F", "printable": true }, { "decimal": 71, "hex": "47", "octal": "107", "binary": "01000111", "character": "G", "name": "Capital G", "printable": true }, { "decimal": 72, "hex": "48", "octal": "110", "binary": "01001000", "character": "H", "name": "Capital H", "printable": true }, { "decimal": 73, "hex": "49", "octal": "111", "binary": "01001001", "character": "I", "name": "Capital I", "printable": true }, { "decimal": 74, "hex": "4A", "octal": "112", "binary": "01001010", "character": "J", "name": "Capital J", "printable": true }, { "decimal": 75, "hex": "4B", "octal": "113", "binary": "01001011", "character": "K", "name": "Capital K", "printable": true }, { "decimal": 76, "hex": "4C", "octal": "114", "binary": "01001100", "character": "L", "name": "Capital L", "printable": true }, { "decimal": 77, "hex": "4D", "octal": "115", "binary": "01001101", "character": "M", "name": "Capital M", "printable": true }, { "decimal": 78, "hex": "4E", "octal": "116", "binary": "01001110", "character": "N", "name": "Capital N", "printable": true }, { "decimal": 79, "hex": "4F", "octal": "117", "binary": "01001111", "character": "O", "name": "Capital O", "printable": true }, { "decimal": 80, "hex": "50", "octal": "120", "binary": "01010000", "character": "P", "name": "Capital P", "printable": true }, { "decimal": 81, "hex": "51", "octal": "121", "binary": "01010001", "character": "Q", "name": "Capital Q", "printable": true }, { "decimal": 82, "hex": "52", "octal": "122", "binary": "01010010", "character": "R", "name": "Capital R", "printable": true }, { "decimal": 83, "hex": "53", "octal": "123", "binary": "01010011", "character": "S", "name": "Capital S", "printable": true }, { "decimal": 84, "hex": "54", "octal": "124", "binary": "01010100", "character": "T", "name": "Capital T", "printable": true }, { "decimal": 85, "hex": "55", "octal": "125", "binary": "01010101", "character": "U", "name": "Capital U", "printable": true }, { "decimal": 86, "hex": "56", "octal": "126", "binary": "01010110", "character": "V", "name": "Capital V", "printable": true }, { "decimal": 87, "hex": "57", "octal": "127", "binary": "01010111", "character": "W", "name": "Capital W", "printable": true }, { "decimal": 88, "hex": "58", "octal": "130", "binary": "01011000", "character": "X", "name": "Capital X", "printable": true }, { "decimal": 89, "hex": "59", "octal": "131", "binary": "01011001", "character": "Y", "name": "Capital Y", "printable": true }, { "decimal": 90, "hex": "5A", "octal": "132", "binary": "01011010", "character": "Z", "name": "Capital Z", "printable": true }, { "decimal": 91, "hex": "5B", "octal": "133", "binary": "01011011", "character": "[", "name": "Left square bracket", "printable": true }, { "decimal": 92, "hex": "5C", "octal": "134", "binary": "01011100", "character": "\\", "name": "Backslash", "printable": true }, { "decimal": 93, "hex": "5D", "octal": "135", "binary": "01011101", "character": "]", "name": "Right square bracket", "printable": true }, { "decimal": 94, "hex": "5E", "octal": "136", "binary": "01011110", "character": "^", "name": "Caret", "printable": true }, { "decimal": 95, "hex": "5F", "octal": "137", "binary": "01011111", "character": "_", "name": "Underscore", "printable": true }, { "decimal": 96, "hex": "60", "octal": "140", "binary": "01100000", "character": "`", "name": "Backtick", "printable": true }, { "decimal": 97, "hex": "61", "octal": "141", "binary": "01100001", "character": "a", "name": "Small a", "printable": true }, { "decimal": 98, "hex": "62", "octal": "142", "binary": "01100010", "character": "b", "name": "Small b", "printable": true }, { "decimal": 99, "hex": "63", "octal": "143", "binary": "01100011", "character": "c", "name": "Small c", "printable": true }, { "decimal": 100, "hex": "64", "octal": "144", "binary": "01100100", "character": "d", "name": "Small d", "printable": true }, { "decimal": 101, "hex": "65", "octal": "145", "binary": "01100101", "character": "e", "name": "Small e", "printable": true }, { "decimal": 102, "hex": "66", "octal": "146", "binary": "01100110", "character": "f", "name": "Small f", "printable": true }, { "decimal": 103, "hex": "67", "octal": "147", "binary": "01100111", "character": "g", "name": "Small g", "printable": true }, { "decimal": 104, "hex": "68", "octal": "150", "binary": "01101000", "character": "h", "name": "Small h", "printable": true }, { "decimal": 105, "hex": "69", "octal": "151", "binary": "01101001", "character": "i", "name": "Small i", "printable": true }, { "decimal": 106, "hex": "6A", "octal": "152", "binary": "01101010", "character": "j", "name": "Small j", "printable": true }, { "decimal": 107, "hex": "6B", "octal": "153", "binary": "01101011", "character": "k", "name": "Small k", "printable": true }, { "decimal": 108, "hex": "6C", "octal": "154", "binary": "01101100", "character": "l", "name": "Small l", "printable": true }, { "decimal": 109, "hex": "6D", "octal": "155", "binary": "01101101", "character": "m", "name": "Small m", "printable": true }, { "decimal": 110, "hex": "6E", "octal": "156", "binary": "01101110", "character": "n", "name": "Small n", "printable": true }, { "decimal": 111, "hex": "6F", "octal": "157", "binary": "01101111", "character": "o", "name": "Small o", "printable": true }, { "decimal": 112, "hex": "70", "octal": "160", "binary": "01110000", "character": "p", "name": "Small p", "printable": true }, { "decimal": 113, "hex": "71", "octal": "161", "binary": "01110001", "character": "q", "name": "Small q", "printable": true }, { "decimal": 114, "hex": "72", "octal": "162", "binary": "01110010", "character": "r", "name": "Small r", "printable": true }, { "decimal": 115, "hex": "73", "octal": "163", "binary": "01110011", "character": "s", "name": "Small s", "printable": true }, { "decimal": 116, "hex": "74", "octal": "164", "binary": "01110100", "character": "t", "name": "Small t", "printable": true }, { "decimal": 117, "hex": "75", "octal": "165", "binary": "01110101", "character": "u", "name": "Small u", "printable": true }, { "decimal": 118, "hex": "76", "octal": "166", "binary": "01110110", "character": "v", "name": "Small v", "printable": true }, { "decimal": 119, "hex": "77", "octal": "167", "binary": "01110111", "character": "w", "name": "Small w", "printable": true }, { "decimal": 120, "hex": "78", "octal": "170", "binary": "01111000", "character": "x", "name": "Small x", "printable": true }, { "decimal": 121, "hex": "79", "octal": "171", "binary": "01111001", "character": "y", "name": "Small y", "printable": true }, { "decimal": 122, "hex": "7A", "octal": "172", "binary": "01111010", "character": "z", "name": "Small z", "printable": true }, { "decimal": 123, "hex": "7B", "octal": "173", "binary": "01111011", "character": "{", "name": "Left curly brace", "printable": true }, { "decimal": 124, "hex": "7C", "octal": "174", "binary": "01111100", "character": "|", "name": "Vertical bar", "printable": true }, { "decimal": 125, "hex": "7D", "octal": "175", "binary": "01111101", "character": "}", "name": "Right curly brace", "printable": true }, { "decimal": 126, "hex": "7E", "octal": "176", "binary": "01111110", "character": "~", "name": "Tilde", "printable": true }, { "decimal": 127, "hex": "7F", "octal": "177", "binary": "01111111", "character": "DEL", "name": "Delete", "printable": false, "note": "At the end of the table rather than beside Backspace because on punched tape it was all seven holes — the one pattern that could overwrite any other." } ], "source": "helpyself.com" } - Auto Redact PDF
Auto redact PDF files: it finds the personal information, you confirm, the words are deleted.
/api/v1/tools/auto-redact-pdfRequest
Open Auto Redact PDFPOST /api/v1/tools/auto-redact-pdf Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello worldxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } - Average Calculator
A mean median mode calculator, with standard deviation and the spread.
/api/v1/tools/average-calculatorRequest
POST /api/v1/tools/average-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "numbers": "12, 15, 15, 18, 22" }Response — produced by actually running the request above
Open Average Calculator{ "count": 5, "sum": 82, "mean": 16.4, "median": 15, "mode": [ 15 ], "min": 12, "max": 22, "range": 10, "sampleDeviation": 3.78153408024, "populationDeviation": 3.38230690506, "values": [ 12, 15, 15, 18, 22 ], "source": "helpyself.com" } - AVIF Converter
AVIF to JPG, and JPG to AVIF — the format that halves a photograph.
/api/v1/tools/avif-converterRequest
Open AVIF ConverterPOST /api/v1/tools/avif-converter Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "name": "image.jpg", "type": "image/jpeg", "format": "image/avif", "quality": 60 } - Barcode Generator
A barcode generator for EAN-13, UPC-A, EAN-8 and Code 128 — check digit included.
/api/v1/tools/barcode-generatorRequest
Open Barcode GeneratorPOST /api/v1/tools/barcode-generator Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "symbology": "ean13", "scale": 3, "height": 80, "showText": true } - Barcode Reader
A barcode scanner online — read a barcode or QR code from a photo or screenshot.
/api/v1/tools/barcode-readerRequest
POST /api/v1/tools/barcode-reader Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>" }Response — produced by actually running the request above
Open Barcode Reader{ "ok": true, "codes": [], "source": "helpyself.com" } - Base64 Encoder & Decoder
Base64 encode and decode text instantly, with full Unicode support.
/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" } - Binary Translator
A binary translator both ways — binary to text, text to binary, hex and decimal too.
/api/v1/tools/binary-translatorRequest
POST /api/v1/tools/binary-translator Authorization: Bearer hs_your_token_here Content-Type: application/json { "input": "hello world", "readAs": "auto" }Response — produced by actually running the request above
Open Binary Translator{ "ok": true, "readAs": "text", "byteCount": 11, "text": "hello world", "binary": "01101000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01101100 01100100", "hex": "68 65 6C 6C 6F 20 77 6F 72 6C 64", "decimal": "104 101 108 108 111 32 119 111 114 108 100", "octal": "150 145 154 154 157 040 167 157 162 154 144", "source": "helpyself.com" } - BMI Calculator
A BMI calculator in metric or imperial, worked out in your browser.
/api/v1/tools/bmi-calculatorRequest
Open BMI CalculatorPOST /api/v1/tools/bmi-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "weight": 100, "units": "metric" } - Body Fat Calculator
A body fat calculator that works from a tape measure, using the US Navy method.
/api/v1/tools/body-fat-calculatorRequest
Open Body Fat CalculatorPOST /api/v1/tools/body-fat-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "sex": "male", "system": "metric", "height": 9, "neck": 100, "waist": 100 } - Bulk Image Resizer
A bulk image resizer for a whole folder 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 } - Business Days
Count forward or back a number of working days and see where you land.
/api/v1/tools/business-daysRequest
POST /api/v1/tools/business-days Authorization: Bearer hs_your_token_here Content-Type: application/json { "startDate": "2000-01-01", "days": 10 }Response — produced by actually running the request above
Open Business Days{ "date": "2000-01-14", "weekday": 5, "stepped": 10, "calendarDays": 13, "holidaysUsed": [], "startIsWorkingDay": false, "source": "helpyself.com" } - Calorie Calculator
Work out how many calories you burn a day, and what to eat for a goal.
/api/v1/tools/calorie-calculatorRequest
POST /api/v1/tools/calorie-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "sex": "female", "age": 100, "weightKg": 100, "heightCm": 100, "activity": "sedentary" }Response — produced by actually running the request above
Open Calorie Calculator{ "ok": true, "bmr": 964, "maintenance": 1157, "goals": [ { "id": "lose1", "calories": null }, { "id": "lose05", "calories": null }, { "id": "maintain", "calories": 1157 }, { "id": "gain05", "calories": 1657 }, { "id": "gain1", "calories": 2157 } ], "floor": 1200, "reliable": false, "source": "helpyself.com" } - Case Converter
A text case converter: camelCase, snake_case, kebab-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" } - Checksum Verifier
A checksum verifier: paste the published SHA-256 and check your download matches.
/api/v1/tools/checksum-verifierRequest
Open Checksum VerifierPOST /api/v1/tools/checksum-verifier Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "expected": "hello world" } - Coin Flip
A coin toss you can trust — heads or tails, from real randomness.
/api/v1/tools/coin-flipRequest
POST /api/v1/tools/coin-flip Authorization: Bearer hs_your_token_here Content-Type: application/json { "count": 1, "headsPercent": 50 }Response — produced by actually running the request above
Open Coin Flip{ "ok": true, "flips": [ "tails" ], "heads": 0, "tails": 1, "source": "helpyself.com" } - Colour Converter
A colour converter: HEX to RGB, RGB to HEX, and either to 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" } - Compare Two Lists
Compare two lists and see what is only in one, only in the other, and in both.
/api/v1/tools/compare-two-listsRequest
POST /api/v1/tools/compare-two-lists Authorization: Bearer hs_your_token_here Content-Type: application/json { "listA": "hello world", "listB": "hello world", "ignoreCase": true, "trim": true, "ignoreBlank": true }Response — produced by actually running the request above
Open Compare Two Lists{ "ok": true, "onlyA": [], "onlyB": [], "both": [ "hello world" ], "counts": { "onlyA": 0, "onlyB": 0, "both": 1, "duplicatesA": 0, "duplicatesB": 0 }, "source": "helpyself.com" } - Compound Interest
A compound interest calculator with regular deposits and any compounding frequency.
/api/v1/tools/compound-interestRequest
POST /api/v1/tools/compound-interest Authorization: Bearer hs_your_token_here Content-Type: application/json { "amount": 100, "rate": 5, "years": 10 }Response — produced by actually running the request above
Open Compound Interest{ "finalBalance": 164.7, "totalContributed": 100, "totalInterest": 64.7, "effectiveAnnualRate": 5.12, "rows": [ { "year": 1, "contributed": 100, "interest": 5.12, "balance": 105.12 }, { "year": 2, "contributed": 100, "interest": 10.49, "balance": 110.49 }, { "year": 3, "contributed": 100, "interest": 16.15, "balance": 116.15 }, { "year": 4, "contributed": 100, "interest": 22.09, "balance": 122.09 }, { "year": 5, "contributed": 100, "interest": 28.34, "balance": 128.34 }, { "year": 6, "contributed": 100, "interest": 34.9, "balance": 134.9 }, { "year": 7, "contributed": 100, "interest": 41.8, "balance": 141.8 }, { "year": 8, "contributed": 100, "interest": 49.06, "balance": 149.06 }, { "year": 9, "contributed": 100, "interest": 56.68, "balance": 156.68 }, { "year": 10, "contributed": 100, "interest": 64.7, "balance": 164.7 } ], "source": "helpyself.com" } - Compress Image to Size
Compress image to 100KB, 1MB, or whatever exact size the form demands.
/api/v1/tools/compress-to-sizeRequest
Open Compress Image to SizePOST /api/v1/tools/compress-to-size Authorization: Bearer hs_your_token_here Content-Type: application/json { "name": "image.jpg", "type": "image/png", "data": "<base64-encoded file bytes>", "targetKb": 100 } - Compress PDF
Reduce PDF size 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
A colour contrast checker for 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" } - Contrast Fixer
A colour contrast fixer — the nearest accessible colour that passes WCAG AA.
/api/v1/tools/contrast-fixerRequest
POST /api/v1/tools/contrast-fixer Authorization: Bearer hs_your_token_here Content-Type: application/json { "foreground": "#ffffff", "background": "#ffffff", "level": "AA", "adjust": "either" }Response — produced by actually running the request above
Open Contrast Fixer{ "ok": true, "foreground": "#ffffff", "background": "#ffffff", "ratio": 1, "required": 4.5, "passes": false, "best": { "color": "#757575", "role": "foreground", "ratio": 4.61, "distance": 54 }, "options": [ { "color": "#757575", "role": "foreground", "ratio": 4.61, "distance": 54 }, { "color": "#757575", "role": "background", "ratio": 4.61, "distance": 54 }, { "color": "#737373", "role": "foreground", "ratio": 4.74, "distance": 55 }, { "color": "#737373", "role": "background", "ratio": 4.74, "distance": 55 }, { "color": "#707070", "role": "foreground", "ratio": 4.95, "distance": 56 }, { "color": "#707070", "role": "background", "ratio": 4.95, "distance": 56 }, { "color": "#6e6e6e", "role": "foreground", "ratio": 5.1, "distance": 57 }, { "color": "#6e6e6e", "role": "background", "ratio": 5.1, "distance": 57 }, { "color": "#6b6b6b", "role": "foreground", "ratio": 5.33, "distance": 58 }, { "color": "#6b6b6b", "role": "background", "ratio": 5.33, "distance": 58 }, { "color": "#696969", "role": "foreground", "ratio": 5.49, "distance": 59 }, { "color": "#696969", "role": "background", "ratio": 5.49, "distance": 59 } ], "source": "helpyself.com" } - Contrast Grid
A contrast grid for your whole palette — every pairing checked against WCAG.
/api/v1/tools/contrast-gridRequest
Open Contrast GridPOST /api/v1/tools/contrast-grid Authorization: Bearer hs_your_token_here Content-Type: application/json { "palette": "hello world", "level": "AA" } - Cookie Checker
A cookie checker that shows what a website sets, and whether Secure, HttpOnly and SameSite are on.
/api/v1/tools/cookie-checkerRequest
POST /api/v1/tools/cookie-checker Authorization: Bearer hs_your_token_here Content-Type: application/json { "url": "https://example.com" }Response — produced by actually running the request above
Open Cookie Checker{ "ok": true, "url": "https://example.com/", "status": 200, "cookies": [], "source": "helpyself.com" } - Countdown Timer
A 5 minute timer, a 10 minute timer, or any timer online — with an alarm.
/api/v1/tools/countdown-timerRequest
POST /api/v1/tools/countdown-timer Authorization: Bearer hs_your_token_here Content-Type: application/json { "hours": 0, "minutes": 5, "seconds": 0 }Response — produced by actually running the request above
Open Countdown Timer{ "ok": true, "ms": 300000, "formatted": "05:00", "parts": { "hours": 0, "minutes": 5, "seconds": 0 }, "source": "helpyself.com" } - Cron Expression Parser
Read a cron expression in plain English, and see exactly when it will next run.
/api/v1/tools/cron-expressionRequest
Open Cron Expression ParserPOST /api/v1/tools/cron-expression Authorization: Bearer hs_your_token_here Content-Type: application/json { "expression": "hello world", "timezone": "UTC", "count": 5 } - Crop Image
Crop image online — drag the box, or type an exact size in pixels.
/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": 16, "height": 9, "format": "auto", "quality": 0.9 } - CSS Gradient Generator
A CSS gradient generator for linear, radial and conic — copy the code straight out.
/api/v1/tools/gradient-generatorRequest
POST /api/v1/tools/gradient-generator Authorization: Bearer hs_your_token_here Content-Type: application/json { "type": "linear", "angle": 180, "stops": [ { "colour": "#ffffff" }, { "colour": "#ffffff" } ], "shape": "ellipse", "repeating": false }Response — produced by actually running the request above
Open CSS Gradient Generator{ "ok": true, "value": "linear-gradient(180deg, #ffffff, #ffffff)", "css": "background: linear-gradient(180deg, #ffffff, #ffffff);", "fallback": "background: #ffffff;", "source": "helpyself.com" } - CSV to JSON
CSV to JSON and back — turn a spreadsheet export into clean, readable JSON.
/api/v1/tools/csv-to-jsonRequest
POST /api/v1/tools/csv-to-json Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "direction": "csv-to-json", "delimiter": "auto", "header": true, "shape": "objects", "trim": true, "typed": false, "indent": 2 }Response — produced by actually running the request above
Open CSV to JSON{ "ok": true, "output": "[]", "rows": 0, "columns": 1, "delimiter": ",", "source": "helpyself.com" } - Currency Converter
An exchange rate calculator using the European Central Bank's official daily rate
/api/v1/tools/currency-converterRequest
POST /api/v1/tools/currency-converter Authorization: Bearer hs_your_token_here Content-Type: application/json { "amount": 100, "fromCurrency": "EUR", "toCurrency": "EUR" }Response — produced by actually running the request above
Open Currency Converter{ "ok": true, "value": 100, "rate": 1, "formatted": "100.00", "date": "2026-09-17", "rates": { "EUR": 1, "USD": 1.1481, "JPY": 178.75, "CZK": 24.308, "DKK": 7.4753, "GBP": 0.8583, "HUF": 362.98, "PLN": 4.358, "RON": 5.2624, "SEK": 11.2715, "CHF": 0.9466, "ISK": 139.8, "NOK": 10.825, "TRY": 55.8841, "AUD": 1.6139, "BRL": 5.8905, "CAD": 1.6068, "CNY": 7.7009, "HKD": 9.0071, "IDR": 20352.48, "ILS": 3.4825, "INR": 110.1475, "KRW": 1587.31, "MXN": 19.7337, "MYR": 4.7061, "NZD": 1.9993, "PHP": 72.006, "SGD": 1.4642, "THB": 38.237, "ZAR": 18.6595 }, "source": "helpyself.com" } - Date Difference
How many days between two dates — plus weeks, months and working days.
/api/v1/tools/date-differenceRequest
POST /api/v1/tools/date-difference Authorization: Bearer hs_your_token_here Content-Type: application/json { "fromDate": "2000-01-01", "toDate": "2000-03-15" }Response — produced by actually running the request above
Open Date Difference{ "from": "2000-01-01", "to": "2000-03-15", "direction": "forward", "years": 0, "months": 2, "days": 14, "totalDays": 74, "inclusiveDays": 75, "totalWeeks": 10, "remainderDays": 4, "totalMonths": 2, "workingDays": 52, "weekendDays": 22, "fromWeekday": 6, "toWeekday": 3, "source": "helpyself.com" } - Days Until Christmas
How many days until Christmas — counted in sleeps, not hours, and right across time zones.
/api/v1/tools/days-until-christmasRequest
POST /api/v1/tools/days-until-christmas Authorization: Bearer hs_your_token_here Content-Type: application/json { "month": 12, "day": 25 }Response — produced by actually running the request above
Open Days Until Christmas{ "ok": true, "days": 99, "year": 2026, "today": false, "weeks": 14, "remainderDays": 1, "countedFrom": "2026-09-17", "source": "helpyself.com" } - Dice Roller
A dice roller for any number of sides, rolled in your browser.
/api/v1/tools/dice-rollerRequest
POST /api/v1/tools/dice-roller Authorization: Bearer hs_your_token_here Content-Type: application/json { "dice": 1, "sides": 6, "modifier": 0 }Response — produced by actually running the request above
Open Dice Roller{ "ok": true, "rolls": [ 1 ], "subtotal": 1, "modifier": 0, "total": 1, "source": "helpyself.com" } - Favicon Generator
A favicon generator that turns any image into a complete 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>" } - Find a Time
Propose a few times, send one link, see when everybody can make it
/api/v1/tools/find-a-timeRequest
Open Find a TimePOST /api/v1/tools/find-a-time Authorization: Bearer hs_your_token_here Content-Type: application/json { "title": "hello world", "options": [ { "date": "2000-01-01" }, { "date": "2000-01-01" } ], "days": 30 } - Fraction Calculator
A fraction calculator for adding, subtracting, multiplying and dividing — exactly.
/api/v1/tools/fraction-calculatorRequest
POST /api/v1/tools/fraction-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "fractionA": "1/2", "operator": "+", "fractionB": "1/3" }Response — produced by actually running the request above
Open Fraction Calculator{ "fraction": { "numerator": 5, "denominator": 6 }, "whole": 0, "remainder": { "numerator": 5, "denominator": 6 }, "decimal": 0.833333333333, "working": "1/2 + 1/3 = 5/6", "source": "helpyself.com" } - Fuel Cost Calculator
A fuel cost calculator for any drive — your units, your currency, split however you like.
/api/v1/tools/fuel-cost-calculatorRequest
POST /api/v1/tools/fuel-cost-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "distance": 100, "distanceUnit": "km", "consumption": 100, "consumptionUnit": "l100km", "price": 100, "priceUnit": "litre", "people": 1, "returnTrip": false }Response — produced by actually running the request above
Open Fuel Cost Calculator{ "ok": true, "total": 10000, "litres": 100, "km": 100, "each": 10000, "perKm": 100, "perMile": 160.9344, "currency": "same as the price given", "source": "helpyself.com" } - GIF Compressor
Compress a GIF by the only three things a GIF has — frames, colours and size. Nothing uploaded.
/api/v1/tools/gif-compressorRequest
Open GIF CompressorPOST /api/v1/tools/gif-compressor Authorization: Bearer hs_your_token_here Content-Type: application/json { "gif": "hello world", "keepEvery": 1, "colours": 128, "scale": 1, "name": "image.gif" } - GPA Calculator
A GPA calculator on the 4.0 scale, weighted by the credits each course is worth.
/api/v1/tools/gpa-calculatorRequest
POST /api/v1/tools/gpa-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "courses": [ { "grade": "A-", "credits": 3 } ] }Response — produced by actually running the request above
Open GPA Calculator{ "courses": [ { "name": "", "points": 3.7, "credits": 3, "letter": "A-" } ], "gpa": 3.7, "totalCredits": 3, "totalPoints": 11.1, "skipped": [], "source": "helpyself.com" } - Hash Generator
A hash generator for SHA-1, SHA-256, SHA-384 and SHA-512.
/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
Compress image online — JPEG, PNG, WebP, AVIF, HEIC, TIFF and BMP, all in your browser.
/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
HEIC to JPG, PNG to JPG, and every other way round — one file or a 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
A photo resizer for any size — JPEG, PNG, WebP or an iPhone HEIC.
/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 } - Image to Text
Image to text: read the words out of a photo — receipts, screenshots, handwriting.
/api/v1/tools/image-to-textRequest
Open Image to TextPOST /api/v1/tools/image-to-text Authorization: Bearer hs_your_token_here Content-Type: application/json { "type": "image/png", "mode": "text" } - Images to PDF
JPG to PDF and PNG to PDF — photos to PDF, in the order you choose.
/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 } - Invoice Generator
A free invoice generator that makes a real PDF — no watermark, no sign-up.
/api/v1/tools/invoice-generatorRequest
POST /api/v1/tools/invoice-generator Authorization: Bearer hs_your_token_here Content-Type: application/json { "from": "hello world", "to": "hello world", "items": [ { "description": "hello world", "quantity": 1, "unitPriceCents": 100 } ], "currency": "USD", "issueDate": "2000-01-01", "paymentTermsDays": 30, "sequence": 1, "taxPercent": 0, "taxLabel": "Tax", "notes": "", "locale": "en-US", "pdf": true }Response — produced by actually running the request above
Open Invoice Generator{ "ok": true, "number": "INV-2000-0001", "due": "2000-01-31", "subtotalCents": 100, "taxCents": 0, "totalCents": 100, "total": "$1.00", "unsupportedCharacters": [], "pdfBase64": "JVBERi0xLjcKJYGBgYEKCjcgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCA2NDQKPj4Kc3RyZWFtCnicnZZNb9NAEIbv+yt8RqqZne+VEIemCRy4AL6hHhAtCNQKFSH4+8zG5MPtJo0Ty46dKPv4nXnfcR7S5ZCgz13s6wN1v76ll29v7/7c/v7+5fPF5c+7mwuD4uxgXjrUbviakLvhXYofxJY70c7U+vh2uE+vuPBSlFfxTiyvu+FHGl6k5ZDep4eRxhgkljjII1oxRnUU9a485RCVHr0zox1Ll6a60qKkgqBLXeGyxXxGIQKAgxTXLsNTMhv2aFNyVYlXhAR1i7P1O+W5igVYC4IdUyx71TWKTTRKfIbOWAmFSA/pdO8z7/Mm+vJ4nKfQWSA75OMKOW8VclV3hjbX6J9lNz+qbUd6oo3mahNHVkWipl9rLrJsdalhOPVqHiFH8AQ5mzSrB1MERhAWugg3sa4aoPXPpgBz95IzKDWrVjXAtmLhG6mASBmY6SoULZo+bICKFWIuWJqctZKZoGndPryJD6JMf9On61jyJsWtq3lPpbufno+W+399lz6e0odxShh4LqXEau12q3Jdc7SxipFS3Hmx2o8SzW+OpmegahB5xVi6BUXjmEy2T5ZsbOUMkpGIFvYDQbXeDCcgiXlbRzaEQBxn8BnYCCxDFotot6oKEt2aCOSsV2GJoNvMGVhUPVLO5aDZlXWDOdnsR4Ao4RgE5iYPnXqrhtq8bJ/fHkaHWRlNCGNNbCdMwikTgcgx9ZZ1As4DhQ0gKolF2lXMJ4OeSTD6mFSCMbmPrzdJHq9PTDJLNMXQtF2mDQNha/P6uMU6UWPPuphXrAgJuZDC8WLtcOd2ZZ0ldi2RxiIxZemwOMCtuK2s+Pd07pPXglcfhY5NqoBGW2lnc92/gwN6/wGIK1HACmVuZHN0cmVhbQplbmRvYmoKCjggMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA2Ci9GaXJzdCAzMgovTGVuZ3RoIDYxOAo+PgpzdHJlYW0KeJydVG1r2zAQ/u5foY/bh9ank046jRDI6wajrLSFjY19cBMRPII9Emd0/34n223axmFjBBHrnrvnXnR3WoFCZa0yyrOyygZQpMijcspRUKNRlt/9/hlVfl1s4j7LP5brvfomKKgb9T3LZ/WhapTOxuPsqDsrmmJbb7LOSOmk/KhxvavXh1XcqdFysVwCWAZwJGcG4EFOACBzlDk3zvKrej0vmqjezN8hoIOgvSbDhF/fSgi7WDT1E2EicTYZAuC8JxFSh3IXDJNDOd72JzkVh2Yi2LI7znc2CW91qbdfyH8KLunMO902ged+k69Fx4F/iyeM+/jLujqf4V3ZbONTwXp+7/o4Qh8Tdfkl3ApOvT8jQoGfTit7djd6/PL1lnXVZPnt4b5pr0mos3xa7GNCVP4hbn/FplwVWb6oVvW6rDYq/1xWk2pfPgr+k/FiWm/X/0ybuiv12C6mFmybLL+J+/qwW0nXJb2WPn289HDhIbC8m+cg3d7aHRWCt+gYyaV5eIW1xqnIDBTYDRkTWBcQ/BljL7NFxrghY7YEmkGfNWYZSfaaZVRPjInROofGDIStJVlCqz2dYp6Zg9bSQqdY8MFYGzCcq4QH1iEEGkimVZAZkFTROXtGwRsiFyz7M7ikakGT13qg1s6xMcaGgciRJDIEWWynxUBPBpENDhTDIwgthoFCWRJSj94N2EkSMqvGwYBdm4dlGVPpOhpouK4QAqUnZOwVpNPzL5/uf8RV28Hpunho3t82aUt0giS7iuuymNYPspNBfkJyiazY6kvpbdnPk6qqm7Sx211dNTIq6eb7/S0UfwB1I4pbCmVuZHN0cmVhbQplbmRvYmoKCjkgMCBvYmoKPDwKL1NpemUgMTAKL1Jvb3QgMiAwIFIKL0luZm8gMyAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUgL1hSZWYKL0xlbmd0aCA0NAovVyBbIDEgMiAyIF0KL0luZGV4IFsgMCAxMCBdCj4+CnN0cmVhbQp4nGNgYPj/n4mBg4EBRDCCCCYQwQwiWEAEKyODAANQ5i6QYF3LwAAAb2oD7gplbmRzdHJlYW0KZW5kb2JqCgpzdGFydHhyZWYKMTQ1MwolJUVPRg==", "source": "helpyself.com" } - JSON Formatter
A JSON formatter that validates and beautifies instantly — or minifies.
/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
A JWT decoder that inspects 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" } - Loan Calculator
A loan calculator for the monthly payment, and how much of it is interest.
/api/v1/tools/loan-calculatorRequest
POST /api/v1/tools/loan-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "amount": 100, "rate": 5, "years": 10 }Response — produced by actually running the request above
Open Loan Calculator{ "monthlyPayment": 1.06, "totalPaid": 127.28, "totalInterest": 27.28, "interestPercentOfPrincipal": 27.3, "months": 120, "firstPaymentInterest": 0.42, "rows": [ { "year": 1, "principalPaid": 7.91, "interestPaid": 4.82, "balance": 92.09 }, { "year": 2, "principalPaid": 8.31, "interestPaid": 4.42, "balance": 83.78 }, { "year": 3, "principalPaid": 8.74, "interestPaid": 3.99, "balance": 75.04 }, { "year": 4, "principalPaid": 9.18, "interestPaid": 3.54, "balance": 65.86 }, { "year": 5, "principalPaid": 9.65, "interestPaid": 3.07, "balance": 56.2 }, { "year": 6, "principalPaid": 10.15, "interestPaid": 2.58, "balance": 46.06 }, { "year": 7, "principalPaid": 10.67, "interestPaid": 2.06, "balance": 35.39 }, { "year": 8, "principalPaid": 11.21, "interestPaid": 1.51, "balance": 24.18 }, { "year": 9, "principalPaid": 11.79, "interestPaid": 0.94, "balance": 12.39 }, { "year": 10, "principalPaid": 12.39, "interestPaid": 0.34, "balance": 0 } ], "source": "helpyself.com" } - Lorem Ipsum Generator
A lorem ipsum generator for placeholder text in 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. Eiusmod reprehenderit eiusmod magna do voluptatem. Cupidatat quasi aperiam error accusantium architecto aperiam lorem, occaecat quae culpa do sed architecto error. Ut aute explicabo dolor, perspiciatis ad irure proident iste incididunt.\n\nQuasi sed perspiciatis est, deserunt esse enim inventore mollit cillum in iste unde est. Non culpa architecto do nemo ipsa aliquip veritatis. Est adipiscing pariatur sit magna sed illo. Totam excepteur ipsum sunt esse laborum officia ea aute, nisi deserunt dicta est ullamco perspiciatis. Deserunt non fugiat ad magna et incididunt incididunt, nostrud nemo ipsa eu dicta quis.\n\nId explicabo unde exercitation cupidatat omnis. Magna elit accusantium doloremque cupidatat consectetur. Veniam proident ad minim, nulla esse tempor aliquip enim do dicta esse amet. Dolore velit velit totam elit culpa dolor. Sed id cupidatat accusantium qui id dicta laudantium ex. Nostrud veritatis quis deserunt sint esse accusantium quae.", "source": "helpyself.com" } - Markdown to HTML
Turn Markdown into clean HTML, with a preview you can trust.
/api/v1/tools/markdown-to-htmlRequest
POST /api/v1/tools/markdown-to-html Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "allowHtml": false, "headingIds": false, "breaks": false }Response — produced by actually running the request above
Open Markdown to HTML{ "ok": true, "html": "<p>hello world</p>", "headings": [], "words": 2, "source": "helpyself.com" } - Merge PDF
Merge PDF files into one document.
/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" } - Mic Test
A microphone test that answers the real question — will they hear me?
/api/v1/tools/mic-testRequest
POST /api/v1/tools/mic-test Authorization: Bearer hs_your_token_here Content-Type: application/json { "samples": [ 1 ] }Response — produced by actually running the request above
Open Mic Test{ "ok": true, "rms": 1, "peak": 1, "decibels": 0, "peakDecibels": 0, "meter": 1, "verdict": "clipping", "source": "helpyself.com" } - Morse Code Translator
A morse code translator both ways — text to morse code, and morse code to text.
/api/v1/tools/morse-code-translatorRequest
POST /api/v1/tools/morse-code-translator Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "direction": "auto" }Response — produced by actually running the request above
Open Morse Code Translator{ "ok": true, "direction": "toMorse", "output": ".... . .-.. .-.. --- / .-- --- .-. .-.. -..", "unsupported": [], "source": "helpyself.com" } - My Video Game Collection
Know what you own, share the list, and stop buying games you already have.
/api/v1/tools/game-collectionRequest
Open My Video Game CollectionPOST /api/v1/tools/game-collection Authorization: Bearer hs_your_token_here Content-Type: application/json { "name": "photo.png", "shared": false } - Pace Calculator
A running pace calculator: give any two of distance, time and pace to get the third.
/api/v1/tools/pace-calculatorRequest
Open Pace CalculatorPOST /api/v1/tools/pace-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "unit": "km" } - Password Generator
A password generator for 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": [ "S0I&qeXybXTnB^rVC#FJ" ], "alphabetSize": 76, "entropyBits": 125, "source": "helpyself.com" } - PDF to Images
PDF to JPG, PDF to PNG — every page as an image, at the size you need.
/api/v1/tools/pdf-to-imagesRequest
Open PDF to ImagesPOST /api/v1/tools/pdf-to-images Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "name": "document.pdf", "type": "image/png", "size": "screen", "quality": 0.92, "archive": false } - PDF to Word
Convert PDF to Word — tables, pictures and all — in your browser
/api/v1/tools/pdf-to-wordRequest
POST /api/v1/tools/pdf-to-word Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "keepPageBreaks": false }Response — produced by actually running the request above
Open PDF to Word{ "ok": true, "docx": "UEsDBBQAAAAAAABgIVh0iEqssgIAALICAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4KPFR5cGVzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L2NvbnRlbnQtdHlwZXMiPjxEZWZhdWx0IEV4dGVuc2lvbj0icmVscyIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sIi8+PERlZmF1bHQgRXh0ZW5zaW9uPSJ4bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii93b3JkL2RvY3VtZW50LnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50Lm1haW4reG1sIi8+PE92ZXJyaWRlIFBhcnROYW1lPSIvd29yZC9zdHlsZXMueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuc3R5bGVzK3htbCIvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3dvcmQvbnVtYmVyaW5nLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLm51bWJlcmluZyt4bWwiLz48L1R5cGVzPlBLAwQUAAAAAAAAYCFYuYFEcSoBAAAqAQAACwAAAF9yZWxzLy5yZWxzPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8UmVsYXRpb25zaGlwcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzIj48UmVsYXRpb25zaGlwIElkPSJySWQxIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL29mZmljZURvY3VtZW50IiBUYXJnZXQ9IndvcmQvZG9jdW1lbnQueG1sIi8+PC9SZWxhdGlvbnNoaXBzPlBLAwQUAAAAAAAAYCFYyQdJ66ABAACgAQAAHAAAAHdvcmQvX3JlbHMvZG9jdW1lbnQueG1sLnJlbHM8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+CjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDEiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc3R5bGVzIiBUYXJnZXQ9InN0eWxlcy54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQyIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL251bWJlcmluZyIgVGFyZ2V0PSJudW1iZXJpbmcueG1sIi8+PC9SZWxhdGlvbnNoaXBzPlBLAwQUAAAAAAAAYCFYYXOPgwEGAAABBgAADwAAAHdvcmQvc3R5bGVzLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4KPHc6c3R5bGVzIHhtbG5zOnc9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy93b3JkcHJvY2Vzc2luZ21sLzIwMDYvbWFpbiI+PHc6ZG9jRGVmYXVsdHM+PHc6clByRGVmYXVsdD48dzpyUHI+PHc6ckZvbnRzIHc6YXNjaWk9IkNhbGlicmkiIHc6aEFuc2k9IkNhbGlicmkiLz48dzpzeiB3OnZhbD0iMjIiLz48L3c6clByPjwvdzpyUHJEZWZhdWx0Pjwvdzpkb2NEZWZhdWx0cz48dzpzdHlsZSB3OnR5cGU9InBhcmFncmFwaCIgdzpkZWZhdWx0PSIxIiB3OnN0eWxlSWQ9Ik5vcm1hbCI+PHc6bmFtZSB3OnZhbD0iTm9ybWFsIi8+PC93OnN0eWxlPjx3OnN0eWxlIHc6dHlwZT0iY2hhcmFjdGVyIiB3OnN0eWxlSWQ9Ikh5cGVybGluayI+PHc6bmFtZSB3OnZhbD0iSHlwZXJsaW5rIi8+PHc6clByPjx3OmNvbG9yIHc6dmFsPSIwNTYzQzEiLz48dzp1IHc6dmFsPSJzaW5nbGUiLz48L3c6clByPjwvdzpzdHlsZT48dzpzdHlsZSB3OnR5cGU9ImNoYXJhY3RlciIgdzpzdHlsZUlkPSJGb290bm90ZVJlZmVyZW5jZSI+PHc6bmFtZSB3OnZhbD0iZm9vdG5vdGUgcmVmZXJlbmNlIi8+PHc6clByPjx3OnZlcnRBbGlnbiB3OnZhbD0ic3VwZXJzY3JpcHQiLz48L3c6clByPjwvdzpzdHlsZT48dzpzdHlsZSB3OnR5cGU9InBhcmFncmFwaCIgdzpzdHlsZUlkPSJGb290bm90ZVRleHQiPjx3Om5hbWUgdzp2YWw9ImZvb3Rub3RlIHRleHQiLz48dzpiYXNlZE9uIHc6dmFsPSJOb3JtYWwiLz48dzpyUHI+PHc6c3ogdzp2YWw9IjIwIi8+PC93OnJQcj48L3c6c3R5bGU+PHc6c3R5bGUgdzp0eXBlPSJwYXJhZ3JhcGgiIHc6c3R5bGVJZD0iSGVhZGluZzEiPjx3Om5hbWUgdzp2YWw9ImhlYWRpbmcgMSIvPjx3OmJhc2VkT24gdzp2YWw9Ik5vcm1hbCIvPjx3OnBQcj48dzpvdXRsaW5lTHZsIHc6dmFsPSIwIi8+PHc6c3BhY2luZyB3OmJlZm9yZT0iMjQwIiB3OmFmdGVyPSIxMjAiLz48L3c6cFByPjx3OnJQcj48dzpiLz48dzpzeiB3OnZhbD0iMzYiLz48L3c6clByPjwvdzpzdHlsZT48dzpzdHlsZSB3OnR5cGU9InBhcmFncmFwaCIgdzpzdHlsZUlkPSJIZWFkaW5nMiI+PHc6bmFtZSB3OnZhbD0iaGVhZGluZyAyIi8+PHc6YmFzZWRPbiB3OnZhbD0iTm9ybWFsIi8+PHc6cFByPjx3Om91dGxpbmVMdmwgdzp2YWw9IjEiLz48dzpzcGFjaW5nIHc6YmVmb3JlPSIyNDAiIHc6YWZ0ZXI9IjEyMCIvPjwvdzpwUHI+PHc6clByPjx3OmIvPjx3OnN6IHc6dmFsPSIyOCIvPjwvdzpyUHI+PC93OnN0eWxlPjx3OnN0eWxlIHc6dHlwZT0icGFyYWdyYXBoIiB3OnN0eWxlSWQ9IkhlYWRpbmczIj48dzpuYW1lIHc6dmFsPSJoZWFkaW5nIDMiLz48dzpiYXNlZE9uIHc6dmFsPSJOb3JtYWwiLz48dzpwUHI+PHc6b3V0bGluZUx2bCB3OnZhbD0iMiIvPjx3OnNwYWNpbmcgdzpiZWZvcmU9IjI0MCIgdzphZnRlcj0iMTIwIi8+PC93OnBQcj48dzpyUHI+PHc6Yi8+PHc6c3ogdzp2YWw9IjI0Ii8+PC93OnJQcj48L3c6c3R5bGU+PC93OnN0eWxlcz5QSwMEFAAAAAAAAGAhWFgPbVuYAQAAmAEAABIAAAB3b3JkL251bWJlcmluZy54bWw8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+Cjx3Om51bWJlcmluZyB4bWxuczp3PSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvd29yZHByb2Nlc3NpbmdtbC8yMDA2L21haW4iPjx3OmFic3RyYWN0TnVtIHc6YWJzdHJhY3ROdW1JZD0iMCI+PHc6bHZsIHc6aWx2bD0iMCI+PHc6c3RhcnQgdzp2YWw9IjEiLz48dzpudW1GbXQgdzp2YWw9ImJ1bGxldCIvPjx3Omx2bFRleHQgdzp2YWw9IuKAoiIvPjx3OnBQcj48dzppbmQgdzpsZWZ0PSI3MjAiIHc6aGFuZ2luZz0iMzYwIi8+PC93OnBQcj48L3c6bHZsPjwvdzphYnN0cmFjdE51bT48dzpudW0gdzpudW1JZD0iMSI+PHc6YWJzdHJhY3ROdW1JZCB3OnZhbD0iMCIvPjwvdzpudW0+PC93Om51bWJlcmluZz5QSwMEFAAAAAAAAGAhWPwalNmhAgAAoQIAABEAAAB3b3JkL2RvY3VtZW50LnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4KPHc6ZG9jdW1lbnQgeG1sbnM6dz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3dvcmRwcm9jZXNzaW5nbWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczp3cD0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L3dvcmRwcm9jZXNzaW5nRHJhd2luZyI+PHc6Ym9keT48dzpwPjx3OnI+PHc6clByPjx3OnJGb250cyB3OmFzY2lpPSJzYW5zLXNlcmlmIiB3OmhBbnNpPSJzYW5zLXNlcmlmIiB3OmNzPSJzYW5zLXNlcmlmIi8+PHc6c3ogdzp2YWw9IjM2Ii8+PC93OnJQcj48dzp0IHhtbDpzcGFjZT0icHJlc2VydmUiPkhlbHB5U2VsZjwvdzp0PjwvdzpyPjwvdzpwPjx3OnNlY3RQcj48dzpwZ1N6IHc6dz0iNDAwMCIgdzpoPSIyNDAwIiB3Om9yaWVudD0ibGFuZHNjYXBlIi8+PHc6cGdNYXIgdzp0b3A9IjYwMCIgdzpyaWdodD0iMTAwMCIgdzpib3R0b209IjYwMCIgdzpsZWZ0PSI0MDAiIHc6aGVhZGVyPSIwIiB3OmZvb3Rlcj0iMCIgdzpndXR0ZXI9IjAiLz48L3c6c2VjdFByPjwvdzpib2R5Pjwvdzpkb2N1bWVudD5QSwECFAAUAAAAAAAAYCFYdIhKrLICAACyAgAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBLAQIUABQAAAAAAABgIVi5gURxKgEAACoBAAALAAAAAAAAAAAAAAAAAOMCAABfcmVscy8ucmVsc1BLAQIUABQAAAAAAABgIVjJB0nroAEAAKABAAAcAAAAAAAAAAAAAAAAADYEAAB3b3JkL19yZWxzL2RvY3VtZW50LnhtbC5yZWxzUEsBAhQAFAAAAAAAAGAhWGFzj4MBBgAAAQYAAA8AAAAAAAAAAAAAAAAAEAYAAHdvcmQvc3R5bGVzLnhtbFBLAQIUABQAAAAAAABgIVhYD21bmAEAAJgBAAASAAAAAAAAAAAAAAAAAD4MAAB3b3JkL251bWJlcmluZy54bWxQSwECFAAUAAAAAAAAYCFY/BqU2aECAAChAgAAEQAAAAAAAAAAAAAAAAAGDgAAd29yZC9kb2N1bWVudC54bWxQSwUGAAAAAAYABgCAAQAA1hAAAAAA", "pages": 1, "blocks": 1, "source": "helpyself.com" } - Percentage Calculator
A percentage increase calculator — and the other three sums people mean.
/api/v1/tools/percentage-calculatorRequest
POST /api/v1/tools/percentage-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "mode": "of", "a": 15, "b": 80 }Response — produced by actually running the request above
Open Percentage Calculator{ "mode": "of", "value": 12, "working": "15% of 80 = 12", "source": "helpyself.com" } - Photo Gallery Maker
A photo gallery maker: drop pictures in, get a link with its own layout and password.
/api/v1/tools/photo-galleryRequest
Open Photo Gallery MakerPOST /api/v1/tools/photo-gallery Authorization: Bearer hs_your_token_here Content-Type: application/json { "title": "hello world", "fileIds": [ "hello world" ], "columns": 3, "layout": "grid", "duration": "30d" } - Pregnancy Calculator
A due date calculator that also tells you how many weeks you are today
/api/v1/tools/pregnancy-calculatorRequest
Open Pregnancy CalculatorPOST /api/v1/tools/pregnancy-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "lmpDate": "2000-01-01", "cycleLength": 28 } - QR Code Generator
A QR code generator for any link or text — download it as SVG or PNG.
/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" } - Random Number Generator
A random number generator for any range, in your browser.
/api/v1/tools/random-number-generatorRequest
POST /api/v1/tools/random-number-generator Authorization: Bearer hs_your_token_here Content-Type: application/json { "min": 1, "max": 100, "count": 1, "unique": false, "sorted": false }Response — produced by actually running the request above
Open Random Number Generator{ "ok": true, "numbers": [ 38 ], "source": "helpyself.com" } - Random Picker
A random picker for a list of names, drawn in your browser.
/api/v1/tools/random-pickerRequest
POST /api/v1/tools/random-picker Authorization: Bearer hs_your_token_here Content-Type: application/json { "items": [ "hello world" ], "count": 1, "shuffleAll": false }Response — produced by actually running the request above
Open Random Picker{ "ok": true, "picked": [ "hello world" ], "from": 1, "source": "helpyself.com" } - Random Team Generator
A random team generator — paste a list of names and split it into fair teams.
/api/v1/tools/random-team-generatorRequest
POST /api/v1/tools/random-team-generator Authorization: Bearer hs_your_token_here Content-Type: application/json { "names": "hello world", "mode": "teams", "count": 2 }Response — produced by actually running the request above
Open Random Team Generator{ "ok": true, "teams": [ { "name": "Team 1", "members": [ "hello world" ] } ], "people": 1, "source": "helpyself.com" } - Ratio Calculator
A ratio calculator: reduce to lowest terms, or find the missing number.
/api/v1/tools/ratio-calculatorRequest
POST /api/v1/tools/ratio-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "left": 16, "right": 9 }Response — produced by actually running the request above
Open Ratio Calculator{ "mode": "simplify", "a": 16, "b": 9, "factor": 1, "decimal": 1.77777777778, "alreadySimple": true, "source": "helpyself.com" } - Readability Score
Readability score for any text — Flesch–Kincaid, Gunning fog index and more.
/api/v1/tools/readability-scoreRequest
Open Readability ScorePOST /api/v1/tools/readability-score Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world" } - Regex Explainer
A regex explainer: paste a pattern and read what every part of it does, in English.
/api/v1/tools/regex-explainerRequest
POST /api/v1/tools/regex-explainer Authorization: Bearer hs_your_token_here Content-Type: application/json { "pattern": "\\d+" }Response — produced by actually running the request above
Open Regex Explainer{ "lines": [ { "depth": 0, "source": "\\d", "text": "any digit, 0 to 9 — one or more times" } ], "flags": [], "problems": [], "captureCount": 0, "alternativeCount": 1, "source": "helpyself.com" } - Regex Tester
A regex tester for regular expressions, run safely against your own text.
/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
Remove the background from an image — solid backgrounds go transparent, 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 } - Remove Duplicate Lines
Remove duplicate lines, blanks and stray spaces from a list in one pass.
/api/v1/tools/duplicate-line-removerRequest
POST /api/v1/tools/duplicate-line-remover Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "caseSensitive": false, "trimLines": true, "removeBlank": true, "keep": "first", "sort": "none", "onlyDuplicates": false }Response — produced by actually running the request above
Open Remove Duplicate Lines{ "ok": true, "output": "hello world", "stats": { "input": 1, "output": 1, "duplicates": 0, "blank": 0, "repeated": 0 }, "source": "helpyself.com" } - Remove EXIF Data
See what your photos reveal, then remove the EXIF data — without uploading them.
/api/v1/tools/exif-removerRequest
POST /api/v1/tools/exif-remover Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "name": "image.jpg", "action": "strip", "keepOrientation": true, "keepColourProfile": true }Response — produced by actually running the request above
Open Remove EXIF Data{ "ok": true, "name": "image.jpg", "bytes": 63, "removedBytes": 0, "removed": [], "data": "<84 base64 characters>", "source": "helpyself.com" } - Reorder PDF Pages
Rearrange, rotate and delete pages from a PDF, then save it back out.
/api/v1/tools/pdf-reorderRequest
POST /api/v1/tools/pdf-reorder Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "name": "document" }Response — produced by actually running the request above
Open Reorder PDF Pages{ "ok": true, "name": "document.pdf", "sourcePages": 1, "pageCount": 1, "removed": [], "rotated": [], "reordered": false, "data": "<1152 base64 characters>", "source": "helpyself.com" } - Request a File
Request files with a link — they upload to you, with no account and no ads.
/api/v1/tools/request-a-fileRequest
POST /api/v1/tools/request-a-file Authorization: Bearer hs_your_token_here Content-Type: application/json { "days": 7, "maxFiles": 10 }Response — produced by actually running the request above
Open Request a File{ "days": 7, "maxFiles": 10, "summary": "7 days · up to 10 files", "createAt": "/api/v1/requests", "note": "Creating a link needs a signed-in Pro account — POST to createAt.", "source": "helpyself.com" } - Roman Numerals
A Roman numeral converter — numbers to numerals, and numerals back to numbers.
/api/v1/tools/roman-numeralsRequest
POST /api/v1/tools/roman-numerals Authorization: Bearer hs_your_token_here Content-Type: application/json { "numeral": "MCMXCIV" }Response — produced by actually running the request above
Open Roman Numerals{ "arabic": 1994, "roman": "MCMXCIV", "strict": true, "source": "helpyself.com" } - Rotate PDF
Rotate PDF pages the right way up — sideways or upside-down.
/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": "<1164 base64 characters>", "source": "helpyself.com" } - Salary Calculator
A salary calculator that goes hourly to annual and back — the same pay written every way, before tax.
/api/v1/tools/salary-calculatorRequest
POST /api/v1/tools/salary-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "amount": 100, "period": "hour", "hoursPerWeek": 37.5, "daysPerWeek": 5, "weeksPerYear": 52 }Response — produced by actually running the request above
Open Salary Calculator{ "ok": true, "amounts": { "year": 195000, "month": 16250, "week": 3750, "day": 750, "hour": 100 }, "basis": "gross pay, before tax or deductions", "pattern": { "hoursPerWeek": 37.5, "daysPerWeek": 5, "weeksPerYear": 52 }, "source": "helpyself.com" } - Screen Recorder
Record your screen in the browser — nothing is uploaded anywhere
/api/v1/tools/screen-recorderRequest
POST /api/v1/tools/screen-recorder Authorization: Bearer hs_your_token_here Content-Type: application/json { "width": 16, "height": 9, "frameRate": 30, "quality": "balanced", "withAudio": true, "seconds": 60 }Response — produced by actually running the request above
Open Screen Recorder{ "ok": true, "videoBitsPerSecond": 400000, "audioBitsPerSecond": 128000, "estimatedBytes": 3960000, "estimatedSize": "3.8 MB", "safeSeconds": 8134, "safeDuration": "2:15:34", "overMemoryBudget": false, "source": "helpyself.com" } - Send a Secret
Send a password securely by link that self-destructs after one read.
/api/v1/tools/send-a-secretRequest
Open Send a SecretPOST /api/v1/tools/send-a-secret Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "iv": "hello world", "lifetime": "24h" } - Share a File
Send large files by link, with an expiry date and an optional password.
/api/v1/tools/share-fileRequest
Open Share a FilePOST /api/v1/tools/share-file Authorization: Bearer hs_your_token_here Content-Type: application/json { "name": "photo.png", "type": "application/octet-stream", "data": "<base64-encoded file bytes>", "duration": "24h", "screen": false } - Signature Maker
A signature maker: draw or type yours, saved with a transparent background.
/api/v1/tools/signature-makerRequest
POST /api/v1/tools/signature-maker Authorization: Bearer hs_your_token_here Content-Type: application/json { "strokes": [ [ { "x": 0, "y": 0 } ] ], "strokeWidth": 3, "colour": "#111111", "smooth": true, "trim": true, "padding": 2, "simplify": true }Response — produced by actually running the request above
Open Signature Maker{ "ok": true, "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 15 15\" width=\"15\" height=\"15\"><path d=\"M7.5 7.5l0 0\" fill=\"none\" stroke=\"#111111\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>", "width": 15, "height": 15, "points": 1, "source": "helpyself.com" } - Sleep Calculator
A sleep calculator that works backwards from when you have to be up.
/api/v1/tools/sleep-calculatorRequest
POST /api/v1/tools/sleep-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "time": "09:00", "timeIs": "wake", "cycleMinutes": 90, "fallAsleepMinutes": 15 }Response — produced by actually running the request above
Open Sleep Calculator{ "ok": true, "returns": "bedtimes", "times": [ { "time": "23:45", "cycles": 6, "sleepMinutes": 540, "recommended": true }, { "time": "01:15", "cycles": 5, "sleepMinutes": 450, "recommended": true }, { "time": "02:45", "cycles": 4, "sleepMinutes": 360, "recommended": false }, { "time": "04:15", "cycles": 3, "sleepMinutes": 270, "recommended": false } ], "source": "helpyself.com" } - Slug Generator
A slug generator that turns 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": "<1152 base64 characters>" } ], "source": "helpyself.com" } - SQL Formatter
An SQL formatter for 21 dialects — paste unreadable SQL, get it laid out, nothing uploaded.
/api/v1/tools/sql-formatterRequest
POST /api/v1/tools/sql-formatter Authorization: Bearer hs_your_token_here Content-Type: application/json { "sql": "hello world", "dialect": "sql", "keywordCase": "upper", "indent": "2", "linesBetweenQueries": 1 }Response — produced by actually running the request above
Open SQL Formatter{ "ok": true, "sql": "hello world", "statements": 1, "note": "Formatted only. This does not validate the query or check it against a schema.", "source": "helpyself.com" } - Stall Booking
One link, on your own site or sent — vendors pick their own stall
/api/v1/tools/stall-bookingRequest
Open Stall BookingPOST /api/v1/tools/stall-booking Authorization: Bearer hs_your_token_here Content-Type: application/json { "title": "hello world", "date": "2000-01-01", "stallWidth": 180, "stallDepth": 60, "gap": 120, "backToBack": false, "backGap": 0, "price": 0, "currency": "DKK", "units": "metric", "holdHours": 168, "daysAfter": 14 } - Subnet Calculator
A subnet calculator that gets /31 and /32 right, which most do not.
/api/v1/tools/subnet-calculatorRequest
Open Subnet CalculatorPOST /api/v1/tools/subnet-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "network": "hello world" } - SVG Minifier
An SVG minifier that strips editor clutter and scripts, without touching the artwork.
/api/v1/tools/svg-minifierRequest
Open SVG MinifierPOST /api/v1/tools/svg-minifier Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "precision": 2, "removeComments": true, "removeMetadata": true, "removeTitleDesc": false, "removeScripts": true, "removeUnusedIds": false, "removeXmlDeclaration": true, "collapseWhitespace": true, "shortenColours": true } - Text Diff
A diff checker for text — compare two versions and see exactly what changed, line by line.
/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" } - Time Card Calculator
A time card calculator for hours worked, breaks and overtime across a week.
/api/v1/tools/time-card-calculatorRequest
POST /api/v1/tools/time-card-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "shifts": [ { "start": "9:00", "end": "17:00" } ] }Response — produced by actually running the request above
Open Time Card Calculator{ "days": [ { "label": "", "minutes": 480, "overnight": false } ], "totalMinutes": 480, "decimalHours": 8, "pay": null, "overtimeMinutes": 0, "overtimePay": null, "source": "helpyself.com" } - Time Zone Converter
A time zone converter and world clock — one time, every city at once.
/api/v1/tools/timezone-converterRequest
Open Time Zone ConverterPOST /api/v1/tools/timezone-converter Authorization: Bearer hs_your_token_here Content-Type: application/json { "date": "2000-01-01", "time": "09:00", "fromZone": "hello world", "toZones": [ "hello world" ] } - Timestamp Converter
A Unix timestamp converter — timestamps to dates, and dates back to timestamps.
/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" } - Tip Calculator
Work out the tip and split the bill into amounts people can actually pay.
/api/v1/tools/tip-calculatorRequest
POST /api/v1/tools/tip-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "bill": 100, "tipPercent": 5, "people": 4 }Response — produced by actually running the request above
Open Tip Calculator{ "bill": 100, "tip": 5, "total": 105, "people": 4, "each": 26.25, "eachRounded": 26.25, "overpay": 0, "source": "helpyself.com" } - Typing Test
A typing speed test that shows both your raw and your real WPM.
/api/v1/tools/typing-testRequest
POST /api/v1/tools/typing-test Authorization: Bearer hs_your_token_here Content-Type: application/json { "target": "hello world", "typed": "hello world", "elapsedMs": 100, "includeCharacters": false }Response — produced by actually running the request above
Open Typing Test{ "ok": true, "wpm": 1320, "netWpm": 1320, "accuracy": 100, "correct": 11, "incorrect": 0, "typed": 11, "source": "helpyself.com" } - Unit Converter
kg to lbs, mm to inches, cm to feet — every everyday unit, in your browser.
/api/v1/tools/unit-converterRequest
Open Unit ConverterPOST /api/v1/tools/unit-converter Authorization: Bearer hs_your_token_here Content-Type: application/json { "value": 1, "category": "length", "from": "hello worl", "to": "hello worl" } - URL Encoder & Decoder
A URL encoder and decoder for links and query strings, percent-encoded properly.
/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" } - UTM Builder
A UTM builder for campaign URLs, with the tagging mistakes caught as you type.
/api/v1/tools/utm-builderRequest
Open UTM BuilderPOST /api/v1/tools/utm-builder Authorization: Bearer hs_your_token_here Content-Type: application/json { "url": "https://example.com", "normalise": true } - UUID Generator
A UUID generator for random 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": [ "09b7e28e-4c8b-4a3b-a683-6241bb8ae4b6" ], "source": "helpyself.com" } - VAT Calculator
Add VAT to a price, or take it back out of one — the sum people get wrong.
/api/v1/tools/vat-calculatorRequest
POST /api/v1/tools/vat-calculator Authorization: Bearer hs_your_token_here Content-Type: application/json { "amount": 100, "rate": 5, "direction": "add" }Response — produced by actually running the request above
Open VAT Calculator{ "direction": "add", "net": 100, "vat": 5, "gross": 105, "rate": 5, "working": "100.00 × 1.05 = 105.00", "source": "helpyself.com" } - Video to GIF
Convert video to GIF — MP4 to GIF in your browser, with the frames you choose.
/api/v1/tools/video-to-gifRequest
Open Video to GIFPOST /api/v1/tools/video-to-gif Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "width": 480, "fps": 10, "seconds": 3 } - Watermark PDF
Add a watermark to a PDF — DRAFT, CONFIDENTIAL, or a client's name across every page.
/api/v1/tools/watermark-pdfRequest
POST /api/v1/tools/watermark-pdf Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "name": "document", "text": "hello world", "position": "diagonal", "opacity": 0.15 }Response — produced by actually running the request above
Open Watermark PDF{ "ok": true, "name": "document-watermarked.pdf", "pages": 1, "note": "A watermark is a mark, not a lock: anybody with the right software can remove it.", "data": "<1772 base64 characters>", "source": "helpyself.com" } - Webcam Test
A webcam test that tells you what the other end will actually see
/api/v1/tools/webcam-testRequest
POST /api/v1/tools/webcam-test Authorization: Bearer hs_your_token_here Content-Type: application/json { "width": 16, "height": 9 }Response — produced by actually running the request above
Open Webcam Test{ "ok": true, "resolution": "low", "aspectRatio": "16:9", "frameRate": 0, "smoothness": null, "brightness": 0, "blownFraction": 0, "lighting": null, "headline": null, "source": "helpyself.com" } - What Is My IP
What's my IP — the address the internet sees, and where it thinks you are.
/api/v1/tools/what-is-my-ipRequest
POST /api/v1/tools/what-is-my-ip Authorization: Bearer hs_your_token_here Content-Type: application/json {}Response — produced by actually running the request above
Open What Is My IP{ "error": "Your address could not be read.", "source": "helpyself.com" } - Wheel of Names
A spinning wheel of names — paste a list, spin, and get one fair winner.
/api/v1/tools/wheel-of-namesRequest
POST /api/v1/tools/wheel-of-names Authorization: Bearer hs_your_token_here Content-Type: application/json { "names": "hello world", "draws": 1, "removeWinner": false }Response — produced by actually running the request above
Open Wheel of Names{ "ok": true, "winners": [ "hello world" ], "source": "helpyself.com", "remaining": [ "hello world" ] } - Word Counter
A word counter and character counter, updating 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" } - Word to PDF
Convert a Word document to PDF in your browser — nothing is uploaded.
/api/v1/tools/word-to-pdfRequest
Open Word to PDFPOST /api/v1/tools/word-to-pdf Authorization: Bearer hs_your_token_here Content-Type: application/json { "data": "<base64-encoded file bytes>", "pageSize": "document" } - XML Formatter
An XML formatter that indents, minifies and checks a document in your browser.
/api/v1/tools/xml-formatterRequest
POST /api/v1/tools/xml-formatter Authorization: Bearer hs_your_token_here Content-Type: application/json { "xml": "hello world", "mode": "format", "indent": 2, "keepComments": true }Response — produced by actually running the request above
Open XML Formatter{ "ok": true, "output": "hello world", "source": "helpyself.com" } - YAML to JSON
Convert a config file to JSON, or JSON back to readable YAML.
/api/v1/tools/yaml-to-jsonRequest
POST /api/v1/tools/yaml-to-json Authorization: Bearer hs_your_token_here Content-Type: application/json { "text": "hello world", "direction": "yaml-to-json", "indent": 2, "sortKeys": false }Response — produced by actually running the request above
Open YAML to JSON{ "ok": true, "output": "\"hello world\"", "documents": 1, "source": "helpyself.com" }
Every tool in the catalogue is here, and new ones appear as they ship.
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.