For AI Agents
This page provides machine-readable information about the Tools.FAST API network for AI agents, coding assistants, and automated systems.
What is Tools.FAST?
Tools.FAST is a network of file-processing APIs. Each tool handles one category of file operations. All tools share the same API key, credit wallet, and authentication model.
Available tools
Base URL: https://api.tools.fast
| Tool | Path prefix | Purpose |
|---|---|---|
| Convert.FAST | /convert |
File format conversion (200+ pairs: images, documents, audio, video, fonts, ebooks, archives) |
| Compress.FAST | /compress |
File compression (images, PDFs, Word, PowerPoint) |
Authentication
All requests use the X-Fast-Api-Key header:
X-Fast-Api-Key: fast_prod_your_key_here
Get a key at https://accounts.tools.fast/account/login under API Keys.
Common workflow: submit, poll, download
Every tool follows the same 3-step async pattern:
Bash
# 1. Submit a file -- returns a job ID
JOB_ID=$(curl -sS -X POST "https://api.tools.fast/convert" \
-H "X-Fast-Api-Key: $API_KEY" \
-F "file=@input.heic" \
-F "targetFormat=jpg" | jq -r '.id')
# 2. Poll until status is "Succeeded", "Failed", or "Canceled"
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')
[ "$STATUS" = "Succeeded" ] && break
[ "$STATUS" = "Failed" ] || [ "$STATUS" = "Canceled" ] && exit 1
sleep 1
done
# 3. Download the result (output.fileName has the correct filename)
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}"
PowerShell
# 1. Submit a file -- returns a job ID
$job = Invoke-RestMethod -Method Post "https://api.tools.fast/convert" `
-Headers @{ "X-Fast-Api-Key" = $env:API_KEY } `
-Form @{ file = Get-Item "input.heic"; targetFormat = "jpg" }
# 2. Poll until status is "Succeeded", "Failed", or "Canceled"
do {
$status = Invoke-RestMethod "https://api.tools.fast/convert/job/$($job.id)" `
-Headers @{ "X-Fast-Api-Key" = $env:API_KEY }
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 (output.fileName has the correct filename)
Invoke-RestMethod "https://api.tools.fast/convert/job/$($job.id)/download" `
-Headers @{ "X-Fast-Api-Key" = $env:API_KEY } -OutFile "./$($status.output.fileName)"
Job status values
| Status | Meaning |
|---|---|
Queued |
Job is waiting to be processed |
Processing |
Job is actively being processed |
Succeeded |
Job completed successfully; output ready for download |
Failed |
Job failed; credits are refunded automatically |
Canceled |
Job was canceled by the user |
Convert.FAST quick reference
Endpoints
| Method | Path | Description |
|---|---|---|
POST /convert |
Submit a file for conversion | Requires file (multipart) and targetFormat |
GET /convert/job/{id} |
Get job status | Returns status, progress, error details |
GET /convert/job/{id}/download |
Download converted file | Only available when status is Succeeded |
GET /convert/conversions |
List all supported format pairs | Requires API key |
GET /convert/schema |
Get options schema for a format pair | Requires API key |
GET /convert/estimate/{from}/{to} |
Estimate credit cost | Returns estimated credit cost for a conversion pair |
GET /convert/entitlements/me |
Check credit balance | Requires API key |
CLI wrapper
Convert.FAST provides wrapper scripts that handle submit + poll + download in one command:
Bash
curl -fsSL https://convert.fast/convert.fast.sh -o convert.fast.sh && chmod +x convert.fast.sh
export TOOLS_FAST_API_KEY="fast_prod_your_key_here"
./convert.fast.sh photo.heic jpg # basic conversion
./convert.fast.sh document.pdf docx # PDF to Word
./convert.fast.sh scan.pdf docx out.docx '{"ocr":{"enabled":true}}' # with options
PowerShell
Invoke-RestMethod "https://convert.fast/convert.fast.ps1" -OutFile convert.fast.ps1
$env:TOOLS_FAST_API_KEY = "fast_prod_your_key_here"
./convert.fast.ps1 photo.heic jpg # basic conversion
./convert.fast.ps1 document.pdf docx # PDF to Word
./convert.fast.ps1 scan.pdf docx out.docx '{"ocr":{"enabled":true}}' # with options
Skill file for AI agents
For a comprehensive guide designed specifically for AI agents, download the Convert.FAST skill file:
Bash
curl -fsSL https://convert.fast/SKILL.md -o SKILL.md
curl -fsSL https://convert.fast/api/docs.md -o reference/docs.md
curl -fsSL https://convert.fast/convert.fast.sh -o convert.fast.sh && chmod +x convert.fast.sh
PowerShell
Invoke-RestMethod "https://convert.fast/SKILL.md" -OutFile SKILL.md
Invoke-RestMethod "https://convert.fast/api/docs.md" -OutFile reference/docs.md
Invoke-RestMethod "https://convert.fast/convert.fast.ps1" -OutFile convert.fast.ps1
SKILL.md contains setup instructions, API flow, discovery, options, and error handling -- everything an AI agent needs to use Convert.FAST autonomously.
Compress.FAST quick reference
Endpoints
| Method | Path | Description |
|---|---|---|
POST /compress/{format} |
Submit a file for compression | Requires file (multipart); format is jpg, png, gif, pdf, etc. |
GET /compress/job/{id} |
Get job status | Returns status, progress, compression ratio |
GET /compress/job/{id}/download |
Download compressed file | Only available when status is Succeeded |
GET /compress |
List supported compression types | Requires API key |
GET /compress/entitlements/me |
Check credit balance | Requires API key |
Error handling
All errors return JSON with error and detail fields:
{
"error": "entitlements.insufficient_credits",
"detail": "Insufficient credits. Required: 5, Available: 2"
}
Key error codes:
| Code | Status | Meaning |
|---|---|---|
request.invalid_content_type |
400 | Use multipart/form-data |
request.no_files |
400 | No file attached |
request.file_too_large |
413 | File exceeds size limit |
api_key.invalid_or_ip_not_allowed |
401 | Bad API key |
entitlements.insufficient_credits |
402 | Not enough credits |
usage.daily_limit_exceeded |
402 | Free/guest daily cap hit |
jobs.not_found |
404 | Invalid job ID |
jobs.not_ready |
409 | Job still processing |
jobs.expired |
410 | Output cleaned up |
rate_limited |
429 | Too many requests |
queue.limit_exceeded |
429 | Too many queued jobs |
Credit costs
Most operations cost 1 credit. Multi-page documents cost 1 credit per page. Check specific costs with the estimation endpoint or each tool's documentation.
Tier limits
| Tier | Max file | Max batch | Parallel jobs | Credits |
|---|---|---|---|---|
| Guest | 50 MB | 50 files | 3 | 100/day |
| Free | 50 MB | 50 files | 3 | 100/day + 500 signup bonus |
| Pro | 1 GB | 1,000 files | 6 | 12,000/month |