Browse Docs
On This Page

Quick Start

Make your first API call in under two minutes.

Step 1: Get an API key

  1. Sign in at accounts.tools.fast.
  2. Go to API Keys.
  3. Click Create API Key -- the key starts with fast_prod_.
  4. Copy and save it. The full key is only shown once.
export API_KEY="fast_prod_your_key_here"

Free accounts get 500 bonus credits at signup -- enough for hundreds of conversions.

Step 2: Convert a file

Use Convert.FAST to convert between 200+ format pairs.

cURL
# 1) Submit -- converts HEIC to JPG
JOB_ID=$(curl -sS -X POST "https://api.tools.fast/convert" \
  -H "X-Fast-Api-Key: $API_KEY" \
  -F "file=@photo.heic" \
  -F "targetFormat=jpg" | jq -r '.id')

echo "Job submitted: $JOB_ID"

# 2) Poll until complete
while true; do
  RESPONSE=$(curl -sS "https://api.tools.fast/convert/job/${JOB_ID}" \
    -H "X-Fast-Api-Key: $API_KEY")
  STATUS=$(echo "$RESPONSE" | jq -r '.status')
  echo "Status: $STATUS"
  [ "$STATUS" = "Succeeded" ] && break
  [ "$STATUS" = "Failed" ] || [ "$STATUS" = "Canceled" ] && exit 1
  sleep 1
done

# 3) Download the result
FILENAME=$(echo "$RESPONSE" | jq -r '.output.fileName')
curl -sS "https://api.tools.fast/convert/job/${JOB_ID}/download" \
  -H "X-Fast-Api-Key: $API_KEY" -o "./${FILENAME}"

echo "Saved: ${FILENAME}"
PowerShell
# 1) Submit -- converts HEIC to JPG
$job = Invoke-RestMethod -Method Post "https://api.tools.fast/convert" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY } `
  -Form @{ file = Get-Item "photo.heic"; targetFormat = "jpg" }

Write-Host "Job submitted: $($job.id)"

# 2) Poll until complete
do {
  $status = Invoke-RestMethod "https://api.tools.fast/convert/job/$($job.id)" `
    -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }
  Write-Host "Status: $($status.status)"
  if ($status.status -in "Failed", "Canceled") { throw "Job $($job.id) $($status.status)" }
  Start-Sleep -Seconds 1
} while ($status.status -ne "Succeeded")

# 3) Download the result
Invoke-RestMethod "https://api.tools.fast/convert/job/$($job.id)/download" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY } -OutFile "./$($status.output.fileName)"

Write-Host "Saved: $($status.output.fileName)"

Even faster: Convert.FAST provides a one-line CLI wrapper:

curl -fsSL https://convert.fast/convert.fast.sh -o convert.fast.sh && chmod +x convert.fast.sh
export TOOLS_FAST_API_KEY="$API_KEY"

./convert.fast.sh photo.heic jpg
./convert.fast.sh document.pdf docx
./convert.fast.sh scan.pdf docx output.docx '{"ocr":{"enabled":true}}'

Step 3: Compress a file

Use Compress.FAST to reduce file sizes.

cURL
# 1) Submit -- compress a PNG
JOB_ID=$(curl -sS -X POST "https://api.tools.fast/compress" \
  -H "X-Fast-Api-Key: $API_KEY" \
  -F "file=@screenshot.png" | jq -r '.id')

echo "Job submitted: $JOB_ID"

# 2) Poll until complete
while true; do
  STATUS=$(curl -sS "https://api.tools.fast/compress/job/${JOB_ID}" \
    -H "X-Fast-Api-Key: $API_KEY" | jq -r '.status')
  echo "Status: $STATUS"
  [ "$STATUS" = "Succeeded" ] && break
  [ "$STATUS" = "Failed" ] || [ "$STATUS" = "Canceled" ] && exit 1
  sleep 1
done

# 3) Download the compressed file
curl -sS "https://api.tools.fast/compress/job/${JOB_ID}/download" \
  -H "X-Fast-Api-Key: $API_KEY" -o screenshot-compressed.png

echo "Saved: screenshot-compressed.png"
PowerShell
# 1) Submit -- compress a PNG
$job = Invoke-RestMethod -Method Post "https://api.tools.fast/compress" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY } `
  -Form @{ file = Get-Item "screenshot.png" }

Write-Host "Job submitted: $($job.id)"

# 2) Poll until complete
do {
  $status = Invoke-RestMethod "https://api.tools.fast/compress/job/$($job.id)" `
    -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }
  Write-Host "Status: $($status.status)"
  if ($status.status -in "Failed", "Canceled") { throw "Job $($job.id) $($status.status)" }
  Start-Sleep -Seconds 1
} while ($status.status -ne "Succeeded")

# 3) Download the compressed file
Invoke-RestMethod "https://api.tools.fast/compress/job/$($job.id)/download" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY } -OutFile "screenshot-compressed.png"

Write-Host "Saved: screenshot-compressed.png"

Step 4: Check your credits

Your credit balance is shared across the entire Tools.FAST network. Check it from any tool:

cURL
curl -sS "https://api.tools.fast/convert/entitlements/me" \
  -H "X-Fast-Api-Key: $API_KEY" | jq
PowerShell
Invoke-RestMethod "https://api.tools.fast/convert/entitlements/me" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }
{
  "planId": "free",
  "planName": "Free",
  "tier": "free",
  "totalCredits": 495,
  "dailyLimit": 100,
  "dailyUsed": 5,
  "resetDate": "2026-02-21"
}

What next?

Copied.