Browse Docs
On This Page

Endpoint: List Compressors

Method + paths

  • GET /compress/compressors
  • GET /compress/compressors/{filter}{filter} accepts a format extension (e.g. jpg, pdf) or a category name (e.g. images, documents)
  • GET /compress/compressors/from/{format}
  • GET /compress/compressors/to/{format}

Auth

Requires X-Fast-Api-Key header.

Query params

  • formats (optional): comma-separated formats (e.g. jpg,png,pdf)
  • category (optional): compressor category (e.g. images, documents)

Response

200 OK with GetCompressorsResponse.

Example response (trimmed)

{
  "compressors": [
    {
      "job": "image.jpg-compress",
      "category": "images",
      "costing": {
        "strategy": "PerMegabyte",
        "baseCost": 1,
        "increment": 40,
        "incrementUnit": "mb",
        "displaySuffix": "per 40 MB"
      },
      "endpoint": "/api/compress",
      "inputFormats": ["jpg", "jpeg"],
      "outputFormats": ["jpg"],
      "maxFileSizeBytes": 1073741824,
      "maxConcurrentJobs": 6
    },
    {
      "job": "document.pdf-compress",
      "category": "documents",
      "costing": {
        "strategy": "PerMegabyte",
        "baseCost": 1,
        "increment": 40,
        "incrementUnit": "mb",
        "displaySuffix": "per 40 MB"
      },
      "endpoint": "/api/compress",
      "inputFormats": ["pdf"],
      "outputFormats": ["pdf"],
      "maxFileSizeBytes": 1073741824,
      "maxConcurrentJobs": 4
    }
  ],
  "sourceFormatTo": {
    "jpg": [
      {
        "sourceFormat": "jpg",
        "targetFormat": "jpg",
        "job": "image.jpg-compress",
        "endpoint": "/api/compress",
        "category": "images",
        "costing": {
          "strategy": "PerMegabyte",
          "baseCost": 1,
          "increment": 40,
          "incrementUnit": "mb",
          "displaySuffix": "per 40 MB"
        },
        "maxFileSizeBytes": 1073741824,
        "maxConcurrentJobs": 6
      }
    ]
  },
  "maxFileSizeBytes": 1073741824,
  "maxConcurrentJobs": 6,
  "maxBatchFiles": 200
}

Examples

cURL
# all compressors
curl -sS "https://api.tools.fast/compress/compressors" \
  -H "X-Fast-Api-Key: $API_KEY"

# filtered compressors
curl -sS "https://api.tools.fast/compress/compressors?formats=jpg,png&category=images" \
  -H "X-Fast-Api-Key: $API_KEY"

# route filter variant (bidirectional — matches input or output)
curl -sS "https://api.tools.fast/compress/compressors/jpg" \
  -H "X-Fast-Api-Key: $API_KEY"

# directional lookup
curl -sS "https://api.tools.fast/compress/compressors/from/jpg" \
  -H "X-Fast-Api-Key: $API_KEY"
curl -sS "https://api.tools.fast/compress/compressors/to/pdf" \
  -H "X-Fast-Api-Key: $API_KEY"

# category filter
curl -sS "https://api.tools.fast/compress/compressors/images" \
  -H "X-Fast-Api-Key: $API_KEY"
curl -sS "https://api.tools.fast/compress/compressors/documents" \
  -H "X-Fast-Api-Key: $API_KEY"
PowerShell
# all compressors
Invoke-RestMethod "https://api.tools.fast/compress/compressors" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }

# filtered compressors
Invoke-RestMethod "https://api.tools.fast/compress/compressors?formats=jpg,png&category=images" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }

# route filter variant (bidirectional — matches input or output)
Invoke-RestMethod "https://api.tools.fast/compress/compressors/jpg" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }

# directional lookup
Invoke-RestMethod "https://api.tools.fast/compress/compressors/from/jpg" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }
Invoke-RestMethod "https://api.tools.fast/compress/compressors/to/pdf" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }

# category filter
Invoke-RestMethod "https://api.tools.fast/compress/compressors/images" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }
Invoke-RestMethod "https://api.tools.fast/compress/compressors/documents" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }

Format Lookup

Use the route filter variant to look up what compressors are available for a given file extension. The sourceFormatTo field in the response maps each source format to its available output options with costing details.

cURL
# What compressors handle JPG files?
curl -sS "https://api.tools.fast/compress/compressors/jpg" \
  -H "X-Fast-Api-Key: $API_KEY"

# What compressors handle PDF files?
curl -sS "https://api.tools.fast/compress/compressors/pdf" \
  -H "X-Fast-Api-Key: $API_KEY"

# What image compressors are available?
curl -sS "https://api.tools.fast/compress/compressors/images" \
  -H "X-Fast-Api-Key: $API_KEY"
PowerShell
# What compressors handle JPG files?
Invoke-RestMethod "https://api.tools.fast/compress/compressors/jpg" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }

# What compressors handle PDF files?
Invoke-RestMethod "https://api.tools.fast/compress/compressors/pdf" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }

# What image compressors are available?
Invoke-RestMethod "https://api.tools.fast/compress/compressors/images" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }

Directional Format Lookup

Use the /from/{format} and /to/{format} variants to look up compressors by direction:

  • /compress/compressors/from/{format} — compressors that accept this format as input ("I have a JPG, can it be compressed?")
  • /compress/compressors/to/{format} — compressors that produce this format as output ("I need a compressed PDF, what compressors output PDF?")

Both return the same GetCompressorsResponse shape. Compare with the bidirectional /compress/compressors/{filter} variant which matches on both input and output formats.

cURL
# What accepts JPG as input?
curl -sS "https://api.tools.fast/compress/compressors/from/jpg" \
  -H "X-Fast-Api-Key: $API_KEY"

# What outputs PDF?
curl -sS "https://api.tools.fast/compress/compressors/to/pdf" \
  -H "X-Fast-Api-Key: $API_KEY"

# Combine with category filter
curl -sS "https://api.tools.fast/compress/compressors/from/docx?category=documents" \
  -H "X-Fast-Api-Key: $API_KEY"
PowerShell
# What accepts JPG as input?
Invoke-RestMethod "https://api.tools.fast/compress/compressors/from/jpg" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }

# What outputs PDF?
Invoke-RestMethod "https://api.tools.fast/compress/compressors/to/pdf" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }

# Combine with category filter
Invoke-RestMethod "https://api.tools.fast/compress/compressors/from/docx?category=documents" `
  -Headers @{ "X-Fast-Api-Key" = $env:API_KEY }

Legacy endpoint

The original GET /compress endpoint is still available for backward compatibility. It returns the minimal shape (jobId, category, pool, formats with leading dots). New integrations should use GET /compress/compressors for rich metadata including costing, limits, and the format graph.

Notes

  • All submissions go through POST /compress — the server resolves the correct compressor from the file extension.
  • inputFormats and outputFormats use dotless notation (e.g., jpg not .jpg).
  • The sourceFormatTo graph maps each input format to its possible output formats with per-compressor costing and limits.
  • Requires X-Fast-Api-Key — limits are personalized to your plan.
Copied.