F
FreeConvertingTools
Developer Documentation

API Reference

Integrate 200+ conversion and utility tools into your applications with our simple RESTful API.

Get API Key

Create one in your dashboard

Authenticate

Add Bearer token to headers

Make Requests

Call any endpoint below

Go Live

All tools are free to use

Authentication

All API requests require authentication via a Bearer token in the Authorization header. You can generate API keys from your Dashboard.

Authorization: Bearer fct_your_api_key_here

Base URL

https://api.freeconvertingtools.com/v1

Rate Limits & Credits

Each API call consumes credits based on the endpoint. Rate limits are enforced per API key. Exceeding limits returns 429 Too Many Requests.

PlanPriceCreditsRate Limit
Free$0100/day10 req/min
API Starter$9/mo5,000/mo60 req/min
API Pro$29/mo50,000/mo200 req/min
EnterpriseCustomUnlimitedCustom

Endpoints

POST/convert/image2 credits/call

Convert an image between formats (PNG, JPG, WebP, AVIF, GIF, TIFF, BMP) with resize, quality, lossless mode, and metadata control.

Parameters

NameTypeRequiredDescription
fileFileYesThe image file to convert (multipart/form-data)
outputFormatstringYesTarget format: png, jpg, webp, avif, gif, tiff, bmp
qualitynumberNoOutput quality 1-100 (default: 90). For lossy formats (JPG, WebP, AVIF).
widthnumberNoTarget width in pixels (1-10000).
heightnumberNoTarget height in pixels (1-10000).
fitstringNoHow image fits: cover, contain, fill, inside (default), outside.
backgroundstringNoBackground color for transparent areas (hex, default: #ffffff).
losslessbooleanNoLossless mode for WebP/AVIF (default: false).
stripMetadatabooleanNoRemove EXIF/metadata from output (default: false).

Example Request

curl -X POST https://api.freeconvertingtools.com/v1/convert/image \
  -H "Authorization: Bearer fct_your_api_key" \
  -F "file=@photo.png" \
  -F "output_format=webp" \
  -F "quality=85" \
  -o converted.webp

Response

Binary file (the converted image)
POST/convert/text1 credit/call

Convert text/data between formats (JSON, CSV, XML, YAML, Base64, URL encoding).

Parameters

NameTypeRequiredDescription
inputstringYesThe input text to convert
from_formatstringYesSource format: json, csv, xml, yaml, base64, url, markdown, html
to_formatstringYesTarget format: json, csv, xml, yaml, base64, url, markdown, html

Example Request

curl -X POST https://api.freeconvertingtools.com/v1/convert/text \
  -H "Authorization: Bearer fct_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"input": "name,age\nJohn,30", "from_format": "csv", "to_format": "json"}'

Response

{
  "success": true,
  "result": "[{\"name\":\"John\",\"age\":\"30\"}]",
  "credits_used": 1
}
POST/tools/hash1 credit/call

Generate hash digests of text input (MD5, SHA-1, SHA-256, SHA-512).

Parameters

NameTypeRequiredDescription
inputstringYesThe text to hash
algorithmstringNoHash algorithm: md5, sha1, sha256 (default), sha512

Example Request

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

Response

{
  "success": true,
  "hash": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e",
  "algorithm": "sha256",
  "credits_used": 1
}
POST/tools/qr-code1 credit/call

Generate a QR code image from text or URL.

Parameters

NameTypeRequiredDescription
contentstringYesThe text or URL to encode
sizenumberNoOutput size in pixels (default: 300, max: 1000)
formatstringNoOutput format: png (default), svg
colorstringNoForeground color as hex (default: #000000)
backgroundstringNoBackground color as hex (default: #FFFFFF)

Example Request

curl -X POST https://api.freeconvertingtools.com/v1/tools/qr-code \
  -H "Authorization: Bearer fct_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"content": "https://freeconvertingtools.com", "size": 500}' \
  -o qr.png

Response

Binary file (PNG or SVG image)
POST/tools/password1 credit/call

Generate a cryptographically secure password or passphrase.

Parameters

NameTypeRequiredDescription
lengthnumberNoPassword length (default: 16, max: 128)
typestringNoType: password (default), passphrase
uppercasebooleanNoInclude uppercase letters (default: true)
numbersbooleanNoInclude numbers (default: true)
symbolsbooleanNoInclude symbols (default: true)

Example Request

curl -X POST https://api.freeconvertingtools.com/v1/tools/password \
  -H "Authorization: Bearer fct_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"length": 24, "type": "password"}'

Response

{
  "success": true,
  "password": "Xk9#mQ2&vL5@nR8!pW3$jH6",
  "strength": "very_strong",
  "entropy_bits": 157,
  "credits_used": 1
}
POST/tools/text1 credit/call

Transform text with various operations (uppercase, lowercase, titlecase, reverse, base64, URL/HTML encode/decode, slug, count).

Parameters

NameTypeRequiredDescription
textstringYesThe input text to transform
operationstringYesOperation: uppercase, lowercase, titlecase, reverse, base64-encode, base64-decode, url-encode, url-decode, html-encode, html-decode, slug, remove-whitespace, count

Example Request

curl -X POST https://api.freeconvertingtools.com/v1/tools/text \\
  -H "Authorization: Bearer fct_your_api_key" \\
  -H "Content-Type: application/json" \\
  -d '{"text": "Hello World", "operation": "uppercase"}'

Response

{
  "success": true,
  "operation": "uppercase",
  "result": "HELLO WORLD"
}
POST/tools/calculator1 credit/call

Multi-purpose calculator API: BMI, percentage, compound interest, unit conversion, age calculation.

Parameters

NameTypeRequiredDescription
typestringYesCalculator type: bmi, percentage, compound-interest, unit-convert, age
weight_kgnumberNoWeight in kg (for BMI)
height_cmnumberNoHeight in cm (for BMI)
valuenumberNoInput value (for percentage, unit-convert)
principalnumberNoStarting amount (for compound interest)
ratenumberNoAnnual interest rate (for compound interest)
yearsnumberNoNumber of years (for compound interest)
fromstringNoSource unit: km, mi, kg, lb, c, f, m, ft, l, gal
tostringNoTarget unit: same options as from
birthdatestringNoBirthdate YYYY-MM-DD (for age)

Example Request

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

Response

{
  "success": true,
  "type": "bmi",
  "result": { "bmi": 22.86, "category": "Normal" }
}
POST/tools/text-process1 credit/call

Advanced text processing: extract emails/URLs, remove duplicates, sort lines, find/replace, diff, lorem ipsum.

Parameters

NameTypeRequiredDescription
operationstringYesOperation: extract-emails, extract-urls, remove-duplicates, sort-lines, find-replace, diff, lorem-ipsum
textstringNoInput text (required for most operations)
text1stringNoFirst text (for diff)
text2stringNoSecond text (for diff)
findstringNoSearch string (for find-replace)
replacestringNoReplacement string (for find-replace)
paragraphsnumberNoNumber of paragraphs (for lorem-ipsum, default: 3)

Example Request

curl -X POST https://api.freeconvertingtools.com/v1/tools/text-process \\
  -H "Authorization: Bearer fct_your_api_key" \\
  -H "Content-Type: application/json" \\
  -d '{"operation": "extract-emails", "text": "Contact us at hello@example.com or support@test.org"}'

Response

{
  "success": true,
  "operation": "extract-emails",
  "count": 2,
  "results": ["hello@example.com", "support@test.org"]
}
GET/me

Get your account info, current plan, and remaining credits.

Example Request

curl https://api.freeconvertingtools.com/v1/me \
  -H "Authorization: Bearer fct_your_api_key"

Response

{
  "email": "you@example.com",
  "plan": "api_starter",
  "credits_remaining": 4850,
  "credits_used_today": 150,
  "rate_limit_per_minute": 60,
  "keys_count": 2
}

Error Codes

CodeMeaningResolution
400Bad RequestCheck your parameters. A required field may be missing.
401UnauthorizedVerify your API key is correct and active.
403ForbiddenYour plan may not have access to this endpoint.
404Not FoundVerify the endpoint path is correct.
413Payload Too LargeFile exceeds the maximum size limit (50MB).
429Too Many RequestsRate limit exceeded. Wait and retry with exponential backoff.
500Internal Server ErrorServer error. Contact support if it persists.

Ready to Get Started?

Create an API key and start converting files in minutes.

Get API Key Browse Tools