Skip to content
helpyself

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

No 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

No tokenPro
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-numbers

    Request

    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

    {
      "ok": true,
      "name": "document-numbered.pdf",
      "numbered": 1,
      "data": "<1640 base64 characters>",
      "source": "helpyself.com"
    }
    Open Add Page Numbers to PDF
  • Age Calculator

    An age calculator: your exact age in years, months and days, from a date of birth.

    /api/v1/tools/age-calculator

    Request

    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

    {
      "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"
    }
    Open Age Calculator
  • App Background Preview

    Find the app background image size that survives on every phone and tablet.

    /api/v1/tools/app-background-preview

    Request

    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

    {
      "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"
    }
    Open App Background Preview
  • ASCII Table

    The full ASCII table, with the control codes explained rather than left blank.

    /api/v1/tools/ascii-table

    Request

    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

    {
      "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": "&quot;"
        },
        {
          "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": "&amp;"
        },
        {
          "decimal": 39,
          "hex": "27",
          "octal": "047",
          "binary": "00100111",
          "character": "'",
          "name": "Apostrophe",
          "printable": true,
          "htmlEntity": "&apos;"
        },
        {
          "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": "&lt;"
        },
        {
          "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": "&gt;"
        },
        {
          "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"
    }
    Open ASCII Table
  • Auto Redact PDF

    Auto redact PDF files: it finds the personal information, you confirm, the words are deleted.

    /api/v1/tools/auto-redact-pdf

    Request

    POST /api/v1/tools/auto-redact-pdf
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "text": "hello worldxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    }
    Open Auto Redact PDF
  • Average Calculator

    A mean median mode calculator, with standard deviation and the spread.

    /api/v1/tools/average-calculator

    Request

    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

    {
      "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"
    }
    Open Average Calculator
  • AVIF Converter

    AVIF to JPG, and JPG to AVIF — the format that halves a photograph.

    /api/v1/tools/avif-converter

    Request

    POST /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
    }
    Open AVIF Converter
  • Barcode Generator

    A barcode generator for EAN-13, UPC-A, EAN-8 and Code 128 — check digit included.

    /api/v1/tools/barcode-generator

    Request

    POST /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
    }
    Open Barcode Generator
  • Barcode Reader

    A barcode scanner online — read a barcode or QR code from a photo or screenshot.

    /api/v1/tools/barcode-reader

    Request

    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

    {
      "ok": true,
      "codes": [],
      "source": "helpyself.com"
    }
    Open Barcode Reader
  • Base64 Encoder & Decoder

    Base64 encode and decode text instantly, with full Unicode support.

    /api/v1/tools/base64

    Request

    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

    {
      "ok": true,
      "output": "aGVsbG8gd29ybGQ=",
      "source": "helpyself.com"
    }
    Open Base64 Encoder & Decoder
  • Binary Translator

    A binary translator both ways — binary to text, text to binary, hex and decimal too.

    /api/v1/tools/binary-translator

    Request

    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

    {
      "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"
    }
    Open Binary Translator
  • BMI Calculator

    A BMI calculator in metric or imperial, worked out in your browser.

    /api/v1/tools/bmi-calculator

    Request

    POST /api/v1/tools/bmi-calculator
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "weight": 100,
      "units": "metric"
    }
    Open BMI Calculator
  • Body Fat Calculator

    A body fat calculator that works from a tape measure, using the US Navy method.

    /api/v1/tools/body-fat-calculator

    Request

    POST /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
    }
    Open Body Fat Calculator
  • Bulk Image Resizer

    A bulk image resizer for a whole folder at once, in your browser.

    /api/v1/tools/bulk-image-resizer

    Request

    POST /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
    }
    Open Bulk Image Resizer
  • Business Days

    Count forward or back a number of working days and see where you land.

    /api/v1/tools/business-days

    Request

    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

    {
      "date": "2000-01-14",
      "weekday": 5,
      "stepped": 10,
      "calendarDays": 13,
      "holidaysUsed": [],
      "startIsWorkingDay": false,
      "source": "helpyself.com"
    }
    Open Business Days
  • Calorie Calculator

    Work out how many calories you burn a day, and what to eat for a goal.

    /api/v1/tools/calorie-calculator

    Request

    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

    {
      "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"
    }
    Open Calorie Calculator
  • Case Converter

    A text case converter: camelCase, snake_case, kebab-case and more.

    /api/v1/tools/case-converter

    Request

    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

    {
      "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"
    }
    Open Case Converter
  • Checksum Verifier

    A checksum verifier: paste the published SHA-256 and check your download matches.

    /api/v1/tools/checksum-verifier

    Request

    POST /api/v1/tools/checksum-verifier
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "data": "<base64-encoded file bytes>",
      "expected": "hello world"
    }
    Open Checksum Verifier
  • Coin Flip

    A coin toss you can trust — heads or tails, from real randomness.

    /api/v1/tools/coin-flip

    Request

    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

    {
      "ok": true,
      "flips": [
        "tails"
      ],
      "heads": 0,
      "tails": 1,
      "source": "helpyself.com"
    }
    Open Coin Flip
  • Colour Converter

    A colour converter: HEX to RGB, RGB to HEX, and either to HSL.

    /api/v1/tools/color-converter

    Request

    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

    {
      "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"
    }
    Open Colour Converter
  • 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-lists

    Request

    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

    {
      "ok": true,
      "onlyA": [],
      "onlyB": [],
      "both": [
        "hello world"
      ],
      "counts": {
        "onlyA": 0,
        "onlyB": 0,
        "both": 1,
        "duplicatesA": 0,
        "duplicatesB": 0
      },
      "source": "helpyself.com"
    }
    Open Compare Two Lists
  • Compound Interest

    A compound interest calculator with regular deposits and any compounding frequency.

    /api/v1/tools/compound-interest

    Request

    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

    {
      "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"
    }
    Open Compound Interest
  • Compress Image to Size

    Compress image to 100KB, 1MB, or whatever exact size the form demands.

    /api/v1/tools/compress-to-size

    Request

    POST /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
    }
    Open Compress Image to Size
  • Compress PDF

    Reduce PDF size without turning the text into a picture.

    /api/v1/tools/pdf-compress

    Request

    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

    {
      "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"
    }
    Open Compress PDF
  • Contrast Checker

    A colour contrast checker for WCAG accessibility levels.

    /api/v1/tools/contrast-checker

    Request

    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

    {
      "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"
    }
    Open Contrast Checker
  • Contrast Fixer

    A colour contrast fixer — the nearest accessible colour that passes WCAG AA.

    /api/v1/tools/contrast-fixer

    Request

    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

    {
      "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"
    }
    Open Contrast Fixer
  • Contrast Grid

    A contrast grid for your whole palette — every pairing checked against WCAG.

    /api/v1/tools/contrast-grid

    Request

    POST /api/v1/tools/contrast-grid
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "palette": "hello world",
      "level": "AA"
    }
    Open Contrast Grid
  • Cookie Checker

    A cookie checker that shows what a website sets, and whether Secure, HttpOnly and SameSite are on.

    /api/v1/tools/cookie-checker

    Request

    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

    {
      "ok": true,
      "url": "https://example.com/",
      "status": 200,
      "cookies": [],
      "source": "helpyself.com"
    }
    Open Cookie Checker
  • Countdown Timer

    A 5 minute timer, a 10 minute timer, or any timer online — with an alarm.

    /api/v1/tools/countdown-timer

    Request

    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

    {
      "ok": true,
      "ms": 300000,
      "formatted": "05:00",
      "parts": {
        "hours": 0,
        "minutes": 5,
        "seconds": 0
      },
      "source": "helpyself.com"
    }
    Open Countdown Timer
  • Cron Expression Parser

    Read a cron expression in plain English, and see exactly when it will next run.

    /api/v1/tools/cron-expression

    Request

    POST /api/v1/tools/cron-expression
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "expression": "hello world",
      "timezone": "UTC",
      "count": 5
    }
    Open Cron Expression Parser
  • Crop Image

    Crop image online — drag the box, or type an exact size in pixels.

    /api/v1/tools/image-cropper

    Request

    POST /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
    }
    Open Crop Image
  • CSS Gradient Generator

    A CSS gradient generator for linear, radial and conic — copy the code straight out.

    /api/v1/tools/gradient-generator

    Request

    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

    {
      "ok": true,
      "value": "linear-gradient(180deg, #ffffff, #ffffff)",
      "css": "background: linear-gradient(180deg, #ffffff, #ffffff);",
      "fallback": "background: #ffffff;",
      "source": "helpyself.com"
    }
    Open CSS Gradient Generator
  • CSV to JSON

    CSV to JSON and back — turn a spreadsheet export into clean, readable JSON.

    /api/v1/tools/csv-to-json

    Request

    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

    {
      "ok": true,
      "output": "[]",
      "rows": 0,
      "columns": 1,
      "delimiter": ",",
      "source": "helpyself.com"
    }
    Open CSV to JSON
  • Currency Converter

    An exchange rate calculator using the European Central Bank's official daily rate

    /api/v1/tools/currency-converter

    Request

    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

    {
      "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"
    }
    Open Currency Converter
  • Date Difference

    How many days between two dates — plus weeks, months and working days.

    /api/v1/tools/date-difference

    Request

    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

    {
      "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"
    }
    Open Date Difference
  • Days Until Christmas

    How many days until Christmas — counted in sleeps, not hours, and right across time zones.

    /api/v1/tools/days-until-christmas

    Request

    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

    {
      "ok": true,
      "days": 99,
      "year": 2026,
      "today": false,
      "weeks": 14,
      "remainderDays": 1,
      "countedFrom": "2026-09-17",
      "source": "helpyself.com"
    }
    Open Days Until Christmas
  • Dice Roller

    A dice roller for any number of sides, rolled in your browser.

    /api/v1/tools/dice-roller

    Request

    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

    {
      "ok": true,
      "rolls": [
        1
      ],
      "subtotal": 1,
      "modifier": 0,
      "total": 1,
      "source": "helpyself.com"
    }
    Open Dice Roller
  • Favicon Generator

    A favicon generator that turns any image into a complete set.

    /api/v1/tools/favicon-generator

    Request

    POST /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>"
    }
    Open Favicon Generator
  • Find a Time

    Propose a few times, send one link, see when everybody can make it

    /api/v1/tools/find-a-time

    Request

    POST /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
    }
    Open Find a Time
  • Fraction Calculator

    A fraction calculator for adding, subtracting, multiplying and dividing — exactly.

    /api/v1/tools/fraction-calculator

    Request

    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

    {
      "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"
    }
    Open Fraction Calculator
  • Fuel Cost Calculator

    A fuel cost calculator for any drive — your units, your currency, split however you like.

    /api/v1/tools/fuel-cost-calculator

    Request

    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

    {
      "ok": true,
      "total": 10000,
      "litres": 100,
      "km": 100,
      "each": 10000,
      "perKm": 100,
      "perMile": 160.9344,
      "currency": "same as the price given",
      "source": "helpyself.com"
    }
    Open Fuel Cost Calculator
  • GIF Compressor

    Compress a GIF by the only three things a GIF has — frames, colours and size. Nothing uploaded.

    /api/v1/tools/gif-compressor

    Request

    POST /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"
    }
    Open GIF Compressor
  • GPA Calculator

    A GPA calculator on the 4.0 scale, weighted by the credits each course is worth.

    /api/v1/tools/gpa-calculator

    Request

    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

    {
      "courses": [
        {
          "name": "",
          "points": 3.7,
          "credits": 3,
          "letter": "A-"
        }
      ],
      "gpa": 3.7,
      "totalCredits": 3,
      "totalPoints": 11.1,
      "skipped": [],
      "source": "helpyself.com"
    }
    Open GPA Calculator
  • Hash Generator

    A hash generator for SHA-1, SHA-256, SHA-384 and SHA-512.

    /api/v1/tools/hash-generator

    Request

    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

    {
      "ok": true,
      "hashes": [
        {
          "algorithm": "SHA-256",
          "hex": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9",
          "base64": "uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek="
        }
      ],
      "source": "helpyself.com"
    }
    Open Hash Generator
  • Image Compressor

    Compress image online — JPEG, PNG, WebP, AVIF, HEIC, TIFF and BMP, all in your browser.

    /api/v1/tools/image-compressor

    Request

    POST /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"
    }
    Open Image Compressor
  • Image Converter

    HEIC to JPG, PNG to JPG, and every other way round — one file or a folder.

    /api/v1/tools/image-converter

    Request

    POST /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
    }
    Open Image Converter
  • Image Resizer

    A photo resizer for any size — JPEG, PNG, WebP or an iPhone HEIC.

    /api/v1/tools/image-resizer

    Request

    POST /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
    }
    Open Image Resizer
  • Image to Text

    Image to text: read the words out of a photo — receipts, screenshots, handwriting.

    /api/v1/tools/image-to-text

    Request

    POST /api/v1/tools/image-to-text
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "type": "image/png",
      "mode": "text"
    }
    Open Image to Text
  • Images to PDF

    JPG to PDF and PNG to PDF — photos to PDF, in the order you choose.

    /api/v1/tools/images-to-pdf

    Request

    POST /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
    }
    Open Images to PDF
  • Invoice Generator

    A free invoice generator that makes a real PDF — no watermark, no sign-up.

    /api/v1/tools/invoice-generator

    Request

    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

    {
      "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"
    }
    Open Invoice Generator
  • JSON Formatter

    A JSON formatter that validates and beautifies instantly — or minifies.

    /api/v1/tools/json-formatter

    Request

    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

    {
      "ok": true,
      "output": "{\n  \"hello\": \"world\"\n}",
      "source": "helpyself.com"
    }
    Open JSON Formatter
  • JWT Decoder

    A JWT decoder that inspects JSON Web Tokens safely.

    /api/v1/tools/jwt-decoder

    Request

    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

    {
      "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"
    }
    Open JWT Decoder
  • Loan Calculator

    A loan calculator for the monthly payment, and how much of it is interest.

    /api/v1/tools/loan-calculator

    Request

    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

    {
      "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"
    }
    Open Loan Calculator
  • Lorem Ipsum Generator

    A lorem ipsum generator for placeholder text in mockups and layouts.

    /api/v1/tools/lorem-ipsum

    Request

    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

    {
      "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"
    }
    Open Lorem Ipsum Generator
  • Markdown to HTML

    Turn Markdown into clean HTML, with a preview you can trust.

    /api/v1/tools/markdown-to-html

    Request

    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

    {
      "ok": true,
      "html": "<p>hello world</p>",
      "headings": [],
      "words": 2,
      "source": "helpyself.com"
    }
    Open Markdown to HTML
  • Merge PDF

    Merge PDF files into one document.

    /api/v1/tools/pdf-merge

    Request

    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

    {
      "ok": true,
      "pageCount": 2,
      "sources": [
        {
          "name": "document.pdf",
          "pageCount": 1
        },
        {
          "name": "document.pdf",
          "pageCount": 1
        }
      ],
      "data": "<1364 base64 characters>",
      "source": "helpyself.com"
    }
    Open Merge PDF
  • Mic Test

    A microphone test that answers the real question — will they hear me?

    /api/v1/tools/mic-test

    Request

    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

    {
      "ok": true,
      "rms": 1,
      "peak": 1,
      "decibels": 0,
      "peakDecibels": 0,
      "meter": 1,
      "verdict": "clipping",
      "source": "helpyself.com"
    }
    Open Mic Test
  • Morse Code Translator

    A morse code translator both ways — text to morse code, and morse code to text.

    /api/v1/tools/morse-code-translator

    Request

    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

    {
      "ok": true,
      "direction": "toMorse",
      "output": ".... . .-.. .-.. --- / .-- --- .-. .-.. -..",
      "unsupported": [],
      "source": "helpyself.com"
    }
    Open Morse Code Translator
  • My Video Game Collection

    Know what you own, share the list, and stop buying games you already have.

    /api/v1/tools/game-collection

    Request

    POST /api/v1/tools/game-collection
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "name": "photo.png",
      "shared": false
    }
    Open My Video Game Collection
  • Pace Calculator

    A running pace calculator: give any two of distance, time and pace to get the third.

    /api/v1/tools/pace-calculator

    Request

    POST /api/v1/tools/pace-calculator
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "unit": "km"
    }
    Open Pace Calculator
  • Password Generator

    A password generator for strong random passwords, in your browser.

    /api/v1/tools/password-generator

    Request

    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

    {
      "ok": true,
      "passwords": [
        "S0I&qeXybXTnB^rVC#FJ"
      ],
      "alphabetSize": 76,
      "entropyBits": 125,
      "source": "helpyself.com"
    }
    Open Password Generator
  • PDF to Images

    PDF to JPG, PDF to PNG — every page as an image, at the size you need.

    /api/v1/tools/pdf-to-images

    Request

    POST /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
    }
    Open PDF to Images
  • PDF to Word

    Convert PDF to Word — tables, pictures and all — in your browser

    /api/v1/tools/pdf-to-word

    Request

    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

    {
      "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"
    }
    Open PDF to Word
  • Percentage Calculator

    A percentage increase calculator — and the other three sums people mean.

    /api/v1/tools/percentage-calculator

    Request

    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

    {
      "mode": "of",
      "value": 12,
      "working": "15% of 80 = 12",
      "source": "helpyself.com"
    }
    Open Percentage Calculator
  • Photo Gallery Maker

    A photo gallery maker: drop pictures in, get a link with its own layout and password.

    /api/v1/tools/photo-gallery

    Request

    POST /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"
    }
    Open Photo Gallery Maker
  • Pregnancy Calculator

    A due date calculator that also tells you how many weeks you are today

    /api/v1/tools/pregnancy-calculator

    Request

    POST /api/v1/tools/pregnancy-calculator
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "lmpDate": "2000-01-01",
      "cycleLength": 28
    }
    Open Pregnancy Calculator
  • QR Code Generator

    A QR code generator for any link or text — download it as SVG or PNG.

    /api/v1/tools/qr-generator

    Request

    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

    {
      "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"
    }
    Open QR Code Generator
  • Random Number Generator

    A random number generator for any range, in your browser.

    /api/v1/tools/random-number-generator

    Request

    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

    {
      "ok": true,
      "numbers": [
        38
      ],
      "source": "helpyself.com"
    }
    Open Random Number Generator
  • Random Picker

    A random picker for a list of names, drawn in your browser.

    /api/v1/tools/random-picker

    Request

    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

    {
      "ok": true,
      "picked": [
        "hello world"
      ],
      "from": 1,
      "source": "helpyself.com"
    }
    Open Random Picker
  • Random Team Generator

    A random team generator — paste a list of names and split it into fair teams.

    /api/v1/tools/random-team-generator

    Request

    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

    {
      "ok": true,
      "teams": [
        {
          "name": "Team 1",
          "members": [
            "hello world"
          ]
        }
      ],
      "people": 1,
      "source": "helpyself.com"
    }
    Open Random Team Generator
  • Ratio Calculator

    A ratio calculator: reduce to lowest terms, or find the missing number.

    /api/v1/tools/ratio-calculator

    Request

    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

    {
      "mode": "simplify",
      "a": 16,
      "b": 9,
      "factor": 1,
      "decimal": 1.77777777778,
      "alreadySimple": true,
      "source": "helpyself.com"
    }
    Open Ratio Calculator
  • Readability Score

    Readability score for any text — Flesch–Kincaid, Gunning fog index and more.

    /api/v1/tools/readability-score

    Request

    POST /api/v1/tools/readability-score
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "text": "hello world"
    }
    Open Readability Score
  • Regex Explainer

    A regex explainer: paste a pattern and read what every part of it does, in English.

    /api/v1/tools/regex-explainer

    Request

    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

    {
      "lines": [
        {
          "depth": 0,
          "source": "\\d",
          "text": "any digit, 0 to 9 — one or more times"
        }
      ],
      "flags": [],
      "problems": [],
      "captureCount": 0,
      "alternativeCount": 1,
      "source": "helpyself.com"
    }
    Open Regex Explainer
  • Regex Tester

    A regex tester for regular expressions, run safely against your own text.

    /api/v1/tools/regex-tester

    Request

    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

    {
      "ok": true,
      "count": 0,
      "truncated": false,
      "limit": 1000,
      "matches": [],
      "source": "helpyself.com"
    }
    Open Regex Tester
  • Remove Background

    Remove the background from an image — solid backgrounds go transparent, in your browser.

    /api/v1/tools/background-remover

    Request

    POST /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
    }
    Open Remove Background
  • Remove Duplicate Lines

    Remove duplicate lines, blanks and stray spaces from a list in one pass.

    /api/v1/tools/duplicate-line-remover

    Request

    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

    {
      "ok": true,
      "output": "hello world",
      "stats": {
        "input": 1,
        "output": 1,
        "duplicates": 0,
        "blank": 0,
        "repeated": 0
      },
      "source": "helpyself.com"
    }
    Open Remove Duplicate Lines
  • Remove EXIF Data

    See what your photos reveal, then remove the EXIF data — without uploading them.

    /api/v1/tools/exif-remover

    Request

    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

    {
      "ok": true,
      "name": "image.jpg",
      "bytes": 63,
      "removedBytes": 0,
      "removed": [],
      "data": "<84 base64 characters>",
      "source": "helpyself.com"
    }
    Open Remove EXIF Data
  • Reorder PDF Pages

    Rearrange, rotate and delete pages from a PDF, then save it back out.

    /api/v1/tools/pdf-reorder

    Request

    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

    {
      "ok": true,
      "name": "document.pdf",
      "sourcePages": 1,
      "pageCount": 1,
      "removed": [],
      "rotated": [],
      "reordered": false,
      "data": "<1152 base64 characters>",
      "source": "helpyself.com"
    }
    Open Reorder PDF Pages
  • Request a File

    Request files with a link — they upload to you, with no account and no ads.

    /api/v1/tools/request-a-file

    Request

    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

    {
      "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"
    }
    Open Request a File
  • Roman Numerals

    A Roman numeral converter — numbers to numerals, and numerals back to numbers.

    /api/v1/tools/roman-numerals

    Request

    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

    {
      "arabic": 1994,
      "roman": "MCMXCIV",
      "strict": true,
      "source": "helpyself.com"
    }
    Open Roman Numerals
  • Rotate PDF

    Rotate PDF pages the right way up — sideways or upside-down.

    /api/v1/tools/pdf-rotate

    Request

    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

    {
      "ok": true,
      "name": "document-rotated.pdf",
      "pageCount": 1,
      "rotated": [
        1
      ],
      "data": "<1164 base64 characters>",
      "source": "helpyself.com"
    }
    Open Rotate PDF
  • Salary Calculator

    A salary calculator that goes hourly to annual and back — the same pay written every way, before tax.

    /api/v1/tools/salary-calculator

    Request

    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

    {
      "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"
    }
    Open Salary Calculator
  • Screen Recorder

    Record your screen in the browser — nothing is uploaded anywhere

    /api/v1/tools/screen-recorder

    Request

    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

    {
      "ok": true,
      "videoBitsPerSecond": 400000,
      "audioBitsPerSecond": 128000,
      "estimatedBytes": 3960000,
      "estimatedSize": "3.8 MB",
      "safeSeconds": 8134,
      "safeDuration": "2:15:34",
      "overMemoryBudget": false,
      "source": "helpyself.com"
    }
    Open Screen Recorder
  • Send a Secret

    Send a password securely by link that self-destructs after one read.

    /api/v1/tools/send-a-secret

    Request

    POST /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"
    }
    Open Send a Secret
  • Share a File

    Send large files by link, with an expiry date and an optional password.

    /api/v1/tools/share-file

    Request

    POST /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
    }
    Open Share a File
  • Signature Maker

    A signature maker: draw or type yours, saved with a transparent background.

    /api/v1/tools/signature-maker

    Request

    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

    {
      "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"
    }
    Open Signature Maker
  • Sleep Calculator

    A sleep calculator that works backwards from when you have to be up.

    /api/v1/tools/sleep-calculator

    Request

    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

    {
      "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"
    }
    Open Sleep Calculator
  • Slug Generator

    A slug generator that turns any title into a clean URL slug.

    /api/v1/tools/slug-generator

    Request

    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

    {
      "ok": true,
      "slug": "hello-world",
      "source": "helpyself.com"
    }
    Open Slug Generator
  • Split PDF

    Extract pages from a PDF or split it into separate files.

    /api/v1/tools/pdf-split

    Request

    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

    {
      "ok": true,
      "sourcePageCount": 1,
      "files": [
        {
          "name": "document-extracted.pdf",
          "pageCount": 1,
          "data": "<1152 base64 characters>"
        }
      ],
      "source": "helpyself.com"
    }
    Open Split PDF
  • SQL Formatter

    An SQL formatter for 21 dialects — paste unreadable SQL, get it laid out, nothing uploaded.

    /api/v1/tools/sql-formatter

    Request

    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

    {
      "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"
    }
    Open SQL Formatter
  • Stall Booking

    One link, on your own site or sent — vendors pick their own stall

    /api/v1/tools/stall-booking

    Request

    POST /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
    }
    Open Stall Booking
  • Subnet Calculator

    A subnet calculator that gets /31 and /32 right, which most do not.

    /api/v1/tools/subnet-calculator

    Request

    POST /api/v1/tools/subnet-calculator
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "network": "hello world"
    }
    Open Subnet Calculator
  • SVG Minifier

    An SVG minifier that strips editor clutter and scripts, without touching the artwork.

    /api/v1/tools/svg-minifier

    Request

    POST /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
    }
    Open SVG Minifier
  • Text Diff

    A diff checker for text — compare two versions and see exactly what changed, line by line.

    /api/v1/tools/text-diff

    Request

    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

    {
      "ok": true,
      "lines": [
        {
          "op": "equal",
          "text": "hello world",
          "left": 1,
          "right": 1
        }
      ],
      "stats": {
        "added": 0,
        "removed": 0,
        "unchanged": 1
      },
      "identical": true,
      "source": "helpyself.com"
    }
    Open Text Diff
  • Time Card Calculator

    A time card calculator for hours worked, breaks and overtime across a week.

    /api/v1/tools/time-card-calculator

    Request

    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

    {
      "days": [
        {
          "label": "",
          "minutes": 480,
          "overnight": false
        }
      ],
      "totalMinutes": 480,
      "decimalHours": 8,
      "pay": null,
      "overtimeMinutes": 0,
      "overtimePay": null,
      "source": "helpyself.com"
    }
    Open Time Card Calculator
  • Time Zone Converter

    A time zone converter and world clock — one time, every city at once.

    /api/v1/tools/timezone-converter

    Request

    POST /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"
      ]
    }
    Open Time Zone Converter
  • Timestamp Converter

    A Unix timestamp converter — timestamps to dates, and dates back to timestamps.

    /api/v1/tools/timestamp-converter

    Request

    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

    {
      "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"
    }
    Open Timestamp Converter
  • Tip Calculator

    Work out the tip and split the bill into amounts people can actually pay.

    /api/v1/tools/tip-calculator

    Request

    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

    {
      "bill": 100,
      "tip": 5,
      "total": 105,
      "people": 4,
      "each": 26.25,
      "eachRounded": 26.25,
      "overpay": 0,
      "source": "helpyself.com"
    }
    Open Tip Calculator
  • Typing Test

    A typing speed test that shows both your raw and your real WPM.

    /api/v1/tools/typing-test

    Request

    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

    {
      "ok": true,
      "wpm": 1320,
      "netWpm": 1320,
      "accuracy": 100,
      "correct": 11,
      "incorrect": 0,
      "typed": 11,
      "source": "helpyself.com"
    }
    Open Typing Test
  • Unit Converter

    kg to lbs, mm to inches, cm to feet — every everyday unit, in your browser.

    /api/v1/tools/unit-converter

    Request

    POST /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"
    }
    Open Unit Converter
  • URL Encoder & Decoder

    A URL encoder and decoder for links and query strings, percent-encoded properly.

    /api/v1/tools/url-encoder

    Request

    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

    {
      "ok": true,
      "output": "hello%20world",
      "source": "helpyself.com"
    }
    Open URL Encoder & Decoder
  • UTM Builder

    A UTM builder for campaign URLs, with the tagging mistakes caught as you type.

    /api/v1/tools/utm-builder

    Request

    POST /api/v1/tools/utm-builder
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "url": "https://example.com",
      "normalise": true
    }
    Open UTM Builder
  • UUID Generator

    A UUID generator for random v4 identifiers, instantly.

    /api/v1/tools/uuid-generator

    Request

    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

    {
      "ok": true,
      "uuids": [
        "09b7e28e-4c8b-4a3b-a683-6241bb8ae4b6"
      ],
      "source": "helpyself.com"
    }
    Open UUID Generator
  • VAT Calculator

    Add VAT to a price, or take it back out of one — the sum people get wrong.

    /api/v1/tools/vat-calculator

    Request

    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

    {
      "direction": "add",
      "net": 100,
      "vat": 5,
      "gross": 105,
      "rate": 5,
      "working": "100.00 × 1.05 = 105.00",
      "source": "helpyself.com"
    }
    Open VAT Calculator
  • Video to GIF

    Convert video to GIF — MP4 to GIF in your browser, with the frames you choose.

    /api/v1/tools/video-to-gif

    Request

    POST /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
    }
    Open Video to GIF
  • Watermark PDF

    Add a watermark to a PDF — DRAFT, CONFIDENTIAL, or a client's name across every page.

    /api/v1/tools/watermark-pdf

    Request

    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

    {
      "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"
    }
    Open Watermark PDF
  • Webcam Test

    A webcam test that tells you what the other end will actually see

    /api/v1/tools/webcam-test

    Request

    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

    {
      "ok": true,
      "resolution": "low",
      "aspectRatio": "16:9",
      "frameRate": 0,
      "smoothness": null,
      "brightness": 0,
      "blownFraction": 0,
      "lighting": null,
      "headline": null,
      "source": "helpyself.com"
    }
    Open Webcam Test
  • 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-ip

    Request

    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

    {
      "error": "Your address could not be read.",
      "source": "helpyself.com"
    }
    Open What Is My IP
  • Wheel of Names

    A spinning wheel of names — paste a list, spin, and get one fair winner.

    /api/v1/tools/wheel-of-names

    Request

    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

    {
      "ok": true,
      "winners": [
        "hello world"
      ],
      "source": "helpyself.com",
      "remaining": [
        "hello world"
      ]
    }
    Open Wheel of Names
  • Word Counter

    A word counter and character counter, updating as you type.

    /api/v1/tools/word-counter

    Request

    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

    {
      "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"
    }
    Open Word Counter
  • Word to PDF

    Convert a Word document to PDF in your browser — nothing is uploaded.

    /api/v1/tools/word-to-pdf

    Request

    POST /api/v1/tools/word-to-pdf
    Authorization: Bearer hs_your_token_here
    Content-Type: application/json
    
    {
      "data": "<base64-encoded file bytes>",
      "pageSize": "document"
    }
    Open Word to PDF
  • XML Formatter

    An XML formatter that indents, minifies and checks a document in your browser.

    /api/v1/tools/xml-formatter

    Request

    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

    {
      "ok": true,
      "output": "hello world",
      "source": "helpyself.com"
    }
    Open XML Formatter
  • YAML to JSON

    Convert a config file to JSON, or JSON back to readable YAML.

    /api/v1/tools/yaml-to-json

    Request

    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

    {
      "ok": true,
      "output": "\"hello world\"",
      "documents": 1,
      "source": "helpyself.com"
    }
    Open YAML to JSON

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.

Create and manage tokens

↑↓ to move · Enter to open · Esc to close