F
FreeConvertingTools
Developer Documentation

API Reference

234 live endpoints. One key, one request format, per-call credit pricing.

Get API Key

Create one in your dashboard

Authenticate

Add Bearer token to headers

Make Requests

Call any endpoint below

Go Live

Every account gets 100 free credits daily

Authentication

Create a key at Dashboard → API Keys, then send it with every request. Send your key either as a Bearer token or an X-API-Key header — both are equivalent (Authorization takes precedence if both are present):

curl -X POST https://freeconvertingtools.com/api/v1/tools/word-counter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text": "Hello world"}'
curl -X POST https://freeconvertingtools.com/api/v1/tools/word-counter \
  -H "X-API-Key: fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text": "Hello world"}'

Every response includes x-credits-charged, x-credits-remaining-daily, and x-credits-remaining-monthly headers.

Errors

StatusMeaning
400Invalid input — the errors array names each bad parameter
401Missing, invalid, or deactivated API key
402Insufficient credits — top up at /pricing
404Unknown tool slug
429Per-key rate limit exceeded
501Tool exists but its API endpoint is not live yet

Endpoints

Image Tools

POST/api/v1/tools/png-to-jpg2 credits/call

PNG to JPG Converter

Convert a PNG image to JPG. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
qualitynumberNo (default 90)Output quality, from 1 (smallest file) to 100 (best quality).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/png-to-jpg \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"quality":90}'

{
  "success": true,
  "tool": "png-to-jpg",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/jpg-to-png2 credits/call

JPG to PNG Converter

Convert a JPG image to PNG. Send `file` as binary multipart form-data; there are no other fields.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/jpg-to-png \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "jpg-to-png",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/png-to-webp2 credits/call

PNG to WEBP Converter

Convert a PNG image to WEBP. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
qualitynumberNo (default 80)Output quality, from 1 (smallest file) to 100 (best quality).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/png-to-webp \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"quality":80}'

{
  "success": true,
  "tool": "png-to-webp",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/webp-to-png2 credits/call

WEBP to PNG Converter

Convert a WEBP image to PNG. Send `file` as binary multipart form-data; there are no other fields.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/webp-to-png \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "webp-to-png",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/jpg-to-webp2 credits/call

JPG to WEBP Converter

Convert a JPG image to WEBP. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
qualitynumberNo (default 80)Output quality, from 1 (smallest file) to 100 (best quality).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/jpg-to-webp \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"quality":80}'

{
  "success": true,
  "tool": "jpg-to-webp",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/webp-to-jpg2 credits/call

WEBP to JPG Converter

Convert a WEBP image to JPG. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
qualitynumberNo (default 90)Output quality, from 1 (smallest file) to 100 (best quality).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/webp-to-jpg \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"quality":90}'

{
  "success": true,
  "tool": "webp-to-jpg",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/svg-to-png2 credits/call

SVG to PNG Converter

Rasterize an SVG image to PNG. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
widthnumberNoTarget width in pixels (height scales to preserve aspect ratio). Defaults to the SVG’s intrinsic size.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/svg-to-png \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"width":512}'

{
  "success": true,
  "tool": "svg-to-png",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/gif-to-webp2 credits/call

GIF to WEBP Converter

Convert a GIF image to WEBP (first frame only). Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
qualitynumberNo (default 80)Output quality, from 1 (smallest file) to 100 (best quality).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/gif-to-webp \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"quality":80}'

{
  "success": true,
  "tool": "gif-to-webp",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/bmp-to-jpg2 credits/call

BMP to JPG Converter

Convert an uncompressed 24/32-bit BMP image to JPG. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
qualitynumberNo (default 90)Output quality, from 1 (smallest file) to 100 (best quality).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/bmp-to-jpg \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"quality":90}'

{
  "success": true,
  "tool": "bmp-to-jpg",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/tiff-to-jpg2 credits/call

TIFF to JPG Converter

Convert a TIFF image to JPG. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
qualitynumberNo (default 90)Output quality, from 1 (smallest file) to 100 (best quality).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/tiff-to-jpg \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"quality":90}'

{
  "success": true,
  "tool": "tiff-to-jpg",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/heic-to-jpg2 credits/call

HEIC to JPG Converter

Convert a HEIC/HEIF image to JPG. The magic bytes are checked before decoding, so non-HEIC input fails fast with a descriptive error instead of an opaque decoder crash. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe HEIC/HEIF image file to convert (sent as binary multipart/form-data).
qualitynumberNo (default 90)Output JPEG quality, from 1 (smallest file) to 100 (best quality).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/heic-to-jpg \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"quality":90}'

{
  "success": true,
  "tool": "heic-to-jpg",
  "result": "Binary image data — Content-Type: image/jpeg."
}
POST/api/v1/tools/image-resizer2 credits/call

Image Resizer

Resize an image, keeping its original format (animated GIF: first frame only). BMP input is not supported via the API. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
widthnumberNoTarget width in pixels.
heightnumberNoTarget height in pixels.
fitstring (cover | contain | fill | inside | outside)No (default "inside")How the image should fit the target width/height.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/image-resizer \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"width":800,"height":600,"fit":"inside"}'

{
  "success": true,
  "tool": "image-resizer",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/image-compressor2 credits/call

Image Compressor

Compress an image to WEBP. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
qualitynumberNo (default 70)Output quality, from 1 (smallest file) to 100 (best quality).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/image-compressor \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"quality":70}'

{
  "success": true,
  "tool": "image-compressor",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/image-cropper2 credits/call

Image Cropper

Crop an image to a rectangle, keeping its original format (animated GIF: first frame only). BMP input is not supported via the API. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
leftnumberYesLeft edge of the crop rectangle, in pixels.
topnumberYesTop edge of the crop rectangle, in pixels.
widthnumberYesWidth of the crop rectangle, in pixels.
heightnumberYesHeight of the crop rectangle, in pixels.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/image-cropper \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"left":0,"top":0,"width":200,"height":200}'

{
  "success": true,
  "tool": "image-cropper",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/image-rotator2 credits/call

Image Rotator

Rotate an image by an arbitrary angle, keeping its original format (animated GIF: first frame only). BMP input is not supported via the API. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
anglenumberYesRotation angle in degrees, clockwise.
backgroundstringNo (default "#000000")Fill color (hex) for the canvas newly exposed by the rotation.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/image-rotator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"angle":90,"background":"#000000"}'

{
  "success": true,
  "tool": "image-rotator",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/ico-converter2 credits/call

ICO Converter (Favicon Generator)

Resize an image down to a square favicon size. sharp cannot emit real .ico containers, so this returns a PNG at the chosen size (Content-Type image/png) instead of an ICO file — the legacy UI tool does the same. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to convert (sent as binary multipart/form-data).
sizesstring (16 | 32 | 48 | 64)No (default "32")Icon size in pixels (square PNG output).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/ico-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"sizes":"32"}'

{
  "success": true,
  "tool": "ico-converter",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/image-to-base642 credits/call

Image to Base64

Encode an image as a base64 string. Send `file` as binary multipart form-data; returns JSON with the encoded data instead of a binary body.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to encode (sent as binary multipart/form-data).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/image-to-base64 \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "image-to-base64",
  "result": {
    "base64": "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAE...",
    "mimeType": "image/png",
    "size": 68
  }
}
POST/api/v1/tools/image-watermark2 credits/call

Image Watermark Tool

Overlay text on an image as a watermark. Only text watermarks are supported via this API in this batch — image-on-image watermarking remains a UI-only feature for now. Send `file` as binary multipart form-data; the example below shows the other fields only.

Parameters

NameTypeRequiredDescription
filefileYesThe image to watermark (sent as binary multipart/form-data).
textstringYesWatermark text to overlay on the image.
fontSizenumberNo (default 48)Font size in pixels.
opacitynumberNo (default 0.5)Opacity of the watermark text, from 0 (invisible) to 1 (opaque).
positionstring (center | top-left | top-right | bottom-left | bottom-right)No (default "bottom-right")Where to place the watermark on the image.
colorstringNo (default "#ffffff")Watermark text color (CSS color name or hex code).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/image-watermark \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"Sample Watermark","fontSize":48,"opacity":0.5,"position":"bottom-right","color":"#ffffff"}'

{
  "success": true,
  "tool": "image-watermark",
  "result": "Binary image data — the Content-Type response header names the output format."
}
POST/api/v1/tools/image-metadata-viewer2 credits/call

Image Metadata Viewer

Return technical image metadata (format, dimensions, color space, and more) as JSON, from sharp's decoder. Deep EXIF tags (camera make/model, GPS, capture time) are only available in the browser-based Image Metadata Viewer UI tool, not via this API. BMP and HEIC input are not supported here — convert to PNG/JPEG/WEBP/GIF/TIFF first. Send `file` as binary multipart form-data.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to inspect (sent as binary multipart/form-data).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/image-metadata-viewer \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "image-metadata-viewer",
  "result": {
    "format": "jpeg",
    "width": 800,
    "height": 600,
    "space": "srgb",
    "channels": 3,
    "depth": "uchar",
    "density": 72,
    "hasAlpha": false,
    "hasProfile": false
  }
}
POST/api/v1/tools/image-format-detector2 credits/call

Image Format Detector

Detect an image's true format, dimensions, and MIME type by inspecting its bytes rather than trusting the filename or the Content-Type header. BMP is detected from its header magic bytes without a full pixel decode (sharp has no BMP codec in this build). HEIC is not supported via this API. Send `file` as binary multipart form-data.

Parameters

NameTypeRequiredDescription
filefileYesThe image file to inspect (sent as binary multipart/form-data).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/image-format-detector \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "image-format-detector",
  "result": {
    "format": "png",
    "width": 800,
    "height": 600,
    "mimeType": "image/png"
  }
}
POST/api/v1/tools/bulk-image-renamer2 credits/call

Bulk Image Renamer

Compute a bulk-rename plan for a list of filenames using a pattern with {n} (zero-padded sequence number), {name} (original name without its extension), and {ext} (original extension without the dot) tokens. This endpoint is JSON-only: no files are uploaded and nothing is renamed server-side — the UI applies the returned `to` names when it builds the renamed zip.

Parameters

NameTypeRequiredDescription
filenamesstringYesNewline-separated list of original filenames.
patternstringYesRename pattern using the {n}, {name}, and {ext} tokens, e.g. "photo-{n}.{ext}".
startnumberNo (default 1)Starting sequence number substituted for {n}.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/bulk-image-renamer \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"filenames":"IMG_001.jpg\nIMG_002.png","pattern":"photo-{n}.{ext}","start":1}'

{
  "success": true,
  "tool": "bulk-image-renamer",
  "result": {
    "renames": [
      {
        "from": "IMG_001.jpg",
        "to": "photo-1.jpg"
      },
      {
        "from": "IMG_002.png",
        "to": "photo-2.png"
      }
    ]
  }
}

Document Tools

POST/api/v1/tools/pdf-to-docx5 credits/call

PDF to DOCX

Convert a PDF to an editable Word .docx document via a headless LibreOffice subprocess, using LibreOffice's Writer PDF-import filter to reflow the PDF into real text (not embedded page images). This runs SERVER-SIDE — the uploaded file is sent to and processed on the server, unlike this site's browser-local client tools. Fidelity depends on the source PDF: a text-based PDF reflows well, a scanned/rasterized PDF will not.

Parameters

NameTypeRequiredDescription
filefileYesThe PDF file to convert (multipart/form-data).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pdf-to-docx \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "pdf-to-docx",
  "result": "Binary DOCX data (Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document) — filename \"converted.docx\"."
}
POST/api/v1/tools/docx-to-pdf5 credits/call

DOCX to PDF

Convert a Word .docx document to PDF via a headless LibreOffice subprocess (`soffice --convert-to pdf`). This runs SERVER-SIDE for true layout fidelity (fonts, tables, images render the same way LibreOffice/Word itself would lay them out) — unlike this site's browser-local client tools, the uploaded file is sent to and processed on the server.

Parameters

NameTypeRequiredDescription
filefileYesThe .docx file to convert (multipart/form-data).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/docx-to-pdf \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "docx-to-pdf",
  "result": "Binary PDF data (Content-Type: application/pdf) — filename \"converted.pdf\"."
}
POST/api/v1/tools/pdf-merge3 credits/call

PDF Merge

Merge two or more PDF files into one, preserving page order (files are concatenated in the order they are sent). Each upload is checked for the %PDF- signature before any parsing, and the combined page count is capped at 500. Send the PDFs as repeated `files` fields in multipart form-data; returns the merged PDF as a binary body.

Parameters

NameTypeRequiredDescription
filesfileYesTwo or more PDF files to merge, sent as repeated `files` fields (multipart/form-data).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pdf-merge \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "pdf-merge",
  "result": "Binary PDF data (Content-Type: application/pdf) — the merged document, filename \"merged.pdf\"."
}
POST/api/v1/tools/pdf-split3 credits/call

PDF Split

Split a PDF into multiple PDFs, returned as a ZIP archive. With no `ranges`, every page becomes its own 1-page PDF (page-1.pdf, page-2.pdf, …). With `ranges` like "1-3,5,8-10", each comma-separated group becomes one PDF (pages-1-3.pdf, page-5.pdf, …). Ranges are 1-based and validated against the page count; a malformed or backwards range is rejected. The source page count is capped at 500. Returns a ZIP (application/zip).

Parameters

NameTypeRequiredDescription
filefileYesThe PDF file to split (multipart/form-data).
rangesstringNoOptional 1-based page ranges, e.g. "1-3,5,8-10". Omit to split every page into its own PDF.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pdf-split \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"ranges":"1-3,5,8-10"}'

{
  "success": true,
  "tool": "pdf-split",
  "result": "Binary ZIP data (Content-Type: application/zip) containing one PDF per range, filename \"split.zip\"."
}
POST/api/v1/tools/pdf-compress3 credits/call

PDF Compress

Re-save a PDF with garbage-collection of unused objects plus stream/image/font recompression (mupdf), returning the optimized PDF. This is a real, structural size reduction, not a lossy "magic" compressor — the gain (if any) depends entirely on the source file; an already-optimized PDF may come back the same size or, rarely, slightly larger. The response carries `x-original-size` and `x-compressed-size` headers (in bytes) alongside the binary body so a caller can see the actual before/after sizes rather than a claimed one.

Parameters

NameTypeRequiredDescription
filefileYesThe PDF file to compress (multipart/form-data).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pdf-compress \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "pdf-compress",
  "result": "Binary PDF data (Content-Type: application/pdf) — filename \"compressed.pdf\", with x-original-size / x-compressed-size response headers (bytes)."
}
POST/api/v1/tools/pdf-to-text3 credits/call

PDF to Text

Extract text from a PDF via pdfjs-dist's Node "legacy" build. Omit `page` to concatenate every page's text (pages joined by a blank line); pass a 1-based `page` to extract just that one page. The document is bounded to 500 pages. Returns JSON, not a binary body.

Parameters

NameTypeRequiredDescription
filefileYesThe PDF file to extract text from (multipart/form-data).
pagenumberNoOptional 1-based page number to extract. Omit to extract every page.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pdf-to-text \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "pdf-to-text",
  "result": {
    "text": "Hello, world.",
    "pages": 1,
    "characters": 13
  }
}
POST/api/v1/tools/csv-to-json1 credit/call

CSV to JSON

Parse CSV text into JSON per RFC 4180: quoted fields may contain the delimiter, raw newlines, and `""` as an escaped `"`. With `header:true` (default) the first row becomes object keys and short/long rows are padded/truncated to the header's column count; with `header:false` each row is returned as a plain array.

Parameters

NameTypeRequiredDescription
csvstringYesThe CSV text to parse.
delimiterstringNo (default ",")Single-character field delimiter.
headerbooleanNo (default true)Treat the first row as column names and return an array of objects (false returns arrays).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/csv-to-json \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"csv":"name,age\nAlice,30\nBob,25"}'

{
  "success": true,
  "tool": "csv-to-json",
  "result": {
    "rows": [
      {
        "name": "Alice",
        "age": "30"
      },
      {
        "name": "Bob",
        "age": "25"
      }
    ],
    "count": 2
  }
}
POST/api/v1/tools/json-to-csv1 credit/call

JSON to CSV

Convert a JSON array (of objects, or of arrays) into CSV text. For an array of objects, the column set is the union of every object's keys in first-seen order, and a header row is emitted; missing cells become empty. A field containing the delimiter, a `"`, or a newline is wrapped in quotes with internal `"` doubled.

Parameters

NameTypeRequiredDescription
jsonstringYesA JSON array of objects, or a JSON array of arrays, as a string.
delimiterstringNo (default ",")Single-character field delimiter.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/json-to-csv \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"json":"[{\"a\":1,\"b\":2},{\"a\":3,\"b\":4}]"}'

{
  "success": true,
  "tool": "json-to-csv",
  "result": {
    "csv": "a,b\n1,2\n3,4"
  }
}
POST/api/v1/tools/xml-to-json1 credit/call

XML to JSON

Parse XML into JSON via fast-xml-parser (attributes are kept, prefixed "@_"). fast-xml-parser has no DOCTYPE/external-entity resolution at all, so there is no XXE or "billion laughs" entity-expansion vector; input is still bounded to 5MB to cap plain parse work. Malformed XML (e.g. a mismatched closing tag) is validated up front and rejected before parsing.

Parameters

NameTypeRequiredDescription
xmlstringYesThe XML document to parse.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/xml-to-json \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"xml":"<root a=\"1\"><b>x</b></root>"}'

{
  "success": true,
  "tool": "xml-to-json",
  "result": {
    "json": {
      "root": {
        "@_a": "1",
        "b": "x"
      }
    }
  }
}
POST/api/v1/tools/yaml-to-json1 credit/call

YAML to JSON

Parse YAML into JSON via js-yaml's `load()`, which uses only the safe default schema — it does not recognize (and will not execute) unsafe tags like `!!js/function`. Invalid YAML throws a clear error.

Parameters

NameTypeRequiredDescription
yamlstringYesThe YAML document to parse.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/yaml-to-json \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"yaml":"a: 1\nb:\n  - x\n  - y"}'

{
  "success": true,
  "tool": "yaml-to-json",
  "result": {
    "json": {
      "a": 1,
      "b": [
        "x",
        "y"
      ]
    }
  }
}
POST/api/v1/tools/json-to-yaml1 credit/call

JSON to YAML

Convert a JSON value into a YAML document via js-yaml's `dump()`.

Parameters

NameTypeRequiredDescription
jsonstringYesA JSON value, as a string, to convert to YAML.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/json-to-yaml \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"json":"{\"a\":1}"}'

{
  "success": true,
  "tool": "json-to-yaml",
  "result": {
    "yaml": "a: 1\n"
  }
}
POST/api/v1/tools/excel-to-csv3 credits/call

Excel to CSV

Convert one sheet of an Excel workbook (.xlsx or legacy .xls) to CSV, via SheetJS (`xlsx`) — pure JS, runs entirely in this process, no LibreOffice involved. Pass `sheet` as a sheet name, or a 0-based numeric index, to pick a sheet other than the first; the response always lists every sheet name so a caller can target a different one. A sheet with more than 500,000 cells is rejected rather than converted.

Parameters

NameTypeRequiredDescription
filefileYesThe .xlsx or .xls workbook to convert (multipart/form-data).
sheetstringNoA sheet name, or a 0-based numeric index. Omit to use the first sheet.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/excel-to-csv \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "excel-to-csv",
  "result": {
    "csv": "a,b\n1,2\n3,4",
    "sheet": "Sheet1",
    "sheets": [
      "Sheet1"
    ]
  }
}
POST/api/v1/tools/text-to-pdf3 credits/call

Text to PDF

Render plain text into a paginated PDF using Helvetica, word-wrapping to the page width and preserving explicit newlines. Font size and margin are configurable. The produced document is bounded to 500 pages — text that would exceed this is rejected. Returns the PDF as a binary body.

Parameters

NameTypeRequiredDescription
textstringYesThe plain text to render.
fontSizenumberNo (default 11)Font size in points.
marginnumberNo (default 50)Page margin in points.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/text-to-pdf \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello, world.\nThis is a PDF generated from text.","fontSize":11,"margin":50}'

{
  "success": true,
  "tool": "text-to-pdf",
  "result": "Binary PDF data (Content-Type: application/pdf) — the rendered document, filename \"document.pdf\"."
}
POST/api/v1/tools/html-to-pdf5 credits/call

HTML to PDF

Render an HTML string to PDF via headless Chrome (`page.pdf()`). This runs SERVER-SIDE — the HTML is sent to and rendered on the server, unlike this site's browser-local client tools. For safety, JavaScript execution is disabled and every request the page would make other than a `data:` URL (http/https/file/ftp, including internal hosts and cloud-metadata endpoints) is blocked outright, so external stylesheets, fonts, and images will not load — inline everything (e.g. `data:` URIs) that must appear in the output.

Parameters

NameTypeRequiredDescription
htmlstringYesThe HTML document (or fragment) to render.
formatstring (A4 | Letter)No (default "A4")Page size.
landscapebooleanNo (default false)Render in landscape orientation instead of portrait.
marginPxnumberNo (default 0)Page margin (all sides) in pixels.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/html-to-pdf \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"html":"<h1>Hello</h1><p>Rendered to PDF.</p>"}'

{
  "success": true,
  "tool": "html-to-pdf",
  "result": "Binary PDF data (Content-Type: application/pdf) — filename \"document.pdf\"."
}
POST/api/v1/tools/pdf-to-jpg3 credits/call

PDF to JPG

Rasterize a PDF to JPEG or PNG images via mupdf. Pass a 1-based `page` to render just that one page (returns a single image); omit it to render every page (returns a ZIP of page-1.jpg, page-2.jpg, …). `dpi` is capped at 300 no matter what value is sent. The document is bounded to 500 pages.

Parameters

NameTypeRequiredDescription
filefileYesThe PDF file to rasterize (multipart/form-data).
pagenumberNoOptional 1-based page number to render. Omit to render every page, returned as a ZIP.
dpinumberNo (default 150)Rendering resolution in dots per inch. Capped at 300 regardless of the value sent.
formatstring (jpeg | png)No (default "jpeg")Output image format.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pdf-to-jpg \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"dpi":150,"format":"jpeg"}'

{
  "success": true,
  "tool": "pdf-to-jpg",
  "result": "A single page: binary image data (Content-Type image/jpeg or image/png), filename \"page-{n}.jpg\". Every page (no `page` given): a ZIP archive (Content-Type application/zip), filename \"pages.zip\"."
}
POST/api/v1/tools/jpg-to-pdf3 credits/call

JPG to PDF

Combine one or more JPEG/PNG images into a single PDF, one image per page. Each upload is checked for a PNG or JPEG signature before embedding. With `pageSize:"fit"` (default) each page is exactly the image size; "a4"/"letter" place the image, scaled to fit within an optional margin, on a fixed-size page in the chosen orientation. The image count is capped at 500. Send the images as repeated `files` fields; returns a binary PDF.

Parameters

NameTypeRequiredDescription
filesfileYesOne or more JPEG/PNG images, sent as repeated `files` fields (multipart/form-data).
pageSizestring (fit | a4 | letter)No (default "fit")Page size: "fit" (page matches each image), "a4", or "letter".
orientationstring (portrait | landscape)No (default "portrait")Page orientation for "a4"/"letter" (ignored for "fit").
marginnumberNo (default 0)Margin in points around the image for "a4"/"letter" (ignored for "fit").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/jpg-to-pdf \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"pageSize":"fit","orientation":"portrait","margin":0}'

{
  "success": true,
  "tool": "jpg-to-pdf",
  "result": "Binary PDF data (Content-Type: application/pdf) — one image per page, filename \"images.pdf\"."
}
POST/api/v1/tools/pdf-page-rotator3 credits/call

PDF Page Rotator

Rotate pages of a PDF by 90, 180, or 270 degrees (clockwise). By default every page is rotated; pass `pages` as a 1-based range (e.g. "1-3,5") to rotate only some. The rotation is added to each page's existing rotation. The page count is capped at 500. Returns the rotated PDF as a binary body.

Parameters

NameTypeRequiredDescription
filefileYesThe PDF file to rotate (multipart/form-data).
anglestring (90 | 180 | 270)YesRotation to add, in degrees clockwise.
pagesstringNoOptional 1-based pages/ranges to rotate, e.g. "1-3,5". Omit to rotate every page.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pdf-page-rotator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"angle":"90","pages":"1-3,5"}'

{
  "success": true,
  "tool": "pdf-page-rotator",
  "result": "Binary PDF data (Content-Type: application/pdf) — the rotated document, filename \"rotated.pdf\"."
}
POST/api/v1/tools/pdf-watermark3 credits/call

PDF Watermark

Stamp a diagonal text watermark across every page of a PDF, drawn as embedded Helvetica-Bold text (this is a text watermark, not HTML). Options control opacity, font size, hex color, and rotation angle. The page count is capped at 500. Returns the watermarked PDF as a binary body.

Parameters

NameTypeRequiredDescription
filefileYesThe PDF file to watermark (multipart/form-data).
textstringYesWatermark text (drawn literally, not interpreted as HTML).
opacitynumberNo (default 0.3)Watermark opacity, from 0 (invisible) to 1 (opaque).
fontSizenumberNo (default 50)Font size in points.
colorstringNo (default "#808080")Text color as a hex code (e.g. "#808080").
anglenumberNo (default 45)Rotation of the watermark in degrees.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pdf-watermark \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"CONFIDENTIAL","opacity":0.3,"fontSize":50,"color":"#808080","angle":45}'

{
  "success": true,
  "tool": "pdf-watermark",
  "result": "Binary PDF data (Content-Type: application/pdf) — the watermarked document, filename \"watermarked.pdf\"."
}
POST/api/v1/tools/pdf-password-protect3 credits/call

PDF Password Protect / Unlock

Add or remove password protection on a PDF via mupdf (AES-256). `mode:"protect"` encrypts it, requiring `password` to open it afterward (`ownerPassword`, if given, separately controls edit/print permissions; it defaults to the same value as `password`). `mode:"unlock"` removes protection given the PDF's correct current password — a wrong or missing password throws a 400, never a corrupted or still-locked file. HONESTY NOTE: this tool runs SERVER-SIDE for both the website and this API — there is no browser-local version. The file and password are sent to the server to perform the operation and are discarded immediately afterward; neither is ever logged or persisted.

Parameters

NameTypeRequiredDescription
filefileYesThe PDF file to protect or unlock (multipart/form-data).
modestring (protect | unlock)Yes"protect" to add password protection, "unlock" to remove it.
passwordstringYesFor "protect": the new password required to open the PDF. For "unlock": the PDF's current password.
ownerPasswordstringNo"protect" only: a separate owner/permissions password. Defaults to the same value as `password`.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pdf-password-protect \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"mode":"protect","password":"correct horse battery staple"}'

{
  "success": true,
  "tool": "pdf-password-protect",
  "result": "Binary PDF data (Content-Type: application/pdf) — filename \"protected.pdf\" (\"unlock\" mode: \"unlocked.pdf\")."
}
POST/api/v1/tools/markdown-to-pdf3 credits/call

Markdown to PDF

Render Markdown to PDF: parsed to HTML via `marked`, wrapped in a minimal readable-typography stylesheet, then rendered via headless Chrome exactly like html-to-pdf (same server-side execution, same JavaScript-off and non-`data:`-request-blocking hardening — see that tool's notes). Runs SERVER-SIDE, unlike this site's browser-local client tools.

Parameters

NameTypeRequiredDescription
markdownstringYesThe Markdown text to render.
formatstring (A4 | Letter)No (default "A4")Page size.
landscapebooleanNo (default false)Render in landscape orientation instead of portrait.
marginPxnumberNo (default 0)Page margin (all sides) in pixels.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/markdown-to-pdf \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"markdown":"# Hello\n\nRendered to **PDF**."}'

{
  "success": true,
  "tool": "markdown-to-pdf",
  "result": "Binary PDF data (Content-Type: application/pdf) — filename \"document.pdf\"."
}

Text Tools

POST/api/v1/tools/word-counter1 credit/call

Word Counter

Count words, characters, sentences, paragraphs, and estimate reading time.

Parameters

NameTypeRequiredDescription
textstringYesThe text to analyze.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/word-counter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello world. This is a test."}'

{
  "success": true,
  "tool": "word-counter",
  "result": {
    "words": 6,
    "characters": 28,
    "charactersNoSpaces": 23,
    "sentences": 2,
    "paragraphs": 1,
    "readingTimeMinutes": 1
  }
}
POST/api/v1/tools/text-case-converter1 credit/call

Text Case Converter

Convert text between upper, lower, title, sentence, camel, pascal, snake, and kebab case.

Parameters

NameTypeRequiredDescription
textstringYesThe text to convert.
casestring (upper | lower | title | sentence | camel | pascal | snake | kebab)YesTarget case.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/text-case-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world","case":"title"}'

{
  "success": true,
  "tool": "text-case-converter",
  "result": {
    "result": "Hello World",
    "case": "title"
  }
}
POST/api/v1/tools/lorem-ipsum-generator1 credit/call

Lorem Ipsum Generator

Generate placeholder Lorem Ipsum text as paragraphs, sentences, or words.

Parameters

NameTypeRequiredDescription
countnumberNo (default 3)How many units (paragraphs/sentences/words) to generate.
unitstring (paragraphs | sentences | words)No (default "paragraphs")The unit `count` refers to.
startWithLorembooleanNo (default true)Start with the classic "Lorem ipsum dolor sit amet..." opening.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/lorem-ipsum-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"count":1,"unit":"sentences","startWithLorem":true}'

{
  "success": true,
  "tool": "lorem-ipsum-generator",
  "result": {
    "result": "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
  }
}
POST/api/v1/tools/slug-generator1 credit/call

Slug Generator

Convert text to a URL-friendly slug: lowercased, accents stripped, non-alphanumeric characters removed, words joined with single hyphens.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/slug-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"Hello, World! Café"}'

{
  "success": true,
  "tool": "slug-generator",
  "result": {
    "slug": "hello-world-cafe"
  }
}
POST/api/v1/tools/text-diff-checker1 credit/call

Text Diff Checker

Compute a diff between two pieces of text, by line or by word, using an LCS-based algorithm bounded to 5000 combined lines/words across both inputs (same bound as the developer code-diff-tool).

Parameters

NameTypeRequiredDescription
textAstringYesThe "before" text.
textBstringYesThe "after" text.
modestring (lines | words)No (default "lines")Diff granularity.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/text-diff-checker \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"textA":"a\nb","textB":"a\nb\nc","mode":"lines"}'

{
  "success": true,
  "tool": "text-diff-checker",
  "result": {
    "diff": [
      {
        "type": "same",
        "value": "a"
      },
      {
        "type": "same",
        "value": "b"
      },
      {
        "type": "add",
        "value": "c"
      }
    ],
    "additions": 1,
    "deletions": 0
  }
}
POST/api/v1/tools/extract-emails1 credit/call

Extract Emails

Extract all email addresses found in text.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.
uniquebooleanNo (default true)Remove duplicate matches.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/extract-emails \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"Contact a@example.com or b@example.com, or a@example.com again.","unique":true}'

{
  "success": true,
  "tool": "extract-emails",
  "result": {
    "results": [
      "a@example.com",
      "b@example.com"
    ],
    "count": 2
  }
}
POST/api/v1/tools/extract-urls1 credit/call

Extract URLs

Extract all http(s) URLs found in text.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.
uniquebooleanNo (default true)Remove duplicate matches.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/extract-urls \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"Visit https://example.com or https://example.com/about.","unique":true}'

{
  "success": true,
  "tool": "extract-urls",
  "result": {
    "results": [
      "https://example.com",
      "https://example.com/about"
    ],
    "count": 2
  }
}
POST/api/v1/tools/find-and-replace1 credit/call

Find and Replace

Find and replace text using literal string matching — `find` is matched exactly, not as a regular expression. Both `find` and `replace` are capped at 10,000 characters and `input` at 100,000. Regex-mode find/replace is available in the browser Find and Replace tool, which runs client-side in the requesting browser rather than on the API server; this API endpoint does not accept a `regex` option.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to search.
findstringYesLiteral text to find (matched exactly — not interpreted as a regular expression).
replacestringNo (default "")Replacement text (used verbatim — regex backreferences like $1 are not supported).
caseSensitivebooleanNo (default true)Case-sensitive matching.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/find-and-replace \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"The cat sat on the mat","find":"at","replace":"og","caseSensitive":true}'

{
  "success": true,
  "tool": "find-and-replace",
  "result": {
    "result": "The cog sog on the mog",
    "count": 3
  }
}
POST/api/v1/tools/reading-time-estimator1 credit/call

Reading Time Estimator

Estimate how long it takes to read a piece of text at a given words-per-minute pace.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.
wpmnumberNo (default 200)Reading speed in words per minute.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/reading-time-estimator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word","wpm":200}'

{
  "success": true,
  "tool": "reading-time-estimator",
  "result": {
    "words": 200,
    "minutes": 1,
    "seconds": 0,
    "text": "~1 min"
  }
}
POST/api/v1/tools/duplicate-line-remover1 credit/call

Duplicate Line Remover

Remove duplicate lines from text, keeping the first occurrence of each.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.
caseSensitivebooleanNo (default true)Whether "Line" and "line" are treated as different lines.
trimLinesbooleanNo (default false)Trim each line before comparing (and keep the trimmed version in the output).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/duplicate-line-remover \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"a\nA\na\nb","caseSensitive":true,"trimLines":false}'

{
  "success": true,
  "tool": "duplicate-line-remover",
  "result": {
    "result": "a\nA\nb",
    "removed": 1
  }
}
POST/api/v1/tools/sort-lines1 credit/call

Sort Lines

Sort the lines of text alphabetically (ascending/descending), by length, or into a random order.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.
orderstring (asc | desc | length | random)No (default "asc")Sort order.
caseSensitivebooleanNo (default true)Whether alphabetical sorting treats uppercase/lowercase as different (ignored for "length"/"random").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/sort-lines \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"banana\napple\ncherry","order":"asc","caseSensitive":true}'

{
  "success": true,
  "tool": "sort-lines",
  "result": {
    "result": "apple\nbanana\ncherry"
  }
}
POST/api/v1/tools/text-to-binary1 credit/call

Text to Binary

Convert text to space-separated 8-bit binary (UTF-8 byte-based, so multi-byte characters round-trip correctly) or decode space/newline-separated 8-bit binary groups back to text.

Parameters

NameTypeRequiredDescription
inputstringYesText to convert, or binary groups to decode (depending on direction).
directionstring (to-binary | from-binary)YesConversion direction.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/text-to-binary \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"Hi","direction":"to-binary"}'

{
  "success": true,
  "tool": "text-to-binary",
  "result": {
    "result": "01001000 01101001"
  }
}
POST/api/v1/tools/text-reverser1 credit/call

Text Reverser

Reverse text by characters (code-point safe, so emoji/astral characters are not corrupted), by word order, or by line order.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.
modestring (characters | words | lines)No (default "characters")What unit to reverse.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/text-reverser \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"Hello world","mode":"characters"}'

{
  "success": true,
  "tool": "text-reverser",
  "result": {
    "result": "dlrow olleH"
  }
}
POST/api/v1/tools/text-repeater1 credit/call

Text Repeater

Repeat a string a given number of times, joined by an optional separator. Output size is capped at 1,000,000 characters.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to repeat.
countnumberYesHow many times to repeat the input.
separatorstringNo (default "")String inserted between repetitions.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/text-repeater \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"ab","count":3,"separator":"-"}'

{
  "success": true,
  "tool": "text-repeater",
  "result": {
    "result": "ab-ab-ab"
  }
}
POST/api/v1/tools/text-trimmer1 credit/call

Text Trimmer

Trim whitespace from text. "lines" (default) trims each line individually and keeps blank lines; "all" also collapses repeated internal whitespace and drops blank lines; "leading"/"trailing" trim only one side of the whole text as a single block.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.
modestring (lines | all | leading | trailing)No (default "lines")Trimming strategy.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/text-trimmer \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"  hello  \n  world  ","mode":"lines"}'

{
  "success": true,
  "tool": "text-trimmer",
  "result": {
    "result": "hello\nworld"
  }
}
POST/api/v1/tools/character-counter1 credit/call

Character Counter

Break text down by character type: total characters, characters excluding whitespace, letters, digits, punctuation, and UTF-8 byte length. Distinct from word-counter, which reports words/sentences/paragraphs/reading time.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/character-counter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"Hi 42, world!"}'

{
  "success": true,
  "tool": "character-counter",
  "result": {
    "characters": 13,
    "charactersNoSpaces": 11,
    "letters": 7,
    "digits": 2,
    "punctuation": 2,
    "bytes": 13
  }
}
POST/api/v1/tools/text-encryption1 credit/call

Text Encryption/Decryption

Apply a classical cipher (caesar, rot13, atbash, base64, or reverse) to text. These are classical ciphers for learning/obfuscation, NOT secure encryption — do not use this to protect real secrets.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.
methodstring (caesar | rot13 | atbash | base64 | reverse)YesWhich cipher to apply.
shiftnumberNo (default 3)Shift amount for the caesar cipher only (ignored by other methods).
modestring (encrypt | decrypt)No (default "encrypt")Encrypt or decrypt. Ignored by rot13/atbash/reverse, which are their own inverse.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/text-encryption \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"Hello, World!","method":"caesar","shift":3,"mode":"encrypt"}'

{
  "success": true,
  "tool": "text-encryption",
  "result": {
    "result": "Khoor, Zruog!"
  }
}
POST/api/v1/tools/whitespace-visualizer1 credit/call

Whitespace Visualizer

Make whitespace visible: spaces become "·", tabs become "→", and each line ending is marked with "¶".

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/whitespace-visualizer \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"a b\tc"}'

{
  "success": true,
  "tool": "whitespace-visualizer",
  "result": {
    "result": "a·b→c"
  }
}
POST/api/v1/tools/string-escape-unescape1 credit/call

String Escape/Unescape

Escape or unescape text for embedding in JSON, HTML, a URL, or JavaScript source.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.
formatstring (json | html | url | js)YesTarget escaping format.
modestring (escape | unescape)YesWhether to escape raw text or unescape previously-escaped text.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/string-escape-unescape \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"<b>hi</b>","format":"html","mode":"escape"}'

{
  "success": true,
  "tool": "string-escape-unescape",
  "result": {
    "result": "&lt;b&gt;hi&lt;/b&gt;"
  }
}
POST/api/v1/tools/random-text-generator1 credit/call

Random Text Generator

Generate cryptographically random text using node:crypto, for tokens/placeholders/test data.

Parameters

NameTypeRequiredDescription
lengthnumberYesNumber of characters to generate.
charsetstring (alphanumeric | alpha | numeric | hex | symbols)No (default "alphanumeric")Which characters to draw from.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/random-text-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"length":16,"charset":"alphanumeric"}'

{
  "success": true,
  "tool": "random-text-generator",
  "result": {
    "result": "aZ3kQ9mP1xL7vB2c"
  }
}
POST/api/v1/tools/text-column-formatter1 credit/call

Text Column Formatter

Align delimited text (e.g. CSV-like rows) into padded columns for readability. Formatted output size is capped at 1,000,000 characters.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.
delimiterstringNo (default ",")The delimiter separating columns on each line.
alignstring (left | right)No (default "left")Column alignment.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/text-column-formatter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"name,age\nAlice,30\nBob,7","delimiter":",","align":"left"}'

{
  "success": true,
  "tool": "text-column-formatter",
  "result": {
    "result": "name , age\nAlice, 30\nBob  , 7"
  }
}
POST/api/v1/tools/invisible-character-detector1 credit/call

Invisible Character Detector

Detect zero-width and other invisible/formatting Unicode characters in text, and return a cleaned copy with them stripped.

Parameters

NameTypeRequiredDescription
inputstringYesThe text to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/invisible-character-detector \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"a​b"}'

{
  "success": true,
  "tool": "invisible-character-detector",
  "result": {
    "found": [
      {
        "char": "​",
        "name": "ZERO WIDTH SPACE",
        "position": 1,
        "codePoint": 8203
      }
    ],
    "count": 1,
    "cleaned": "ab"
  }
}

Developer Tools

POST/api/v1/tools/json-formatter1 credit/call

JSON Formatter / Beautifier

Parse and re-serialize JSON with a configurable indent width.

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.
indentnumberNo (default 2)Number of spaces per indent level.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/json-formatter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"{\"a\":1,\"b\":[2,3]}","indent":2}'

{
  "success": true,
  "tool": "json-formatter",
  "result": {
    "result": "{\n  \"a\": 1,\n  \"b\": [\n    2,\n    3\n  ]\n}"
  }
}
POST/api/v1/tools/json-validator1 credit/call

JSON Validator

Check whether a string is valid JSON. This never fails the request for invalid JSON — `valid: false` with a parser error message is the expected response for malformed input.

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/json-validator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"{\"a\":1}"}'

{
  "success": true,
  "tool": "json-validator",
  "result": {
    "valid": true,
    "error": null
  }
}
POST/api/v1/tools/json-minifier1 credit/call

JSON Minifier

Parse JSON and re-serialize it with all insignificant whitespace removed.

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/json-minifier \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"{\n  \"a\": 1,\n  \"b\": [2, 3]\n}"}'

{
  "success": true,
  "tool": "json-minifier",
  "result": {
    "result": "{\"a\":1,\"b\":[2,3]}"
  }
}
POST/api/v1/tools/uuid-generator1 credit/call

UUID Generator

Generate one or more version-4 (random) UUIDs.

Parameters

NameTypeRequiredDescription
countnumberNo (default 1)How many UUIDs to generate.
versionstring (v4)No (default "v4")UUID version to generate. Only v4 (random) is currently supported.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/uuid-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"count":3,"version":"v4"}'

{
  "success": true,
  "tool": "uuid-generator",
  "result": {
    "uuids": [
      "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
      "e3f1c2a0-5e4b-4c7a-9a1f-6d8b2e0f1a2b",
      "2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d"
    ]
  }
}
POST/api/v1/tools/jwt-decoder1 credit/call

JWT Decoder

Decode a JWT’s header and payload segments without verifying its signature. This tool DOES NOT verify the signature, check expiry, or validate the signing key in any way — it only base64url-decodes the header and payload JSON.

Parameters

NameTypeRequiredDescription
tokenstringYesThe JWT to decode, as header.payload.signature.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/jwt-decoder \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dummysignature"}'

{
  "success": true,
  "tool": "jwt-decoder",
  "result": {
    "header": {
      "alg": "HS256"
    },
    "payload": {
      "sub": "1234567890"
    },
    "signaturePresent": true
  }
}
POST/api/v1/tools/css-minifier1 credit/call

CSS Minifier

Strip comments and insignificant whitespace from CSS.

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/css-minifier \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"body {\n  color: red;\n}"}'

{
  "success": true,
  "tool": "css-minifier",
  "result": {
    "result": "body{color:red}"
  }
}
POST/api/v1/tools/html-formatter1 credit/call

HTML Formatter

Re-indent HTML by breaking tags onto their own lines (regex-based, not a real HTML parser).

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/html-formatter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"<div><p>Hi</p></div>"}'

{
  "success": true,
  "tool": "html-formatter",
  "result": {
    "result": "<div><p>Hi\n</p>\n</div>"
  }
}
POST/api/v1/tools/sql-formatter1 credit/call

SQL Formatter

Re-indent a SQL query by placing common keywords on new lines (keyword-based, not a real SQL parser).

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/sql-formatter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"select * from users where id = 1"}'

{
  "success": true,
  "tool": "sql-formatter",
  "result": {
    "result": "SELECT *\nFROM users\nWHERE id = 1"
  }
}
POST/api/v1/tools/base64-encode-decode1 credit/call

Base64 Encode/Decode

Encode UTF-8 text to Base64 or decode a Base64 string back to UTF-8 text. For encoding binary files, use image-to-base64 instead.

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.
modestring (encode | decode)YesDirection of the conversion.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/base64-encode-decode \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"hello","mode":"encode"}'

{
  "success": true,
  "tool": "base64-encode-decode",
  "result": {
    "result": "aGVsbG8="
  }
}
POST/api/v1/tools/url-encode-decode1 credit/call

URL Encode/Decode

Percent-encode or percent-decode a string for use in a URL.

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.
modestring (encode | decode)YesDirection of the conversion.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/url-encode-decode \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"hello world/?","mode":"encode"}'

{
  "success": true,
  "tool": "url-encode-decode",
  "result": {
    "result": "hello%20world%2F%3F"
  }
}
POST/api/v1/tools/unix-timestamp-converter1 credit/call

Unix Timestamp Converter

Convert between Unix timestamps (seconds or milliseconds) and human-readable dates.

Parameters

NameTypeRequiredDescription
valuestringYesFor direction="to-date": an integer number of seconds or milliseconds since the epoch. For direction="to-timestamp": any date string parseable by Date.parse.
directionstring (to-date | to-timestamp)YesConversion direction.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/unix-timestamp-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":"1700000000","direction":"to-date"}'

{
  "success": true,
  "tool": "unix-timestamp-converter",
  "result": {
    "iso": "2023-11-14T22:13:20.000Z",
    "utc": "Tue, 14 Nov 2023 22:13:20 GMT",
    "unix": 1700000000
  }
}
POST/api/v1/tools/cron-expression-explainer1 credit/call

Cron Expression Explainer

Parse a standard 5-field cron expression (minute hour day-of-month month day-of-week) into a human-readable description, plus the common @yearly/@annually/@monthly/@weekly/@daily/@midnight/@hourly aliases. 6- and 7-field expressions (seconds/year) are not supported.

Parameters

NameTypeRequiredDescription
expressionstringYesA 5-field cron expression or one of the supported @aliases.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/cron-expression-explainer \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"expression":"0 9 * * 1-5"}'

{
  "success": true,
  "tool": "cron-expression-explainer",
  "result": {
    "description": "At 09:00, Monday through Friday.",
    "fields": {
      "minute": "at minute 0",
      "hour": "at hour 9",
      "dayOfMonth": "every day of the month",
      "month": "every month",
      "dayOfWeek": "Monday through Friday"
    }
  }
}
POST/api/v1/tools/javascript-minifier1 credit/call

JavaScript Minifier

Strip comments and insignificant whitespace from JavaScript using regex-based rules (not a real parser — template literals and regex literals containing `//` or braces are not specially handled).

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/javascript-minifier \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"function add(a, b) {\n  return a + b;\n}"}'

{
  "success": true,
  "tool": "javascript-minifier",
  "result": {
    "result": "function add(a,b){return a+b;}"
  }
}
POST/api/v1/tools/html-entity-encoder1 credit/call

HTML Entity Encoder

Encode special characters as HTML entities, or decode HTML entities back to characters. Decoding only resolves character entities (numeric and a common named set) — it does not parse or execute HTML.

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.
modestring (encode | decode)No (default "encode")Direction of the conversion.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/html-entity-encoder \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"<a href=\"x\">A & B</a>"}'

{
  "success": true,
  "tool": "html-entity-encoder",
  "result": {
    "result": "&lt;a href=&quot;x&quot;&gt;A &amp; B&lt;/a&gt;"
  }
}
POST/api/v1/tools/markdown-to-html1 credit/call

Markdown to HTML

Render Markdown to HTML using the site’s basic Markdown subset (headers, bold/italic, links, images, lists, blockquotes, code blocks/inline code, horizontal rules, paragraphs) — not a full CommonMark implementation.

Parameters

NameTypeRequiredDescription
markdownstringYesThe Markdown source to render.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/markdown-to-html \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"markdown":"# Hello\n\nThis is **bold** text."}'

{
  "success": true,
  "tool": "markdown-to-html",
  "result": {
    "html": "<h2 style=\"margin-top: 2rem; margin-bottom: 1rem;\">Hello</h2><p style=\"margin-bottom: 1rem;\">This is <strong>bold</strong> text.</p>"
  }
}
POST/api/v1/tools/code-diff-tool1 credit/call

Code Diff Tool

Compute a line-by-line diff between two text/code snippets using an LCS-based algorithm, bounded to 5000 combined lines across both inputs.

Parameters

NameTypeRequiredDescription
textAstringYesThe "before" text.
textBstringYesThe "after" text.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/code-diff-tool \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"textA":"line1\nline2","textB":"line1\nline2\nline3"}'

{
  "success": true,
  "tool": "code-diff-tool",
  "result": {
    "diff": [
      {
        "type": "same",
        "line": "line1"
      },
      {
        "type": "same",
        "line": "line2"
      },
      {
        "type": "add",
        "line": "line3"
      }
    ],
    "additions": 1,
    "deletions": 0
  }
}
POST/api/v1/tools/json-to-typescript1 credit/call

JSON to TypeScript Interface Generator

Generate a TypeScript interface (or a type alias for array/primitive roots) from a JSON value, producing union types for mixed-primitive arrays and inline nested object types.

Parameters

NameTypeRequiredDescription
inputstringYesThe JSON value to convert.
rootNamestringNo (default "Root")Name for the generated root interface/type. Must be a valid identifier.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/json-to-typescript \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"{\"id\":1,\"name\":\"Widget\"}","rootName":"Root"}'

{
  "success": true,
  "tool": "json-to-typescript",
  "result": {
    "typescript": "interface Root {\n  id: number;\n  name: string;\n}"
  }
}
POST/api/v1/tools/json-path-finder1 credit/call

JSON Path Finder

Parse JSON and list the JSONPath expression for every leaf value (and every empty object/array).

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/json-path-finder \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"{\"a\":1,\"b\":[2,3]}"}'

{
  "success": true,
  "tool": "json-path-finder",
  "result": {
    "paths": [
      "$.a",
      "$.b[0]",
      "$.b[1]"
    ]
  }
}
POST/api/v1/tools/css-gradient-generator1 credit/call

CSS Gradient Generator

Generate a CSS linear-gradient() or radial-gradient() value from 2-10 hex colors.

Parameters

NameTypeRequiredDescription
typestring (linear | radial)No (default "linear")Gradient type.
anglenumberNo (default 90)Angle in degrees (linear gradients only; ignored for radial).
colorsstringYesComma-separated hex colors, e.g. "#ff0000,#0000ff" (2-10 colors, each #rgb or #rrggbb).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/css-gradient-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"type":"linear","angle":90,"colors":"#ff0000,#0000ff"}'

{
  "success": true,
  "tool": "css-gradient-generator",
  "result": {
    "css": "linear-gradient(90deg, #ff0000, #0000ff)"
  }
}
POST/api/v1/tools/svg-optimizer1 credit/call

SVG Optimizer

Strip comments, redundant whitespace, xmlns: namespaces, data- attributes, and id attributes from an SVG document (regex-based, not a full XML optimizer).

Parameters

NameTypeRequiredDescription
inputstringYesThe text/code to process.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/svg-optimizer \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"<svg xmlns=\"http://www.w3.org/2000/svg\">\n  <rect id=\"a\" width=\"10\" height=\"10\" />\n</svg>"}'

{
  "success": true,
  "tool": "svg-optimizer",
  "result": {
    "result": "<svg xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"10\" height=\"10\"/></svg>"
  }
}
POST/api/v1/tools/htaccess-generator1 credit/call

.htaccess Generator

Generate a fixed best-practices .htaccess template (HTTPS redirect, trailing-slash removal, custom error pages, gzip compression, and cache headers). The output does not vary by input.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/htaccess-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{}'

{
  "success": true,
  "tool": "htaccess-generator",
  "result": {
    "result": "# .htaccess Generated by FreeConvertingTools\n\n# Enable Rewrite Engine\nRewriteEngine On\n\n# Force HTTPS\nRewriteCond %{HTTPS} off\nRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n\n# Remove trailing slash\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteRule ^(.*)/$ /$1 [L,R=301]\n\n# Custom error pages\nErrorDocument 404 /404.html\nErrorDocument 500 /500.html\n\n# Enable compression\n<IfModule mod_deflate.c>\n  AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json\n</IfModule>\n\n# Cache control\n<IfModule mod_expires.c>\n  ExpiresActive On\n  ExpiresByType image/jpg \"access plus 1 year\"\n  ExpiresByType image/png \"access plus 1 year\"\n  ExpiresByType text/css \"access plus 1 month\"\n  ExpiresByType application/javascript \"access plus 1 month\"\n</IfModule>\n"
  }
}
POST/api/v1/tools/robots-txt-generator1 credit/call

Robots.txt Generator

Generate a robots.txt with a sensible default allow/disallow policy and a Sitemap line for the given domain.

Parameters

NameTypeRequiredDescription
domainstringNo (default "https://example.com")Base URL referenced in the Sitemap line and header comment.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/robots-txt-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"domain":"https://example.com"}'

{
  "success": true,
  "tool": "robots-txt-generator",
  "result": {
    "result": "# robots.txt Generated by FreeConvertingTools\n# https://example.com\n\nUser-agent: *\nAllow: /\n\n# Disallow admin and private paths\nDisallow: /admin/\nDisallow: /api/\nDisallow: /dashboard/\nDisallow: /account/\n\n# Allow search engines to index tool pages\nAllow: /tools/\nAllow: /categories/\nAllow: /blog/\n\n# Sitemap\nSitemap: https://example.com/sitemap.xml\n\n# Crawl delay (in seconds)\nCrawl-delay: 1\n"
  }
}
POST/api/v1/tools/sitemap-xml-generator1 credit/call

Sitemap XML Generator

Generate a sitemap.xml document from a newline-separated list of absolute http/https URLs (up to 1000).

Parameters

NameTypeRequiredDescription
urlsstringYesNewline-separated absolute http/https URLs to include in the sitemap.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/sitemap-xml-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"urls":"https://example.com\nhttps://example.com/about"}'

{
  "success": true,
  "tool": "sitemap-xml-generator",
  "result": {
    "result": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset ...>...</urlset>"
  }
}

Generators

POST/api/v1/tools/qr-code-generator1 credit/call

QR Code Generator

Generate a QR code as an <svg> string via the qrcode npm package (never a deprecated third-party image API).

Parameters

NameTypeRequiredDescription
datastringYesText/URL to encode.
sizenumberNo (default 256)Output width/height in pixels.
eccstring (L | M | Q | H)No (default "M")Error correction level (higher = more redundancy, less data capacity).
fgColorstringNo (default "000000")Foreground (dark module) color as a hex code.
bgColorstringNo (default "ffffff")Background (light module) color as a hex code.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/qr-code-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"data":"https://example.com","size":256,"ecc":"M"}'

{
  "success": true,
  "tool": "qr-code-generator",
  "result": {
    "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 33 33\" shape-rendering=\"crispEdges\"><path fill=\"#ffffff\" d=\"M0 0h33v33H0z\"/><path stroke=\"#000000\" d=\"M4 4.5h7m4 0h3m2 0h1m1 0h7M4 5.5h1m5 0h1m3 0h1m2 0h4m1 0h1m5 0h1M4 6.5h1m1 0h3m1 0h1m1 0h2m1 0h1m2 0h1m3 0h1m1 0h3m1 0h1M4 7.5h1m1 0h3m1 0h1m1 0h1m4 0h3m2 0h1m1 0h3m1 0h1M4 8.5h1m1 0h3m1 0h1m1 0h3m2 0h1m2 0h1m1 0h1m1 0h3m1 0h1M4 9.5h1m5 0h1m1 0h1m2 0h1m2 0h2m2 0h1m5 0h1M4 10.5h7m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h7M12 11.5h1m5 0h1m1 0h1M4 12.5h1m1 0h5m5 0h1m5 0h5M5 13.5h1m2 0h2m2 0h1m1 0h2m1 0h1m3 0h1m1 0h1m3 0h1M4 14.5h5m1 0h1m1 0h2m3 0h4m2 0h1m1 0h1m1 0h2M4 15.5h2m1 0h3m2 0h1m1 0h2m1 0h1m1 0h2m1 0h2m4 0h1M5 16.5h3m2 0h1m4 0h2m1 0h2m1 0h2m1 0h1m1 0h3M4 17.5h5m3 0h1m1 0h1m5 0h1m2 0h1m1 0h1m1 0h1M4 18.5h1m5 0h2m2 0h3m2 0h1m2 0h4m1 0h2M4 19.5h1m2 0h1m3 0h1m3 0h1m2 0h7m3 0h1M4 20.5h1m1 0h1m2 0h2m1 0h4m4 0h5m1 0h1M12 21.5h2m2 0h5m3 0h2M4 22.5h7m6 0h2m1 0h1m1 0h1m1 0h1m1 0h3M4 23.5h1m5 0h1m1 0h2m2 0h2m2 0h1m3 0h2m1 0h1M4 24.5h1m1 0h3m1 0h1m1 0h3m1 0h1m1 0h7m1 0h1m1 0h1M4 25.5h1m1 0h3m1 0h1m1 0h1m6 0h1m1 0h2m1 0h5M4 26.5h1m1 0h3m1 0h1m1 0h5m2 0h1m5 0h2m1 0h1M4 27.5h1m5 0h1m4 0h1m2 0h1m1 0h2m1 0h3m2 0h1M4 28.5h7m1 0h2m1 0h1m5 0h8\"/></svg>\n"
  }
}
POST/api/v1/tools/barcode-generator1 credit/call

Barcode Generator

Generate a Code 128 (Subset B) barcode as an <svg> string via a hand-built encoder (start code, mod-103 checksum, stop pattern) — no external dependency.

Parameters

NameTypeRequiredDescription
valuestringYesText to encode. Must be printable ASCII (32-126) for Code 128 Subset B.
formatstring (code128)No (default "code128")Barcode symbology.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/barcode-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":"TEST123","format":"code128"}'

{
  "success": true,
  "tool": "barcode-generator",
  "result": {
    "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"264\" height=\"120\" viewBox=\"0 0 264 120\"><rect width=\"264\" height=\"120\" fill=\"#ffffff\"/><rect x=\"20\" y=\"10\" width=\"4\" height=\"100\" fill=\"#000000\"/><rect x=\"26\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"32\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"42\" y=\"10\" width=\"4\" height=\"100\" fill=\"#000000\"/><rect x=\"48\" y=\"10\" width=\"6\" height=\"100\" fill=\"#000000\"/><rect x=\"60\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"64\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"72\" y=\"10\" width=\"4\" height=\"100\" fill=\"#000000\"/><rect x=\"78\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"86\" y=\"10\" width=\"4\" height=\"100\" fill=\"#000000\"/><rect x=\"92\" y=\"10\" width=\"6\" height=\"100\" fill=\"#000000\"/><rect x=\"100\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"108\" y=\"10\" width=\"4\" height=\"100\" fill=\"#000000\"/><rect x=\"114\" y=\"10\" width=\"6\" height=\"100\" fill=\"#000000\"/><rect x=\"126\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"130\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"136\" y=\"10\" width=\"6\" height=\"100\" fill=\"#000000\"/><rect x=\"146\" y=\"10\" width=\"4\" height=\"100\" fill=\"#000000\"/><rect x=\"152\" y=\"10\" width=\"4\" height=\"100\" fill=\"#000000\"/><rect x=\"160\" y=\"10\" width=\"6\" height=\"100\" fill=\"#000000\"/><rect x=\"170\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"174\" y=\"10\" width=\"4\" height=\"100\" fill=\"#000000\"/><rect x=\"182\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"186\" y=\"10\" width=\"6\" height=\"100\" fill=\"#000000\"/><rect x=\"196\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"200\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"208\" y=\"10\" width=\"8\" height=\"100\" fill=\"#000000\"/><rect x=\"218\" y=\"10\" width=\"4\" height=\"100\" fill=\"#000000\"/><rect x=\"228\" y=\"10\" width=\"6\" height=\"100\" fill=\"#000000\"/><rect x=\"236\" y=\"10\" width=\"2\" height=\"100\" fill=\"#000000\"/><rect x=\"240\" y=\"10\" width=\"4\" height=\"100\" fill=\"#000000\"/></svg>"
  }
}
POST/api/v1/tools/password-generator1 credit/call

Password Generator

Generate a cryptographically random password (node:crypto, never Math.random) that is guaranteed to include at least one character from every selected character type.

Parameters

NameTypeRequiredDescription
lengthnumberYesPassword length.
includeUppercasebooleanNo (default true)Include uppercase letters (A-Z).
includeLowercasebooleanNo (default true)Include lowercase letters (a-z).
includeNumbersbooleanNo (default true)Include digits (0-9).
includeSymbolsbooleanNo (default false)Include symbols (!@#$%^&*()_+-=[]{}|;:,.<>?).
excludeAmbiguousbooleanNo (default false)Exclude visually ambiguous characters (0, O, o, 1, l, I).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/password-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"length":16,"includeUppercase":true,"includeLowercase":true,"includeNumbers":true,"includeSymbols":true}'

{
  "success": true,
  "tool": "password-generator",
  "result": {
    "password": "aB3!kQ9mP1xL7vB2"
  }
}
POST/api/v1/tools/hash-generator1 credit/call

Hash Generator

Compute a hex-encoded cryptographic hash digest of the given text using node:crypto. MD5 and SHA-1 are provided for compatibility/checksums only — neither is safe for password storage or security-sensitive integrity checks.

Parameters

NameTypeRequiredDescription
inputstringYesText to hash.
algorithmstring (md5 | sha1 | sha256 | sha512)No (default "sha256")Hash algorithm.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/hash-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":"hello","algorithm":"sha256"}'

{
  "success": true,
  "tool": "hash-generator",
  "result": {
    "hash": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824",
    "algorithm": "sha256"
  }
}
POST/api/v1/tools/password-strength-checker1 credit/call

Password Strength Checker

Estimate password strength via a length + character-set + common-pattern heuristic (no external dependency, no zxcvbn). NOTE: unlike the browser tool, this API endpoint receives the password over the wire to score it server-side — it is never logged or stored, but it is transmitted, which the browser version avoids.

Parameters

NameTypeRequiredDescription
passwordstringYesThe password to evaluate.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/password-strength-checker \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"password":"Tr0ub4dor&3"}'

{
  "success": true,
  "tool": "password-strength-checker",
  "result": {
    "score": 3,
    "label": "Strong",
    "entropyBits": 72.1,
    "suggestions": [
      "Use at least 12 characters."
    ]
  }
}
POST/api/v1/tools/random-number-generator1 credit/call

Random Number Generator

Generate one or more random numbers in [min, max] using node:crypto (never Math.random).

Parameters

NameTypeRequiredDescription
minnumberYesMinimum value (inclusive).
maxnumberYesMaximum value (inclusive).
countnumberNo (default 1)How many numbers to generate.
integerbooleanNo (default true)Generate whole numbers instead of decimals.
uniquebooleanNo (default false)Generate only distinct values (when integer is true, requires count <= the number of whole numbers in range).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/random-number-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"min":1,"max":100,"count":5,"integer":true,"unique":true}'

{
  "success": true,
  "tool": "random-number-generator",
  "result": {
    "numbers": [
      7,
      42,
      13,
      91,
      56
    ]
  }
}
POST/api/v1/tools/random-name-generator1 credit/call

Random Name Generator

Generate random full/first/last names from seed name lists using node:crypto.

Parameters

NameTypeRequiredDescription
typestring (full | first | last)No (default "full")Which part of the name to return.
genderstring (male | female | any)No (default "any")Restrict first-name selection by gender ("any" draws from both pools).
countnumberNo (default 1)How many names to generate.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/random-name-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"type":"full","gender":"any","count":3}'

{
  "success": true,
  "tool": "random-name-generator",
  "result": {
    "names": [
      "James Smith",
      "Mary Johnson",
      "Robert Williams"
    ]
  }
}
POST/api/v1/tools/random-color-generator1 credit/call

Random Color Generator

Generate random colors in hex, rgb(), or hsl() format using node:crypto.

Parameters

NameTypeRequiredDescription
formatstring (hex | rgb | hsl)No (default "hex")Output color format.
countnumberNo (default 1)How many colors to generate.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/random-color-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"format":"hex","count":3}'

{
  "success": true,
  "tool": "random-color-generator",
  "result": {
    "colors": [
      "#a3f2c1",
      "#004488",
      "#ff00aa"
    ]
  }
}
POST/api/v1/tools/placeholder-image-generator1 credit/call

Placeholder Image Generator

Generate a placeholder <svg> image of the requested dimensions with a solid background and centered label text (escaped).

Parameters

NameTypeRequiredDescription
widthnumberYesImage width in pixels.
heightnumberYesImage height in pixels.
bgColorstringNo (default "e5e7eb")Background color as a hex code (e.g. "#e5e7eb" or "e5e7eb").
textColorstringNo (default "6b7280")Label text color as a hex code.
textstringNoLabel text. Defaults to "{width}x{height}" when omitted.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/placeholder-image-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"width":800,"height":600}'

{
  "success": true,
  "tool": "placeholder-image-generator",
  "result": {
    "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"600\" viewBox=\"0 0 800 600\"><rect width=\"800\" height=\"600\" fill=\"#e5e7eb\"/><text x=\"400\" y=\"300\" font-family=\"sans-serif\" font-size=\"75\" fill=\"#6b7280\" text-anchor=\"middle\" dominant-baseline=\"middle\">800x600</text></svg>"
  }
}
POST/api/v1/tools/fake-data-generator1 credit/call

Fake Data Generator

Generate realistic-looking fake data (name, email, address, phone, company, username, lorem text, or date) from seed lists + node:crypto — never real personal data. (A separate uuid-generator endpoint already covers UUIDs.)

Parameters

NameTypeRequiredDescription
typestring (name | email | address | phone | company | username | lorem | date)YesKind of fake data to generate.
countnumberNo (default 1)How many items to generate.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/fake-data-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"type":"email","count":3}'

{
  "success": true,
  "tool": "fake-data-generator",
  "result": {
    "data": [
      "john.smith42@example.com",
      "mary.johnson7@test.org",
      "robert.williams88@mail.com"
    ]
  }
}
POST/api/v1/tools/meta-tag-generator1 credit/call

Meta Tag Generator

Generate an HTML <meta> tag block (title, description, keywords, author, Open Graph image, Twitter Card) for SEO. Every value is HTML-escaped before being interpolated, so quotes/angle brackets in the input cannot break out of an attribute or inject markup.

Parameters

NameTypeRequiredDescription
titlestringYesPage title.
descriptionstringNoMeta description.
keywordsstringNoComma-separated keywords.
authorstringNoPage author.
ogImagestringNoOpen Graph image URL.
twitterCardstring (summary | summary_large_image)No (default "summary")Twitter Card type.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/meta-tag-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"title":"My Page","description":"A great page.","keywords":"a, b, c","author":"Jane Doe","ogImage":"https://example.com/image.png","twitterCard":"summary"}'

{
  "success": true,
  "tool": "meta-tag-generator",
  "result": {
    "html": "<title>My Page</title>\n<meta name=\"description\" content=\"A great page.\">\n<meta name=\"keywords\" content=\"a, b, c\">\n<meta name=\"author\" content=\"Jane Doe\">\n<meta property=\"og:title\" content=\"My Page\">\n<meta property=\"og:description\" content=\"A great page.\">\n<meta property=\"og:image\" content=\"https://example.com/image.png\">\n<meta name=\"twitter:card\" content=\"summary\">\n<meta name=\"twitter:title\" content=\"My Page\">\n<meta name=\"twitter:description\" content=\"A great page.\">"
  }
}
POST/api/v1/tools/open-graph-generator1 credit/call

Open Graph Tag Generator

Generate Open Graph + Twitter Card <meta> tags for social sharing previews. Every value is HTML-escaped before being interpolated, so quotes/angle brackets in the input cannot break out of an attribute or inject markup.

Parameters

NameTypeRequiredDescription
ogTitlestringYesOpen Graph title (og:title).
ogDescriptionstringNoOpen Graph description (og:description).
ogImagestringNoOpen Graph image URL (og:image).
ogUrlstringNoCanonical page URL (og:url).
ogTypestring (website | article | profile | product | book | music.song | video.movie)No (default "website")Open Graph content type (og:type).
ogSiteNamestringNoSite name (og:site_name).
twitterCardstring (summary | summary_large_image)No (default "summary")Twitter Card type.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/open-graph-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"ogTitle":"My Page","ogDescription":"A great page.","ogUrl":"https://example.com","ogType":"website"}'

{
  "success": true,
  "tool": "open-graph-generator",
  "result": {
    "html": "<meta property=\"og:title\" content=\"My Page\">\n<meta property=\"og:description\" content=\"A great page.\">\n<meta property=\"og:type\" content=\"website\">\n<meta property=\"og:url\" content=\"https://example.com\">\n<meta name=\"twitter:card\" content=\"summary\">\n<meta name=\"twitter:title\" content=\"My Page\">\n<meta name=\"twitter:description\" content=\"A great page.\">"
  }
}
POST/api/v1/tools/schema-markup-generator1 credit/call

Schema Markup Generator

Generate JSON-LD structured data for a schema.org type (Article, Product, Organization, LocalBusiness, FAQPage, BreadcrumbList, Person, Event). The output is built as a plain object and serialized with JSON.stringify — never hand-concatenated — and every literal `<` is then escaped so a field value containing `</script>` cannot terminate the `<script type="application/ld+json">` tag this output is meant to be pasted into.

Parameters

NameTypeRequiredDescription
typestring (Article | Product | Organization | LocalBusiness | FAQPage | BreadcrumbList | Person | Event)Yesschema.org type to generate.
namestringNoName / headline (Article headline; Product/Organization/LocalBusiness/Person/Event name).
descriptionstringNoDescription text (Article, Product, Event).
urlstringNoCanonical URL (Article, Organization, LocalBusiness, Person).
imagestringNoImage/logo URL (Article, Product, Organization logo, Person, Event).
authorstringNoAuthor name (Article).
datePublishedstringNoISO date published (Article).
pricenumberNoPrice (Product).
priceCurrencystringNo (default "USD")ISO 4217 currency code (Product).
availabilitystring (InStock | OutOfStock | PreOrder | LimitedAvailability)No (default "InStock")Stock availability (Product).
ratingValuenumberNoAverage rating 0-5 (Product).
streetAddressstringNoStreet address (LocalBusiness, Event venue).
addressLocalitystringNoCity (LocalBusiness, Event venue).
telephonestringNoPhone number (LocalBusiness, Person).
jobTitlestringNoJob title (Person).
startDatestringNoISO start date/time (Event).
endDatestringNoISO end date/time (Event).
venueNamestringNoVenue name (Event).
faqItemsstringNoRequired for FAQPage: a JSON array of {"question","answer"} objects (max 50 items, 500 chars each).
breadcrumbItemsstringNoRequired for BreadcrumbList: a JSON array of {"name","url"} objects (max 20 items, 500 chars each).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/schema-markup-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"type":"Article","name":"My Blog Post","author":"Jane Doe","datePublished":"2026-01-01","description":"A great post."}'

{
  "success": true,
  "tool": "schema-markup-generator",
  "result": {
    "jsonld": "{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"Article\",\n  \"headline\": \"My Blog Post\",\n  \"description\": \"A great post.\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Jane Doe\"\n  },\n  \"datePublished\": \"2026-01-01\"\n}"
  }
}
POST/api/v1/tools/favicon-generator1 credit/call

Favicon Generator (from Text)

Generate a simple <svg> favicon: a colored square/circle/rounded-square shape with up to 4 characters of centered text (escaped).

Parameters

NameTypeRequiredDescription
textstringNo (default "A")Text/letter(s) to center on the favicon (max 4 characters).
bgColorstringNo (default "4f46e5")Background color as a hex code.
textColorstringNo (default "ffffff")Text color as a hex code.
shapestring (square | circle | rounded)No (default "square")Background shape.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/favicon-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"F","bgColor":"4f46e5","textColor":"ffffff","shape":"circle"}'

{
  "success": true,
  "tool": "favicon-generator",
  "result": {
    "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"64\" viewBox=\"0 0 64 64\"><circle cx=\"32\" cy=\"32\" r=\"32\" fill=\"#4f46e5\"/><text x=\"32\" y=\"32\" font-family=\"sans-serif\" font-size=\"32\" font-weight=\"700\" fill=\"#ffffff\" text-anchor=\"middle\" dominant-baseline=\"central\">F</text></svg>"
  }
}

Color Tools

POST/api/v1/tools/color-converter1 credit/call

Color Converter

Convert a hex color to its RGB, HSL, HSV, and CMYK equivalents.

Parameters

NameTypeRequiredDescription
colorstringYesHex color, e.g. "#FF0000", "f00", or "#FF0000FF" ("#" optional; 3/4/6/8 hex digits).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/color-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"color":"#FF0000"}'

{
  "success": true,
  "tool": "color-converter",
  "result": {
    "hex": "#FF0000",
    "rgb": {
      "r": 255,
      "g": 0,
      "b": 0
    },
    "hsl": {
      "h": 0,
      "s": 100,
      "l": 50
    },
    "hsv": {
      "h": 0,
      "s": 100,
      "v": 100
    },
    "cmyk": {
      "c": 0,
      "m": 100,
      "y": 100,
      "k": 0
    }
  }
}
POST/api/v1/tools/color-palette-generator1 credit/call

Color Palette Generator

Generate a color palette from a base hex color using HSL hue rotation. `scheme` selects the relationship: "complementary" (2 colors, +180°), "triadic" (3, +120°/+240°), "tetradic" (4, +90°/+180°/+270°), "split-complementary" (3, +150°/+210°), "analogous" (`count` colors, 30° steps centered on the base hue), or "monochromatic" (`count` colors, same hue/saturation with varying lightness).

Parameters

NameTypeRequiredDescription
colorstringYesBase hex color.
schemestring (complementary | analogous | triadic | tetradic | monochromatic | split-complementary)YesPalette relationship to the base color.
countnumberNo (default 5)Number of colors to generate (only used by "analogous" and "monochromatic" — other schemes have a fixed count).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/color-palette-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"color":"#FF0000","scheme":"complementary"}'

{
  "success": true,
  "tool": "color-palette-generator",
  "result": {
    "colors": [
      "#FF0000",
      "#00FFFF"
    ]
  }
}
POST/api/v1/tools/contrast-checker1 credit/call

Contrast Checker (WCAG)

Compute the WCAG 2.x contrast ratio between a foreground and background hex color, using the exact sRGB-linearized relative-luminance formula (not a naive RGB average), and report AA/AAA pass/fail for normal and large text.

Parameters

NameTypeRequiredDescription
foregroundstringYesForeground (text) hex color.
backgroundstringYesBackground hex color.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/contrast-checker \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"foreground":"#000000","background":"#FFFFFF"}'

{
  "success": true,
  "tool": "contrast-checker",
  "result": {
    "ratio": 21,
    "aa": true,
    "aaLarge": true,
    "aaa": true,
    "aaaLarge": true
  }
}
POST/api/v1/tools/css-gradient-generator-color1 credit/call

CSS Gradient Generator

Build a CSS linear-gradient() or radial-gradient() string from 2-10 comma-separated hex colors. `angle` applies only to the "linear" type.

Parameters

NameTypeRequiredDescription
typestring (linear | radial)No (default "linear")Gradient type.
anglenumberNo (default 90)Gradient angle in degrees (linear type only).
colorsstringYesComma-separated hex colors, 2-10, e.g. "#ff0000,#0000ff".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/css-gradient-generator-color \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"type":"linear","angle":90,"colors":"#ff0000,#0000ff"}'

{
  "success": true,
  "tool": "css-gradient-generator-color",
  "result": {
    "css": "linear-gradient(90deg, #FF0000, #0000FF)"
  }
}
POST/api/v1/tools/color-blindness-simulator1 credit/call

Color Blindness Simulator

Simulate how a hex color appears under color vision deficiency (CVD). Protanopia/deuteranopia/tritanopia use the widely-cited simplified RGB-space transformation matrices for dichromacy simulation (as used by common browser-based CVD simulators), applied directly to sRGB channel values without linearizing gamma first. Achromatopsia converts to full grayscale using the Rec. 709 luma formula (0.2126R + 0.7152G + 0.0722B) applied directly to sRGB values — a different, unrelated formula from the WCAG relative-luminance formula contrast-checker uses (that one linearizes each channel first). The "-anomaly" variants (protanomaly/deuteranomaly/tritanomaly) are not separately modeled; as a documented approximation, they blend the corresponding full-dichromacy simulated color 50/50 with the original.

Parameters

NameTypeRequiredDescription
colorstringYesHex color to simulate.
typestring (protanopia | deuteranopia | tritanopia | achromatopsia | protanomaly | deuteranomaly | tritanomaly)YesColor vision deficiency type to simulate.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/color-blindness-simulator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"color":"#FF0000","type":"achromatopsia"}'

{
  "success": true,
  "tool": "color-blindness-simulator",
  "result": {
    "original": "#FF0000",
    "simulated": "#363636",
    "type": "achromatopsia"
  }
}
POST/api/v1/tools/color-shade-tint-generator1 credit/call

Color Shade/Tint Generator

Generate shades (the base color mixed toward black) and tints (mixed toward white) of a hex color, in RGB space, evenly spaced from near the base color to near black/white.

Parameters

NameTypeRequiredDescription
colorstringYesBase hex color.
stepsnumberNo (default 5)Number of shades and number of tints to generate.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/color-shade-tint-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"color":"#FF0000","steps":3}'

{
  "success": true,
  "tool": "color-shade-tint-generator",
  "result": {
    "shades": [
      "#BF0000",
      "#800000",
      "#400000"
    ],
    "tints": [
      "#FF4040",
      "#FF8080",
      "#FFBFBF"
    ]
  }
}
POST/api/v1/tools/image-color-extractor1 credit/call

Image Color Extractor

Extract the top dominant colors from an uploaded image. The image is downsampled to at most 100x10016 and counted; the most frequent quantized colors are returned with their share of the (downsampled) image. Send `file` as binary multipart form-data.

Parameters

NameTypeRequiredDescription
filefileYesThe image to analyze (sent as binary multipart/form-data).
countnumberNo (default 6)Number of dominant colors to return.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/image-color-extractor \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"count":6}'

{
  "success": true,
  "tool": "image-color-extractor",
  "result": {
    "colors": [
      {
        "hex": "#FF0000",
        "rgb": {
          "r": 255,
          "g": 0,
          "b": 0
        },
        "percentage": 100
      }
    ]
  }
}
POST/api/v1/tools/tailwind-color-finder1 credit/call

Tailwind CSS Color Finder

Find the nearest color(s) in the real Tailwind CSS v3 default palette (22 hues x 11 shades, 50-950) to a given hex color, by Euclidean distance in RGB space (not Lab).

Parameters

NameTypeRequiredDescription
colorstringYesHex color to match.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/tailwind-color-finder \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"color":"#ef4444"}'

{
  "success": true,
  "tool": "tailwind-color-finder",
  "result": {
    "input": "#EF4444",
    "name": "red-500",
    "hex": "#EF4444",
    "distance": 0,
    "alternatives": [
      {
        "name": "rose-500",
        "hex": "#F43F5E",
        "distance": 26.94
      },
      {
        "name": "rose-600",
        "hex": "#E11D48",
        "distance": 41.63
      },
      {
        "name": "red-600",
        "hex": "#DC2626",
        "distance": 46.49
      },
      {
        "name": "orange-600",
        "hex": "#EA580C",
        "distance": 59.67
      }
    ]
  }
}

Math Calculators

POST/api/v1/tools/percentage-calculator1 credit/call

Percentage Calculator

Answer one of three common percentage questions, selected by `mode`: "percent-of" (what is x% of y), "what-percent" (x is what % of y), or "percent-change" (percentage change from x to y).

Parameters

NameTypeRequiredDescription
modestring (percent-of | what-percent | percent-change)YesWhich percentage question to answer.
xnumberYesFirst value (meaning depends on mode — see summary).
ynumberYesSecond value (meaning depends on mode — see summary).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/percentage-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"mode":"percent-of","x":20,"y":150}'

{
  "success": true,
  "tool": "percentage-calculator",
  "result": {
    "percent": 20,
    "of": 150,
    "result": 30
  }
}
POST/api/v1/tools/age-calculator1 credit/call

Age Calculator

Compute age (years, months, days, and total days) as of a given date (defaults to now).

Parameters

NameTypeRequiredDescription
birthDatestringYesBirth date, e.g. "1990-05-15".
asOfDatestringNoDate to compute age as of (defaults to the current date).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/age-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"birthDate":"2000-01-01","asOfDate":"2024-06-15"}'

{
  "success": true,
  "tool": "age-calculator",
  "result": {
    "years": 24,
    "months": 5,
    "days": 14,
    "totalDays": 8932
  }
}
POST/api/v1/tools/tip-calculator1 credit/call

Tip Calculator

Calculate a tip amount, total bill, and per-person split.

Parameters

NameTypeRequiredDescription
billnumberYesBill amount before tip.
tipPercentnumberYesTip percentage.
peoplenumberNo (default 1)Number of people splitting the bill.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/tip-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"bill":85.5,"tipPercent":18,"people":4}'

{
  "success": true,
  "tool": "tip-calculator",
  "result": {
    "tipAmount": 15.39,
    "total": 100.89,
    "perPerson": 25.2225
  }
}
POST/api/v1/tools/discount-calculator1 credit/call

Discount Calculator

Calculate the discount amount and final price after applying a percentage discount.

Parameters

NameTypeRequiredDescription
pricenumberYesOriginal price.
discountPercentnumberYesDiscount percentage.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/discount-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"price":99.99,"discountPercent":25}'

{
  "success": true,
  "tool": "discount-calculator",
  "result": {
    "discountAmount": 25,
    "finalPrice": 74.99,
    "saved": 25
  }
}
POST/api/v1/tools/roman-numeral-converter1 credit/call

Roman Numeral Converter

Convert between integers and Roman numerals (1–3999). "to-roman": `value` is a decimal integer string. "from-roman": `value` is a canonical (subtractive-notation) Roman numeral string.

Parameters

NameTypeRequiredDescription
modestring (to-roman | from-roman)YesConversion direction.
valuestringYesDecimal integer ("to-roman") or Roman numeral ("from-roman").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/roman-numeral-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"mode":"to-roman","value":"1994"}'

{
  "success": true,
  "tool": "roman-numeral-converter",
  "result": {
    "value": 1994,
    "roman": "MCMXCIV"
  }
}
POST/api/v1/tools/number-base-converter1 credit/call

Number Base Converter

Convert a number (as a string) from one base to another (bases 2–36), using arbitrary-precision arithmetic.

Parameters

NameTypeRequiredDescription
valuestringYesThe number to convert, in fromBase.
fromBasenumberYesBase of the input value.
toBasenumberYesBase to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/number-base-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":"ff","fromBase":16,"toBase":10}'

{
  "success": true,
  "tool": "number-base-converter",
  "result": {
    "result": "255"
  }
}
POST/api/v1/tools/number-to-words1 credit/call

Number to Words

Convert an integer (magnitude up to 1,000,000,000,000,000, i.e. 10^15) into English words.

Parameters

NameTypeRequiredDescription
valuenumberYesThe integer to convert.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/number-to-words \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":1994}'

{
  "success": true,
  "tool": "number-to-words",
  "result": {
    "words": "one thousand nine hundred ninety-four"
  }
}
POST/api/v1/tools/aspect-ratio-calculator1 credit/call

Aspect Ratio Calculator

Simplify width×height to an aspect ratio ("ratio" mode), or solve for a missing dimension given a target ratio and the other dimension ("solve-width"/"solve-height" modes).

Parameters

NameTypeRequiredDescription
modestring (ratio | solve-width | solve-height)YesOperation to perform.
widthnumberNoWidth in pixels ("ratio" mode required; "solve-width" mode: the solved-for output).
heightnumberNoHeight in pixels ("ratio"/"solve-height" modes required).
ratioWidthnumberNoRatio width term (required, "solve-*" modes only).
ratioHeightnumberNoRatio height term (required, "solve-*" modes only).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/aspect-ratio-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"mode":"ratio","width":1920,"height":1080}'

{
  "success": true,
  "tool": "aspect-ratio-calculator",
  "result": {
    "ratioWidth": 16,
    "ratioHeight": 9,
    "decimal": 1.7778
  }
}
POST/api/v1/tools/date-difference-calculator1 credit/call

Date Difference Calculator

Compute the difference between two dates: total days, weeks, and a calendar-aware years/months/days breakdown.

Parameters

NameTypeRequiredDescription
date1stringYesFirst date.
date2stringYesSecond date.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/date-difference-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"date1":"2024-01-01","date2":"2024-01-08"}'

{
  "success": true,
  "tool": "date-difference-calculator",
  "result": {
    "totalDays": 7,
    "weeks": 1,
    "years": 0,
    "months": 0,
    "days": 7
  }
}
POST/api/v1/tools/fraction-calculator1 credit/call

Fraction Calculator

Add, subtract, multiply, or divide two fractions and return the simplified result.

Parameters

NameTypeRequiredDescription
n1numberYesNumerator of the first fraction.
d1numberYesDenominator of the first fraction (non-zero).
n2numberYesNumerator of the second fraction.
d2numberYesDenominator of the second fraction (non-zero).
operationstring (add | subtract | multiply | divide)YesOperation to perform.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/fraction-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"n1":1,"d1":2,"n2":1,"d2":3,"operation":"add"}'

{
  "success": true,
  "tool": "fraction-calculator",
  "result": {
    "numerator": 5,
    "denominator": 6,
    "decimal": 0.8333333333333334
  }
}
POST/api/v1/tools/standard-deviation-calculator1 credit/call

Standard Deviation Calculator

Compute the standard deviation, variance, mean, and count of a dataset (up to 10,000 numbers). `type` selects population (divide by n) or sample (divide by n-1, default) variance.

Parameters

NameTypeRequiredDescription
numbersstringYesNewline- or comma-separated numbers.
typestring (population | sample)No (default "sample")Population or sample standard deviation.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/standard-deviation-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"numbers":"2,4,4,4,5,5,7,9","type":"population"}'

{
  "success": true,
  "tool": "standard-deviation-calculator",
  "result": {
    "stdDev": 2,
    "variance": 4,
    "mean": 5,
    "count": 8
  }
}
POST/api/v1/tools/probability-calculator1 credit/call

Probability Calculator

Compute a probability, selected by `mode`: "single" (favorable/total outcomes of one event), or "combined" (AND/OR of two independent probabilities, each 0-1, via `operator`).

Parameters

NameTypeRequiredDescription
modestring (single | combined)YesWhich probability question to answer.
favorablenumberNoFavorable outcome count (required, "single" mode).
totalnumberNoTotal outcome count (required, "single" mode).
pAnumberNoProbability of event A, 0-1 (required, "combined" mode).
pBnumberNoProbability of event B, 0-1 (required, "combined" mode).
operatorstring (and | or)NoCombine as AND or OR (required, "combined" mode). Assumes independent events.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/probability-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"mode":"single","favorable":1,"total":6}'

{
  "success": true,
  "tool": "probability-calculator",
  "result": {
    "probability": 0.16666666666666666,
    "percentage": 16.666666666666664
  }
}
POST/api/v1/tools/permutation-combination-calculator1 credit/call

Permutation & Combination Calculator

Compute the number of permutations (nPr) and combinations (nCr) of r items from a set of n (n, r up to 1000).

Parameters

NameTypeRequiredDescription
nnumberYesSize of the set.
rnumberYesNumber of items chosen (must be <= n).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/permutation-combination-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"n":5,"r":3}'

{
  "success": true,
  "tool": "permutation-combination-calculator",
  "result": {
    "permutations": 60,
    "combinations": 10
  }
}
POST/api/v1/tools/matrix-calculator1 credit/call

Matrix Calculator

Perform matrix operations (add, subtract, multiply, determinant, transpose) on one or two matrices, each up to 10x10. Matrices are rows of numbers, one row per line, values space- or comma-separated. `matrixB` is required for add/subtract/multiply.

Parameters

NameTypeRequiredDescription
matrixAstringYesFirst matrix: rows of numbers, one row per line.
matrixBstringNoSecond matrix (required for add/subtract/multiply).
operationstring (add | subtract | multiply | determinant | transpose)YesOperation to perform.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/matrix-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"matrixA":"1 2\n3 4","matrixB":"5 6\n7 8","operation":"add"}'

{
  "success": true,
  "tool": "matrix-calculator",
  "result": {
    "result": [
      [
        6,
        8
      ],
      [
        10,
        12
      ]
    ],
    "rows": 2,
    "cols": 2
  }
}
POST/api/v1/tools/quadratic-equation-solver1 credit/call

Quadratic Equation Solver

Solve ax^2 + bx + c = 0 for x, returning the discriminant, root(s), and their nature (real or complex).

Parameters

NameTypeRequiredDescription
anumberYesQuadratic coefficient (must not be 0).
bnumberYesLinear coefficient.
cnumberYesConstant term.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/quadratic-equation-solver \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"a":1,"b":-5,"c":6}'

{
  "success": true,
  "tool": "quadratic-equation-solver",
  "result": {
    "discriminant": 1,
    "roots": [
      3,
      2
    ],
    "nature": "two-real-roots"
  }
}
POST/api/v1/tools/gpa-calculator1 credit/call

GPA Calculator

Compute GPA on the standard 4.0 scale from a list of courses (up to 1,000), one "grade credits" pair per line (e.g. "A- 3").

Parameters

NameTypeRequiredDescription
coursesstringYesOne "grade credits" pair per line, e.g. "A 3\nB+ 4\nA- 3".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/gpa-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"courses":"A 3\nB+ 4\nA- 3"}'

{
  "success": true,
  "tool": "gpa-calculator",
  "result": {
    "gpa": 3.63,
    "totalCredits": 10
  }
}
POST/api/v1/tools/grade-calculator1 credit/call

Grade Calculator

Compute a weighted grade from a list of score/weight pairs (up to 1,000), one "score weight" pair per line (e.g. "85 30" for an 85% score weighted at 30%).

Parameters

NameTypeRequiredDescription
itemsstringYesOne "score weight" pair per line, e.g. "85 30\n90 40\n95 30".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/grade-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"items":"85 30\n90 40\n95 30"}'

{
  "success": true,
  "tool": "grade-calculator",
  "result": {
    "grade": 90,
    "totalWeight": 100
  }
}
POST/api/v1/tools/mean-median-mode-calculator1 credit/call

Mean, Median, Mode Calculator

Compute the mean, median, mode(s), and range of a dataset (up to 10,000 numbers).

Parameters

NameTypeRequiredDescription
numbersstringYesNewline- or comma-separated numbers.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/mean-median-mode-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"numbers":"1,2,2,3,4"}'

{
  "success": true,
  "tool": "mean-median-mode-calculator",
  "result": {
    "mean": 2.4,
    "median": 2,
    "mode": [
      2
    ],
    "range": 3,
    "count": 5
  }
}
POST/api/v1/tools/ratio-calculator1 credit/call

Ratio Calculator

Simplify a ratio a:b to lowest terms ("simplify" mode), or solve a:b = c:x for the missing fourth term ("solve" mode).

Parameters

NameTypeRequiredDescription
modestring (simplify | solve)YesOperation to perform.
anumberYesFirst term of the ratio.
bnumberYesSecond term of the ratio.
cnumberNoThird term (required, "solve" mode only): solves a:b = c:x for x.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/ratio-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"mode":"simplify","a":8,"b":12}'

{
  "success": true,
  "tool": "ratio-calculator",
  "result": {
    "simplified": "2:3",
    "ratioA": 2,
    "ratioB": 3
  }
}
POST/api/v1/tools/exponent-calculator1 credit/call

Exponent Calculator

Calculate base raised to the power of exponent.

Parameters

NameTypeRequiredDescription
basenumberYesThe base.
exponentnumberYesThe exponent.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/exponent-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"base":2,"exponent":10}'

{
  "success": true,
  "tool": "exponent-calculator",
  "result": {
    "result": 1024
  }
}
POST/api/v1/tools/logarithm-calculator1 credit/call

Logarithm Calculator

Calculate the logarithm of a positive value in a given positive base (base ≠ 1). Defaults to base 10.

Parameters

NameTypeRequiredDescription
valuenumberYesThe value to take the logarithm of (must be > 0).
basenumberNo (default 10)The logarithm base (must be > 0 and ≠ 1).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/logarithm-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":100,"base":10}'

{
  "success": true,
  "tool": "logarithm-calculator",
  "result": {
    "result": 2
  }
}
POST/api/v1/tools/prime-factorization-calculator1 credit/call

Prime Factorization Calculator

Compute the prime factorization of an integer >= 2, up to 1,000,000,000, via trial division.

Parameters

NameTypeRequiredDescription
valuenumberYesInteger to factorize (2 <= value <= 1,000,000,000).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/prime-factorization-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":360}'

{
  "success": true,
  "tool": "prime-factorization-calculator",
  "result": {
    "factors": [
      {
        "prime": 2,
        "exponent": 3
      },
      {
        "prime": 3,
        "exponent": 2
      },
      {
        "prime": 5,
        "exponent": 1
      }
    ],
    "factorization": "2^3 × 3^2 × 5"
  }
}
POST/api/v1/tools/lcm-gcd-calculator1 credit/call

LCM & GCD Calculator

Compute the GCD (greatest common divisor) and LCM (least common multiple) of a list of integers (up to 100, each with magnitude up to Number.MAX_SAFE_INTEGER = 9007199254740991).

Parameters

NameTypeRequiredDescription
numbersstringYesNewline-, comma-, or space-separated integers (at least 2).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/lcm-gcd-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"numbers":"12, 18, 24"}'

{
  "success": true,
  "tool": "lcm-gcd-calculator",
  "result": {
    "lcm": 72,
    "gcd": 6
  }
}
POST/api/v1/tools/binary-calculator1 credit/call

Binary Calculator

Perform arithmetic or bitwise operations on two binary numbers (up to 20 bits each). A negative result (from subtract) is returned with a leading "-".

Parameters

NameTypeRequiredDescription
astringYesFirst binary operand (0s and 1s only).
bstringYesSecond binary operand (0s and 1s only).
operationstring (add | subtract | multiply | divide | and | or | xor)YesOperation to perform.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/binary-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"a":"1010","b":"1100","operation":"add"}'

{
  "success": true,
  "tool": "binary-calculator",
  "result": {
    "binary": "10110",
    "decimal": 22
  }
}
POST/api/v1/tools/hex-calculator1 credit/call

Hex Calculator

Perform arithmetic or bitwise operations on two hexadecimal numbers (up to 6 digits each). A negative result (from subtract) is returned with a leading "-".

Parameters

NameTypeRequiredDescription
astringYesFirst hex operand (0-9, a-f).
bstringYesSecond hex operand (0-9, a-f).
operationstring (add | subtract | multiply | divide | and | or | xor)YesOperation to perform.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/hex-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"a":"FF","b":"1","operation":"add"}'

{
  "success": true,
  "tool": "hex-calculator",
  "result": {
    "hex": "100",
    "decimal": 256
  }
}

Health & Fitness

POST/api/v1/tools/bmi-calculator1 credit/call

BMI Calculator

Calculate Body Mass Index (BMI = weight kg / height m squared) and its standard WHO category. BMI is a population-level screening estimate that does not distinguish muscle from fat — informational and educational only, not medical advice; consult a qualified professional for individual assessment.

Parameters

NameTypeRequiredDescription
weight_kgnumberYesBody weight in kilograms.
height_cmnumberYesHeight in centimeters.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/bmi-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"weight_kg":70,"height_cm":175}'

{
  "success": true,
  "tool": "bmi-calculator",
  "result": {
    "bmi": 22.86,
    "category": "Normal weight",
    "healthyRangeKg": {
      "min": 56.7,
      "max": 76.3
    }
  }
}
POST/api/v1/tools/bmr-calculator1 credit/call

BMR Calculator

Estimate Basal Metabolic Rate (BMR) — the calories your body burns at rest — using the Mifflin-St Jeor equation (default) or the revised Harris-Benedict equation. Informational estimate only, not medical advice; actual metabolic rate varies by individual — consult a qualified healthcare or nutrition professional for personalized guidance.

Parameters

NameTypeRequiredDescription
weight_kgnumberYesBody weight in kilograms.
height_cmnumberYesHeight in centimeters.
agenumberYesAge in years.
sexstring (male | female)YesBiological sex used by the formula.
formulastring (mifflin | harris-benedict)No (default "mifflin")Which BMR equation to use.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/bmr-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"weight_kg":80,"height_cm":180,"age":30,"sex":"male","formula":"mifflin"}'

{
  "success": true,
  "tool": "bmr-calculator",
  "result": {
    "bmr": 1780,
    "formula": "mifflin",
    "sex": "male"
  }
}
POST/api/v1/tools/body-fat-calculator1 credit/call

Body Fat Calculator

Estimate body fat percentage using the U.S. Navy circumference method (men: height, neck, waist; women: height, neck, waist, hip). A population-level estimate with a known error margin, not a clinical body-composition measurement (e.g. a DEXA scan) — informational only, not medical advice.

Parameters

NameTypeRequiredDescription
sexstring (male | female)YesBiological sex (determines which Navy formula is used).
height_cmnumberYesHeight in centimeters.
neck_cmnumberYesNeck circumference in centimeters, measured just below the larynx.
waist_cmnumberYesWaist circumference in centimeters (at the navel for men, narrowest point for women); must exceed neck_cm for men.
hip_cmnumberNoHip circumference in centimeters at the widest point (required for women).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/body-fat-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"sex":"male","height_cm":180,"neck_cm":38,"waist_cm":85}'

{
  "success": true,
  "tool": "body-fat-calculator",
  "result": {
    "sex": "male",
    "method": "US Navy circumference method",
    "bodyFatPercent": 16.1
  }
}
POST/api/v1/tools/water-intake-calculator1 credit/call

Water Intake Calculator

Estimate daily water intake using the commonly-cited ~35 mL per kilogram of body weight guideline, plus an adjustment of ~12 mL per minute of exercise (roughly 350 mL per 30 minutes). Informational estimate only, not medical advice — actual hydration needs vary with climate, health conditions, and diet.

Parameters

NameTypeRequiredDescription
weight_kgnumberYesBody weight in kilograms.
activity_minutesnumberNo (default 0)Minutes of exercise/physical activity per day.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/water-intake-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"weight_kg":70,"activity_minutes":30}'

{
  "success": true,
  "tool": "water-intake-calculator",
  "result": {
    "baseMl": 2450,
    "activityAdjustmentMl": 360,
    "totalMl": 2810,
    "totalLiters": 2.81
  }
}
POST/api/v1/tools/heart-rate-zones1 credit/call

Heart Rate Zones

Estimate maximum heart rate and 5 training heart-rate zones from age, using the "220 minus age" formula (default) or the Tanaka formula (208 - 0.7 x age), expressed either as percent of max heart rate (default) or, given a resting heart rate, the Karvonen percent-of-heart-rate-reserve method. Informational estimate only, not medical advice — max heart rate has a wide individual error margin; consult a healthcare professional before starting an intense exercise program.

Parameters

NameTypeRequiredDescription
agenumberYesAge in years.
restingHRnumberNoResting heart rate in bpm (required when formula is "karvonen").
formulastring (max-hr | karvonen)No (default "max-hr")Zone model: "max-hr" (percent of max heart rate) or "karvonen" (percent of heart-rate reserve; requires restingHR).
maxHrFormulastring (220-age | tanaka)No (default "220-age")Which equation estimates max heart rate.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/heart-rate-zones \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"age":30,"formula":"max-hr","maxHrFormula":"220-age"}'

{
  "success": true,
  "tool": "heart-rate-zones",
  "result": {
    "age": 30,
    "maxHrFormula": "220-age",
    "maxHR": 190,
    "formula": "max-hr",
    "zones": [
      {
        "zone": 1,
        "label": "Warm up",
        "bpmMin": 95,
        "bpmMax": 114
      },
      {
        "zone": 2,
        "label": "Fat burn",
        "bpmMin": 114,
        "bpmMax": 133
      },
      {
        "zone": 3,
        "label": "Cardio",
        "bpmMin": 133,
        "bpmMax": 152
      },
      {
        "zone": 4,
        "label": "Hard",
        "bpmMin": 152,
        "bpmMax": 171
      },
      {
        "zone": 5,
        "label": "Max effort",
        "bpmMin": 171,
        "bpmMax": 190
      }
    ]
  }
}
POST/api/v1/tools/ideal-weight-calculator1 credit/call

Ideal Weight Calculator

Estimate "ideal" body weight from height using four classic reference formulas (Devine, Robinson, Miller, Hamwi), originally developed for clinical drug-dosing reference rather than a personal fitness target. Informational estimate only, not medical advice — a healthy weight range depends on many individual factors beyond height.

Parameters

NameTypeRequiredDescription
sexstring (male | female)YesBiological sex used by the formulas.
height_cmnumberYesHeight in centimeters (formulas are calibrated for adult stature).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/ideal-weight-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"sex":"male","height_cm":175}'

{
  "success": true,
  "tool": "ideal-weight-calculator",
  "result": {
    "heightIn": 68.9,
    "devineKg": 70.5,
    "robinsonKg": 68.9,
    "millerKg": 68.7,
    "hamwiKg": 72.3,
    "averageKg": 70.1
  }
}
POST/api/v1/tools/pregnancy-due-date-calculator1 credit/call

Pregnancy Due Date Calculator

Estimate a pregnancy due date and current gestational age from the first day of the last menstrual period (LMP) using Naegele's rule (LMP + 280 days), optionally adjusted for a cycle length other than 28 days. Informational estimate only, not medical advice — actual due dates vary; consult your doctor or midwife for personalized prenatal care.

Parameters

NameTypeRequiredDescription
lmpstringYesFirst day of the last menstrual period, as an ISO date ("YYYY-MM-DD").
cycleLengthnumberNo (default 28)Average menstrual cycle length in days (adjusts the due date relative to the 28-day cycle Naegele's rule assumes).
todaystringNoISO date ("YYYY-MM-DD") to compute gestational age as of; defaults to the current UTC date.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pregnancy-due-date-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"lmp":"2026-01-01"}'

{
  "success": true,
  "tool": "pregnancy-due-date-calculator",
  "result": {
    "lmp": "2026-01-01",
    "cycleLength": 28,
    "dueDate": "2026-10-08",
    "today": "2026-01-01",
    "gestationalAgeWeeks": 0,
    "gestationalAgeDays": 0
  }
}
POST/api/v1/tools/calorie-calculator1 credit/call

Calorie Calculator

Estimate daily calorie targets to maintain, lose, or gain weight, based on TDEE (Mifflin-St Jeor BMR x activity factor) and a calorie deficit/surplus amount (default 500 kcal/day, a common rule-of-thumb for roughly 0.45kg/1lb of weight change per week). Informational estimate only, not medical or nutrition advice — consult a qualified professional before starting a weight-management plan.

Parameters

NameTypeRequiredDescription
weight_kgnumberYesBody weight in kilograms.
height_cmnumberYesHeight in centimeters.
agenumberYesAge in years.
sexstring (male | female)YesBiological sex used by the BMR formula.
activitystring (sedentary | light | moderate | active | very-active)No (default "moderate")Activity level used for the TDEE calculation.
adjustmentnumberNo (default 500)Daily calorie deficit (for the "lose" target) / surplus (for the "gain" target), in kcal/day.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/calorie-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"weight_kg":80,"height_cm":180,"age":30,"sex":"male","activity":"moderate","adjustment":500}'

{
  "success": true,
  "tool": "calorie-calculator",
  "result": {
    "tdee": 2759,
    "maintain": 2759,
    "lose": 2259,
    "gain": 3259,
    "adjustment": 500
  }
}
POST/api/v1/tools/macro-calculator1 credit/call

Macro Calculator

Split a daily calorie target into protein, carbohydrate, and fat grams using a percentage split (default 30% protein / 40% carbs / 30% fat) or a named goal preset, at 4 kcal/g for protein and carbs and 9 kcal/g for fat. Informational estimate only, not medical or nutrition advice.

Parameters

NameTypeRequiredDescription
caloriesnumberYesDaily calorie target.
protein_pctnumberNo (default 30)Percent of calories from protein (ignored if `goal` is set); protein_pct + carbs_pct + fat_pct must sum to 100.
carbs_pctnumberNo (default 40)Percent of calories from carbohydrates (ignored if `goal` is set).
fat_pctnumberNo (default 30)Percent of calories from fat (ignored if `goal` is set).
goalstring (balanced | low-carb | high-protein | keto)NoOptional named preset that overrides protein_pct/carbs_pct/fat_pct.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/macro-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"calories":2000,"protein_pct":30,"carbs_pct":40,"fat_pct":30}'

{
  "success": true,
  "tool": "macro-calculator",
  "result": {
    "calories": 2000,
    "proteinPct": 30,
    "carbsPct": 40,
    "fatPct": 30,
    "proteinG": 150,
    "carbsG": 200,
    "fatG": 66.7
  }
}
POST/api/v1/tools/tdee-calculator1 credit/call

TDEE Calculator

Estimate Total Daily Energy Expenditure (TDEE) — Mifflin-St Jeor BMR multiplied by an activity factor. Informational estimate only, not medical or nutrition advice — consult a qualified professional for a personalized plan.

Parameters

NameTypeRequiredDescription
weight_kgnumberYesBody weight in kilograms.
height_cmnumberYesHeight in centimeters.
agenumberYesAge in years.
sexstring (male | female)YesBiological sex used by the BMR formula.
activitystring (sedentary | light | moderate | active | very-active)No (default "moderate")Activity level: sedentary (little/no exercise, x1.2), light (1-3 days/week, x1.375), moderate (3-5 days/week, x1.55), active (6-7 days/week, x1.725), very-active (physical job or 2x/day training, x1.9).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/tdee-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"weight_kg":80,"height_cm":180,"age":30,"sex":"male","activity":"moderate"}'

{
  "success": true,
  "tool": "tdee-calculator",
  "result": {
    "bmr": 1780,
    "activity": "moderate",
    "activityFactor": 1.55,
    "tdee": 2759
  }
}
POST/api/v1/tools/one-rep-max-calculator1 credit/call

One Rep Max Calculator

Estimate one-rep max (1RM) from a weight lifted for multiple reps, using the Epley formula (weight x (1 + reps/30)) and the Brzycki formula (weight x 36/(37 - reps); undefined at 37+ reps), plus an approximate percentage-of-1RM training table. Informational estimate only, not medical advice — actual one-rep max varies by exercise, fatigue, and technique.

Parameters

NameTypeRequiredDescription
weightnumberYesWeight lifted, in the unit given by "unit".
repsnumberYesRepetitions completed at that weight (1-36; the Brzycki formula is undefined at 37+).
unitstring (kg | lb)No (default "kg")Unit the weight and results are reported in (the formulas are unit-agnostic).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/one-rep-max-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"weight":100,"reps":5,"unit":"kg"}'

{
  "success": true,
  "tool": "one-rep-max-calculator",
  "result": {
    "weight": 100,
    "reps": 5,
    "unit": "kg",
    "epley": 116.67,
    "brzycki": 112.5,
    "average": 114.58,
    "percentTable": [
      {
        "percent": 100,
        "reps": 1,
        "weight": 114.6
      },
      {
        "percent": 95,
        "reps": 2,
        "weight": 108.9
      },
      {
        "percent": 90,
        "reps": 4,
        "weight": 103.1
      },
      {
        "percent": 85,
        "reps": 6,
        "weight": 97.4
      },
      {
        "percent": 80,
        "reps": 8,
        "weight": 91.7
      },
      {
        "percent": 75,
        "reps": 10,
        "weight": 85.9
      },
      {
        "percent": 70,
        "reps": 12,
        "weight": 80.2
      },
      {
        "percent": 65,
        "reps": 15,
        "weight": 74.5
      },
      {
        "percent": 60,
        "reps": 20,
        "weight": 68.7
      },
      {
        "percent": 55,
        "reps": 24,
        "weight": 63
      },
      {
        "percent": 50,
        "reps": 30,
        "weight": 57.3
      }
    ]
  }
}
POST/api/v1/tools/pace-calculator1 credit/call

Pace Calculator

Solve for pace, time, or distance given the other two (pace = time / distance), for running, walking, or cycling splits. Accepts time and pace as a plain number of seconds, "MM:SS", or "HH:MM:SS". Informational estimate only, not medical advice.

Parameters

NameTypeRequiredDescription
solvestring (pace | time | distance)YesWhich value to compute from the other two.
distanceUnitstring (km | mi)No (default "km")Distance unit pace is expressed per.
distancenumberNoDistance covered (required unless solve is "distance").
timestringNoTotal time, as seconds, "MM:SS", or "HH:MM:SS" (required unless solve is "time").
pacestringNoPace per distance unit, as "MM:SS" or seconds (required unless solve is "pace").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pace-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"solve":"pace","distance":10,"time":"50:00","distanceUnit":"km"}'

{
  "success": true,
  "tool": "pace-calculator",
  "result": {
    "solve": "pace",
    "distanceUnit": "km",
    "distance": 10,
    "timeSeconds": 3000,
    "time": "50:00",
    "paceSecondsPerUnit": 300,
    "pace": "5:00/km"
  }
}
POST/api/v1/tools/calories-burned-calculator1 credit/call

Calories Burned Calculator

Estimate calories burned during an activity using MET (Metabolic Equivalent of Task) values from the widely-cited Compendium of Physical Activities (Ainsworth et al., 2011): kcal = MET x 3.5 x weight(kg) / 200 x minutes. Informational estimate only, not medical advice — actual energy expenditure varies by individual fitness, terrain, and effort.

Parameters

NameTypeRequiredDescription
activitystring (walking-slow | walking-moderate | walking-brisk | running-6mph | running-8mph | cycling-leisure | cycling-moderate | cycling-vigorous | swimming-moderate | swimming-vigorous | yoga | pilates | weight-training | hiking | dancing | basketball | tennis | jump-rope | hiit | stair-climbing)YesActivity performed.
weight_kgnumberYesBody weight in kilograms.
minutesnumberYesDuration of the activity in minutes.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/calories-burned-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"activity":"running-6mph","weight_kg":70,"minutes":30}'

{
  "success": true,
  "tool": "calories-burned-calculator",
  "result": {
    "activity": "running-6mph",
    "met": 9.8,
    "weightKg": 70,
    "minutes": 30,
    "kcal": 360.2
  }
}
POST/api/v1/tools/protein-intake-calculator1 credit/call

Protein Intake Calculator

Estimate daily protein intake (grams) from body weight and activity level, using general grams-per-kilogram guidelines (0.8 g/kg sedentary up to 2.2 g/kg for athletes/heavy strength training). Informational estimate only, not medical or nutrition advice — individual protein needs vary.

Parameters

NameTypeRequiredDescription
weight_kgnumberYesBody weight in kilograms.
activitystring (sedentary | light | moderate | active | athlete)No (default "moderate")Activity level.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/protein-intake-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"weight_kg":70,"activity":"active"}'

{
  "success": true,
  "tool": "protein-intake-calculator",
  "result": {
    "weightKg": 70,
    "activity": "active",
    "gramsPerKg": 1.6,
    "proteinGramsPerDay": 112
  }
}
POST/api/v1/tools/sleep-calculator1 credit/call

Sleep Calculator

List bedtimes or wake times aligned to full 90-minute sleep cycles (plus ~14 minutes to fall asleep), given either a wake-up time ("wake-to-bed") or a bedtime ("bed-to-wake"). Informational estimate only, not medical advice — individual sleep-cycle length varies; consult a doctor about a persistent sleep problem.

Parameters

NameTypeRequiredDescription
modestring (wake-to-bed | bed-to-wake)YesWhether "time" is a wake-up time or a bedtime.
timestringYesTime in 24-hour "HH:MM" format, e.g. "07:00".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/sleep-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"mode":"wake-to-bed","time":"07:00"}'

{
  "success": true,
  "tool": "sleep-calculator",
  "result": {
    "mode": "wake-to-bed",
    "time": "07:00",
    "options": [
      {
        "cycles": 6,
        "hours": 9,
        "time": "21:46"
      },
      {
        "cycles": 5,
        "hours": 7.5,
        "time": "23:16"
      },
      {
        "cycles": 4,
        "hours": 6,
        "time": "00:46"
      },
      {
        "cycles": 3,
        "hours": 4.5,
        "time": "02:16"
      }
    ]
  }
}
POST/api/v1/tools/bac-calculator1 credit/call

BAC Calculator

Estimate blood alcohol concentration (BAC%) using the Widmark formula: BAC% = (grams of alcohol / (body weight in grams x distribution ratio)) x 100, minus 0.015% per hour elapsed. Distribution ratio r = 0.68 for men, 0.55 for women; each standard drink is treated as ~14g of pure ethanol. THIS IS AN ESTIMATE ONLY — not medical advice, and never a substitute for a breathalyzer or blood test. Individual alcohol metabolism varies widely by body composition, food intake, medication, and other factors — never use it to decide whether it is safe to drive. If you have been drinking, do not drive; use a designated driver, taxi, or rideshare instead.

Parameters

NameTypeRequiredDescription
drinksnumberYesNumber of standard drinks consumed (~14g pure ethanol each).
weight_kgnumberYesBody weight in kilograms.
hoursnumberYesHours elapsed since the first drink.
sexstring (male | female)YesBiological sex (determines the Widmark distribution ratio).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/bac-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"drinks":3,"weight_kg":80,"hours":2,"sex":"male"}'

{
  "success": true,
  "tool": "bac-calculator",
  "result": {
    "drinks": 3,
    "weightKg": 80,
    "hours": 2,
    "sex": "male",
    "bacPercent": 0.047,
    "overLegalLimitUS": false,
    "note": "Estimate only — never use this to decide whether it is safe to drive. If you have been drinking, do not drive."
  }
}
POST/api/v1/tools/ovulation-calculator1 credit/call

Ovulation Calculator

Estimate ovulation date, fertile window, and next expected period from the first day of the last menstrual period (LMP) and average cycle length, using ovulation = LMP + (cycle length - 14) days and a fertile window from 5 days before ovulation through ovulation day. Informational estimate only, not medical advice — actual ovulation timing varies; consult your doctor for personalized guidance.

Parameters

NameTypeRequiredDescription
lmpstringYesFirst day of the last menstrual period, as an ISO date ("YYYY-MM-DD").
cycleLengthnumberNo (default 28)Average menstrual cycle length in days.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/ovulation-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"lmp":"2026-01-01","cycleLength":28}'

{
  "success": true,
  "tool": "ovulation-calculator",
  "result": {
    "lmp": "2026-01-01",
    "cycleLength": 28,
    "ovulationDate": "2026-01-15",
    "fertileWindowStart": "2026-01-10",
    "fertileWindowEnd": "2026-01-15",
    "nextPeriodDate": "2026-01-29"
  }
}
POST/api/v1/tools/body-type-calculator1 credit/call

Body Type Calculator

Estimate a rough body-frame/somatotype leaning (ectomorph/mesomorph/endomorph) from a height-to-wrist-circumference ratio. This is an APPROXIMATION based on an informal frame-size heuristic, NOT a clinical Heath-Carter somatotype assessment — informational only, not medical advice.

Parameters

NameTypeRequiredDescription
sexstring (male | female)YesBiological sex (frame-size thresholds differ by sex).
height_cmnumberYesHeight in centimeters.
wrist_cmnumberYesWrist circumference in centimeters (measured at the narrowest point, just past the wrist bone).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/body-type-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"sex":"male","height_cm":175,"wrist_cm":16}'

{
  "success": true,
  "tool": "body-type-calculator",
  "result": {
    "heightToWristRatio": 10.94,
    "frameSize": "small",
    "somatotype": "ectomorph-leaning",
    "note": "Approximation only, not a clinical somatotype assessment."
  }
}

Finance Calculators

POST/api/v1/tools/loan-calculator1 credit/call

Loan Calculator

Calculate the monthly payment, total interest, and total amount paid on a fixed-rate amortizing loan.

Parameters

NameTypeRequiredDescription
principalnumberYesLoan amount.
annualRatenumberYesAnnual interest rate, percent.
yearsnumberYesLoan term in years.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/loan-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"principal":200000,"annualRate":6,"years":30}'

{
  "success": true,
  "tool": "loan-calculator",
  "result": {
    "monthlyPayment": 1199.1,
    "totalInterest": 231676.38,
    "totalPaid": 431676.38
  }
}
POST/api/v1/tools/compound-interest-calculator1 credit/call

Compound Interest Calculator

Calculate the final amount and interest earned on a principal under compound interest.

Parameters

NameTypeRequiredDescription
principalnumberYesPrincipal amount.
ratenumberYesAnnual interest rate, percent.
yearsnumberYesNumber of years.
compoundsPerYearnumberNo (default 12)Number of times interest compounds per year.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/compound-interest-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"principal":10000,"rate":5,"years":10,"compoundsPerYear":12}'

{
  "success": true,
  "tool": "compound-interest-calculator",
  "result": {
    "finalAmount": 16470.09,
    "interestEarned": 6470.09
  }
}
POST/api/v1/tools/vat-calculator1 credit/call

VAT Calculator

Calculate VAT (value-added tax) either way: `mode: "add"` treats `amount` as the net (pre-VAT) price and adds VAT on top; `mode: "remove"` treats `amount` as the gross (VAT-inclusive) price and extracts the VAT already included in it.

Parameters

NameTypeRequiredDescription
amountnumberYesThe amount to calculate VAT on (net if mode is "add", gross if mode is "remove").
vatRatenumberYesVAT rate, percent.
modestring (add | remove)YesWhether `amount` is net (add VAT) or gross (remove VAT).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/vat-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"amount":100,"vatRate":20,"mode":"add"}'

{
  "success": true,
  "tool": "vat-calculator",
  "result": {
    "net": 100,
    "vat": 20,
    "gross": 120
  }
}
POST/api/v1/tools/salary-converter1 credit/call

Salary Converter

Convert a salary/wage between pay periods (hourly, daily, weekly, monthly, annual), given the standard hours-per-week and weeks-per-year used to bridge hourly/daily figures to the rest.

Parameters

NameTypeRequiredDescription
amountnumberYesSalary amount at `fromPeriod`.
fromPeriodstring (hourly | daily | weekly | monthly | annual)YesPay period `amount` is denominated in.
toPeriodstring (hourly | daily | weekly | monthly | annual)YesPay period to convert to.
hoursPerWeeknumberNo (default 40)Standard hours worked per week.
weeksPerYearnumberNo (default 52)Weeks worked per year.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/salary-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"amount":50000,"fromPeriod":"annual","toPeriod":"hourly","hoursPerWeek":40,"weeksPerYear":52}'

{
  "success": true,
  "tool": "salary-converter",
  "result": {
    "convertedValue": 24.04,
    "breakdown": {
      "hourly": 24.04,
      "daily": 192.31,
      "weekly": 961.54,
      "monthly": 4166.67,
      "annual": 50000
    }
  }
}
POST/api/v1/tools/bill-splitter1 credit/call

Bill Splitter

Split a restaurant/group bill (with tip) evenly across a number of people.

Parameters

NameTypeRequiredDescription
billAmountnumberYesTotal bill amount before tip.
numPeoplenumberYesNumber of people splitting the bill (whole number).
tipPercentnumberYesTip percentage to add.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/bill-splitter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"billAmount":100,"numPeople":4,"tipPercent":15}'

{
  "success": true,
  "tool": "bill-splitter",
  "result": {
    "perPerson": 28.75,
    "totalWithTip": 115,
    "tipAmount": 15
  }
}
POST/api/v1/tools/margin-calculator1 credit/call

Margin Calculator

Calculate profit margin and markup from a cost and a selling price. Accepts the selling price as either `revenue` or `price` (aliases for the same value) — provide one of them.

Parameters

NameTypeRequiredDescription
costnumberYesCost price.
revenuenumberNoSelling price (alias: `price`). Provide this or `price`.
pricenumberNoSelling price (alias: `revenue`). Provide this or `revenue`.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/margin-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"cost":50,"revenue":80}'

{
  "success": true,
  "tool": "margin-calculator",
  "result": {
    "profit": 30,
    "margin": 37.5,
    "markup": 60
  }
}
POST/api/v1/tools/mortgage-calculator1 credit/call

Mortgage Calculator

Calculate the monthly mortgage payment for a home purchase, broken down into principal & interest, property tax, and insurance, given an optional down payment.

Parameters

NameTypeRequiredDescription
homePricenumberYesTotal home purchase price.
downPaymentnumberNo (default 0)Down payment amount (must not exceed homePrice).
annualRatenumberYesAnnual mortgage interest rate, percent.
yearsnumberYesMortgage term in years.
propertyTaxnumberNo (default 0)Annual property tax.
insurancenumberNo (default 0)Annual homeowners insurance.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/mortgage-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"homePrice":400000,"downPayment":80000,"annualRate":6.5,"years":30,"propertyTax":4800,"insurance":1200}'

{
  "success": true,
  "tool": "mortgage-calculator",
  "result": {
    "loanAmount": 320000,
    "monthlyPrincipalAndInterest": 2022.62,
    "monthlyTax": 400,
    "monthlyInsurance": 100,
    "monthlyPayment": 2522.62,
    "totalInterest": 408142.36,
    "totalPaid": 908142.36
  }
}
POST/api/v1/tools/investment-return-calculator1 credit/call

Investment Return Calculator

Project the future value of an initial investment plus fixed monthly contributions under a constant annual return.

Parameters

NameTypeRequiredDescription
initialnumberYesInitial investment amount.
monthlyContributionnumberNo (default 0)Fixed monthly contribution.
ratenumberYesExpected annual rate of return, percent.
yearsnumberYesInvestment horizon in years.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/investment-return-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"initial":10000,"monthlyContribution":500,"rate":7,"years":20}'

{
  "success": true,
  "tool": "investment-return-calculator",
  "result": {
    "finalValue": 300850.72,
    "totalContributed": 130000,
    "totalGain": 170850.72
  }
}
POST/api/v1/tools/currency-converter1 credit/call

Currency Converter

Convert an amount between currencies using static, approximate exchange rates baked into this tool — NOT a live/real-time rate feed. Rates are periodically-updated snapshots, not current market rates.

Parameters

NameTypeRequiredDescription
amountnumberYesAmount to convert.
fromstring (USD | EUR | GBP | JPY | CAD | AUD | CHF | CNY | INR | BRL | MXN)YesSource currency code.
tostring (USD | EUR | GBP | JPY | CAD | AUD | CHF | CNY | INR | BRL | MXN)YesTarget currency code.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/currency-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"amount":100,"from":"USD","to":"EUR"}'

{
  "success": true,
  "tool": "currency-converter",
  "result": {
    "result": 92,
    "rate": 0.92,
    "note": "Approximate static rate, not live."
  }
}
POST/api/v1/tools/simple-interest-calculator1 credit/call

Simple Interest Calculator

Calculate simple (non-compounding) interest on a principal over a period of time.

Parameters

NameTypeRequiredDescription
principalnumberYesPrincipal amount.
ratenumberYesAnnual interest rate, percent.
timenumberYesTime period in years.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/simple-interest-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"principal":1000,"rate":5,"time":3}'

{
  "success": true,
  "tool": "simple-interest-calculator",
  "result": {
    "interest": 150,
    "total": 1150
  }
}
POST/api/v1/tools/retirement-calculator1 credit/call

Retirement Calculator

Project a retirement savings balance from a current balance, a fixed monthly contribution, and an expected annual rate of return.

Parameters

NameTypeRequiredDescription
currentAgenumberYesCurrent age in years.
retireAgenumberYesPlanned retirement age (must be greater than currentAge).
currentSavingsnumberNo (default 0)Current retirement savings balance.
monthlyContributionnumberNo (default 0)Fixed monthly contribution.
annualRatenumberNo (default 0)Expected annual rate of return, percent.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/retirement-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"currentAge":30,"retireAge":65,"currentSavings":20000,"monthlyContribution":500,"annualRate":7}'

{
  "success": true,
  "tool": "retirement-calculator",
  "result": {
    "monthsToRetirement": 420,
    "projectedBalance": 1130650.34
  }
}
POST/api/v1/tools/savings-goal-calculator1 credit/call

Savings Goal Calculator

Project a savings goal, selected by `mode`: "months-to-goal" (given a fixed monthly contribution, how many months to reach the goal) or "required-monthly" (given a target number of months, the monthly contribution needed to reach the goal).

Parameters

NameTypeRequiredDescription
modestring (months-to-goal | required-monthly)YesWhich question to answer.
goalnumberYesTarget savings amount.
currentSavingsnumberNo (default 0)Current savings balance.
annualRatenumberNo (default 0)Expected annual rate of return, percent.
monthlyContributionnumberNoFixed monthly contribution (required, "months-to-goal" mode).
monthsnumberNoTarget number of months (required, "required-monthly" mode).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/savings-goal-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"mode":"months-to-goal","goal":50000,"currentSavings":5000,"monthlyContribution":500,"annualRate":6}'

{
  "success": true,
  "tool": "savings-goal-calculator",
  "result": {
    "monthsToGoal": 72
  }
}
POST/api/v1/tools/amortization-schedule-calculator1 credit/call

Amortization Schedule Calculator

Build a full amortization schedule for a fixed-rate loan: per-period payment, principal paid, interest paid, and remaining balance. Bounded to 1200 total periods (years × paymentsPerYear).

Parameters

NameTypeRequiredDescription
principalnumberYesLoan amount.
annualRatenumberYesAnnual interest rate, percent.
yearsnumberYesLoan term in years (whole number).
paymentsPerYearnumberNo (default 12)Number of payments per year.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/amortization-schedule-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"principal":10000,"annualRate":6,"years":1,"paymentsPerYear":12}'

{
  "success": true,
  "tool": "amortization-schedule-calculator",
  "result": {
    "monthlyPayment": 860.66,
    "totalInterest": 327.97,
    "totalPaid": 10327.97,
    "schedule": [
      {
        "period": 1,
        "payment": 860.66,
        "principalPaid": 810.66,
        "interestPaid": 50,
        "balance": 9189.34
      },
      {
        "period": 2,
        "payment": 860.66,
        "principalPaid": 814.72,
        "interestPaid": 45.95,
        "balance": 8374.62
      },
      {
        "period": 3,
        "payment": 860.66,
        "principalPaid": 818.79,
        "interestPaid": 41.87,
        "balance": 7555.83
      },
      {
        "period": 4,
        "payment": 860.66,
        "principalPaid": 822.89,
        "interestPaid": 37.78,
        "balance": 6732.94
      },
      {
        "period": 5,
        "payment": 860.66,
        "principalPaid": 827,
        "interestPaid": 33.66,
        "balance": 5905.94
      },
      {
        "period": 6,
        "payment": 860.66,
        "principalPaid": 831.13,
        "interestPaid": 29.53,
        "balance": 5074.81
      },
      {
        "period": 7,
        "payment": 860.66,
        "principalPaid": 835.29,
        "interestPaid": 25.37,
        "balance": 4239.52
      },
      {
        "period": 8,
        "payment": 860.66,
        "principalPaid": 839.47,
        "interestPaid": 21.2,
        "balance": 3400.05
      },
      {
        "period": 9,
        "payment": 860.66,
        "principalPaid": 843.66,
        "interestPaid": 17,
        "balance": 2556.39
      },
      {
        "period": 10,
        "payment": 860.66,
        "principalPaid": 847.88,
        "interestPaid": 12.78,
        "balance": 1708.5
      },
      {
        "period": 11,
        "payment": 860.66,
        "principalPaid": 852.12,
        "interestPaid": 8.54,
        "balance": 856.38
      },
      {
        "period": 12,
        "payment": 860.66,
        "principalPaid": 856.38,
        "interestPaid": 4.28,
        "balance": 0
      }
    ]
  }
}
POST/api/v1/tools/roi-calculator1 credit/call

ROI Calculator

Calculate return on investment (ROI) from an initial investment and a final value. When `years` is provided, also returns the annualized ROI (CAGR).

Parameters

NameTypeRequiredDescription
initialInvestmentnumberYesAmount initially invested (must be greater than 0).
finalValuenumberYesFinal/current value of the investment.
yearsnumberNoHolding period in years, for annualized ROI.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/roi-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"initialInvestment":10000,"finalValue":15000,"years":5}'

{
  "success": true,
  "tool": "roi-calculator",
  "result": {
    "roi": 50,
    "annualizedRoi": 8.4472
  }
}
POST/api/v1/tools/inflation-calculator1 credit/call

Inflation Calculator

Calculate the inflation-adjusted future value of an amount, and how much purchasing power that amount loses over the given number of years at a constant annual inflation rate.

Parameters

NameTypeRequiredDescription
amountnumberYesToday's amount.
annualInflationRatenumberYesAnnual inflation rate, percent.
yearsnumberYesNumber of years.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/inflation-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"amount":1000,"annualInflationRate":3,"years":10}'

{
  "success": true,
  "tool": "inflation-calculator",
  "result": {
    "adjustedValue": 1343.92,
    "purchasingPowerLoss": 255.91
  }
}
POST/api/v1/tools/credit-card-payoff-calculator1 credit/call

Credit Card Payoff Calculator

Simulate paying off a credit card balance at a fixed monthly payment: months to payoff and total interest paid.

Parameters

NameTypeRequiredDescription
balancenumberYesCurrent balance owed.
aprnumberYesAnnual percentage rate, percent.
monthlyPaymentnumberYesFixed monthly payment.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/credit-card-payoff-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"balance":5000,"apr":19.99,"monthlyPayment":200}'

{
  "success": true,
  "tool": "credit-card-payoff-calculator",
  "result": {
    "monthsToPayoff": 33,
    "totalInterest": 1521.02,
    "totalPaid": 6521.02
  }
}
POST/api/v1/tools/debt-payoff-calculator1 credit/call

Debt Payoff Calculator

Simulate paying off multiple debts with a shared monthly budget (every debt's minimum payment plus an optional extra amount), using the "avalanche" (highest APR paid off first) or "snowball" (smallest balance first) strategy. Every active debt's minimum is paid first each month; the leftover budget cascades to the top-priority debt. Up to 50 debts.

Parameters

NameTypeRequiredDescription
debtsstringYesOne "balance apr minPayment" set per line, e.g. "5000 22.9 150\n3000 18.5 90".
extraPaymentnumberNo (default 0)Extra amount applied on top of all minimum payments each month.
strategystring (avalanche | snowball)No (default "avalanche")Payoff order strategy.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/debt-payoff-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"debts":"5000 22 150\n3000 15 90","extraPayment":200,"strategy":"avalanche"}'

{
  "success": true,
  "tool": "debt-payoff-calculator",
  "result": {
    "monthsToPayoff": 22,
    "totalInterest": 1460.56,
    "totalPaid": 9460.56,
    "debtCount": 2
  }
}
POST/api/v1/tools/sales-tax-calculator1 credit/call

Sales Tax Calculator

Calculate sales tax on a pre-tax amount and the resulting total.

Parameters

NameTypeRequiredDescription
amountnumberYesPre-tax amount.
taxRatenumberYesSales tax rate, percent.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/sales-tax-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"amount":250,"taxRate":8.875}'

{
  "success": true,
  "tool": "sales-tax-calculator",
  "result": {
    "tax": 22.19,
    "total": 272.19
  }
}
POST/api/v1/tools/depreciation-calculator1 credit/call

Depreciation Calculator

Build a yearly depreciation schedule for an asset using the "straight-line" or "declining-balance" (double-declining, floored at the salvage value) method. Bounded to 100 years.

Parameters

NameTypeRequiredDescription
assetCostnumberYesOriginal cost of the asset.
salvageValuenumberYesEstimated value at the end of its useful life (must not exceed assetCost).
usefulLifeYearsnumberYesUseful life in years (whole number).
methodstring (straight-line | declining-balance)YesDepreciation method.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/depreciation-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"assetCost":50000,"salvageValue":5000,"usefulLifeYears":5,"method":"straight-line"}'

{
  "success": true,
  "tool": "depreciation-calculator",
  "result": {
    "method": "straight-line",
    "schedule": [
      {
        "year": 1,
        "depreciation": 9000,
        "bookValue": 41000
      },
      {
        "year": 2,
        "depreciation": 9000,
        "bookValue": 32000
      },
      {
        "year": 3,
        "depreciation": 9000,
        "bookValue": 23000
      },
      {
        "year": 4,
        "depreciation": 9000,
        "bookValue": 14000
      },
      {
        "year": 5,
        "depreciation": 9000,
        "bookValue": 5000
      }
    ],
    "totalDepreciation": 45000,
    "finalBookValue": 5000
  }
}
POST/api/v1/tools/commission-calculator1 credit/call

Commission Calculator

Calculate sales commission from a sale amount and commission rate, with an optional base salary added on top.

Parameters

NameTypeRequiredDescription
saleAmountnumberYesTotal sale amount.
commissionRatenumberYesCommission rate, percent.
baseSalarynumberNo (default 0)Base salary to add on top of the commission.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/commission-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"saleAmount":20000,"commissionRate":5,"baseSalary":3000}'

{
  "success": true,
  "tool": "commission-calculator",
  "result": {
    "commission": 1000,
    "total": 4000
  }
}
POST/api/v1/tools/break-even-calculator1 credit/call

Break-Even Calculator

Calculate the break-even point (units and revenue) given fixed costs, price per unit, and variable cost per unit.

Parameters

NameTypeRequiredDescription
fixedCostsnumberYesTotal fixed costs.
pricePerUnitnumberYesSelling price per unit (must exceed variableCostPerUnit).
variableCostPerUnitnumberYesVariable cost per unit.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/break-even-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"fixedCosts":10000,"pricePerUnit":50,"variableCostPerUnit":20}'

{
  "success": true,
  "tool": "break-even-calculator",
  "result": {
    "breakEvenUnits": 334,
    "breakEvenRevenue": 16700
  }
}
POST/api/v1/tools/rent-vs-buy-calculator1 credit/call

Rent vs Buy Calculator

Compare the total cost of renting vs. buying a home over a number of years: monthly rent (with an optional annual increase) vs. a 30-year mortgage payment plus down payment, net of home equity built from paydown and appreciation. Assumes a fixed 30-year mortgage term regardless of the comparison horizon.

Parameters

NameTypeRequiredDescription
monthlyRentnumberYesCurrent monthly rent.
homePricenumberYesHome purchase price.
downPaymentnumberYesDown payment amount (must not exceed homePrice).
mortgageRatenumberYesAnnual mortgage interest rate, percent.
yearsnumberYesComparison horizon in years.
appreciationRatenumberNo (default 0)Expected annual home value appreciation, percent.
rentIncreaseRatenumberNo (default 0)Expected annual rent increase, percent.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/rent-vs-buy-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"monthlyRent":2000,"homePrice":350000,"downPayment":70000,"mortgageRate":6.5,"years":10,"appreciationRate":3,"rentIncreaseRate":3}'

{
  "success": true,
  "tool": "rent-vs-buy-calculator",
  "result": {
    "monthlyMortgagePayment": 1769.79,
    "totalRentCost": 275133.1,
    "totalBuyCost": 49377.28,
    "homeEquity": 232997.58,
    "recommendation": "buy"
  }
}

Network & Web Tools

POST/api/v1/tools/what-is-my-ip2 credits/call

What Is My IP

Report the caller IP address (supplied in "ip" — the site's own tool page and the metered API route both fill this in from the actual request's forwarded-for header before calling this endpoint) plus browser/OS/device details parsed from an optional User-Agent string. Does NOT perform IP geolocation — no city, region, or ISP lookup is included, only what the request itself reveals.

Parameters

NameTypeRequiredDescription
ipstringYesCaller IP address (IPv4 or IPv6) to report on.
userAgentstringNo (default "")Caller User-Agent string, if available.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/what-is-my-ip \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"ip":"203.0.113.42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}'

{
  "success": true,
  "tool": "what-is-my-ip",
  "result": {
    "ip": "203.0.113.42",
    "ipVersion": 4,
    "isPrivate": false,
    "browser": {
      "name": "Chrome",
      "version": "120.0.0.0"
    },
    "os": {
      "name": "Windows",
      "version": "10"
    },
    "device": {}
  }
}
POST/api/v1/tools/dns-lookup2 credits/call

DNS Lookup

Look up DNS records for a domain — A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, or "ALL" of them — via node:dns. This RESOLVES the domain (a DNS query) but never connects to any address the records return, so it carries none of the SSRF risk the URL/host-based network tools do.

Parameters

NameTypeRequiredDescription
domainstringYesDomain name to look up (e.g. "example.com").
typestring (A | AAAA | MX | TXT | NS | CNAME | SOA | CAA | ALL)No (default "A")DNS record type to query, or "ALL" to query every supported type.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/dns-lookup \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com","type":"A"}'

{
  "success": true,
  "tool": "dns-lookup",
  "result": {
    "domain": "example.com",
    "type": "A",
    "records": {
      "A": [
        "93.184.216.34"
      ]
    }
  }
}
POST/api/v1/tools/website-status-checker2 credits/call

Website Status Checker

Check whether a website is up — status code, response time, and the final URL after redirects — via an SSRF-guarded GET request. A site that is down, unreachable, or too slow is the tool's normal answer (`up: false`), not an error; a request refused because it targets a private/internal/loopback address IS an error, since that is a blocked request rather than an observation about the target site.

Parameters

NameTypeRequiredDescription
urlstringYesURL to check (e.g. "https://example.com").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/website-status-checker \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'

{
  "success": true,
  "tool": "website-status-checker",
  "result": {
    "up": true,
    "statusCode": 200,
    "statusText": "OK",
    "responseTimeMs": 123,
    "finalUrl": "https://example.com/",
    "server": "ECS (nyb/1D2A)",
    "contentType": "text/html; charset=UTF-8"
  }
}
POST/api/v1/tools/http-headers-viewer2 credits/call

HTTP Headers Viewer

View the HTTP response headers for a URL via an SSRF-guarded GET request, plus a security-header summary (present/absent for HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, and Permissions-Policy).

Parameters

NameTypeRequiredDescription
urlstringYesURL to fetch headers for (e.g. "https://example.com").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/http-headers-viewer \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'

{
  "success": true,
  "tool": "http-headers-viewer",
  "result": {
    "statusCode": 200,
    "finalUrl": "https://example.com/",
    "headers": {
      "content-type": "text/html; charset=UTF-8",
      "server": "ECS (nyb/1D2A)"
    },
    "securityHeaders": {
      "Strict-Transport-Security (HSTS)": {
        "present": false,
        "value": null
      },
      "Content-Security-Policy": {
        "present": false,
        "value": null
      },
      "X-Frame-Options": {
        "present": false,
        "value": null
      },
      "X-Content-Type-Options": {
        "present": false,
        "value": null
      },
      "Referrer-Policy": {
        "present": false,
        "value": null
      },
      "Permissions-Policy": {
        "present": false,
        "value": null
      }
    }
  }
}
POST/api/v1/tools/user-agent-parser2 credits/call

User Agent Parser

Parse a User-Agent string into browser, rendering engine, operating system, device, and CPU details, using the ua-parser-js library (a maintained signature database matched against real-world User-Agent strings) rather than ad hoc regular expressions.

Parameters

NameTypeRequiredDescription
userAgentstringYesThe User-Agent string to parse.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/user-agent-parser \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}'

{
  "success": true,
  "tool": "user-agent-parser",
  "result": {
    "browser": {
      "name": "Chrome",
      "version": "120.0.0.0"
    },
    "engine": {
      "name": "Blink",
      "version": "120.0.0.0"
    },
    "os": {
      "name": "Windows",
      "version": "10"
    },
    "device": {},
    "cpu": {
      "architecture": "amd64"
    }
  }
}
POST/api/v1/tools/whois-lookup2 credits/call

WHOIS Lookup

Look up domain registration details (registrar, creation/update/expiry dates, name servers, status codes) via a hand-rolled TCP-43 WHOIS client: query whois.iana.org for the TLD's referral server, then query that server for the domain. WHOIS is a free-text protocol with no universal schema, so parsed-field completeness varies by registry — the raw response text is always included alongside the best-effort parsed fields.

Parameters

NameTypeRequiredDescription
domainstringYesDomain name to look up (e.g. "example.com").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/whois-lookup \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com"}'

{
  "success": true,
  "tool": "whois-lookup",
  "result": {
    "domain": "example.com",
    "whoisServer": "whois.verisign-grs.com",
    "raw": "Domain Name: EXAMPLE.COM\n...",
    "parsed": {
      "registrar": "RESERVED-Internet Assigned Numbers Authority",
      "createdDate": "1995-08-14T04:00:00Z",
      "updatedDate": "2026-01-16T18:26:50Z",
      "expiresDate": "2026-08-13T04:00:00Z",
      "nameServers": [
        "A.IANA-SERVERS.NET",
        "B.IANA-SERVERS.NET"
      ],
      "status": [
        "clientDeleteProhibited"
      ]
    }
  }
}
POST/api/v1/tools/ssl-certificate-checker2 credits/call

SSL Certificate Checker

Inspect the SSL/TLS certificate a host presents — subject, issuer, validity window, days until expiry, subject alternative names, serial number, signature algorithm, and chain length — via an SSRF-guarded TLS connection. The connection deliberately does not validate trust (an expired, self-signed, or hostname- mismatched certificate is exactly what this tool is for reporting on).

Parameters

NameTypeRequiredDescription
hoststringYesHostname to check (e.g. "example.com").
portnumberNo (default 443)TLS port to connect to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/ssl-certificate-checker \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"host":"example.com"}'

{
  "success": true,
  "tool": "ssl-certificate-checker",
  "result": {
    "subject": {
      "CN": "example.com"
    },
    "issuer": {
      "C": "US",
      "O": "SSL Corporation",
      "CN": "Cloudflare TLS Issuing ECC CA 3"
    },
    "validFrom": "May 31 21:39:12 2026 GMT",
    "validTo": "Aug 29 21:41:26 2026 GMT",
    "daysUntilExpiry": 43,
    "san": [
      "DNS:example.com",
      "DNS:*.example.com"
    ],
    "serialNumber": "1AA73FEA257BE3334B9A29552E6F878E",
    "signatureAlgorithm": "ecdsa-with-SHA256",
    "isExpired": false,
    "isValidNow": true,
    "chainLength": 1
  }
}
POST/api/v1/tools/ip-subnet-calculator2 credits/call

IP Subnet Calculator

Calculate IPv4 subnet details — network address, broadcast address, usable host range, host counts, and wildcard/subnet mask — from a CIDR block (e.g. "192.168.1.0/24") or an IP + subnet mask pair. Handles the /31 (RFC 3021 point-to-point, 0 usable hosts by the classic count) and /32 (single host) edge cases.

Parameters

NameTypeRequiredDescription
cidrstringNoCIDR block, "a.b.c.d/nn" (e.g. "192.168.1.0/24"). Provide this OR both "ip" and "mask".
ipstringNoIPv4 address (used with "mask" instead of "cidr").
maskstringNoDotted-quad subnet mask (e.g. "255.255.255.0"), used with "ip" instead of "cidr".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/ip-subnet-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"cidr":"192.168.1.0/24"}'

{
  "success": true,
  "tool": "ip-subnet-calculator",
  "result": {
    "cidr": "192.168.1.0/24",
    "network": "192.168.1.0",
    "broadcast": "192.168.1.255",
    "firstHost": "192.168.1.1",
    "lastHost": "192.168.1.254",
    "usableHosts": 254,
    "totalHosts": 256,
    "wildcardMask": "0.0.0.255",
    "subnetMask": "255.255.255.0",
    "prefixLength": 24,
    "ipClass": "C"
  }
}
POST/api/v1/tools/bandwidth-calculator2 credits/call

Bandwidth Calculator

Calculate file transfer time from a file size and a link speed. Uses a DECIMAL (1000-based) convention throughout: 1 KB/MB/GB/TB = 1000^n bytes, 1 Kbps/Mbps/Gbps = 1000^n bits/second, 8 bits = 1 byte — the same convention ISPs use to advertise speed, stated explicitly in every response (`convention` field) since a 1024-based (binary) reading of the same units gives a different number.

Parameters

NameTypeRequiredDescription
fileSizenumberYesFile size, in "fileSizeUnit"s.
fileSizeUnitstring (KB | MB | GB | TB)No (default "MB")Unit "fileSize" is expressed in (decimal: 1 KB/MB/GB/TB = 1000^n bytes).
speednumberYesLink/connection speed, in "speedUnit"s. Must be greater than 0.
speedUnitstring (Kbps | Mbps | Gbps)No (default "Mbps")Unit "speed" is expressed in (decimal: 1 Kbps/Mbps/Gbps = 1000^n bits/second).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/bandwidth-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"fileSize":1,"fileSizeUnit":"GB","speed":100,"speedUnit":"Mbps"}'

{
  "success": true,
  "tool": "bandwidth-calculator",
  "result": {
    "fileSize": 1,
    "fileSizeUnit": "GB",
    "fileSizeBytes": 1000000000,
    "speed": 100,
    "speedUnit": "Mbps",
    "speedBitsPerSecond": 100000000,
    "transferSeconds": 80,
    "transferHuman": "1m 20s",
    "convention": "Decimal (1000-based) convention: 1 KB/MB/GB/TB = 1000^n bytes; 1 Kbps/Mbps/Gbps = 1000^n bits/second; 8 bits = 1 byte. Some operating systems display file size using 1024-based binary units instead (labeled \"GB\" but meaning GiB) — this tool always uses the decimal convention above."
  }
}
POST/api/v1/tools/website-speed-test2 credits/call

Website Speed Test

Measure page-load timing for a URL — TTFB, DOMContentLoaded, load, transferred bytes, request count, and a resource-type breakdown — via a real headless-Chrome navigation and the browser's own Navigation/Resource Timing APIs. This is lightweight navigation-timing, NOT a full Lighthouse audit (no performance score, no Core Web Vitals like LCP/CLS/INP). The target host is validated and pinned before Chrome ever launches — Chrome itself is locked to that one pinned IP via --host-resolver-rules, and every sub-resource request to any OTHER host is blocked outright, so the page cannot pivot this server's network position elsewhere.

Parameters

NameTypeRequiredDescription
urlstringYesURL to test (e.g. "https://example.com").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/website-speed-test \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'

{
  "success": true,
  "tool": "website-speed-test",
  "result": {
    "url": "https://example.com",
    "finalUrl": "https://example.com/",
    "ttfbMs": 88,
    "domContentLoadedMs": 210,
    "loadMs": 245,
    "transferredBytes": 1534,
    "requestCount": 1,
    "resourceBreakdown": {
      "script": 0,
      "css": 0,
      "image": 0,
      "font": 0,
      "other": 0
    }
  }
}

Time & Date Tools

POST/api/v1/tools/world-clock1 credit/call

World Clock

Show the local time in up to 50 IANA timezones for a given instant (default: now). DST-aware via Intl.DateTimeFormat — each zone's offset is looked up for that specific instant.

Parameters

NameTypeRequiredDescription
atstringNoISO instant to compute local times for, must include "Z" or a UTC offset (e.g. "2026-06-01T12:00:00Z"). Defaults to the current time.
zonesstringYesComma-separated IANA timezone names, 1-50 (e.g. "America/New_York,Europe/London,Asia/Kolkata").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/world-clock \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"at":"2026-06-01T12:00:00Z","zones":"UTC,America/New_York,Asia/Kolkata"}'

{
  "success": true,
  "tool": "world-clock",
  "result": {
    "at": "2026-06-01T12:00:00.000Z",
    "zones": [
      {
        "zone": "UTC",
        "offset": "+00:00",
        "localTime": "2026-06-01T12:00:00"
      },
      {
        "zone": "America/New_York",
        "offset": "-04:00",
        "localTime": "2026-06-01T08:00:00"
      },
      {
        "zone": "Asia/Kolkata",
        "offset": "+05:30",
        "localTime": "2026-06-01T17:30:00"
      }
    ]
  }
}
POST/api/v1/tools/timezone-converter1 credit/call

Timezone Converter

Convert a wall-clock date and time from one IANA timezone to another. DST-aware via the built-in Intl.DateTimeFormat — the UTC offset for each zone is looked up for the specific instant being converted, never hardcoded, so results are correct on both sides of a Daylight Saving Time transition.

Parameters

NameTypeRequiredDescription
datetimestringYesLocal wall-clock date and time with NO UTC offset, expressed in the "fromZone" timezone — "YYYY-MM-DDTHH:MM" or "YYYY-MM-DDTHH:MM:SS".
fromZonestringYesIANA timezone name the datetime is expressed in (e.g. "America/New_York").
toZonestringYesIANA timezone name to convert into (e.g. "Europe/London").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/timezone-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"datetime":"2026-06-01T12:00","fromZone":"America/New_York","toZone":"Europe/London"}'

{
  "success": true,
  "tool": "timezone-converter",
  "result": {
    "datetime": "2026-06-01T12:00",
    "fromZone": "America/New_York",
    "toZone": "Europe/London",
    "fromOffset": "-04:00",
    "toOffset": "+01:00",
    "utc": "2026-06-01T16:00:00.000Z",
    "convertedDatetime": "2026-06-01T17:00:00"
  }
}
POST/api/v1/tools/week-number-calculator1 credit/call

Week Number Calculator

Calculate the ISO-8601 week number and ISO week-year for a date. ISO weeks start Monday and a week belongs to the year containing its Thursday, so Jan 1-3 can fall in the PRIOR year's final week (e.g. W52/W53), and some years have a 53rd week.

Parameters

NameTypeRequiredDescription
datestringYesDate to compute the ISO week for, "YYYY-MM-DD".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/week-number-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-01-01"}'

{
  "success": true,
  "tool": "week-number-calculator",
  "result": {
    "date": "2026-01-01",
    "isoYear": 2026,
    "isoWeek": 1,
    "isoWeekString": "2026-W01"
  }
}
POST/api/v1/tools/day-of-week-calculator1 credit/call

Day of Week Calculator

Get the weekday name for a date, plus its day-of-year and whether that year is a leap year. Pure UTC calendar math (Date.UTC/getUTCDay) — no local-timezone off-by-one.

Parameters

NameTypeRequiredDescription
datestringYesDate to look up, "YYYY-MM-DD".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/day-of-week-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-07-17"}'

{
  "success": true,
  "tool": "day-of-week-calculator",
  "result": {
    "date": "2026-07-17",
    "weekday": "Friday",
    "weekdayIndex": 5,
    "dayOfYear": 198,
    "isLeapYear": false
  }
}
POST/api/v1/tools/countdown-timer1 credit/call

Countdown Timer

Compute the time remaining until a target instant, from a reference instant (default: now). If the target has already passed, returns the elapsed time with isPast:true instead of erroring.

Parameters

NameTypeRequiredDescription
targetstringYesTarget ISO instant, must include "Z" or a UTC offset (e.g. "2026-12-31T00:00:00Z").
fromstringNoReference ISO instant to count from. Defaults to the current time.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/countdown-timer \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"target":"2026-01-02T12:30:00Z","from":"2026-01-01T00:00:00Z"}'

{
  "success": true,
  "tool": "countdown-timer",
  "result": {
    "target": "2026-01-02T12:30:00.000Z",
    "from": "2026-01-01T00:00:00.000Z",
    "isPast": false,
    "days": 1,
    "hours": 12,
    "minutes": 30,
    "seconds": 0,
    "totalSeconds": 131400
  }
}
POST/api/v1/tools/hours-calculator1 credit/call

Hours Calculator

Calculate hours worked between a start and end clock time, minus an optional unpaid break, as decimal hours and "H:MM". If "end" is earlier than "start" the shift is treated as crossing midnight (24 hours are added to "end") rather than as an error.

Parameters

NameTypeRequiredDescription
startstringYesStart time, 24-hour "HH:MM" (e.g. "09:00").
endstringYesEnd time, 24-hour "HH:MM". If earlier than "start", treated as the next day (overnight shift).
breakstringNo (default "0")Unpaid break to subtract: minutes (e.g. "30") or "H:MM"/"HH:MM" (e.g. "0:30").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/hours-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"start":"09:00","end":"17:30","break":"0:30"}'

{
  "success": true,
  "tool": "hours-calculator",
  "result": {
    "start": "09:00",
    "end": "17:30",
    "breakMinutes": 30,
    "overnight": false,
    "workedMinutes": 480,
    "decimalHours": 8,
    "hhmm": "8:00"
  }
}
POST/api/v1/tools/time-duration-calculator1 credit/call

Time Duration Calculator

Compute the duration between two ISO instants, broken into days/hours/minutes/seconds plus running totals in each unit. "end" must not be before "start".

Parameters

NameTypeRequiredDescription
startstringYesStart ISO instant, must include "Z" or a UTC offset.
endstringYesEnd ISO instant, must include "Z" or a UTC offset; must not be before "start".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/time-duration-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"start":"2026-01-01T00:00:00Z","end":"2026-01-02T12:30:00Z"}'

{
  "success": true,
  "tool": "time-duration-calculator",
  "result": {
    "start": "2026-01-01T00:00:00.000Z",
    "end": "2026-01-02T12:30:00.000Z",
    "days": 1,
    "hours": 12,
    "minutes": 30,
    "seconds": 0,
    "totalSeconds": 131400,
    "totalMinutes": 2190,
    "totalHours": 36.5,
    "totalDays": 1.52
  }
}
POST/api/v1/tools/age-on-date-calculator1 credit/call

Age on Date Calculator

Calculate calendar-correct age (years, months, days) at a reference date, given a birthdate. Handles leap-day (Feb 29) birthdays: in a non-leap reference year, the anniversary is reached the day after Feb 28.

Parameters

NameTypeRequiredDescription
birthdatestringYesBirth date, "YYYY-MM-DD".
onstringNoReference date to compute the age at, "YYYY-MM-DD". Defaults to today (UTC).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/age-on-date-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"birthdate":"1990-06-15","on":"2026-07-17"}'

{
  "success": true,
  "tool": "age-on-date-calculator",
  "result": {
    "birthdate": "1990-06-15",
    "on": "2026-07-17",
    "years": 36,
    "months": 1,
    "days": 2
  }
}
POST/api/v1/tools/date-pattern-calculator1 credit/call

Date Pattern Calculator

Date arithmetic from a start date: either "shift" mode adds/subtracts an interval (amount + unit: days/weeks/months/years — month/year shifts clamp the day-of-month if the target month is shorter, e.g. Jan 31 + 1 month -> Feb 28), or "next-weekday" mode lists the next N (1-1000) occurrences of a weekday strictly after the start date. UTC-safe throughout.

Parameters

NameTypeRequiredDescription
datestringYesStart date, "YYYY-MM-DD".
modestring (shift | next-weekday)YesWhich operation to perform.
operationstring (add | subtract)No (default "add")"shift" mode only: whether to add or subtract the interval.
amountnumberNo"shift" mode only (required): size of the interval to add/subtract, in "unit"s.
unitstring (days | weeks | months | years)No"shift" mode only (required): unit the "amount" is expressed in.
weekdaystring (Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday)No"next-weekday" mode only (required): weekday name to search for.
countnumberNo (default 1)"next-weekday" mode only: how many upcoming occurrences to list.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/date-pattern-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-07-17","mode":"shift","operation":"add","amount":30,"unit":"days"}'

{
  "success": true,
  "tool": "date-pattern-calculator",
  "result": {
    "date": "2026-07-17",
    "mode": "shift",
    "operation": "add",
    "amount": 30,
    "unit": "days",
    "result": "2026-08-16"
  }
}

Unit Converters

POST/api/v1/tools/length-converter1 credit/call

Length Converter

Convert a length/distance value between metric and imperial/nautical units. Units: mm, cm, m, km, in, ft, yd, mi, nautical-mile (base unit: meters).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: meters).
fromstring (mm | cm | m | km | in | ft | yd | mi | nautical-mile)YesUnit to convert from.
tostring (mm | cm | m | km | in | ft | yd | mi | nautical-mile)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/length-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":100,"from":"km","to":"mi"}'

{
  "success": true,
  "tool": "length-converter",
  "result": {
    "result": 62.13711922373339,
    "from": "km",
    "to": "mi",
    "allUnits": {
      "mm": 100000000,
      "cm": 10000000,
      "m": 100000,
      "km": 100,
      "in": 3937007.874015748,
      "ft": 328083.9895013123,
      "yd": 109361.32983377078,
      "mi": 62.13711922373339,
      "nautical-mile": 53.99568034557235
    }
  }
}
POST/api/v1/tools/weight-converter1 credit/call

Weight Converter

Convert a weight/mass value between metric and imperial units. Units: mg, g, kg, tonne, oz, lb, stone (base unit: kilograms).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: kilograms).
fromstring (mg | g | kg | tonne | oz | lb | stone)YesUnit to convert from.
tostring (mg | g | kg | tonne | oz | lb | stone)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/weight-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":1,"from":"lb","to":"kg"}'

{
  "success": true,
  "tool": "weight-converter",
  "result": {
    "result": 0.45359237,
    "from": "lb",
    "to": "kg",
    "allUnits": {
      "mg": 453592.37000000005,
      "g": 453.59237,
      "kg": 0.45359237,
      "tonne": 0.00045359237000000004,
      "oz": 16.000000014109585,
      "lb": 1,
      "stone": 0.07142857142857142
    }
  }
}
POST/api/v1/tools/temperature-converter1 credit/call

Temperature Converter

Convert a temperature between Celsius, Fahrenheit, Kelvin, and Rankine. Uses the real AFFINE formulas (additive offset + scale, not a pure factor) via a Celsius pivot, and rejects any value that is physically below absolute zero (-273.15°C / -459.67°F / 0 K / 0°R). Units: celsius, fahrenheit, kelvin, rankine.

Parameters

NameTypeRequiredDescription
valuenumberYesTemperature value to convert, expressed in the unit given by "from".
fromstring (celsius | fahrenheit | kelvin | rankine)YesUnit to convert from.
tostring (celsius | fahrenheit | kelvin | rankine)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/temperature-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":100,"from":"celsius","to":"fahrenheit"}'

{
  "success": true,
  "tool": "temperature-converter",
  "result": {
    "result": 212,
    "from": "celsius",
    "to": "fahrenheit"
  }
}
POST/api/v1/tools/data-storage-converter1 credit/call

Data Storage Converter

Convert a digital storage size between units, using the BINARY (1024-based, i.e. KiB/MiB/GiB/TiB) convention — NOT the decimal/1000-based convention some vendors use. 1 GB = 1024 MB here. Units: bit, byte, KB, MB, GB, TB (base unit: bytes).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: bytes).
fromstring (bit | byte | KB | MB | GB | TB)YesUnit to convert from.
tostring (bit | byte | KB | MB | GB | TB)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/data-storage-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":1,"from":"GB","to":"MB"}'

{
  "success": true,
  "tool": "data-storage-converter",
  "result": {
    "result": 1024,
    "from": "GB",
    "to": "MB",
    "allUnits": {
      "bit": 8589934592,
      "byte": 1073741824,
      "KB": 1048576,
      "MB": 1024,
      "GB": 1,
      "TB": 0.0009765625
    }
  }
}
POST/api/v1/tools/area-converter1 credit/call

Area Converter

Convert an area value between metric and imperial units. Units: mm2, cm2, m2, hectare, km2, in2, ft2, acre, mi2 (base unit: square meters).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: square meters).
fromstring (mm2 | cm2 | m2 | hectare | km2 | in2 | ft2 | acre | mi2)YesUnit to convert from.
tostring (mm2 | cm2 | m2 | hectare | km2 | in2 | ft2 | acre | mi2)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/area-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":1,"from":"acre","to":"m2"}'

{
  "success": true,
  "tool": "area-converter",
  "result": {
    "result": 4046.8564224,
    "from": "acre",
    "to": "m2",
    "allUnits": {
      "mm2": 4046856422.4000006,
      "cm2": 40468564.224,
      "m2": 4046.8564224,
      "hectare": 0.40468564224000003,
      "km2": 0.0040468564224,
      "in2": 6272640,
      "ft2": 43560,
      "acre": 1,
      "mi2": 0.0015625
    }
  }
}
POST/api/v1/tools/volume-converter1 credit/call

Volume Converter

Convert a volume value between metric and US customary units. Units: ml, l, m3, tsp, tbsp, fl-oz-us, cup-us, pint-us, quart-us, gallon-us (base unit: liters).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: liters).
fromstring (ml | l | m3 | tsp | tbsp | fl-oz-us | cup-us | pint-us | quart-us | gallon-us)YesUnit to convert from.
tostring (ml | l | m3 | tsp | tbsp | fl-oz-us | cup-us | pint-us | quart-us | gallon-us)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/volume-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":1,"from":"gallon-us","to":"l"}'

{
  "success": true,
  "tool": "volume-converter",
  "result": {
    "result": 3.785411784,
    "from": "gallon-us",
    "to": "l",
    "allUnits": {
      "ml": 3785.411784,
      "l": 3.785411784,
      "m3": 0.0037854117839999997,
      "tsp": 768.0000005843062,
      "tbsp": 255.9999996753854,
      "fl-oz-us": 127.9999998376927,
      "cup-us": 16,
      "pint-us": 8,
      "quart-us": 4,
      "gallon-us": 1
    }
  }
}
POST/api/v1/tools/speed-converter1 credit/call

Speed Converter

Convert a speed value between metric, imperial, and nautical units. Units: mps, kmh, mph, knot, fps (base unit: meters per second).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: meters per second).
fromstring (mps | kmh | mph | knot | fps)YesUnit to convert from.
tostring (mps | kmh | mph | knot | fps)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/speed-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":100,"from":"kmh","to":"mps"}'

{
  "success": true,
  "tool": "speed-converter",
  "result": {
    "result": 27.7777778,
    "from": "kmh",
    "to": "mps",
    "allUnits": {
      "mps": 27.7777778,
      "kmh": 100,
      "mph": 62.13711927344309,
      "knot": 53.995680435417434,
      "fps": 91.13444160104986
    }
  }
}
POST/api/v1/tools/time-unit-converter1 credit/call

Time Unit Converter

Convert a time duration between common units, from milliseconds to years. Units: ms, s, min, hour, day, week, month, year (base unit: seconds).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: seconds).
fromstring (ms | s | min | hour | day | week | month | year)YesUnit to convert from.
tostring (ms | s | min | hour | day | week | month | year)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/time-unit-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":1,"from":"day","to":"hour"}'

{
  "success": true,
  "tool": "time-unit-converter",
  "result": {
    "result": 24,
    "from": "day",
    "to": "hour",
    "allUnits": {
      "ms": 86400000,
      "s": 86400,
      "min": 1440,
      "hour": 24,
      "day": 1,
      "week": 0.14285714285714285,
      "month": 0.03285488408386209,
      "year": 0.002737907006988508
    }
  }
}
POST/api/v1/tools/energy-converter1 credit/call

Energy Converter

Convert an energy value between SI, calorie, electrical, and imperial units. Units: J, kJ, cal, kcal, Wh, kWh, BTU, ft-lb (base unit: joules).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: joules).
fromstring (J | kJ | cal | kcal | Wh | kWh | BTU | ft-lb)YesUnit to convert from.
tostring (J | kJ | cal | kcal | Wh | kWh | BTU | ft-lb)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/energy-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":1,"from":"kWh","to":"J"}'

{
  "success": true,
  "tool": "energy-converter",
  "result": {
    "result": 3600000,
    "from": "kWh",
    "to": "J",
    "allUnits": {
      "J": 3600000,
      "kJ": 3600,
      "cal": 860420.6500956023,
      "kcal": 860.4206500956022,
      "Wh": 1000,
      "kWh": 1,
      "BTU": 3412.141641601248,
      "ft-lb": 2655223.73745965
    }
  }
}
POST/api/v1/tools/pressure-converter1 credit/call

Pressure Converter

Convert a pressure value between SI, imperial, and atmospheric units. Units: Pa, kPa, bar, psi, atm, mmHg, torr (base unit: pascals).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: pascals).
fromstring (Pa | kPa | bar | psi | atm | mmHg | torr)YesUnit to convert from.
tostring (Pa | kPa | bar | psi | atm | mmHg | torr)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/pressure-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":1,"from":"atm","to":"Pa"}'

{
  "success": true,
  "tool": "pressure-converter",
  "result": {
    "result": 101325,
    "from": "atm",
    "to": "Pa",
    "allUnits": {
      "Pa": 101325,
      "kPa": 101.325,
      "bar": 1.01325,
      "psi": 14.695948782266708,
      "atm": 1,
      "mmHg": 759.9998940913052,
      "torr": 760.0000024001973
    }
  }
}
POST/api/v1/tools/angle-converter1 credit/call

Angle Converter

Convert an angle value between degrees, radians, and other angular units. Units: degree, radian, gradian, arcminute, arcsecond, turn (base unit: degrees).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: degrees).
fromstring (degree | radian | gradian | arcminute | arcsecond | turn)YesUnit to convert from.
tostring (degree | radian | gradian | arcminute | arcsecond | turn)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/angle-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":180,"from":"degree","to":"radian"}'

{
  "success": true,
  "tool": "angle-converter",
  "result": {
    "result": 3.1415926535888237,
    "from": "degree",
    "to": "radian",
    "allUnits": {
      "degree": 180,
      "radian": 3.1415926535888237,
      "gradian": 200,
      "arcminute": 10799.999978400001,
      "arcsecond": 647999.9994816,
      "turn": 0.5
    }
  }
}
POST/api/v1/tools/fuel-economy-converter1 credit/call

Fuel Economy Converter

Convert a fuel-economy value between US mpg, UK (imperial) mpg, L/100km, and km/L. These units are RECIPROCALLY related (better economy = a smaller L/100km but a larger mpg/km-L), so every conversion pivots through L/100km via division rather than a linear scale factor. Units: mpg-us, mpg-uk, l-100km, km-l. "value" must be greater than 0.

Parameters

NameTypeRequiredDescription
valuenumberYesFuel-economy value to convert, expressed in the unit given by "from". Must be greater than 0.
fromstring (mpg-us | mpg-uk | l-100km | km-l)YesUnit to convert from.
tostring (mpg-us | mpg-uk | l-100km | km-l)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/fuel-economy-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":30,"from":"mpg-us","to":"l-100km"}'

{
  "success": true,
  "tool": "fuel-economy-converter",
  "result": {
    "result": 7.84048611111111,
    "from": "mpg-us",
    "to": "l-100km"
  }
}
POST/api/v1/tools/frequency-converter1 credit/call

Frequency Converter

Convert a frequency value between hertz-based units and revolutions per minute. Units: Hz, kHz, MHz, GHz, rpm (base unit: hertz).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: hertz).
fromstring (Hz | kHz | MHz | GHz | rpm)YesUnit to convert from.
tostring (Hz | kHz | MHz | GHz | rpm)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/frequency-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":1,"from":"GHz","to":"Hz"}'

{
  "success": true,
  "tool": "frequency-converter",
  "result": {
    "result": 1000000000,
    "from": "GHz",
    "to": "Hz",
    "allUnits": {
      "Hz": 1000000000,
      "kHz": 1000000,
      "MHz": 1000,
      "GHz": 1,
      "rpm": 59999999880
    }
  }
}
POST/api/v1/tools/cooking-unit-converter1 credit/call

Cooking Unit Converter

Convert a cooking measurement between cups, tablespoons, teaspoons, fluid ounces, milliliters, and liters (US customary volume units). This converter is VOLUME-ONLY — it does not convert between weight and volume (e.g. grams of flour to cups), since that requires an ingredient-specific density. Units: ml, l, tsp, tbsp, fl-oz, cup (base unit: milliliters).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: milliliters).
fromstring (ml | l | tsp | tbsp | fl-oz | cup)YesUnit to convert from.
tostring (ml | l | tsp | tbsp | fl-oz | cup)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/cooking-unit-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":1,"from":"cup","to":"ml"}'

{
  "success": true,
  "tool": "cooking-unit-converter",
  "result": {
    "result": 236.5882365,
    "from": "cup",
    "to": "ml",
    "allUnits": {
      "ml": 236.5882365,
      "l": 0.2365882365,
      "tsp": 48,
      "tbsp": 16,
      "fl-oz": 8,
      "cup": 1
    }
  }
}
POST/api/v1/tools/shoe-size-converter1 credit/call

Shoe Size Converter

Convert a shoe size between US men's, US women's, UK, EU, and foot length in centimeters. Shoe sizing is NOT standardized across manufacturers (each brand's last shapes it differently), so these conversions are APPROXIMATE — typically within about half a size of any specific brand's own chart. This model pivots on foot length in cm, anchored at US men's 9 = UK 8.5 = EU 42.5 = 27 cm. Systems: us-mens, us-womens, uk, eu, cm.

Parameters

NameTypeRequiredDescription
valuenumberYesShoe size (or foot length in cm, when "from"/"to" is "cm") to convert.
fromstring (us-mens | us-womens | uk | eu | cm)YesSizing system to convert from.
tostring (us-mens | us-womens | uk | eu | cm)YesSizing system to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/shoe-size-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":9,"from":"us-mens","to":"eu"}'

{
  "success": true,
  "tool": "shoe-size-converter",
  "result": {
    "result": 42.5,
    "from": "us-mens",
    "to": "eu"
  }
}
POST/api/v1/tools/power-converter1 credit/call

Power Converter

Convert a power value between SI, mechanical, and thermal units. Units: W, kW, MW, hp, metric-hp, BTU-h (base unit: watts).

Parameters

NameTypeRequiredDescription
valuenumberYesNumeric value to convert, expressed in the unit given by "from" (base unit: watts).
fromstring (W | kW | MW | hp | metric-hp | BTU-h)YesUnit to convert from.
tostring (W | kW | MW | hp | metric-hp | BTU-h)YesUnit to convert to.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/power-converter \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"value":1,"from":"hp","to":"W"}'

{
  "success": true,
  "tool": "power-converter",
  "result": {
    "result": 745.699872,
    "from": "hp",
    "to": "W",
    "allUnits": {
      "W": 745.699872,
      "kW": 0.745699872,
      "MW": 0.000745699872,
      "hp": 1,
      "metric-hp": 1.0138696659919546,
      "BTU-h": 2544.434188302493
    }
  }
}

Everyday Tools

POST/api/v1/tools/coin-flip1 credit/call

Coin Flip

Flip one or more fair coins using node:crypto (never Math.random) for a uniform, unbiased 50/50 outcome each flip.

Parameters

NameTypeRequiredDescription
countnumberNo (default 1)How many coins to flip.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/coin-flip \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"count":5}'

{
  "success": true,
  "tool": "coin-flip",
  "result": {
    "flips": [
      "heads",
      "tails",
      "heads",
      "heads",
      "tails"
    ],
    "heads": 3,
    "tails": 2
  }
}
POST/api/v1/tools/dice-roller1 credit/call

Dice Roller

Roll one or more dice with a configurable number of sides using node:crypto (never Math.random) for a uniform, unbiased result on every roll. An optional flat modifier is added to the sum for a "total".

Parameters

NameTypeRequiredDescription
sidesnumberNo (default 6)Number of sides per die.
countnumberNo (default 1)How many dice to roll.
modifiernumberNo (default 0)Flat bonus/penalty added to the sum of all rolls to get "total".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/dice-roller \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"sides":6,"count":2,"modifier":3}'

{
  "success": true,
  "tool": "dice-roller",
  "result": {
    "rolls": [
      4,
      6
    ],
    "sum": 10,
    "modifier": 3,
    "total": 13
  }
}
POST/api/v1/tools/yes-or-no-generator1 credit/call

Yes or No Generator

Get a random "yes" or "no" answer (optionally including "maybe") using node:crypto (never Math.random) for a uniform, unbiased pick.

Parameters

NameTypeRequiredDescription
includeMaybebooleanNo (default false)Include "maybe" as a third possible answer.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/yes-or-no-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"includeMaybe":false}'

{
  "success": true,
  "tool": "yes-or-no-generator",
  "result": {
    "answer": "yes"
  }
}
POST/api/v1/tools/random-color-picker1 credit/call

Random Color Picker

Pick one or more random colors in hex, rgb(), or hsl() format using node:crypto (never Math.random).

Parameters

NameTypeRequiredDescription
formatstring (hex | rgb | hsl)No (default "hex")Output color format.
countnumberNo (default 1)How many colors to pick.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/random-color-picker \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"format":"hex","count":3}'

{
  "success": true,
  "tool": "random-color-picker",
  "result": {
    "colors": [
      "#a3f2c1",
      "#004488",
      "#ff00aa"
    ]
  }
}
POST/api/v1/tools/random-quote-generator1 credit/call

Random Quote Generator

Get a random quote (optionally filtered by category) from a curated, embedded seed list, picked via node:crypto (never Math.random).

Parameters

NameTypeRequiredDescription
categorystring (motivational | wisdom | life | success | love | humor)NoRestrict the pick to a single category. Omit to draw from all categories.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/random-quote-generator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"category":"motivational"}'

{
  "success": true,
  "tool": "random-quote-generator",
  "result": {
    "quote": "The only way to do great work is to love what you do.",
    "author": "Steve Jobs",
    "category": "motivational"
  }
}
POST/api/v1/tools/character-map1 credit/call

Character Map

Look up full details for a single Unicode code point — accepts "U+2764", "0x2764", a bare decimal number, or a single literal character — returning its character, name (from the embedded emoji dataset or a curated named-character list; null if unknown, never a fabricated guess), code point, hex, decimal, HTML entities, UTF-8 bytes, and an approximate category. Alternatively, pass "category" to browse a curated set of common arrows, currency symbols, punctuation, math symbols, or Greek letters instead.

Parameters

NameTypeRequiredDescription
querystringNoA code point ("U+2764", "0x2764", a decimal number) or a single literal character. Ignored if "category" is set.
categorystring (arrows | currency | punctuation | math | greek)NoBrowse a curated set of common named characters instead of looking up "query".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/character-map \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"query":"U+2764"}'

{
  "success": true,
  "tool": "character-map",
  "result": {
    "char": "❤",
    "name": "Red Heart",
    "codePoint": "U+2764",
    "hex": "2764",
    "decimal": 10084,
    "htmlEntityDec": "&#10084;",
    "htmlEntityHex": "&#x2764;",
    "utf8Bytes": [
      226,
      157,
      164
    ],
    "category": "Dingbat"
  }
}
POST/api/v1/tools/unit-price-calculator1 credit/call

Unit Price Calculator

Calculate price per unit (price ÷ quantity). Optionally supply a second item (price2/quantity2) to compare which is cheaper per unit and by what percentage.

Parameters

NameTypeRequiredDescription
pricenumberYesTotal price of item 1.
quantitynumberYesQuantity of item 1 (must be greater than 0).
unitstringNoUnit label for item 1 (e.g. "oz", "kg", "ct"). Informational only.
price2numberNoTotal price of item 2, for a two-item comparison.
quantity2numberNoQuantity of item 2 (must be greater than 0). Required together with price2.
unit2stringNoUnit label for item 2. Informational only.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/unit-price-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"price":5.99,"quantity":12,"unit":"oz","price2":9.99,"quantity2":24,"unit2":"oz"}'

{
  "success": true,
  "tool": "unit-price-calculator",
  "result": {
    "price": 5.99,
    "quantity": 12,
    "unit": "oz",
    "unitPrice": 0.4992,
    "price2": 9.99,
    "quantity2": 24,
    "unit2": "oz",
    "unitPrice2": 0.4163,
    "comparison": {
      "cheaperItem": "item2",
      "savingsPercent": 16.61
    }
  }
}
POST/api/v1/tools/weather1 credit/call

Weather

Look up current conditions and a 3-day forecast for a city, powered by Open-Meteo (open-meteo.com) — a free, keyless weather API; no API key is required, read, or stored anywhere in this handler. Forecasts are estimates, not guarantees. Both Celsius/Fahrenheit and km/h/mph values are always included in the response since one upstream call already returns both temperature and wind speed; "units" is accepted for API ergonomics and echoed back but does not change which fields are present.

Parameters

NameTypeRequiredDescription
citystringYesCity name to look up (e.g. "Paris" or "Austin").
unitsstring (metric | imperial)No (default "metric")Preferred unit convention, echoed back in the response (both unit systems are always included).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/weather \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"city":"Paris"}'

{
  "success": true,
  "tool": "weather",
  "result": {
    "location": {
      "name": "Paris",
      "country": "France",
      "latitude": 48.8534,
      "longitude": 2.3488
    },
    "units": "metric",
    "current": {
      "tempC": 22.5,
      "tempF": 72.5,
      "feelsLikeC": 21.8,
      "feelsLikeF": 71.2,
      "humidity": 55,
      "windKph": 14.2,
      "windMph": 8.8,
      "condition": "Partly cloudy",
      "weatherCode": 2
    },
    "forecast": [
      {
        "date": "2026-07-17",
        "hiC": 25.1,
        "hiF": 77.2,
        "loC": 16.3,
        "loF": 61.3,
        "condition": "Partly cloudy",
        "weatherCode": 2
      }
    ],
    "source": "Weather data from Open-Meteo (open-meteo.com). Forecasts are estimates."
  }
}
POST/api/v1/tools/love-calculator1 credit/call

Love Calculator

FOR ENTERTAINMENT ONLY — computes a deterministic "love percentage" (0-100) for two names from a stable hash of the normalized, order-insensitive pair. The same two names always produce the same result. This is NOT a real or scientific measure of compatibility, and neither name is stored or logged.

Parameters

NameTypeRequiredDescription
name1stringYesFirst name.
name2stringYesSecond name.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/love-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"name1":"Alice","name2":"Bob"}'

{
  "success": true,
  "tool": "love-calculator",
  "result": {
    "percentage": 13,
    "message": "Not the strongest match on paper, but opposites can still attract.",
    "disclaimer": "For entertainment purposes only. This result comes from a deterministic hash of the two names, not a scientific or real measure of compatibility."
  }
}

Construction & Home

POST/api/v1/tools/square-footage-calculator1 credit/call

Square Footage Calculator

Calculate the area of a room or surface — rectangle (length x width), circle (pi x radius^2), or triangle (0.5 x base x height) — reported in both square feet and square meters, with an optional cost estimate (estimatedCost = area in sq ft x costPerSqFt). Dimensions may be given in feet, meters, or inches via "unit"; all math is done in feet internally.

Parameters

NameTypeRequiredDescription
shapestring (rectangle | circle | triangle)YesShape to measure.
unitstring (ft | m | in)No (default "ft")Unit for every linear dimension below (length/width/height/radius).
lengthnumberNoRectangle length, or triangle base (required for those shapes).
widthnumberNoRectangle width (required for rectangle).
heightnumberNoTriangle height, perpendicular to the base (required for triangle).
radiusnumberNoCircle radius (required for circle).
costPerSqFtnumberNoOptional material/labor cost per square foot; if given, estimatedCost = area (sq ft) x costPerSqFt.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/square-footage-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"shape":"rectangle","unit":"ft","length":10,"width":12}'

{
  "success": true,
  "tool": "square-footage-calculator",
  "result": {
    "shape": "rectangle",
    "unit": "ft",
    "areaSqFt": 120,
    "areaSqM": 11.15
  }
}
POST/api/v1/tools/concrete-calculator1 credit/call

Concrete Calculator

Calculate concrete volume for a slab/footing (length x width x thickness) or a round column/pier (pi x (diameter/2)^2 x height), reported in cubic feet, cubic yards (cu ft / 27), and cubic meters, plus the number of premix bags needed. Assumes a 60lb bag yields ~0.45 cu ft and an 80lb bag yields ~0.60 cu ft (manufacturer-typical figures) — bag count is computed from the volume PLUS a waste percentage (default 5%, for spillage/over-dig).

Parameters

NameTypeRequiredDescription
shapestring (slab | footing | column)YesSlab/footing (rectangular prism) or column (round pier).
unitstring (ft | m | in)No (default "ft")Unit for length/width/diameter/height.
lengthnumberNoSlab/footing length (required when shape is "slab" or "footing").
widthnumberNoSlab/footing width (required when shape is "slab" or "footing").
thickness_innumberNoSlab/footing thickness/depth, always in inches (required when shape is "slab" or "footing").
diameternumberNoColumn diameter (required when shape is "column").
heightnumberNoColumn height (required when shape is "column").
bagSizestring (60lb | 80lb)No (default "60lb")Premix bag size used for the bag count.
wastePercentnumberNo (default 5)Waste percentage added to the volume before computing bag count (spillage/over-dig).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/concrete-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"shape":"slab","unit":"ft","length":10,"width":10,"thickness_in":4}'

{
  "success": true,
  "tool": "concrete-calculator",
  "result": {
    "shape": "slab",
    "unit": "ft",
    "volumeCuFt": 33.33,
    "volumeCuYd": 1.235,
    "volumeCuM": 0.944,
    "wastePercent": 5,
    "volumeCuFtWithWaste": 35,
    "bagSize": "60lb",
    "bagYieldCuFt": 0.45,
    "bags": 78
  }
}
POST/api/v1/tools/tile-calculator1 credit/call

Tile Calculator

Calculate the number of tiles needed for a floor: (area / tile area) x (1 + waste%), rounded UP. Waste defaults to 10% (a common allowance for cuts and breakage). Tile dimensions are always in inches; floor area may be given in square feet or square meters via "areaUnit". If "tilesPerBox" is given, also computes the number of boxes to buy (also rounded up).

Parameters

NameTypeRequiredDescription
areanumberYesFloor area to tile.
areaUnitstring (sqft | sqm)No (default "sqft")Unit "area" is given in.
tileLength_innumberYesTile length in inches.
tileWidth_innumberYesTile width in inches.
wastePercentnumberNo (default 10)Waste/cut allowance percentage added before rounding up to a whole tile count.
tilesPerBoxnumberNoTiles per box, if known; computes boxes needed.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/tile-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"area":120,"areaUnit":"sqft","tileLength_in":12,"tileWidth_in":12,"wastePercent":10}'

{
  "success": true,
  "tool": "tile-calculator",
  "result": {
    "area": 120,
    "areaUnit": "sqft",
    "areaSqFt": 120,
    "tileLength_in": 12,
    "tileWidth_in": 12,
    "tileAreaSqFt": 1,
    "wastePercent": 10,
    "tiles": 132
  }
}
POST/api/v1/tools/mulch-gravel-calculator1 credit/call

Mulch/Gravel Calculator

Calculate mulch, gravel, or soil volume: area x depth, reported in cubic feet, cubic yards, and cubic meters, plus bags needed. Bag yields are common retail sizes: mulch ~2 cu ft/bag, gravel/decorative stone ~0.5 cu ft/bag (a 50lb bag), garden/topsoil ~0.75 cu ft/bag (a 40lb bag). Bag count is computed from the volume PLUS a waste percentage (default 10%).

Parameters

NameTypeRequiredDescription
areanumberYesArea to cover.
areaUnitstring (sqft | sqm)No (default "sqft")Unit "area" is given in.
depth_innumberYesDesired depth/thickness, always in inches.
materialstring (mulch | gravel | soil)No (default "mulch")Material — determines the bag yield used for the bag count.
wastePercentnumberNo (default 10)Waste percentage added to the volume before computing bag count.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/mulch-gravel-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"area":100,"areaUnit":"sqft","depth_in":3}'

{
  "success": true,
  "tool": "mulch-gravel-calculator",
  "result": {
    "area": 100,
    "areaUnit": "sqft",
    "depth_in": 3,
    "material": "mulch",
    "volumeCuFt": 25,
    "volumeCuYd": 0.926,
    "volumeCuM": 0.708,
    "wastePercent": 10,
    "volumeCuFtWithWaste": 27.5,
    "bagYieldCuFt": 2,
    "bags": 14
  }
}
POST/api/v1/tools/paint-calculator1 credit/call

Paint Calculator

Calculate gallons of paint needed: wall area (perimeter x height, minus door/window openings) x coats, divided by coverage per gallon, rounded UP to a whole gallon. Coverage defaults to 350 sq ft/gal (a common label figure for one coat of interior latex on primed drywall). Door openings default to 21 sq ft each (~3ft x 7ft); window openings default to 15 sq ft each (~3ft x 5ft) — both overridable.

Parameters

NameTypeRequiredDescription
lengthnumberYesRoom length.
widthnumberYesRoom width.
heightnumberYesWall height.
unitstring (ft | m | in)No (default "ft")Unit for length/width/height.
doorsnumberNo (default 0)Number of door openings to subtract.
windowsnumberNo (default 0)Number of window openings to subtract.
doorAreaSqFtnumberNo (default 21)Area per door opening, in square feet.
windowAreaSqFtnumberNo (default 15)Area per window opening, in square feet.
coatsnumberNo (default 2)Number of coats of paint.
coveragePerGallonnumberNo (default 350)Paint coverage per gallon, in square feet.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/paint-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"length":12,"width":10,"height":8,"doors":1,"windows":2,"coats":2}'

{
  "success": true,
  "tool": "paint-calculator",
  "result": {
    "length": 12,
    "width": 10,
    "height": 8,
    "unit": "ft",
    "perimeterFt": 44,
    "wallAreaSqFt": 352,
    "doors": 1,
    "windows": 2,
    "doorAreaSqFt": 21,
    "windowAreaSqFt": 15,
    "openingsSqFt": 51,
    "paintableSqFt": 301,
    "coats": 2,
    "coveragePerGallon": 350,
    "gallonsExact": 1.72,
    "gallons": 2
  }
}
POST/api/v1/tools/stair-calculator1 credit/call

Stair Calculator

Calculate stair layout from total rise: number of steps = round(total rise / target riser), then actual riser = total rise / steps, total run = (steps - 1) x tread run, and stringer length = sqrt(rise^2 + run^2). Target riser defaults to 7.5in and tread run to 10in. Most U.S. residential codes require a riser between 4in and 8in (varies by jurisdiction) — a warning is returned if the ACTUAL computed riser falls outside that range; always verify against your local building code.

Parameters

NameTypeRequiredDescription
totalRise_innumberYesTotal vertical rise (floor to floor), in inches.
targetRiser_innumberNo (default 7.5)Target riser height, in inches.
treadRun_innumberNo (default 10)Tread depth (horizontal run per step), in inches.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/stair-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"totalRise_in":45}'

{
  "success": true,
  "tool": "stair-calculator",
  "result": {
    "totalRise_in": 45,
    "targetRiser_in": 7.5,
    "numSteps": 6,
    "actualRiser_in": 7.5,
    "treadRun_in": 10,
    "numTreads": 5,
    "totalRun_in": 50,
    "stringerLength_in": 67.27,
    "codeCompliant": true,
    "warning": null
  }
}
POST/api/v1/tools/roofing-calculator1 credit/call

Roofing Calculator

Calculate roofing material from a building footprint: roof area = footprint x pitch multiplier, where multiplier = sqrt(1 + (pitch/12)^2) (pitch is rise-in-inches per 12in of run, e.g. 6 = a 6/12 pitch). Squares = roof area / 100; bundles = squares x bundlesPerSquare (default 3, the standard figure for 3-tab asphalt shingles — some architectural shingles use 4), rounded UP. A waste percentage (default 10%, for cuts/valleys/hips) is applied before the final bundle count.

Parameters

NameTypeRequiredDescription
footprintAreanumberYesBuilding footprint (plan-view) area.
areaUnitstring (sqft | sqm)No (default "sqft")Unit "footprintArea" is given in.
pitchnumberYesRoof pitch as rise in inches per 12 inches of run (e.g. 6 for a "6/12" pitch).
wastePercentnumberNo (default 10)Waste percentage for cuts, valleys, and hips.
bundlesPerSquarenumberNo (default 3)Shingle bundles per 100-sq-ft "square".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/roofing-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"footprintArea":1000,"areaUnit":"sqft","pitch":6}'

{
  "success": true,
  "tool": "roofing-calculator",
  "result": {
    "footprintArea": 1000,
    "areaUnit": "sqft",
    "pitch": 6,
    "pitchMultiplier": 1.118,
    "roofAreaSqFt": 1118,
    "squares": 11.18,
    "wastePercent": 10,
    "squaresWithWaste": 12.298,
    "bundlesPerSquare": 3,
    "bundlesBeforeWaste": 34,
    "bundles": 37
  }
}
POST/api/v1/tools/fence-calculator1 credit/call

Fence Calculator

Calculate fence materials from total run length: posts = ceil(length / postSpacing_ft) + 1, rails = sections x railsPerSection, and (if a picket width is given) pickets = ceil(length in inches / (picket width + gap)). Post spacing defaults to 8ft (typical for wood privacy fencing) and is always in feet regardless of the length unit. Also estimates bags of premix concrete (default 1 bag/post hole).

Parameters

NameTypeRequiredDescription
lengthnumberYesTotal fence run length.
unitstring (ft | m | in)No (default "ft")Unit for "length" only — postSpacing_ft and picket dimensions are always in their stated units.
postSpacing_ftnumberNo (default 8)Horizontal spacing between posts, in feet.
railsPerSectionnumberNo (default 3)Horizontal rails per section (e.g. 3 for a standard 3-rail fence).
picketWidth_innumberNoPicket width in inches; if given, computes picket count for a picket-style fence.
picketGap_innumberNo (default 0)Gap between pickets in inches (0 = butted pickets).
concreteBagsPerPostnumberNo (default 1)Bags of premix concrete per post hole.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/fence-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"length":100,"unit":"ft","postSpacing_ft":8}'

{
  "success": true,
  "tool": "fence-calculator",
  "result": {
    "length": 100,
    "unit": "ft",
    "lengthFt": 100,
    "postSpacing_ft": 8,
    "sections": 13,
    "posts": 14,
    "railsPerSection": 3,
    "rails": 39,
    "picketGap_in": 0,
    "concreteBagsPerPost": 1,
    "concreteBags": 14
  }
}

Electrical & Science

POST/api/v1/tools/ohms-law-calculator1 credit/call

Ohm's Law Calculator

Solve Ohm's law and power: given any TWO of voltage (V), current (I), resistance (R), and power (P), computes the other two using V=IxR, P=VxI, P=I^2xR, and P=V^2/R (algebraically equivalent — whichever pair is given determines a unique circuit). You may give 3 or all 4 values; the extras are cross-checked against the pair used and rejected if they disagree. Rejects fewer than two known values and any division-by-zero combination (e.g. voltage with zero current). Estimate only — always verify with a meter before relying on a live circuit.

Parameters

NameTypeRequiredDescription
voltagenumberNoVoltage in volts (V).
currentnumberNoCurrent in amps (A).
resistancenumberNoResistance in ohms.
powernumberNoPower in watts (W).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/ohms-law-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"voltage":12,"current":2}'

{
  "success": true,
  "tool": "ohms-law-calculator",
  "result": {
    "voltage": 12,
    "current": 2,
    "resistance": 6,
    "power": 24,
    "given": [
      "voltage",
      "current"
    ],
    "solved": [
      "resistance",
      "power"
    ]
  }
}
POST/api/v1/tools/voltage-drop-calculator1 credit/call

Voltage Drop Calculator

Calculate voltage drop across a copper or aluminum conductor run. Single-phase: Vdrop = 2 x L x I x R_per_1000ft / 1000 (L = ONE-WAY length in feet; the "2x" accounts for the round trip out and back). Three-phase: Vdrop = sqrt(3) x L x I x R_per_1000ft / 1000 (no round-trip factor). R_per_1000ft comes from the standard AWG wire-resistance table at 20C (12 AWG copper = 1.588 ohm/1000ft); aluminum resistance = copper resistance x 1.64 (a commonly-used aluminum-vs-copper resistivity approximation). Reports the drop in volts, as a percent of source voltage, and the resulting end voltage. Estimate for planning only — verify against NEC (or your local electrical code) and consult a licensed electrician before wiring a real circuit; many codes recommend keeping the drop under 3%.

Parameters

NameTypeRequiredDescription
currentnumberYesLoad current in amps.
length_ftnumberYesONE-WAY conductor run length in feet (the formula itself accounts for the round trip on single-phase).
voltagenumberYesSource voltage in volts.
awgstring (14 | 12 | 10 | 8 | 6 | 4 | 3 | 2 | 1 | 1/0 | 2/0 | 3/0 | 4/0)YesConductor size (American Wire Gauge).
materialstring (copper | aluminum)No (default "copper")Conductor material — determines the resistance-per-1000ft used.
phasestring (single | three)No (default "single")Circuit phase — determines the voltage-drop formula factor (2 for single-phase round-trip, sqrt(3) for three-phase).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/voltage-drop-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"current":20,"length_ft":100,"voltage":120,"awg":"12","material":"copper","phase":"single"}'

{
  "success": true,
  "tool": "voltage-drop-calculator",
  "result": {
    "current": 20,
    "length_ft": 100,
    "voltage": 120,
    "awg": "12",
    "material": "copper",
    "phase": "single",
    "resistanceOhmsPer1000ft": 1.588,
    "voltageDropV": 6.35,
    "percentDrop": 5.29,
    "endVoltageV": 113.65,
    "recommendedMaxPercent": 3,
    "withinRecommendedLimit": false
  }
}
POST/api/v1/tools/resistor-color-code-calculator1 credit/call

Resistor Color Code Calculator

Decode resistor color bands to a resistance ("to-value" mode: value = significant digits x multiplier, e.g. 4-band brown-black-red-gold = (1x10+0) x 100 = 1000ohm +/-5%), or encode a resistance to the nearest standard color bands ("to-color" mode). Supports 4-band (2 digits + multiplier + tolerance), 5-band (3 digits + multiplier + tolerance), and 6-band (5-band + temperature coefficient). Digit colors black..white = 0-9; multiplier black..white = x10^0..10^9, gold = x0.1, silver = x0.01; tolerance brown=1%, red=2%, green=0.5%, blue=0.25%, violet=0.1%, gray=0.05%, gold=5%, silver=10% (omitted = the standard "no band" +/-20%); 6-band temperature coefficient (ppm/K, IEC 60062): black=250, brown=100, red=50, orange=15, yellow=25, green=20, blue=10, violet=5, gray=1. Estimate only — always verify a resistor with a meter before relying on it in a circuit.

Parameters

NameTypeRequiredDescription
modestring (to-value | to-color)YesDecode bands to a value ("to-value") or encode a value to the nearest bands ("to-color").
bandsstring (4 | 5 | 6)YesNumber of color bands.
digit1string (black | brown | red | orange | yellow | green | blue | violet | gray | white)No"to-value" mode: first significant-digit band color.
digit2string (black | brown | red | orange | yellow | green | blue | violet | gray | white)No"to-value" mode: second significant-digit band color.
digit3string (black | brown | red | orange | yellow | green | blue | violet | gray | white)No"to-value" mode: third significant-digit band color (5-band and 6-band only).
multiplierstring (black | brown | red | orange | yellow | green | blue | violet | gray | white | gold | silver)No"to-value" mode: multiplier band color.
tolerancestring (brown | red | green | blue | violet | gray | gold | silver)No"to-value" mode: tolerance band color; omit for the standard "no band" +/-20%.
tempcostring (black | brown | red | orange | yellow | green | blue | violet | gray)No"to-value" mode, 6-band only: temperature-coefficient band color.
resistancenumberNo"to-color" mode: resistance in ohms to encode.
toleranceInputnumberNo (default 5)"to-color" mode: desired tolerance percent; mapped to the nearest standard tolerance color.
tempcoInputnumberNo (default 100)"to-color" mode, 6-band only: desired temperature coefficient in ppm/K; mapped to the nearest standard tempco color.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/resistor-color-code-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"mode":"to-value","bands":"4","digit1":"brown","digit2":"black","multiplier":"red","tolerance":"gold"}'

{
  "success": true,
  "tool": "resistor-color-code-calculator",
  "result": {
    "mode": "to-value",
    "bands": "4",
    "digit1": "brown",
    "digit2": "black",
    "multiplier": "red",
    "tolerance": "gold",
    "resistanceOhms": 1000,
    "resistanceDisplay": "1kΩ",
    "tolerancePercent": 5,
    "minOhms": 950,
    "maxOhms": 1050
  }
}
POST/api/v1/tools/electricity-cost-calculator1 credit/call

Electricity Cost Calculator

Calculate electricity cost from power draw and usage time: kWh = watts x hours / 1000; cost = kWh x rate per kWh, scaled to a day, a month (daysPerMonth, default 30), and a year (365 days). Power may be given in watts or kilowatts via "powerUnit".

Parameters

NameTypeRequiredDescription
powernumberYesPower draw of the device.
powerUnitstring (W | kW)No (default "W")Unit "power" is given in.
hoursPerDaynumberYesHours the device runs per day.
ratePerKWhnumberYesElectricity rate, in dollars per kWh.
daysPerMonthnumberNo (default 30)Days per month the usage pattern applies (for the monthly figure).

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/electricity-cost-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"power":100,"powerUnit":"W","hoursPerDay":5,"ratePerKWh":0.15,"daysPerMonth":30}'

{
  "success": true,
  "tool": "electricity-cost-calculator",
  "result": {
    "power": 100,
    "powerUnit": "W",
    "powerW": 100,
    "hoursPerDay": 5,
    "ratePerKWh": 0.15,
    "kWhPerDay": 0.5,
    "costPerDay": 0.075,
    "daysPerMonth": 30,
    "kWhPerMonth": 15,
    "costPerMonth": 2.25,
    "kWhPerYear": 182.5,
    "costPerYear": 27.375
  }
}
POST/api/v1/tools/wire-size-calculator1 credit/call

Wire Size Calculator

Recommend the smallest standard AWG conductor (14 through 4/0) that satisfies BOTH ampacity (from a NEC Table 310.16-style 60C column ampacity table — copper: 14=15A, 12=20A, 10=30A, 8=40A, 6=55A, 4=70A, 3=85A, 2=95A, 1=110A, 1/0=125A, 2/0=145A, 3/0=165A, 4/0=195A; aluminum: 12=15A, 10=25A, 8=30A, 6=40A, 4=55A, 3=65A, 2=75A, 1=85A, 1/0=100A, 2/0=115A, 3/0=130A, 4/0=150A) AND a maximum voltage-drop percent (default 3%, a commonly-recommended target) — using the SAME formula as voltage-drop-calculator (2 x L x I x R_per_1000ft / 1000 single-phase, sqrt(3) x L x I x R_per_1000ft / 1000 three-phase, against the standard AWG resistance table). Iterates from the smallest gauge upward and returns the first size that clears both checks. Estimate for planning only — verify against NEC (or your local electrical code) and consult a licensed electrician before wiring a real circuit.

Parameters

NameTypeRequiredDescription
currentnumberYesLoad current in amps.
length_ftnumberYesONE-WAY conductor run length in feet.
voltagenumberYesSource voltage in volts.
materialstring (copper | aluminum)No (default "copper")Conductor material.
phasestring (single | three)No (default "single")Circuit phase.
maxVoltageDropPercentnumberNo (default 3)Maximum acceptable voltage drop, as a percent of source voltage.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/wire-size-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"current":20,"length_ft":100,"voltage":120,"material":"copper","phase":"single","maxVoltageDropPercent":3}'

{
  "success": true,
  "tool": "wire-size-calculator",
  "result": {
    "current": 20,
    "length_ft": 100,
    "voltage": 120,
    "material": "copper",
    "phase": "single",
    "maxVoltageDropPercent": 3,
    "recommendedAwg": "8",
    "ampacityA": 40,
    "resistanceOhmsPer1000ft": 0.628,
    "voltageDropV": 2.51,
    "percentDrop": 2.09,
    "meetsAmpacity": true,
    "meetsVoltageDropTarget": true
  }
}
POST/api/v1/tools/btu-calculator1 credit/call

BTU Calculator

Estimate room cooling load in BTU/h ("room" mode: BTU/h = area(sq ft) x btuPerSqFt, a rule-of-thumb factor that defaults to 20 BTU/h per sq ft for cooling — actual sizing varies with ceiling height, insulation, climate, and sun exposure, so this is a rough estimate, not a substitute for a professional Manual J load calculation; adds 600 BTU/h for each occupant beyond the first two), or convert between BTU/h and watts ("convert" mode: 1 BTU/h = 0.29307107 W exactly).

Parameters

NameTypeRequiredDescription
modestring (room | convert)YesEstimate a room's BTU/h ("room") or convert BTU/h<->watts ("convert").
areanumberNo"room" mode: room floor area.
areaUnitstring (sqft | sqm)No (default "sqft")"room" mode: unit "area" is given in.
btuPerSqFtnumberNo (default 20)"room" mode: BTU/h-per-square-foot rule-of-thumb factor.
occupantsnumberNo (default 0)"room" mode: number of regular occupants; adds 600 BTU/h for each beyond the first two.
directionstring (btu-to-watts | watts-to-btu)No"convert" mode: conversion direction.
valuenumberNo"convert" mode: the value to convert (BTU/h or watts, per "direction").

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/btu-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"mode":"room","area":300,"areaUnit":"sqft","btuPerSqFt":20}'

{
  "success": true,
  "tool": "btu-calculator",
  "result": {
    "mode": "room",
    "area": 300,
    "areaUnit": "sqft",
    "areaSqFt": 300,
    "btuPerSqFt": 20,
    "occupants": 0,
    "occupantAdjustmentBtu": 0,
    "estimatedBtu": 6000
  }
}
POST/api/v1/tools/density-calculator1 credit/call

Density Calculator

Solve density (rho = mass / volume) for whichever of density, mass, or volume is missing, given the other two — density_g_cm3 = mass_g / volume_cm3. Provide any two; the third is computed (give all three and they are cross-checked for consistency). Density is also reported in kg/m^3 (1 g/cm^3 = 1000 kg/m^3). A zero volume (dividing by zero) is rejected, as is fewer than two known values.

Parameters

NameTypeRequiredDescription
density_g_cm3numberNoDensity in grams per cubic centimeter.
mass_gnumberNoMass in grams.
volume_cm3numberNoVolume in cubic centimeters.

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/density-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"mass_g":100,"volume_cm3":50}'

{
  "success": true,
  "tool": "density-calculator",
  "result": {
    "density_g_cm3": 2,
    "mass_g": 100,
    "volume_cm3": 50,
    "density_kg_m3": 2000,
    "given": [
      "mass_g",
      "volume_cm3"
    ],
    "solved": [
      "density_g_cm3"
    ]
  }
}
POST/api/v1/tools/speed-distance-time-calculator1 credit/call

Speed Distance Time Calculator

Solve speed, distance, or time for whichever is missing, given the other two — speed = distance / time. Provide any two; the third is computed (give all three and they are cross-checked for consistency). Distance may be given in miles, kilometers, or meters; time in hours, minutes, or seconds; speed in mph, km/h, or m/s — every value is converted through a common internal unit (miles, hours, mph) so any combination of units works together. A zero time (dividing by zero) is rejected, as is fewer than two known values.

Parameters

NameTypeRequiredDescription
distancenumberNoDistance covered.
distanceUnitstring (mi | km | m)No (default "mi")Unit for "distance".
timenumberNoTime elapsed.
timeUnitstring (h | min | s)No (default "h")Unit for "time".
speednumberNoSpeed.
speedUnitstring (mph | kmh | ms)No (default "mph")Unit for "speed".

Example

curl -X POST https://freeconvertingtools.com/api/v1/tools/speed-distance-time-calculator \
  -H "Authorization: Bearer fct_your_key" \
  -H "Content-Type: application/json" \
  -d '{"distance":100,"distanceUnit":"mi","time":2,"timeUnit":"h"}'

{
  "success": true,
  "tool": "speed-distance-time-calculator",
  "result": {
    "distance": 100,
    "distanceUnit": "mi",
    "time": 2,
    "timeUnit": "h",
    "speed": 50,
    "speedUnit": "mph",
    "given": [
      "distance",
      "time"
    ],
    "solved": [
      "speed"
    ]
  }
}

Ready to Get Started?

Create an API key and start calling live endpoints in minutes.

Get API Key Browse Tools