API Documentation

Convert any document to clean Markdown via a simple REST API. No signup required — 3 free conversions per day.

Base URL

https://iguana-docs.fly.dev

POST/api/convert/

Upload a document for conversion to Markdown. Files are processed asynchronously — the response returns a job_id to poll for results.

Supported Formats

PDFDOCXPPTXXLSXXLSHTMLCSVJSONXMLEPUBImagesAudio

Tier Limits

Free
5MB max, 3/day
Start ($3.99/mo)
15MB max, 75/month
Pro ($9.99/mo)
50MB max, 500/month

Example

curl -X POST https://iguana-docs.fly.dev/api/convert/ \
  -F "file=@document.pdf"

Response

{
  "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "pending",
  "message": "Document queued for conversion"
}

GET/api/convert/job/{job_id}

Poll for conversion status. When status is "completed", the result.markdown field contains the converted content.

Status Values

pendingQueued, waiting to be processed
processingCurrently being converted
completedConversion complete — check result field
failedConversion failed — check error field

Example

curl https://iguana-docs.fly.dev/api/convert/job/{job_id}

Response (completed)

{
  "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "completed",
  "result": {
    "markdown": "# Document Title\n\nConverted content...",
    "filename": "document.pdf",
    "file_format": "pdf",
    "file_size": 1048576
  }
}

GET/api/convert/stats

Check your current usage and rate limit status. For anonymous users, limits are tracked by IP.

Example

curl https://iguana-docs.fly.dev/api/convert/stats

Response

{
  "tier": "free",
  "rate_limit": {
    "total_allowed": 3,
    "used": 1,
    "remaining": 2,
    "time_window": "24 hours"
  },
  "limits": {
    "max_file_size_mb": 5
  }
}

Error Codes

413
File Too Large
File exceeds tier limit (5MB free, 15MB start, 50MB pro)
429
Rate Limit Exceeded
Daily (free) or monthly (paid) conversion limit reached
404
Job Not Found
Invalid job_id or job has expired
500
Conversion Failed
Internal error during processing — retry or try a different file

Full Workflow

# 1. Upload document
curl -X POST https://iguana-docs.fly.dev/api/convert/ \
  -F "file=@report.pdf"
# → { "job_id": "abc123", "status": "pending" }

# 2. Poll for result (repeat until status != "pending")
curl https://iguana-docs.fly.dev/api/convert/job/abc123
# → { "status": "completed", "result": { "markdown": "..." } }

# 3. Check remaining quota
curl https://iguana-docs.fly.dev/api/convert/stats

Ready to start converting?

3 free conversions per day. No signup required.

Try It Now