HelpySelf
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
More than a hundred everyday tools: PDFs, images, text, data, calculators, dice and currency.
| Author | com.helpyself |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 3658 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"HelpySelf": {
"url": "https://helpyself.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (124)
pdf_to_excelread-onlyEvery table in the PDF becomes a sheet, and every figure arrives as a number you can actually add up. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The PDF to read, base64-encoded (a data: URL prefix is accepted). It needs a text layer: a scan with no text is refused with `no_text` rather than returning an empty workbook. Refused above 25 MB decoded.joinPages— boolean — Treat a table that carries on over a page break as one table, dropping the repeated heading row. On by default, because a statement split across twelve pages is one table; turn it off to get one sheet per page.sheetName— string — What to call a tab the document did not name — `Table` gives Table 1, Table 2. A table the document headed keeps its own heading instead, trimmed to what Excel allows and made unique if it has to be.includeText— boolean — Also keep everything that was not in a table — headings and paragraphs, in reading order, with the page each came from — as a sheet of its own. On by default: on an invoice the total being charged is a line of prose above the tables rather than a row inside one, so a workbook of only the grids has lost the number the document is about.
Hints: read-only yes · destructive no · idempotent yes · open-world no
pdf_to_wordread-onlyConvert PDF to Word — tables, pictures and all — in your browser A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The PDF to convert, base64-encoded (a data: URL prefix is accepted). It needs a text layer: a scan with no text is refused with `no_text` rather than turned into an empty document. Refused above 25 MB decoded.keepPageBreaks— boolean — Start a new page in the Word document wherever the PDF started one. Off by default, so the text reflows and the Word page count may differ from the PDF's.
Hints: read-only yes · destructive no · idempotent yes · open-world no
word_to_pdfread-onlyConvert a Word document to PDF in your browser — nothing is uploaded. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The Word document, base64-encoded; a data: URL prefix is stripped if present. A .docx is expected, and the older binary .doc is recognised from its bytes too. Up to 25 MB once decoded.pageSize— string — document keeps the paper size and margins the file was written for. a4 or letter overrides them with that paper and fixed margins, which re-wraps every paragraph. Defaults to document.
Hints: read-only yes · destructive no · idempotent yes · open-world no
currency_converterread-onlyAn exchange rate calculator using the European Central Bank's official daily rate A HelpySelf tool (helpyself.com).
Parameters:
amount(required) — number — How much of fromCurrency to convert, in major units (dollars, not cents). Negative is allowed, since a refund is a conversion too. A plain numeric string such as "10" is read as the number.fromCurrency(required) — string — The ISO 4217 code of the currency the amount is in, such as USD. Case does not matter. Only currencies the European Central Bank quotes daily are known; an unknown code returns an error naming it.toCurrency(required) — string — The ISO 4217 code to convert into, such as EUR. The rate used is the ECB cross rate for the day, and the whole day's rate table comes back with the answer.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
photo_galleryA photo gallery maker: drop pictures in, get a link with its own layout and password. A HelpySelf tool (helpyself.com).
Parameters:
title(required) — string — The heading shown at the top of the gallery page, up to 120 characters.fileIds(required) — array — Ids of files the signed-in caller already owns, in the order they should appear. Upload first via POST /v1/files/upload-url then /v1/files/confirm; the gallery stores no bytes of its own. Up to 200 pictures; duplicates are shown once. The link never outlives the files it shows.intro— string — The subtitle, shown as plain text under the heading; never rendered as a link. Omit for none.layout— string — grid crops every tile to a square for a uniform wall; masonry keeps each picture's own proportions and packs them.columns— integer — Pictures per row on a wide screen, treated as a maximum: a phone shows at most two across and a tablet three, whatever is set here.captions— array — Captions matched to `fileIds` by position, so the third caption belongs to the third file. Use null or an empty string to leave one uncaptioned. Omit for none.duration— string — How long the public link works, from now: one hour, one day, seven days or thirty days. Cut short if any of the files expires sooner.password— string — A password visitors must enter before any picture is fetched. Omit, or send an empty string, for an open link.
Hints: read-only no · destructive no · idempotent no · open-world no
pregnancy_calculatorread-onlyA due date calculator that also tells you how many weeks you are today A HelpySelf tool (helpyself.com).
Parameters:
lmpDate(required) — string — First day of the last menstrual period as YYYY-MM-DD. Everything is counted from this date by Naegele's rule (280 days to the due date), shifted by `cycleLength`. Refused if it is in the future or more than 48 weeks ago.asOfDate— string — The date to measure weeks, days and trimester to, as YYYY-MM-DD. Omit and the server uses today's date in UTC, which can be a day out near midnight; send the reader's own local date when you have it.cycleLength— integer — Average menstrual cycle length in days. 28 is what Naegele's rule assumes; each day longer moves the due date and the estimated conception date one day later.
Hints: read-only yes · destructive no · idempotent yes · open-world no
bracket_makerType in the players, get a knockout bracket, and share one link everyone follows as the rounds are played. A HelpySelf tool (helpyself.com).
Parameters:
title(required) — string — The tournament's name, shown as the page heading. Up to 80 characters.players(required) — array — Everybody in the draw, 4 to 64. Any number works — one that is not a power of two gets byes in the first round, placed against the top seeds so no bye faces another and both halves play the same number of rounds. Names are compared case-insensitively, so the same name twice is refused as a typo.draw— string — `seeded` treats the order given as the rankings: the first two can only meet in the final and byes go to the top. `shuffled` draws at random, which is what an office sweepstake wants. Either way the order is fixed once the bracket exists.
Hints: read-only no · destructive no · idempotent no · open-world no
auto_redact_pdfread-onlyAuto redact PDF files: it finds the personal information, you confirm, the words are deleted. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The document's plain text, as extracted from the PDF, not the file itself. It is sent to a language model, which returns the personal names and postal addresses found in it, each exactly as written; the caller maps them back to positions. Emails, phone and card numbers are not returned, since patterns catch those locally. At least 40 characters and at most 120000.language— string — The language the document is most likely in, such as "Danish", passed to the model as a hint because it changes what a name looks like. A hint only: a wrong guess does not stop the text being read, and omitting it is fine.
Hints: read-only yes · destructive no · idempotent yes · open-world no
find_a_timePropose a few times, send one link, see when everybody can make it A HelpySelf tool (helpyself.com).
Parameters:
title(required) — string — The heading on the poll page, shown to everybody who opens the link. 'Coffee with the team', 'Board meeting'.options(required) — array — The times people choose between, at least 2 and at most 366. Each one is either an object {date, time} or a plain string like "2026-10-20 14:00" or "2026-10-20" for a whole day. Duplicates are refused; they are sorted chronologically for the page.days— integer — How many days the poll link stays open from now. After that it expires.note— string — A line shown under the title to the people answering, such as where to meet.locale— string — The language of the poll page: one of en, de, es, fi, fr, it, nl, pl. Anything else, or nothing, gives English.timezone— string — The IANA time zone the option times are written in, e.g. 'Europe/Berlin', so the page can say so. Omit it, or give an unknown zone, and the times are shown as written with no zone claimed.
Hints: read-only no · destructive no · idempotent no · open-world no
background_removerread-onlyRemove the background from an image — solid backgrounds go transparent, in your browser. A HelpySelf tool (helpyself.com).
Parameters:
type(required) — string — The MIME type of the bytes in data: JPEG, PNG or WebP.data(required) — string — The image file's bytes, base64-encoded. This removes a flat, single-colour background such as a white product shot or a scan; it is not a subject cutout for photos with busy backgrounds.name— string — The original filename. Used only to name the result, whose extension becomes .png because the output is always a PNG with transparency.reach— string — edges (the default) removes only background connected to the image border, so enclosed areas like the hole in a letter or a window behind someone stay. everywhere removes every pixel within tolerance wherever it is.colour— string — The background colour to remove, as #rrggbb hex. Omit to sample it from the four corners of the image; the response reports the colour used and whether the corners agreed on it.feather— number — How soft the edge is, 0 to 100. It widens the band of partly transparent pixels around the tolerance threshold, as a percentage of tolerance; 0 gives a hard jagged cut.tolerance— number — How far a pixel's colour may be from the background colour and still be removed, 0 to 100 as a share of the largest possible RGB distance. Raise it for uneven lighting or JPEG noise; too high eats into the subject.
Hints: read-only yes · destructive no · idempotent yes · open-world no
pdf_compressread-onlyReduce PDF size without turning the text into a picture. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The PDF to compress, base64-encoded (a data: URL prefix is stripped). The result comes back the same way in `data`.name— string — Filename echoed back as `name` in the response. Used for nothing else.level— string — How hard to squeeze the embedded JPEGs. light re-encodes at quality 0.82 with the longest edge capped at 2400 px, balanced 0.65 and 1800 px, strong 0.45 and 1400 px. Text, fonts and vector graphics are untouched at every level.structureOnly— boolean — Leave every image as it is and only rewrite the file structure with object streams. Saves a little on text-heavy documents and almost nothing on scans.
Hints: read-only yes · destructive no · idempotent yes · open-world no
bmi_calculatorread-onlyA BMI calculator in metric or imperial, worked out in your browser. A HelpySelf tool (helpyself.com).
Parameters:
weight(required) — number — Body weight, in kilograms when units is metric and in pounds when imperial. The healthy-weight range in the response comes back in the same unit.feet— number — The whole-feet part of the height. Imperial only; ignored when metric. Either feet or inches may be left out, so 6 ft with no inches works.units— string — metric (the default) reads weight as kg and height as cm; imperial reads weight as lb and height as feet plus inches. Also sets the unit of the healthy range returned.height— number — Height in centimetres. Required when units is metric and ignored when imperial, which takes feet and inches instead.inches— number — The inches part of the height, added to feet. Imperial only; ignored when metric.
Hints: read-only yes · destructive no · idempotent yes · open-world no
body_fat_calculatorread-onlyA body fat calculator that works from a tape measure, using the US Navy method. A HelpySelf tool (helpyself.com).
Parameters:
sex(required) — string — Which of the two US Navy equations to use; they are not interchangeable. female needs a hip measurement and uses waist plus hip; male uses the waist alone.height(required) — number — Standing height, in the unit named by system.neck(required) — number — Neck circumference measured just below the larynx, in the unit named by system. Must be smaller than the waist (or waist plus hip for female) or the request is refused.waist(required) — number — Waist circumference, relaxed, in the unit named by system: at the navel for men, at the narrowest point for women.hip— number — Hip circumference at the widest point, in the unit named by system. Required when sex is female; ignored when male.system— string — The unit every measurement is in. metric (the default) reads height, neck, waist and hip in centimetres and weight in kilograms; imperial reads lengths in inches and weight in pounds.weight— number — Body weight in kg (metric) or lb (imperial). Not part of the percentage; it is only used to also return fat mass and lean mass in the same unit. Omit it and those come back null.
Hints: read-only yes · destructive no · idempotent yes · open-world no
calorie_calculatorread-onlyWork out how many calories you burn a day, and what to eat for a goal. A HelpySelf tool (helpyself.com).
Parameters:
sex(required) — string — Enters the Mifflin-St Jeor equation as a constant, and sets the lowest intake the tool will suggest: 1,200 kcal a day for female, 1,500 for male.age(required) — integer — Age in years. The equation was fitted on adults, so under 18 or over 100 the answer is still computed but reported as reliable: false.weightKg(required) — number — Body weight in kilograms. Under 30 kg the answer is marked unreliable.heightCm(required) — number — Height in centimetres. Under 120 cm the answer is marked unreliable.activity— string — How active a typical week is, multiplying resting metabolism to get maintenance calories: sedentary (little or no exercise, x1.2, the default), light (x1.375), moderate (x1.55), active (x1.725), athlete (very hard daily training, x1.9).
Hints: read-only yes · destructive no · idempotent yes · open-world no
coin_flipread-onlyA coin toss you can trust — heads or tails, from real randomness. A HelpySelf tool (helpyself.com).
Parameters:
count— integer — How many times to flip, 1 to 1000. Every flip comes back in order, with a heads and tails tally beside them.headsPercent— number — Chance of heads on each flip, as a percentage. 50 is a fair coin; 12.5 is honoured exactly rather than rounded to a whole percent.
Hints: read-only yes · destructive no · idempotent yes · open-world no
countdown_timerread-onlyA 5 minute timer, a 10 minute timer, or any timer online — with an alarm. A HelpySelf tool (helpyself.com).
Parameters:
hours— integer — The hours part of the duration. The three parts are added together and capped at 24 hours in total, then returned as milliseconds, as h:mm:ss text and as parts.minutes— integer — The minutes part of the duration. Defaults to 5, so an empty request is 05:00.seconds— integer — The seconds part of the duration.
Hints: read-only yes · destructive no · idempotent yes · open-world no
delisted_gamesread-onlyCheck whether a Steam game has been delisted — and when it went A HelpySelf tool (helpyself.com).
Parameters:
game(required) — string — The game to look up: a name, a Steam store URL or a numeric app id, in one field. A name is matched against every game ever seen in the weekly Steam snapshots, including ones Steam's own search no longer finds, and up to 8 matches come back each with a status of listed, delisted, upcoming, gone or unknown.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
dice_rollerread-onlyA dice roller for any number of sides, rolled in your browser. A HelpySelf tool (helpyself.com).
Parameters:
dice— integer — How many dice to roll, 1 to 100: the 2 in 2d6+3. Each roll comes back separately along with their subtotal.sides— integer — Faces on each die, 2 to 1000: the 6 in 2d6+3. Every die rolls 1 to this number. Defaults to 6.modifier— integer — A whole number added once to the total, not to each die: the +3 in 2d6+3. May be negative. Defaults to 0.
Hints: read-only yes · destructive no · idempotent yes · open-world no
pdf_mergeread-onlyMerge PDF files into one document. A HelpySelf tool (helpyself.com).
Parameters:
files(required) — array — The PDFs to join, in the order their pages should appear in the result. Needs at least two, and no more than 30 in one request.
Hints: read-only yes · destructive no · idempotent yes · open-world no
pace_calculatorread-onlyA running pace calculator: give any two of distance, time and pace to get the third. A HelpySelf tool (helpyself.com).
Parameters:
unit— string — The unit `distance` and `paceSecondsPerUnit` are read in. The answer always reports pace per kilometre and per mile, whichever was given.distance— number — How far, in the unit named by `unit`. Give any two of distance, timeSeconds and paceSecondsPerUnit and the third is worked out.timeSeconds— number — Total time in seconds, so 3150 is 52 minutes 30 seconds.paceSecondsPerUnit— number — Pace in seconds per `unit`, so 315 with unit km is 5:15 per kilometre. Ignored when distance and timeSeconds are both given, since those two determine it.
Hints: read-only yes · destructive no · idempotent yes · open-world no
password_generatorread-onlyA password generator for strong random passwords, in your browser. A HelpySelf tool (helpyself.com).
Parameters:
count— integer — How many passwords to return, up to 50. Always an array.digits— boolean — Include 0-9.length— integer — Characters per password, 4 to 128. The reported entropy in bits grows with the length and with how many character sets are on.symbols— boolean — Include the symbols !#$%&*+-=?@^_~. Turn off for systems that refuse punctuation.lowercase— boolean — Include a-z. Every password is guaranteed at least one character from each set that is on, and at least one of the four sets must be on.uppercase— boolean — Include A-Z.excludeAmbiguous— boolean — Leave out I, l, 1, O, 0 and o, which are misread when a password is written down or read aloud. Slightly lowers the entropy.
Hints: read-only yes · destructive no · idempotent yes · open-world no
random_number_generatorread-onlyA random number generator for any range, in your browser. A HelpySelf tool (helpyself.com).
Parameters:
max— integer — Highest whole number that may be drawn, inclusive. Must not be below `min`. 100 when omitted.min— integer — Lowest whole number that may be drawn, inclusive. 1 when omitted.count— integer — How many numbers to draw, up to 1000. Always returned as an array.sorted— boolean — Return the draw in ascending order. Sorting happens after drawing, so it does not change the odds.unique— boolean — Draw without repeats, like lottery balls rather than dice. Refused if `count` is more than the range holds.
Hints: read-only yes · destructive no · idempotent yes · open-world no
random_pickerread-onlyA random picker for a list of names, drawn in your browser. A HelpySelf tool (helpyself.com).
Parameters:
items(required) — array — The list to pick from, up to 10000 entries. An entry written twice is deliberately twice as likely to be picked, so duplicates are not collapsed.count— integer — How many entries to pick, without repeats. Asking for more than the list holds is an error rather than a shorter answer. Ignored when shuffleAll is true.shuffleAll— boolean — Return the whole list in a random order instead of a selection. Every ordering is equally likely, and count is ignored.
Hints: read-only yes · destructive no · idempotent yes · open-world no
exif_removerread-onlySee what your photos reveal, then remove the EXIF data — without uploading them. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The image file as base64: a JPEG, PNG or WebP. The format is detected from the bytes, and files over 50 MB are refused.name— string — A filename echoed back with a strip result. It does not affect what is removed.action— string — 'inspect' lists the metadata found (camera, time, location) without changing the file. 'strip' returns the same image with that metadata removed, losslessly.keepOrientation— boolean — Keep the EXIF orientation flag when stripping, so a phone photo does not turn on its side. Set false to remove it with everything else.keepColourProfile— boolean — Keep the ICC colour profile when stripping. Set false to remove it too, which can visibly shift the colours on wide-gamut screens.
Hints: read-only yes · destructive no · idempotent yes · open-world no
unit_converterread-onlykg to lbs, mm to inches, cm to feet — every everyday unit, in your browser. A HelpySelf tool (helpyself.com).
Parameters:
from(required) — string — Unit id to convert from, which must belong to category. Ids by category: length: mm, cm, m, km, in, ft, yd, mi; mass: g, kg, t, oz, lb, st; temperature: c, f, k; volume: ml, l, tsp, tbsp, cup, pt, gal, galuk; area: cm2, m2, km2, ft2, yd2, acre, ha; speed: kmh, mph, ms, kn; data: b, kb, mb, gb, tb, kib, mib, gib, tib; time: ms, s, min, h, d, wk.to(required) — string — Unit id to convert to, from the same category and the same list of ids as from.value— number — The quantity to convert, expressed in the from unit. Defaults to 1.category— string — Which kind of quantity: length, mass, temperature, volume, area, speed, data, time. Both from and to must be units of this category. Defaults to length.
Hints: read-only yes · destructive no · idempotent yes · open-world no
what_is_my_ipread-onlyWhat's my IP — the address the internet sees, and where it thinks you are. A HelpySelf tool (helpyself.com).
Hints: read-only yes · destructive no · idempotent yes · open-world no
xml_formatterread-onlyAn XML formatter that indents, minifies and checks a document in your browser. A HelpySelf tool (helpyself.com).
Parameters:
xml(required) — string — The XML document to work on.mode— string — format re-indents it, one node per line; minify puts it on one line; validate only reports whether the tags nest and close, with the line of the first fault. None of them checks against a schema. Defaults to format.indent— Spaces per nesting level when formatting, or "tab" for one tab per level. Ignored by minify and validate. Defaults to 2.keepComments— boolean — Keep <!-- --> comments when formatting; false drops them. Defaults to true.
Hints: read-only yes · destructive no · idempotent yes · open-world no
pdf_to_imagesread-onlyPDF to JPG, PDF to PNG — every page as an image, at the size you need. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The PDF to render, base64-encoded. A data: URL prefix is stripped.name— string — Base name for the image files; a .pdf ending is dropped and pages are named <name>-01.png and so on, zero-padded to the page count. Also names the ZIP when `archive` is on.size— string — Longest edge of each image in pixels: thumbnail 480, screen 1280, print 2480. A request estimated at more than 120 megapixels in total is refused before rendering, so ask for fewer pages or a smaller size.type— string — Image format for every page. PNG is lossless; JPEG and WebP are much smaller and honour `quality`.pages— string — Which pages to render, counted from 1: single pages and ranges separated by commas, such as "1-3, 7, 12-", where an open end runs to the last page. Omit for every page.archive— boolean — Return one ZIP of every image, base64-encoded in `data`, instead of an `images` array with one base64 string per page. Easier to handle for a long document.quality— number — Compression quality for JPEG and WebP, 0.1 to 1, where 1 is the largest file and the best picture. Ignored for PNG.
Hints: read-only yes · destructive no · idempotent yes · open-world no
pdf_reorderread-onlyRearrange, rotate and delete pages from a PDF, then save it back out. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The PDF to rebuild, base64-encoded. A data: URL prefix is stripped.name— string — Base name for the output file; a .pdf ending is dropped and the response names it <name>.pdf.order— string — Source page numbers, 1-based, in the order they should appear, as "3, 1, 2". A range may run backwards, so "10-1" reverses a ten-page document. Leave a page out to delete it and repeat one to duplicate it. Omit to keep every page in its current order.rotations— object — Extra clockwise rotation per source page, as {"2": 90}. Added to whatever rotation the page already has, and keyed by source page rather than output position, so it holds good after a reorder.
Hints: read-only yes · destructive no · idempotent yes · open-world no
pdf_splitread-onlyExtract pages from a PDF or split it into separate files. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The PDF to split, base64-encoded. A data: URL prefix is stripped.mode— string — extract returns one PDF holding the selected pages; single returns one PDF per selected page. `files` in the response is an array either way.name— string — Base name for the output files; a .pdf ending is dropped. extract mode names the result <name>-extracted.pdf, single mode <name>-page-N.pdf per page.pages— string — Which pages to take, counted from 1: single pages and ranges separated by commas, such as "1-3, 7, 12-", where an open end runs to the last page. The order given is kept, so "3, 1" puts page 3 first. Omit for every page.
Hints: read-only yes · destructive no · idempotent yes · open-world no
avif_converterread-onlyAVIF to JPG, and JPG to AVIF — the format that halves a photograph. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The image file's bytes, base64-encoded: JPEG, PNG, WebP, GIF or AVIF. At most 30 MB decoded. An animated GIF is converted to a still of its first frame, and the response says so with note: "animation-dropped".name— string — The original filename. Only used to name the result: its extension is swapped for the output format's, so photo.jpg comes back as photo.avif.type— string — The MIME type of the bytes in data. The image pipeline reads all of these; the actual format is taken from the bytes, so a wrong value here is not fatal.format— string — The format to produce. AVIF is what the tool is for; WebP, JPEG and PNG exist so an AVIF can be converted back to something older software opens.quality— integer — Encoder quality, 1 (smallest, roughest) to 100 (largest). Ignored for PNG, which is lossless. The default of 60 is deliberate: AVIF at 100 is often larger than the JPEG it replaces.maxWidth— integer — Scale the image down so its width is at most this many pixels, keeping the aspect ratio. Never enlarges. Omit to keep the original dimensions.
Hints: read-only yes · destructive no · idempotent yes · open-world no
images_to_pdfread-onlyJPG to PDF and PNG to PDF — photos to PDF, in the order you choose. A HelpySelf tool (helpyself.com).
Parameters:
images(required) — array — The images in page order, one page each, at most 100 of them.margin— integer — White space around the image on 'a4' and 'letter' pages, in PDF points (72 per inch; 144 is two inches). Ignored for 'fit'.pageSize— string — The paper size. 'fit' makes each page exactly the image's own pixel size, with no margins or letterboxing; 'a4' and 'letter' put every image on that fixed page, scaled to fit and centred.orientation— string — Page orientation for 'a4' and 'letter': 'portrait' or 'landscape' for every page, or 'auto' to turn a page landscape when its image is wider than tall. Ignored for 'fit'.
Hints: read-only yes · destructive no · idempotent yes · open-world no
pdf_rotateread-onlyRotate PDF pages the right way up — sideways or upside-down. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The PDF to rotate, base64-encoded. A data: URL prefix is stripped.name— string — Base name for the output file; a .pdf ending is dropped and the response names it <name>-rotated.pdf.only— string — Filter the selected pages by their current orientation: landscape turns only pages wider than tall, portrait only pages taller than wide, all turns every selected page. The response lists which pages actually turned.angle— Clockwise rotation in degrees, added to whatever rotation each page already has. Lossless: nothing is re-rendered. A quarter turn when omitted.pages— string — Which pages to rotate, counted from 1: single pages and ranges separated by commas, such as "1-3, 7, 12-", where an open end runs to the last page. Omit for every page.
Hints: read-only yes · destructive no · idempotent yes · open-world no
base64read-onlyBase64 encode and decode text instantly, with full Unicode support. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The text to encode, or the Base64 to decode, depending on action. Encoding goes through UTF-8 first, so accents, emoji and CJK survive. Decoding accepts standard or URL-safe Base64, with or without padding, and ignores whitespace.action— string — encode turns text into Base64; decode turns Base64 back into UTF-8 text. Defaults to encode.urlSafe— boolean — When encoding, use the URL-safe alphabet (RFC 4648 section 5): + and / become - and _, and the = padding is dropped, as in JWTs. Ignored when decoding, which detects either alphabet.
Hints: read-only yes · destructive no · idempotent yes · open-world no
cookie_checkerread-onlyA cookie checker that shows what a website sets, and whether Secure, HttpOnly and SameSite are on. A HelpySelf tool (helpyself.com).
Parameters:
url(required) — string — The public website to check, for example https://example.com. A bare hostname is read as https. The page is fetched as a normal browser would and every Set-Cookie header it returns is parsed and judged. Private, loopback and non-http addresses are refused.
Hints: read-only yes · destructive no · idempotent yes · open-world no
image_cropperread-onlyCrop image online — drag the box, or type an exact size in pixels. A HelpySelf tool (helpyself.com).
Parameters:
type(required) — string — The MIME type of the source image: image/jpeg, image/png or image/webp.data(required) — string — The image file as base64, in the format given by type.x(required) — integer — The crop box's left edge, in pixels from the left of the source image.y(required) — integer — The crop box's top edge, in pixels from the top of the source image.width(required) — integer — The crop box's width in source pixels. A box that runs past the image is clamped to fit inside it, and never below 8 pixels.height(required) — integer — The crop box's height in source pixels, clamped to the image like width.name— string — The source filename. The result keeps its stem with the output format's extension.format— string — The output format. 'auto' keeps PNG and WebP sources in their own format, so transparency survives, and writes everything else as JPEG.quality— number — Encoder quality from 0.1 to 1 for JPEG and WebP output; lower is smaller and softer. PNG is lossless and ignores it.
Hints: read-only yes · destructive no · idempotent yes · open-world no
image_to_textread-onlyImage to text: read the words out of a photo — receipts, screenshots, handwriting. A HelpySelf tool (helpyself.com).
Parameters:
data— string — The image file as base64, in the format given by type. Send this or fileId, not both. Anything a vision model can read works: a photo of a page, a screenshot, a scan.mode— string — What to return: 'text' is the words in reading order and nothing else; 'markdown' keeps headings and lists, which suits a document scan; 'table' transcribes a table as CSV.type— string — The MIME type of the bytes in data: image/jpeg, image/png, image/webp or image/gif. Ignored when fileId is used, since the stored type wins.fileId— string — The id of an image already uploaded to the caller's account, to read instead of data. Needs a signed-in caller; the upload is consumed by the run. Most scripts should send data instead.language— string — The language the text is most likely in, e.g. 'Danish', as a hint to the model. It is not a constraint: what is actually in the picture is transcribed.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
readability_scoreread-onlyReadability score for any text — Flesch–Kincaid, Gunning fog index and more. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — English prose to score, at least 20 words. Scored with Flesch Reading Ease, Flesch-Kincaid, Gunning fog, SMOG, ARI and Coleman-Liau, which are averages over sentence and syllable counts, so a short passage gives a rough answer.
Hints: read-only yes · destructive no · idempotent yes · open-world no
barcode_generatorread-onlyA barcode generator for EAN-13, UPC-A, EAN-8 and Code 128 — check digit included. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — What to encode. For ean13, upca and ean8 this is digits only: 12, 11 or 7 of them and the check digit is worked out, or one more and it is verified (a wrong one is refused rather than drawn). For code128 it is any printable ASCII up to 80 characters.scale— integer — Width of the narrowest bar in pixels; every other width and the quiet zones are multiples of it, so this sets the overall size. 3 is about right for a screen.height— integer — Height of the bars in pixels. The printed number and the longer guard bars add to the total height of the SVG when showText is true.showText— boolean — Print the encoded value underneath the bars, as a retail barcode always does. False gives bars only.symbology— string — Which barcode standard to draw. ean13 (13 digits, the retail default worldwide), upca (12 digits, North American retail), ean8 (8 digits, small packaging), code128 (letters, digits and punctuation, for labels and logistics).
Hints: read-only yes · destructive no · idempotent yes · open-world no
barcode_readerread-onlyA barcode scanner online — read a barcode or QR code from a photo or screenshot. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The image file's bytes, base64-encoded: JPEG, PNG, WebP, GIF or BMP. SVG is refused here (the server cannot rasterise it); convert it to PNG first.type— string — The MIME type of the bytes, such as image/png. Optional and only used to reject something that is plainly not an image; the format is otherwise read from the bytes.
Hints: read-only yes · destructive no · idempotent yes · open-world no
contrast_fixerread-onlyA colour contrast fixer — the nearest accessible colour that passes WCAG AA. A HelpySelf tool (helpyself.com).
Parameters:
foreground(required) — string — The text colour, as hex, rgb(), hsl() or a CSS colour name.background(required) — string — The colour behind the text, in the same forms as foreground.level— string — The WCAG grade to reach. AA is normal body text at 4.5:1, AA_LARGE is large text at 3:1, AAA is 7:1 and AAA_LARGE is 4.5:1. Defaults to AA.adjust— string — Which colour may change. Only its lightness moves; hue and saturation are kept. 'either' tries both and returns the smallest change first. Defaults to either.
Hints: read-only yes · destructive no · idempotent yes · open-world no
csv_to_jsonread-onlyCSV to JSON and back — turn a spreadsheet export into clean, readable JSON. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The data to convert: CSV text when direction is csv-to-json, or a JSON array of objects or arrays when it is json-to-csv. Quoted fields, embedded newlines and doubled quotes are handled.trim— boolean — Strip whitespace from both ends of every field and column name when reading CSV. On by default.shape— string — The JSON produced from CSV: 'objects' keyed by column name (duplicate names get a _2 suffix), or 'arrays' of values in column order. Defaults to objects.typed— boolean — Convert fields that look like numbers, true/false or null to those JSON types, and empty fields to null. Off by default so postcodes and codes like 007 stay strings.header— boolean — Treat the first CSV row as column names, or write one when producing CSV. On by default. Off, every row is data and shape falls back to arrays.indent— integer — Spaces of indentation in the JSON output. 0 puts it all on one line. Defaults to 2. Ignored when producing CSV.delimiter— string — The field separator: comma, semicolon, tab or pipe. 'auto' (the default) picks whichever appears most on the first line outside quotes when reading CSV, and writes a comma when producing it. The one used is returned.direction— string — Which way to convert. Defaults to csv-to-json. Going to CSV, the columns are the union of every object's keys and rows are joined with CRLF.
Hints: read-only yes · destructive no · idempotent yes · open-world no
image_resizerread-onlyA photo resizer for any size — JPEG, PNG, WebP or an iPhone HEIC. A HelpySelf tool (helpyself.com).
Parameters:
type(required) — string — The MIME type of the source image: image/jpeg, image/png or image/webp.data(required) — string — The image file as base64, in the format given by type.mode— string — How the new size is given: 'dimensions' uses width and height in pixels, 'percentage' scales both sides by percentage and ignores width and height.name— string — The source filename. The result is named after its stem with the new size appended, e.g. 'photo-800x600.jpg'.width— integer — The target width in pixels, for the 'dimensions' mode. With keepAspect on, giving a width sets the height from it and any height given is ignored. Omitted with keepAspect off, the source width is kept.format— string — The output format: image/jpeg, image/png or image/webp. Omit it to keep the source format.height— integer — The target height in pixels, for the 'dimensions' mode. With keepAspect on it only applies when width is omitted, and then sets the width from it.quality— number — Encoder quality from 0.1 to 1 for JPEG and WebP output; lower is smaller and softer. PNG is lossless and ignores it.keepAspect— boolean — Keep the source proportions in 'dimensions' mode, so one of width or height drives the other. Set false to stretch to an exact width and height.percentage— number — The scale for the 'percentage' mode, as a percentage of the source size per side: 50 halves both edges, 100 leaves it as is. Over 100 needs allowUpscale.allowUpscale— boolean — Allow a result larger than the source on either side, up to 10000 pixels. Off by default, so enlarging is refused with an explanation rather than adding blur.
Hints: read-only yes · destructive no · idempotent yes · open-world no
invoice_generatorread-onlyA free invoice generator that makes a real PDF — no watermark, no sign-up. A HelpySelf tool (helpyself.com).
Parameters:
from(required) — string — The sender's name and address as free text; line breaks are kept.to(required) — string — The customer's name and address as free text; line breaks are kept.items(required) — array — The lines to bill, in the order they should appear.issueDate(required) — string — The date the invoice is issued, as YYYY-MM-DD. The due date is counted from it, and its year goes into the generated invoice number.pdf— boolean — Include the rendered PDF as base64 in pdfBase64. Set false to get only the number, due date and totals, which is faster and much smaller.notes— string — Free text printed under the totals: payment details, bank account, terms, a thank-you. Empty prints nothing.locale— string — The BCP 47 locale the amounts are formatted in, e.g. 'en-US' writes 1,234.56 and 'da-DK' writes 1.234,56. It does not translate the labels.number— string — Your own invoice number, printed as given. Overrides the one built from sequence.currency— string — The ISO 4217 currency code, e.g. 'USD', 'EUR', 'DKK'. It decides the symbol and decimals shown; an unknown code is refused with an error rather than guessed.sequence— integer — The position in your invoice series, used to build the number as INV-<year>-<sequence padded to 4 digits>, e.g. 7 in 2026 gives INV-2026-0007. Ignored when number is given.taxLabel— string — What the tax line is called on the invoice: 'VAT', 'MwSt', 'Moms', 'GST'.taxPercent— number — Tax added on top of the subtotal, as a percentage: 25 adds a quarter. 0 leaves the total equal to the subtotal.paymentTermsDays— integer — How many days after issueDate payment is due. 0 means due on the issue date.
Hints: read-only yes · destructive no · idempotent yes · open-world no
signature_makerread-onlyA signature maker: draw or type yours, saved with a transparent background. A HelpySelf tool (helpyself.com).
Parameters:
strokes(required) — array — The drawing as a list of strokes, each a list of points in the order the pen visited them, in any consistent unit. At most 20000 points in total. The result is an SVG path, so the units only matter relative to strokeWidth.trim— boolean — Fit the SVG viewBox tightly to the ink. False keeps the pad's origin, so empty space above and left of the signature is kept and it sits off-centre when placed.colour— string — Ink colour as a hex value, #rgb or #rrggbb. Anything else falls back to #111111 rather than being written into the SVG.smooth— boolean — Draw quadratic curves through the points instead of straight segments between them, which stops a signature looking ruler-drawn.padding— number — Space left around the ink when trimming, measured in stroke widths rather than points units, so 2 at a strokeWidth of 3 is 6 units on every side.simplify— boolean — Drop points that lie almost on the line between their neighbours (tolerance of a quarter of strokeWidth). Shrinks the path a great deal and steadies the smoothing.strokeWidth— number — Line thickness, in the same units as the points. It also sets the scale of padding and of the simplify tolerance.
Hints: read-only yes · destructive no · idempotent yes · open-world no
stall_bookingOne link, on your own site or sent — vendors pick their own stall A HelpySelf tool (helpyself.com).
Parameters:
title(required) — string — The market's name, shown as the heading of the public booking page vendors book on. A successful call publishes that page under the caller's account and returns its URL, so call once per market.date(required) — string — The day the market is held, as YYYY-MM-DD with no time or zone. It must not be in the past, and the booking page is deleted daysAfter days after it.gap— integer — The aisle between stalls in centimetres, both between neighbours in a row and between rows. 120 fits prams and wheelchairs.note— string — A line shown under the title on the booking page: doors open, where to park, what not to bring.price— integer — What one stall costs, in the currency's minor unit (cents, pence, øre), so 25000 is 250.00. Never a decimal amount. 0 means the stalls are free.units— string — How the hall is shown to people, in metres or in feet. Display only: every dimension in this call is centimetres either way.stalls— integer — How many stalls to lay out in the rectangle. Required when no venueId is given. If fewer fit at the given stall size, fewer are made rather than the stalls being shrunk, and the response says how many. A free account is limited to a smaller market than Pro.backGap— integer — Space between the two backs of a paired row in centimetres, for the sellers' chairs and stock. Only used when backToBack is true; it is not the aisle.venueId— string — The id of a hall the caller has already drawn in the venue editor. Given, the market uses that hall's shape and hand-placed stalls, and hallWidth, hallDepth, stalls and the stall sizes are ignored. Omitted, a plain rectangle is laid out from hallWidth, hallDepth and stalls, which are then all required.currency— string — What the price is in. An ISO code such as "DKK" or "EUR" is formatted properly; any other text ("kr", "beer tokens") is printed as given beside the number.daysAfter— integer — How many days after the market date the booking page stays up. After that it is deleted, along with the vendors' names and contact details.hallDepth— integer — Depth of the hall in centimetres. Required when no venueId is given.hallWidth— integer — Width of the hall in centimetres, so 2000 is twenty metres. Required when no venueId is given; a value under two metres is refused as a typo.holdHours— integer — How many hours a booked stall is held while the vendor pays, at most a week. If the organiser has not marked it paid by then, the stall is released for someone else to book.backToBack— boolean — Lay rows out in pairs with their backs together and the aisle only between pairs, so the public cannot walk behind a seller. Fits more stalls in the same hall than a plain grid.stallDepth— integer — Depth of one stall in centimetres, front to back.stallWidth— integer — Width of one stall in centimetres, along the row. 180 is a standard trestle table.paymentDetails— string — How a vendor is to pay, in the organiser's own words, shown to them after they book: a bank account, a MobilePay number, "cash on the day". No card processing is involved.
Hints: read-only no · destructive no · idempotent no · open-world no
url_encoderread-onlyA URL encoder and decoder for links and query strings, percent-encoded properly. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The text to encode, the percent-encoded string to decode, or the URL to parse, depending on action.mode— string — component encodes or decodes every reserved character, as encodeURIComponent does, which is right for one query value. full leaves the characters that structure a URL (/ ? & = : #) alone, as encodeURI does, which is right for a whole address. Ignored by parse.action— string — encode percent-encodes text; decode reverses it; parse splits a complete URL (scheme included) into protocol, host, path, query parameters and hash, and ignores mode.
Hints: read-only yes · destructive no · idempotent yes · open-world no
bulk_image_resizerread-onlyA bulk image resizer for a whole folder at once, in your browser. A HelpySelf tool (helpyself.com).
Parameters:
type(required) — string — The MIME type of the bytes in data: JPEG, PNG or WebP. Also the output type when format is keep.data(required) — string — The image file's bytes, base64-encoded.maxEdge(required) — integer — The longest side of the result in pixels. The image is scaled down to fit inside this on its longer edge, keeping its aspect ratio. Never enlarges: an image already within the bound is returned as it is, with unchanged: true.name— string — The original filename. Echoed back unchanged as the result's name.format— string — The output format. keep (the default) re-encodes in the same type as the input; the others convert. JPEG has no transparency, so transparent areas are flattened onto white.quality— number — Encoder quality for JPEG and WebP, 0.1 (smallest) to 1 (largest). Has no effect on PNG, which is lossless.
Hints: read-only yes · destructive no · idempotent yes · open-world no
contrast_gridread-onlyA contrast grid for your whole palette — every pairing checked against WCAG. A HelpySelf tool (helpyself.com).
Parameters:
palette(required) — string — The colours to check against each other, as hex, rgb(), hsl() or CSS colour names, separated by newlines, commas or spaces. CSS custom-property names are ignored, duplicates are dropped, and 2 to 24 distinct colours are needed.level— string — The WCAG grade a pairing must clear to count as passing: AA is 4.5:1, AA_LARGE is 3:1, AAA is 7:1, AAA_LARGE is 4.5:1. Every cell still reports its own ratio and grade; this only decides the pass count. Defaults to AA.
Hints: read-only yes · destructive no · idempotent yes · open-world no
image_converterread-onlyConvert between JPEG, PNG and WebP, one file or many, with transparency flattened onto a colour you choose. HEIC and AVIF are browser-only and not accepted here. A HelpySelf tool (helpyself.com).
Parameters:
type(required) — string — The MIME type of the source image: image/jpeg, image/png or image/webp. HEIC, AVIF, TIFF and BMP are not accepted over the API.data(required) — string — The image file as base64, in the format given by type.target(required) — string — The format to convert to: image/jpeg, image/png or image/webp. It must differ from type; converting to the same format is refused. AVIF is not available over the API.name— string — The source filename. The result keeps its stem with the target format's extension.quality— number — Encoder quality from 0.1 to 1 when the target is JPEG or WebP; lower is smaller and softer. PNG is lossless and ignores it.background— string — A CSS colour painted behind transparent areas when converting to JPEG, which has no transparency. Defaults to white. Ignored for PNG and WebP targets.
Hints: read-only yes · destructive no · idempotent yes · open-world no
markdown_to_htmlread-onlyTurn Markdown into clean HTML, with a preview you can trust. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The Markdown to convert: CommonMark plus the GitHub extensions (tables, strikethrough, task lists, autolinks). Links are limited to http, https, mailto, tel, ftp and relative URLs; other schemes are dropped.breaks— boolean — Turn every single newline into a <br>, the way chat apps do. Off, and only a line ending in two spaces breaks; other newlines join into the same paragraph.allowHtml— boolean — Pass any raw HTML in the Markdown through to the output instead of escaping it. Off by default, which is the safe choice: inline HTML can carry a script, so only turn this on for Markdown you wrote yourself.headingIds— boolean — Give every heading an id derived from its text, made unique within the document, so a table of contents can link to it. Off, and headings carry no id.
Hints: read-only yes · destructive no · idempotent yes · open-world no
wheel_of_namesread-onlyA spinning wheel of names — paste a list, spin, and get one fair winner. A HelpySelf tool (helpyself.com).
Parameters:
names(required) — string — The entries to draw from, one per line. Blank lines and surrounding spaces are ignored; a name listed twice has two chances.draws— integer — How many winners to draw. Without removeWinner each draw is from the full list, so the same name can win more than once. Defaults to 1.removeWinner— boolean — Take each winner out of the list before the next draw, so no name wins twice. Drawing stops early if the list runs out; remaining in the response lists who is left.
Hints: read-only yes · destructive no · idempotent yes · open-world no
word_counterread-onlyA word counter and character counter, updating as you type. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The text to count. Returns characters with and without spaces, words, sentences, paragraphs (split on blank lines), lines, reading and speaking time in minutes, and the most frequent words with common ones left out.
Hints: read-only yes · destructive no · idempotent yes · open-world no
yaml_to_jsonread-onlyConvert a config file to JSON, or JSON back to readable YAML. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The document to convert: YAML when direction is yaml-to-json, JSON when it is json-to-yaml. A YAML file holding several --- documents becomes a JSON array.indent— integer — Spaces of indentation in the output. For JSON, 0 gives a single line; YAML output always indents by at least 1. Defaults to 2.sortKeys— boolean — Sort object keys alphabetically at every level, so two configs can be compared. Off by default, which keeps the input's order.direction— string — yaml-to-json parses YAML and returns JSON; json-to-yaml parses JSON and returns YAML. Defaults to yaml-to-json.
Hints: read-only yes · destructive no · idempotent yes · open-world no
ascii_tableread-onlyThe full ASCII table, with the control codes explained rather than left blank. A HelpySelf tool (helpyself.com).
Parameters:
search— string — What to look up: a single character ("A"), a decimal code ("65"), hex ("0x41", "U+0041", "\x41"), binary ("0b01000001"), octal ("0o101"), an HTML entity ("&"), an abbreviation ("LF") or part of a name ("line feed", "sep"). Numbers return one entry; names return every match, best first. Plain digits are always decimal. Empty (the default) returns the whole table.includeExtended— boolean — Also include codes 128 to 255, read as ISO-8859-1 (Latin-1). ASCII proper stops at 127, so a search for a higher code finds nothing unless this is true.
Hints: read-only yes · destructive no · idempotent yes · open-world no
binary_translatorread-onlyA binary translator both ways — binary to text, text to binary, hex and decimal too. A HelpySelf tool (helpyself.com).
Parameters:
input(required) — string — Plain text, or bytes written as binary, hex, decimal or octal. Groups may be separated by spaces or commas; hex also accepts 0x prefixes and unspaced pairs. Every other representation of the same bytes comes back at once, so there is no direction to choose. Text is treated as UTF-8, so "é" is two bytes.readAs— string — How to read input. auto (the default) works it out: only 0s and 1s in whole bytes is binary, hex digits with a letter or 0x is hex, several zero-padded pairs is hex, several numbers up to 255 is decimal, anything else is text. Octal is never guessed, since "17" is valid octal and decimal, so name it explicitly. Byte values over 255 are refused.
Hints: read-only yes · destructive no · idempotent yes · open-world no
compress_to_sizeread-onlyCompress image to 100KB, 1MB, or whatever exact size the form demands. A HelpySelf tool (helpyself.com).
Parameters:
type(required) — string — The MIME type of the bytes in data. A JPEG is re-encoded as JPEG; PNG and WebP input both come back as WebP.data(required) — string — The image file itself, base64-encoded (no data: prefix). The result's data is the compressed file in the same encoding.targetKb(required) — integer — The size the output must not exceed, in kilobytes of 1,024 bytes, as upload limits mean it. The highest quality that fits is found by re-encoding; if none does, the response says so and suggests a scale factor to shrink the pixels by instead.name— string — The file name, echoed back in the response so a caller can keep it with the result. It does not decide the format; type does.
Hints: read-only yes · destructive no · idempotent yes · open-world no
cron_expressionread-onlyRead a cron expression in plain English, and see exactly when it will next run. A HelpySelf tool (helpyself.com).
Parameters:
expression(required) — string — A five-field crontab expression (minute, hour, day of month, month, day of week) such as '*/15 9-17 * * MON-FRI', or a shorthand like @daily or @hourly. Names, ranges, lists and steps are accepted; Quartz seconds and L/W/# are not. It comes back explained in words with its next run times.count— integer — How many upcoming runs to list, strictly after now, each as a wall-clock ISO string without an offset plus a readable form. Defaults to 5.timezone— string — The IANA time zone the schedule is read in, such as Europe/Copenhagen. Cron means wall-clock time, so the run times change with it. Defaults to UTC, and an unrecognised name falls back to UTC.
Hints: read-only yes · destructive no · idempotent yes · open-world no
gradient_generatorread-onlyA CSS gradient generator for linear, radial and conic — copy the code straight out. A HelpySelf tool (helpyself.com).
Parameters:
stops(required) — array — The colours in order, from 2 to 16 of them.type— string — The kind of CSS gradient: 'linear' runs in a straight line at the angle, 'radial' spreads out from the centre, 'conic' sweeps round the centre.angle— number — Degrees, normalised to 0-359. For linear it is the direction the gradient runs, 0 pointing up and 180 down; for conic it is where the sweep starts. Ignored for radial.shape— string — For radial gradients only: 'circle' keeps the rings round, 'ellipse' stretches them to the box. Ignored for linear and conic.repeating— boolean — Emit the repeating-* variant, which tiles the gradient over the box instead of stretching it once. Only visible when the stops have explicit positions short of 100.
Hints: read-only yes · destructive no · idempotent yes · open-world no
favicon_generatorread-onlyA favicon generator that turns any image into a complete set. A HelpySelf tool (helpyself.com).
Parameters:
type(required) — string — The MIME type of the source image: image/jpeg, image/png or image/webp.data(required) — string — The source image as base64. A square image works best; a non-square one is cropped to a centred square before the sizes are made.name— string — The source file's name. Informational only; the outputs use fixed favicon names.
Hints: read-only yes · destructive no · idempotent yes · open-world no
hash_generatorread-onlyA hash generator for SHA-1, SHA-256, SHA-384 and SHA-512. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The text to hash. It is encoded as UTF-8 before hashing, exactly as given.algorithms— array — Which digests to compute, from SHA-1, SHA-256, SHA-384, SHA-512. One hex digest comes back per algorithm named.
Hints: read-only yes · destructive no · idempotent yes · open-world no
jwt_decoderread-onlyA JWT decoder that inspects JSON Web Tokens safely. A HelpySelf tool (helpyself.com).
Parameters:
token(required) — string — The JWT to decode: three base64url parts joined by dots. A leading 'Bearer ' is stripped. The header and payload are decoded and the signature is returned as is; nothing is verified, and the result says so.
Hints: read-only yes · destructive no · idempotent yes · open-world no
mic_testread-onlyA microphone test that answers the real question — will they hear me? A HelpySelf tool (helpyself.com).
Parameters:
samples(required) — array — A block of decoded mono audio samples, each between -1 and 1. Loudness (RMS), peak and the verdict are judged over the whole block, so send a stretch of speech rather than a single frame; a peak at or above 0.99 counts as clipping.
Hints: read-only yes · destructive no · idempotent yes · open-world no
morse_code_translatorread-onlyA morse code translator both ways — text to morse code, and morse code to text. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — Plain text to turn into morse, or morse to turn back into text. Morse is dots and dashes with a space between letters and a slash (or two spaces) between words; middle dots and en or em dashes are accepted as well.direction— string — Which way to translate. "auto" decodes when the input is nothing but dots, dashes, spaces and slashes, and encodes otherwise; "toMorse" and "toText" force one direction. Anything with no morse equivalent comes back as <x> and is listed in `unsupported`.
Hints: read-only yes · destructive no · idempotent yes · open-world no
one_rep_maxread-onlyA one rep max calculator that shows the training percentages too, not just the number. A HelpySelf tool (helpyself.com).
Parameters:
weight(required) — number — The weight lifted, in kilograms or pounds — the unit is never converted, so every number that comes back is in the same one you sent.reps(required) — integer — How many reps were completed with that weight, 1 to 20. One rep returns the weight itself rather than a formula's estimate of it. Above ten the estimate is reported with `reliable: false`.formula— string — Which published regression to use for the headline figure. Epley is the usual default and what most lifting apps show; every formula's answer comes back in `estimates` regardless.
Hints: read-only yes · destructive no · idempotent yes · open-world no
duplicate_line_removerread-onlyRemove duplicate lines, blanks and stray spaces from a list in one pass. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The lines to de-duplicate, separated by any line ending. The result is the text with repeats removed, in the original order unless sort says otherwise, plus counts of what was dropped.keep— string — Which occurrence of a repeated line survives: 'first' keeps it where it first appeared, 'last' keeps it at its final position. Defaults to first.sort— string — Order of the output: 'none' keeps the input order, 'asc' and 'desc' sort alphabetically with locale-aware, numeric-aware comparison (item2 before item10), 'length' sorts shortest line first. Defaults to none.trimLines— boolean — Strip whitespace from both ends of every line before comparing and before output. On by default. Off, trailing spaces make two lines different.removeBlank— boolean — Drop empty lines entirely rather than keeping one of them. On by default.caseSensitive— boolean — Treat Apple and apple as different lines. Off by default, so they count as the same line and only the kept one survives.onlyDuplicates— boolean — Invert the tool: return only the lines that appeared more than once, one entry each in order of first appearance, and leave the unique lines out. Off by default.
Hints: read-only yes · destructive no · idempotent yes · open-world no
screen_recorderread-onlyRecord your screen in the browser — nothing is uploaded anywhere A HelpySelf tool (helpyself.com).
Parameters:
width(required) — integer — Width of the area being recorded, in pixels. Bitrate scales with the pixel count, so a shared window costs far less than a full 4K screen.height(required) — integer — Height of the area being recorded, in pixels.quality— string — How much data to spend, as bits per pixel per frame: "high" is 0.10 and keeps text crisp at 1080p, "balanced" is 0.05 with readable text and slight banding, "small" is 0.02 for a long recording that has to be emailed. There is a floor of 400 kbit/s whatever the picture size.seconds— number — The planned length of the recording, in seconds, used only to estimate the file size and to say whether it is past the point where a browser tab runs out of memory (about 512 MB held in the tab). The bitrate and safe duration do not depend on it.frameRate— number — Frames per second to capture at. Bitrate scales with it, and 30 is enough for screen content, which changes little between frames.withAudio— boolean — Whether the recording carries an audio track. True adds a fixed 128 kbit/s of Opus to the size estimate and shortens the safe duration accordingly.
Hints: read-only yes · destructive no · idempotent yes · open-world no
sleep_calculatorread-onlyA sleep calculator that works backwards from when you have to be up. A HelpySelf tool (helpyself.com).
Parameters:
time(required) — string — A 24-hour clock reading with a colon, such as "07:30" or "23:15". No date or time zone is involved. "7.30" or "7:30 pm" is refused.timeIs— string — What time is: "wake" means it is the alarm and bedtimes are returned, most sleep first; "bedtime" means it is when you go to bed and wake times are returned, earliest first. 4 options come back, for 3 to 6 cycles.cycleMinutes— integer — Length of one sleep cycle in minutes. 90 is the adult average; real cycles run roughly 70 to 120 and differ between people.fallAsleepMinutes— integer — Minutes spent falling asleep after going to bed, subtracted from a bedtime or added to a wake time. Defaults to 15.
Hints: read-only yes · destructive no · idempotent yes · open-world no
subnet_calculatorread-onlyA subnet calculator that gets /31 and /32 right, which most do not. A HelpySelf tool (helpyself.com).
Parameters:
network(required) — string — An IPv4 address with a prefix length ("192.168.1.10/24"), an address and a dotted mask separated by a space ("10.0.0.1 255.0.0.0"), or a bare address, which is read as /24. Octets with leading zeros are refused, as is a mask that is not a run of ones followed by zeros.
Hints: read-only yes · destructive no · idempotent yes · open-world no
svg_minifierread-onlyAn SVG minifier that strips editor clutter and scripts, without touching the artwork. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The SVG source as text. Anything without an <svg> element is refused.precision— integer — Decimal places kept on coordinates and other numeric attributes; -1 leaves numbers untouched. Two is enough for an icon and is where most of the saving comes from.removeScripts— boolean — Strip <script> elements, on* event handlers, javascript: links and the <a> elements around them, so the output is safe to serve as a file. On by default.removeComments— boolean — Strip <!-- --> comments.removeMetadata— boolean — Strip <metadata>, Inkscape and Sodipodi elements, attributes and namespace declarations: editor bookkeeping that draws nothing.shortenColours— boolean — Shorten six-digit hex colours that can be written in three: #ffffff becomes #fff.removeTitleDesc— boolean — Strip <title> and <desc>. Off by default because they are the accessible name and description a screen reader reads out.removeUnusedIds— boolean — Drop id attributes nothing inside the file refers to. Off by default because CSS or JavaScript in the embedding page may target them, which cannot be checked here.collapseWhitespace— boolean — Remove whitespace between tags and collapse runs of it inside them. The content of text, style, title and desc elements is left as it is.removeXmlDeclaration— boolean — Strip the <?xml ?> declaration, any DOCTYPE and the editor's Generator comment.
Hints: read-only yes · destructive no · idempotent yes · open-world no
timezone_converterread-onlyA time zone converter and world clock — one time, every city at once. A HelpySelf tool (helpyself.com).
Parameters:
date(required) — string — The calendar date on the wall clock in fromZone, as YYYY-MM-DD.time(required) — string — The wall-clock time in fromZone, 24-hour, as HH:MM. A time the clocks skip is moved forward and flagged; one that happens twice is read as the first.fromZone(required) — string — IANA zone name the date and time are read in, e.g. "America/New_York". Abbreviations such as EST or CST are not accepted, since they are ambiguous.toZones(required) — array — IANA zone names to read the same moment in. Each comes back with its own date, time, abbreviation, UTC offset and whether it is a day ahead or behind.
Hints: read-only yes · destructive no · idempotent yes · open-world no
typing_testread-onlyA typing speed test that shows both your raw and your real WPM. A HelpySelf tool (helpyself.com).
Parameters:
target(required) — string — The passage the person was supposed to type. Compared against typed character by character, position by position.typed(required) — string — What was actually typed, exactly as entered. Shorter than target is fine; the untyped rest counts as pending.elapsedMs(required) — integer — Time taken, in milliseconds. Words per minute counts five characters as a word; 0 scores 0 wpm rather than dividing by zero.includeCharacters— boolean — Also return a verdict for every character of target: correct, incorrect or pending. Off by default because it is thousands of strings for a minute of typing.
Hints: read-only yes · destructive no · idempotent yes · open-world no
webcam_testread-onlyA webcam test that tells you what the other end will actually see A HelpySelf tool (helpyself.com).
Parameters:
width(required) — integer — Frame width in pixels. With height it decides the resolution grade, judged on the shorter side so portrait counts, and the aspect ratio.height(required) — integer — Frame height in pixels.pixels— array — One frame as RGBA bytes, four values per pixel, 0-255, as a canvas getImageData returns them; the length must be a multiple of four. Used to measure brightness and the blown-out fraction. Send a downsample of up to 100,000 pixels, such as 64x64: it gives the same verdict as a full frame.frameRate— number — Frames per second, if already known. Omit it and pass frameTimestampsMs to have it measured; omit both and smoothness comes back null.brightness— number — Average brightness of the frame, 0 (black) to 1 (white), if measured yourself. Ignored when pixels is given.blownFraction— number — Fraction of the frame burnt out to white, 0 to 1, if measured yourself. Ignored when pixels is given. This is what tells a backlit subject from a well-lit one.frameTimestampsMs— array — Arrival times of consecutive frames, in milliseconds. Needs at least two; the rate is derived from first to last rather than from any single gap. Ignored when frameRate is given.
Hints: read-only yes · destructive no · idempotent yes · open-world no
case_converterread-onlyA text case converter: camelCase, snake_case, kebab-case and more. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The text to convert. It may already be in any case: camelCase, snake_case, kebab-case, acronyms like HTTPServer and digits are all split into words before being rebuilt.target— string — The case to produce: camel (helloWorld), pascal (HelloWorld), snake (hello_world), constant (HELLO_WORLD), kebab (hello-world), title (Hello World, small words like "of" kept lower unless first or last), sentence (first letter of each sentence capitalised, punctuation kept), upper or lower (the whole text, punctuation kept). Omit to get every case at once as a list.
Hints: read-only yes · destructive no · idempotent yes · open-world no
regex_testerread-onlyA regex tester for regular expressions, run safely against your own text. A HelpySelf tool (helpyself.com).
Parameters:
pattern(required) — string — A JavaScript regular expression, bare, without surrounding slashes; flags go in flags. At most 500 characters, which is shorter than the page allows.text(required) — string — The text to run the pattern against, at most 20000 characters. Matches are returned with their index and capture groups, and stop after 1000.flags— string — The standard JavaScript flags as one string, such as "gi". The default "g" returns every match; without it only the first match is returned.
Hints: read-only yes · destructive no · idempotent yes · open-world no
remove_line_breaksread-onlyRemove line breaks from text that was hard-wrapped, and keep the paragraphs. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The hard-wrapped text to reflow — copied out of a P D F, an email or a terminal.mode— string — What to keep. "paragraphs" removes the breaks inside a paragraph and keeps the blank line between paragraphs, which is almost always what is wanted; "all" collapses everything to a single line.joinWith— string — What replaces a removed break. "nothing" is for scripts written without spaces between words, where a space would be wrong.keepLists— boolean — Leave a line that starts a list item on its own line. A hard-wrapped document is full of them, and joining a bulleted list into a sentence loses the only structure it had.mendHyphens— boolean — Rejoin a word the line break split: "inter-" then "national" becomes "international". Only applied where the next line starts lower-case, so a real hyphen in "well-Known" is left alone.
Hints: read-only yes · destructive no · idempotent yes · open-world no
timestamp_converterread-onlyA Unix timestamp converter — timestamps to dates, and dates back to timestamps. A HelpySelf tool (helpyself.com).
Parameters:
value(required) — string — A Unix timestamp or a date. A bare number is read as seconds, or as milliseconds once it reaches 100000000000 (1e11); negative means before 1970. Anything else is parsed as a date string such as 2026-08-03T12:00:00Z.timeZone— string — IANA zone name, e.g. "Europe/Copenhagen", used for the local reading and the day of the week. Defaults to UTC, and an unknown name falls back to UTC rather than failing.
Hints: read-only yes · destructive no · idempotent yes · open-world no
braille_translatorread-onlyA braille translator both ways — text to Grade 1 braille, and braille back to text. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — Print text to transcribe into Grade 1 braille, or braille (the Unicode braille block, U+2800 to U+28FF) to turn back into print.direction— string — Which way to translate. "auto" reads braille back into print and transcribes anything else; "toBraille" and "toText" force one direction.
Hints: read-only yes · destructive no · idempotent yes · open-world no
color_converterread-onlyA colour converter: HEX to RGB, RGB to HEX, and either to HSL. A HelpySelf tool (helpyself.com).
Parameters:
color(required) — string — The colour to convert, in any CSS form: #rgb, #rrggbb, #rrggbbaa, rgb()/rgba(), hsl()/hsla() or a colour name like teal. It comes back as hex, rgb and hsl, with the channels as numbers and a black-or-white text colour that reads on it.
Hints: read-only yes · destructive no · idempotent yes · open-world no
contrast_checkerread-onlyA colour contrast checker for WCAG accessibility levels. A HelpySelf tool (helpyself.com).
Parameters:
foreground(required) — string — The text colour, as hex, rgb(), hsl() or a CSS colour name. A translucent colour is composited over the background before the ratio is taken.background(required) — string — The colour behind the text, in the same forms as foreground.target— number — The contrast ratio the suggestion must reach. Only used when suggest is true. 4.5 is WCAG AA for normal text, 3 is AA for large text, 7 is AAA.suggest— boolean — Also return a suggestion: the foreground nudged lighter or darker until it clears target, as hex, or null if even black or white would not. Off by default.
Hints: read-only yes · destructive no · idempotent yes · open-world no
iban_validatorread-onlyAn IBAN checker that validates the country, the length and the check digits — and says which failed. A HelpySelf tool (helpyself.com).
Parameters:
iban(required) — string — The account number to check, written however you have it: 'DK50 0040 0440 1162 43' and 'dk5000400440116243' are the same thing. Spaces, hyphens and case are ignored.
Hints: read-only yes · destructive no · idempotent yes · open-world no
json_formatterread-onlyA JSON formatter that validates and beautifies instantly — or minifies. A HelpySelf tool (helpyself.com).
Parameters:
json(required) — string — The JSON text to work on. Invalid JSON comes back as an error naming where parsing failed.action— string — 'format' pretty-prints with the indent given; 'minify' strips all whitespace into one line; 'validate' only checks that it parses and returns the text unchanged.indent— Spaces per nesting level when formatting, or 'tab' for one tab per level. 0 gives no indentation. Ignored by minify and validate.sortKeys— boolean — Sort object keys alphabetically at every level when formatting, so two documents can be compared. Arrays keep their order. Ignored by minify and validate.
Hints: read-only yes · destructive no · idempotent yes · open-world no
mac_address_lookupread-onlyA MAC address lookup that names the manufacturer — and says when there isn't one. A HelpySelf tool (helpyself.com).
Parameters:
address(required) — string — A MAC address in any common form — 'D8:3A:DD:11:22:33', 'd8-3a-dd-11-22-33', 'D83A.DD11.2233' or 'd83add112233'. An EUI-64 (16 hex digits) works too, and so does a bare 24-, 28- or 36-bit prefix on its own if that is all you have.
Hints: read-only yes · destructive no · idempotent yes · open-world no
slug_generatorread-onlyA slug generator that turns any title into a clean URL slug. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The title or phrase to turn into a URL slug. Accents are stripped, & becomes "and", apostrophes are dropped, and every other non-alphanumeric run becomes one separator.lowercase— boolean — Lower-case the result. False keeps the capitals of the input.maxLength— integer — Longest slug allowed, in characters; 0 means no limit. A slug is cut at the last separator inside the limit, so a word is never cut in half.separator— string — The character put between words. Hyphens are what search engines expect.expandDiacritics— boolean — Write letters that romanise as two characters that way: ø to oe, æ to ae, å to aa, ü to ue, ß to ss. False uses the nearest single letter instead: ø to o, ß to s.
Hints: read-only yes · destructive no · idempotent yes · open-world no
text_diffread-onlyA diff checker for text — compare two versions and see exactly what changed, line by line. A HelpySelf tool (helpyself.com).
Parameters:
original(required) — string — The earlier version of the text. Compared line by line, split on newlines.changed(required) — string — The later version, compared against original. Lines only in it are reported as insertions; lines only in original as deletions.ignoreCase— boolean — Treat lines that differ only in letter case as equal. The reported lines keep their original case.ignoreWhitespace— boolean — Treat lines as equal when they differ only in leading, trailing or repeated whitespace, so an indentation change no longer counts as a change.
Hints: read-only yes · destructive no · idempotent yes · open-world no
image_compressorread-onlyCompress a JPEG, PNG or WebP to a smaller file, choosing quality or a target size. AVIF, HEIC, TIFF and BMP are browser-only and not accepted here. A HelpySelf tool (helpyself.com).
Parameters:
type(required) — string — The MIME type of the source image: image/jpeg, image/png or image/webp. HEIC, AVIF, TIFF and BMP are not accepted over the API.data(required) — string — The image file as base64, in the format given by type.name— string — The source filename, echoed back as the result's name.format— string — The output format. 'auto' always means WebP, which is usually the smallest. If the result would be no smaller than the input at the same size, the original bytes are returned unchanged.maxEdge— integer — Shrink the image so its longer side is at most this many pixels, keeping the aspect ratio. Smaller images are left at their size; omit it to keep the dimensions.quality— number — Encoder quality from 0.1 to 1 for JPEG and WebP output; lower means a smaller, softer file. PNG is lossless and ignores it.
Hints: read-only yes · destructive no · idempotent yes · open-world no
lorem_ipsumread-onlyA lorem ipsum generator for placeholder text in mockups and layouts. A HelpySelf tool (helpyself.com).
Parameters:
unit— string — What `count` counts. Paragraphs hold three to six sentences each and are separated by a blank line; sentences run on in one block; words come back as a single sentence.count— integer — How many of `unit` to generate, up to 100. Three paragraphs when omitted.startWithLorem— boolean — Open with the familiar "Lorem ipsum dolor sit amet, consectetur adipiscing elit". Off, and every word is drawn at random from the start.
Hints: read-only yes · destructive no · idempotent yes · open-world no
upside_down_textread-onlyAn upside down text generator — flip writing over, and flip it back again. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — The text to turn upside down, or upside-down text to turn back the right way up.direction— string — Which way to translate. "auto" turns upside-down text back the right way up and flips anything else; "flip" and "unflip" force one direction.
Hints: read-only yes · destructive no · idempotent yes · open-world no
qr_generatorread-onlyA QR code generator for any link or text — download it as SVG or PNG. A HelpySelf tool (helpyself.com).
Parameters:
text(required) — string — What the code should contain: a URL, plain text or any other string. Surrounding whitespace is trimmed. QR codes hold about 2,000 characters at most, and the denser the content the harder the code is to scan.dark— string — Colour of the modules as a six-digit hex code, such as #000000.size— integer — Declared width and height of the SVG in pixels. The output is vector, so it scales cleanly; this mainly matters when the SVG is rasterised as-is.light— string — Background colour as a six-digit hex code. Keep it much lighter than `dark`; scanners expect dark modules on a light ground.margin— integer — Quiet zone around the code, in modules (the small squares), not pixels. The QR spec recommends 4; less and some scanners fail to lock on.errorCorrection— string — How much of the code may be damaged or covered and still scan: L about 7%, M 15%, Q 25%, H 30%. Higher levels make a denser code for the same text.
Hints: read-only yes · destructive no · idempotent yes · open-world no
pub_to_pdfread-onlyOpen a Microsoft Publisher .pub file and get its text and photographs back as a PDF. The page reproduces the original layout; this endpoint returns the text in reading order, not the design. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The .pub file's bytes, base64-encoded. Publisher files are OLE2 compound documents; a .docx or .pdf sent here is refused rather than guessed at.name— string — What to call the result. The extension is replaced with .pdf.page— string — Paper for the result. 'a4' and 'letter' re-flow the words onto a sheet of that size. 'same' asks to keep the document's own page size and layout — which this endpoint cannot do yet, so it answers with the A4 re-flow and says so in 'layoutUnavailable'. The page itself is kept in the browser, at helpyself.com/pub-to-pdf/.pictures— boolean — Keep the pictures the file carries — photographs, and the clip art Publisher stores as drawings, which are redrawn. Off returns the words only, which is what somebody pasting a parish magazine into an email wants.
Hints: read-only yes · destructive no · idempotent yes · open-world no
uuid_generatorread-onlyA UUID generator for random v4 identifiers, instantly. A HelpySelf tool (helpyself.com).
Parameters:
count— integer — How many UUIDs to return, 1 to 500. They come back as an array either way.uppercase— boolean — Return the hex digits in upper case. The hyphens are unaffected.
Hints: read-only yes · destructive no · idempotent yes · open-world no
pdf_page_numbersread-onlyAdd page numbers to a PDF — starting where you want, skipping the pages that should stay clean. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The PDF to number, base64-encoded. A data: URL prefix is stripped.from— integer — The first sheet to print a number on, counted from 1. Sheets before it are left clean, so passing 3 skips a title page and a contents page.name— string — Base name for the output file; a .pdf ending is dropped and the response names it <name>-numbered.pdf.size— number — Font size of the number in points. 10 when omitted.format— string — How the label reads. plain writes "3", of writes "3 of 20", page-of writes "Page 3 of 20". The total counts numbered pages rather than sheets, so an extract of three pages starting at 47 reads "47 of 49".margin— number — Distance from the page edge to the number, in points (1/72 inch). 28 when omitted, about a centimetre.startAt— integer — The number printed on the first numbered sheet; later sheets count up from it. 1 by default; an extract from a longer bundle might start at 47.position— string — Where the number sits on each page: bottom-centre, bottom-right, bottom-left, top-right or top-centre. `margin` is measured in from those edges.
Hints: read-only yes · destructive no · idempotent yes · open-world no
age_calculatorread-onlyAn age calculator: your exact age in years, months and days, from a date of birth. A HelpySelf tool (helpyself.com).
Parameters:
birth(required) — string — Date of birth as YYYY-MM-DD. Read as a calendar date with no time zone, so the answer is the same wherever it is asked from.asOf— string — The date to measure the age at, YYYY-MM-DD. Omitted, the server's own UTC date is used, which can be a day out for the caller near midnight, so pass it when the exact day matters. Must not be before the birth date. The response echoes the date it used.
Hints: read-only yes · destructive no · idempotent yes · open-world no
app_background_previewread-onlyFind the app background image size that survives on every phone and tablet. A HelpySelf tool (helpyself.com).
Parameters:
width(required) — integer — Width of the artwork in pixels. Only the width-to-height ratio affects the crop, so any resolution with the same shape gives the same answer; the rectangles in the response are in these pixels.height(required) — integer — Height of the artwork in pixels, paired with width.mode— string — How the platform scales the image onto the screen. fill scales until both axes are covered and crops the overflow, centred; fit shows the whole image with empty bars (letterboxed); stretch shows the whole image distorted to the screen's shape; center shows a screen-sized window at native scale from the middle of the image.kinds— array — Narrow the check to phones, tablets or foldables. Omitted or empty, all three are included. Applied on top of devices, so the two filters compose. Leaving foldables in when you do not ship to one shrinks the safe area, because a foldable opened out is nearly square.devices— array — Which device shapes to check. Omitted or empty, every device is checked. Each id is one aspect ratio standing for all the models that share it; the response names those models. The safe area is the intersection across everything checked, so fewer devices means a larger safe area.orientations— array — Which orientations to check each device in. Omitted or empty, both portrait and landscape are checked, and both feed the safe-area intersection.respectInsets— boolean — When true, the safe area is taken over the part of each screen not covered by the status bar, notch or home indicator, so it is safe from being covered as well as from being cropped. False (the default) considers cropping only.
Hints: read-only yes · destructive no · idempotent yes · open-world no
average_calculatorread-onlyA mean median mode calculator, with standard deviation and the spread. A HelpySelf tool (helpyself.com).
Parameters:
numbers(required) — string — The list of numbers as one string, separated by commas, spaces, line breaks or anything else that is not a digit, sign or decimal point. Use a decimal point, never a decimal comma: "1,5" is read as two numbers. Anything unparseable is skipped, and at least one number must remain. Returns mean, median, mode, range and both standard deviations.
Hints: read-only yes · destructive no · idempotent yes · open-world no
date_differenceread-onlyHow many days between two dates — plus weeks, months and working days. A HelpySelf tool (helpyself.com).
Parameters:
fromDate(required) — string — The first date as YYYY-MM-DD, usually the earlier one. The answer gives years, months and days, the gap in days, the span counting both ends, whole weeks, and Monday-to-Friday working days (public holidays not excluded).toDate(required) — string — The other date as YYYY-MM-DD. It may be earlier than fromDate: the difference is counted between the two whichever way round, and direction in the response says forward, backward or same.
Hints: read-only yes · destructive no · idempotent yes · open-world no
days_until_christmasread-onlyHow many days until Christmas — counted in sleeps, not hours, and right across time zones. A HelpySelf tool (helpyself.com).
Parameters:
day— integer — The day of the month. Defaults to the 25th. A day the month never has (30 February) is refused; 29 February counts to the next leap year. Whole calendar days are counted, the day itself is 0, and a date already passed rolls to next year.month— integer — The month of the occasion, 1 to 12. Defaults to December. Pass month and day together to count to any yearly date, such as a birthday.today— string — The date to count from, as YYYY-MM-DD in the caller's own calendar. Defaults to today in UTC. The response repeats the date it counted from as countedFrom.
Hints: read-only yes · destructive no · idempotent yes · open-world no
fraction_calculatorread-onlyA fraction calculator for adding, subtracting, multiplying and dividing — exactly. A HelpySelf tool (helpyself.com).
Parameters:
fractionA(required) — string — The left operand as text: a fraction '3/4', a mixed number '2 3/4' or a whole number '5'. Negative values are allowed; decimals are not.operator(required) — string — The arithmetic to apply: add, subtract, multiply or divide fractionA by fractionB.fractionB(required) — string — The right operand, in the same forms as fractionA. Dividing by zero is refused.
Hints: read-only yes · destructive no · idempotent yes · open-world no
fuel_cost_calculatorread-onlyA fuel cost calculator for any drive — your units, your currency, split however you like. A HelpySelf tool (helpyself.com).
Parameters:
distance(required) — number — The length of the journey one way, in the unit given by distanceUnit.consumption(required) — number — The vehicle's fuel consumption, in the unit given by consumptionUnit. Note that for mpg a higher number means less fuel, for l/100km more.price(required) — number — The price of fuel per unit given by priceUnit, in any currency. The result comes back in the same currency, unconverted.people— integer — How many people share the cost. The total is divided equally between them.priceUnit— string — The unit the price is per: 'litre', 'gallonUk' (4.546 l) or 'gallonUs' (3.785 l).returnTrip— boolean — Double the distance to cover the journey back as well.distanceUnit— string — The unit distance is given in: 'km' kilometres or 'mi' miles.consumptionUnit— string — The unit consumption is given in: 'l100km' litres per 100 km, 'mpgUk' miles per imperial gallon, 'mpgUs' miles per US gallon, 'kml' kilometres per litre.
Hints: read-only yes · destructive no · idempotent yes · open-world no
gif_compressorread-onlyCompress a GIF by the only three things a GIF has — frames, colours and size. Nothing uploaded. A HelpySelf tool (helpyself.com).
Parameters:
gif(required) — string — The animated or still GIF file as base64. The result is also a GIF.name— string — The input filename. The result is named after it with '-small.gif' appended to the stem.scale— number — A size factor per edge, 1 being the original size. Over the API only 1 is accepted; any other value is refused, because scaling happens in the browser tool alone.colours— integer — Colours in each frame's palette, one of 256, 128, 64, 32, 16. Fewer colours make a smaller file at the cost of banding in gradients.keepEvery— integer — Drop frames to shrink the file: 1 keeps every frame, 2 keeps every second one, 3 every third. Each kept frame takes on the delay of the frames dropped after it, so the animation runs for the same time.
Hints: read-only yes · destructive no · idempotent yes · open-world no
gpa_calculatorread-onlyA GPA calculator on the 4.0 scale, weighted by the credits each course is worth. A HelpySelf tool (helpyself.com).
Parameters:
courses(required) — array — The courses to average. The GPA is the credit-weighted mean of their grade points.
Hints: read-only yes · destructive no · idempotent yes · open-world no
loan_calculatorread-onlyA loan calculator for the monthly payment, and how much of it is interest. A HelpySelf tool (helpyself.com).
Parameters:
amount(required) — number — The principal borrowed, in whatever currency you are working in. Every figure in the answer is in the same units.rate(required) — number — Nominal annual interest rate as a percentage, so 5.5 means 5.5% a year. 0 is a real case: an interest-free loan repaid in equal instalments.years(required) — number — Length of the loan in years. Fractions are allowed and rounded to whole months, so 2.5 is 30 monthly payments.
Hints: read-only yes · destructive no · idempotent yes · open-world no
game_collectionKnow what you own, share the list, and stop buying games you already have. A HelpySelf tool (helpyself.com).
Parameters:
name(required) — string — The list's title, in the collector's own words: 'PS2 for sale', 'Boxed SNES'.note— string — A line shown under the title: what the list is for, or what its prices mean.shared— boolean — Whether the public share link works for anybody who has it. Off by default, so the list is private to its owner until this is set.console— string — The console the list is for, by its usual name ('PS2', 'SNES', 'Mega Drive', 'Game Boy Advance'); matching ignores case. It narrows the game search when adding. A name not on the known list is refused; omit it for a mixed list.folderId— string — The id of one of the caller's own folders to file the list under. An unknown id, or another account's folder, is refused.
Hints: read-only no · destructive no · idempotent no · open-world no
percentage_calculatorread-onlyA percentage increase calculator — and the other three sums people mean. A HelpySelf tool (helpyself.com).
Parameters:
mode(required) — string — Which sum to do. of: a percent of b (15, 80 gives 12). what: a as a percentage of b (12, 80 gives 15). change: the percentage change from a to b, measured against a (80, 92 gives up 15). adjust: a changed by b percent (80, 15 gives 92; a negative b is a discount).a(required) — number — The first number, as a plain number with no % sign: the percentage in of, the part in what, the starting value in change and adjust.b(required) — number — The second number, as a plain number: the whole in of and what, the end value in change, the percentage to change by in adjust.
Hints: read-only yes · destructive no · idempotent yes · open-world no
random_team_generatorread-onlyA random team generator — paste a list of names and split it into fair teams. A HelpySelf tool (helpyself.com).
Parameters:
names(required) — string — The people to deal out, one name per line. Lines are trimmed and blank lines are dropped, so a pasted spreadsheet column works as it is.mode— string — What count means. "teams": make that many teams. "size": make teams of that many people, with the last team taking the remainder rather than anyone being left out.count— integer — The number of teams, or the people per team, depending on mode. Names are dealt round-robin after a shuffle, so team sizes never differ by more than one.
Hints: read-only yes · destructive no · idempotent yes · open-world no
ratio_calculatorread-onlyA ratio calculator: reduce to lowest terms, or find the missing number. A HelpySelf tool (helpyself.com).
Parameters:
left(required) — number — The left side of the ratio, the a in a:b. Decimals are allowed and are scaled to whole numbers before reducing, so 2.5:1 simplifies to 5:2 rather than rounding to 3:1.right(required) — number — The right side of the ratio, the b in a:b. A zero side is refused as not a ratio.scaleTo— number — A new left-hand value to solve for: given, the answer is the c in a:b = scaleTo:c, returned as solved.value with a whole flag, since 16:9 at 1000 wide is 562.5 and is not rounded. Omitted, the ratio is only simplified.
Hints: read-only yes · destructive no · idempotent yes · open-world no
regex_explainerread-onlyA regex explainer: paste a pattern and read what every part of it does, in English. A HelpySelf tool (helpyself.com).
Parameters:
pattern(required) — string — A JavaScript regular expression to explain, either bare or as /pattern/flags. It is read, never run, so a pattern that would not compile is still explained, with the problems listed alongside.
Hints: read-only yes · destructive no · idempotent yes · open-world no
request_a_fileRequest files with a link — they upload to you, with no account and no ads. A HelpySelf tool (helpyself.com).
Parameters:
days— integer — How many days a request link would stay open for uploads, at most 30; there is no permanent option. This call only describes such a link and creates nothing; creating one is a separate, signed-in POST to the createAt path returned.maxFiles— integer — How many files the link would accept before closing itself, at most 100. Each file is also capped at what the owner's own plan allows and counts against their storage.
Hints: read-only no · destructive no · idempotent no · open-world no
roman_numeralsread-onlyA Roman numeral converter — numbers to numerals, and numerals back to numbers. A HelpySelf tool (helpyself.com).
Parameters:
numeral(required) — string — Either a Roman numeral ("MCMXCIV") or a whole number from 1 to 3999 ("1994"); the direction is worked out from what is given. Loose forms like IIII are read and reported with strict false, and the strict modern spelling is returned alongside.
Hints: read-only yes · destructive no · idempotent yes · open-world no
salary_calculatorread-onlyA salary calculator that goes hourly to annual and back — the same pay written every way, before tax. A HelpySelf tool (helpyself.com).
Parameters:
amount(required) — number — The gross pay figure you already know, in any currency; no tax or deductions are applied. It is converted to all five periods using the working pattern below.period(required) — string — Which period amount covers. A month is always a twelfth of a year, never 4.33 weeks.daysPerWeek— number — Days worked in a normal week, used for the daily figure. Defaults to 5.hoursPerWeek— number — Hours worked in a normal week, used to turn an hourly rate into a weekly one and back. Defaults to 37.5; 40 is usual in the US.weeksPerYear— number — Weeks paid in a year, used to turn a weekly figure into an annual one and back. Defaults to 52; use 52.18 to count the odd days.
Hints: read-only yes · destructive no · idempotent yes · open-world no
send_a_secretSend a password securely by link that self-destructs after one read. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The secret as base64-encoded AES-GCM ciphertext, encrypted by the caller before sending. Never plaintext: the server stores this without being able to read it, and the decryption key must be appended by the caller to the returned URL after the #, where a browser never sends it. Sized for a password, not a document.iv(required) — string — The base64-encoded AES-GCM initialisation vector used to encrypt data. Not secret; it is stored beside the ciphertext so the recipient can decrypt.salt— string — The base64-encoded salt the password-derived key was made with. Give it only when the secret is additionally locked with a password; omit it otherwise.keyProof— string — Base64-encoded SHA-256 digest of the password-derived key, letting the server check a password attempt without ever holding the password or the key. Omit it when there is no password.lifetime— string — How long the stored ciphertext lives if nobody opens it: 1h, 24h, 7d. It is also destroyed on first read, and there is no permanent option. Each call stores a new secret and returns a new link, so call once per secret.
Hints: read-only no · destructive no · idempotent no · open-world no
share_fileSend large files by link, with an expiry date and an optional password. A HelpySelf tool (helpyself.com).
Parameters:
name(required) — string — The filename, with extension, that the recipient sees and downloads. Cleaned of unsafe characters before storage.data(required) — string — The file's bytes, base64-encoded, at most 35000000 characters (three quarters of that in bytes). The file is stored in the caller's account, counts against its storage quota, and must be within the plan's per-file limit.type— string — The file's MIME type, such as "image/png" or "application/pdf". It is served with this type, and only an image type can be screened.screen— boolean — Have a model check the image for explicit content before the link is made. Images only, costs one AI credit from the caller's monthly allowance, and if the image is judged explicit no link is created at all.message— string — A short note shown beside the file to whoever opens the link. Plain text: line breaks are collapsed, it is shortened, and URLs in it are not made clickable.duration— string — How long the link works for anyone who has it: 1h, 24h, 7d, 30d, 90d, 1y. The 90d, 1y options are Pro durations; there is no permanent one, and a link never outlives the stored file. Each call stores a new copy and mints a new link, so call once per file.password— string — A password the recipient must type to open the link, at least 4 characters. Only a salted hash is stored. Omit it, or send an empty string, for no password.senderName— string — Who the file is from, shown as a heading to whoever opens the link. Plain text: trimmed, shortened, and never turned into a link.
Hints: read-only no · destructive no · idempotent no · open-world yes
split_rentread-onlyA split rent calculator for housemates: by room size, by income or evenly, and it always adds up to the rent. A HelpySelf tool (helpyself.com).
Parameters:
rent(required) — number — The rent for the whole period, in major units — 1400 means 1400.00, not 14.00. Every share returned is in the same units.people(required) — array — Everybody splitting it, 1 to 20.days— integer — Days in the period the rent covers. Only matters if somebody is there for part of it.method— string — How to divide it. `area` charges each person for their own room and splits `sharedArea` equally between everybody, which is the fair-rent answer. `income` is straight proportion to each person's income. `equal` ignores both.currency— string — ISO 4217 code, which decides how the rent is rounded: most currencies to two decimal places, the Gulf dinars to three, JPY and KRW to none. It does not convert anything — the shares come back in the currency the rent was given in.sharedArea— number — Floor area nobody has to themselves — kitchen, hallway, sitting room — in the same unit as the rooms, split equally. Only used when method is `area`. Zero gives the simpler split where the whole rent follows bedroom size alone.
Hints: read-only yes · destructive no · idempotent yes · open-world no
sql_formatterread-onlyAn SQL formatter for 16 dialects — paste unreadable SQL, get it laid out, nothing uploaded. A HelpySelf tool (helpyself.com).
Parameters:
sql(required) — string — The SQL to lay out, one or more statements, at most 500000 characters. It is only reformatted: nothing checks that it would run.indent— string — What one level of indentation is: "2" or "4" spaces, or "tab".dialect— string — Which database's syntax to parse it as, one of 16 dialects. "sql" is generic standard SQL and is what to use when unsure; "transactsql" is SQL Server and "plsql" is Oracle.keywordCase— string — How keywords are written: "upper" gives SELECT, "lower" gives select, "preserve" leaves each keyword as it was typed.linesBetweenQueries— integer — How many blank lines to leave between statements.
Hints: read-only yes · destructive no · idempotent yes · open-world no
time_card_calculatorread-onlyA time card calculator for hours worked, breaks and overtime across a week. A HelpySelf tool (helpyself.com).
Parameters:
shifts(required) — array — The shifts to total, one entry each. A shift ending before it starts is read as crossing midnight, never as negative.rate— number — Pay per hour. Omit it and the result gives hours only, with pay as null.overtimeAfter— number — Weekly hours after which the remaining hours count as overtime. Omitted means no overtime is worked out.overtimeMultiplier— number — What overtime hours are paid at, as a multiple of rate: 1.5 is the usual. Only matters when overtimeAfter and rate are set; defaults to 1.
Hints: read-only yes · destructive no · idempotent yes · open-world no
tip_calculatorread-onlyWork out the tip and split the bill into amounts people can actually pay. A HelpySelf tool (helpyself.com).
Parameters:
bill(required) — number — The amount on the bill before any tip, in whatever currency you use. Tax it already contains is handled by taxRate.tipPercent(required) — number — The tip as a percentage of the bill, or of the pre-tax amount when taxRate is set: 15 means 15%.people(required) — integer — How many ways to split the total. 1 means no split.roundTo— number — Round each person's share up to this step in the bill's currency: 1 for whole units, 0.5 for halves. 0 or omitted keeps the exact share. Always up, never down.taxRate— number — Sales tax already included in bill, as a percentage. It is taken off before the tip is worked out, so the tip is on the pre-tax amount. 0 or omitted tips on the whole bill, which is the norm outside the US.
Hints: read-only yes · destructive no · idempotent yes · open-world no
utm_builderread-onlyA UTM builder for campaign URLs, with the tagging mistakes caught as you type. A HelpySelf tool (helpyself.com).
Parameters:
url(required) — string — The destination page. A bare hostname is accepted and assumed https. Any utm_ parameters already on it are replaced and a warning says so; other query parameters and a fragment are kept.id— string — utm_id: GA4's campaign id, tying the link to a campaign record.term— string — utm_term: the paid keyword, for search ads.medium— string — utm_medium: the channel, such as cpc, email or social.source— string — utm_source: where the traffic comes from, as a short name such as google or newsletter. A pasted URL is flagged. Empty or omitted fields are left off the link.content— string — utm_content: which link or creative, for telling two links in one campaign apart.campaign— string — utm_campaign: the campaign name, such as spring-sale.normalise— boolean — Lower-case each value and turn spaces into hyphens before building the link. On by default, because inconsistent casing splits one campaign into several in reporting. Off keeps values exactly as given and warns about casing and spaces instead.
Hints: read-only yes · destructive no · idempotent yes · open-world no
vat_calculatorread-onlyAdd VAT to a price, or take it back out of one — the sum people get wrong. A HelpySelf tool (helpyself.com).
Parameters:
amount(required) — number — The price. The net (pre-VAT) price when direction is add; the gross (VAT-inclusive) price when it is remove.rate(required) — number — The VAT rate as a percentage: 25 means 25%. Must be below 100.direction(required) — string — add works out the VAT on a net amount and the gross that results. remove takes a gross amount and divides the VAT back out to find the net and the VAT it contained.
Hints: read-only yes · destructive no · idempotent yes · open-world no
video_to_gifread-onlyConvert video to GIF — MP4 to GIF in your browser, with the frames you choose. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The video file, base64-encoded; a data: URL prefix is stripped if present. MP4 is what the transformer expects. Roughly 26 MB of video at most.fps— number — Frames per second of the GIF. fps times seconds is the frame count, capped at 300. Above about 15 the file grows faster than it improves. Defaults to 10.width— integer — Longest edge of the output in pixels, up to 1280; the other edge follows the clip's aspect ratio. Defaults to 480.seconds— number — How many seconds of the clip to use, counted from the start. The rest is discarded. Defaults to 3.
Hints: read-only yes · destructive no · idempotent yes · open-world no
business_daysread-onlyCount forward or back a number of working days and see where you land. A HelpySelf tool (helpyself.com).
Parameters:
startDate(required) — string — The date to count from, YYYY-MM-DD. Counting begins the day after it, so one working day from a Friday is the Monday. It may itself be a weekend or holiday; the response says whether it was a working day.days(required) — integer — How many working days (Monday to Friday, minus holidays) to move. Positive counts forward, negative counts back; zero is refused. More than 5200 either way is refused as too far.holidays— array — Dates to skip in addition to Saturdays and Sundays, YYYY-MM-DD each. No public holidays are assumed for any country, so pass the ones that apply. Omitted, only weekends are skipped. Those that fell on the path are listed in the response.
Hints: read-only yes · destructive no · idempotent yes · open-world no
checksum_verifierread-onlyA checksum verifier: paste the published SHA-256 and check your download matches. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The file's bytes, base64-encoded. They are hashed with whichever algorithm expected implies and compared; the response is a match boolean plus both digests.expected(required) — string — The published checksum, pasted as found: bare hex in either case, a whole SHA256SUMS line with the filename, a sha256: prefix as registries use, or a sha256-<base64> integrity value. The algorithm (SHA-1, SHA-256, SHA-384 or SHA-512) is read from the prefix or the digest length, never chosen. MD5 is refused.
Hints: read-only yes · destructive no · idempotent yes · open-world no
compare_two_listsread-onlyCompare two lists and see what is only in one, only in the other, and in both. A HelpySelf tool (helpyself.com).
Parameters:
listA(required) — string — The first list, one entry per line. Order does not matter: each side is treated as a set, and the answer is what is only in A, only in B, and in both.listB(required) — string — The second list, one entry per line, compared against listA the same way.trim— boolean — Ignore space at either end of a line when comparing, so 'Alice ' and 'Alice' match. On by default.ignoreCase— boolean — Treat Alice and alice as the same entry. On by default. The output keeps whichever spelling appeared first rather than lower-casing it.ignoreBlank— boolean — Drop empty lines rather than counting them as entries. On by default; off, a blank line on both sides shows up under both.
Hints: read-only yes · destructive no · idempotent yes · open-world no
compound_interestread-onlyA compound interest calculator with regular deposits and any compounding frequency. A HelpySelf tool (helpyself.com).
Parameters:
amount(required) — number — The opening balance, in whatever currency the caller is thinking in. It is counted as contributed money, so it never appears as interest.rate(required) — number — The nominal annual interest rate as a percentage: 5 means 5%. It is divided by the number of compounding periods a year, so the effective annual rate is returned too.years(required) — number — How long the money is left to grow, in years. Fractions are allowed and rounded to whole compounding periods. One row per year comes back for a table or chart.frequency— string — How often interest is added to the balance: 1, 4, 12 or 365 times a year. Defaults to monthly. More frequent compounding gives a slightly higher effective rate.contribution— number — An amount paid in every compounding period, not every month or year: with daily compounding it is paid 365 times a year. Omitted or 0 means nothing is added.contributeAtStart— boolean — Pay each contribution at the start of its period rather than the end, so it earns that period's interest. Off by default, which is the smaller answer.
Hints: read-only yes · destructive no · idempotent yes · open-world no
watermark_pdfread-onlyAdd a watermark to a PDF — DRAFT, CONFIDENTIAL, or a client's name across every page. A HelpySelf tool (helpyself.com).
Parameters:
data(required) — string — The PDF file, base64-encoded; a data: URL prefix is stripped if present.text(required) — string — The word or short phrase to stamp on each page, up to 60 characters: DRAFT, CONFIDENTIAL, a client's name.name— string — The original file name, used to name the output: "report.pdf" comes back as "report-watermarked.pdf". Defaults to document.size— number — Font size in points for centre and footer; ignored for diagonal, which sizes itself to the page. Defaults to 48 for centre and 12 for footer.pages— array — Which pages to stamp, as 1-based page numbers. Numbers past the last page are ignored. Omit to stamp every page.opacity— number — How solid the grey text is, 0.05 (barely visible) to 1 (solid). Defaults to 0.15, faint enough to read the page through.position— string — diagonal runs corner to corner and sizes itself to the page; centre sits in the middle of the page; footer sits just above the bottom edge, clear of a page number. Defaults to diagonal.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.