API Documentation

Welcome to the Tool Cloud API Documentation! On this page you will find information about our endpoints and authenticating.

Getting Started

  1. Choose a Tool: Find the endpoint below
  2. Add your parameters: Add your files and parameters
  3. Authenticate: Authenticate with your API key
  4. Process: Call the endpoint
  5. Download: Receive your result

Image Tools

Resize, compress, convert, crop, and apply filters to images. Support for all major formats.

Video Tools

Convert video formats, compress, trim, add watermarks, extract audio, and more.

Audio Tools

Convert audio formats, compress, trim, adjust speed, remove noise, and apply effects.

Text Tools

Format text, count words, extract keywords, convert case, and analyze content.

Document Tools

Convert between document formats including PDF, DOCX, TXT, and more.

General Tools

QR codes, Base64 encoding, URL tools, IP lookup, and various utilities.

API Access

Integrate Tool Cloud into your applications with our REST API. Access over 200 file conversion and processing tools programmatically.

Getting Your API Key

  1. Create an account and log in
  2. Navigate to Settings
  3. Click "Create New Key" in the API Keys section
  4. Give your key a descriptive name
  5. Copy and securely store your API key (shown only once!)
⚠️ Security Important: Keep your API keys secure. Never share them publicly, commit them to version control, or expose them in client-side code. Store them as environment variables or in secure key management systems.

Authentication

All API requests must include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Base URL

All API endpoints are relative to:

https://www.tool-cloud.com/

Making API Requests

Tools are organized by category. The general endpoint structure is:

POST /{category}/{tool_slug}/

Asynchronous Processing Pattern

1. Submit Processing Request

curl -X POST https://www.tool-cloud.com/image/resize/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "[email protected]" \ -F "width=800" \ -F "height=600" # Immediate response: {"success": true, "task_id": "abcd-1234-efgh-5678"}

2. Poll for Completion

curl -X GET "https://www.tool-cloud.com/task/abcd-1234-efgh-5678/" \ -H "Authorization: Bearer YOUR_API_KEY" # When complete: {"status": "completed", "result": {"download_url": "...", "filename": "resized.jpg"}}

Task Status Values

  • pending - Task queued, waiting to start
  • running - Task currently processing
  • completed - Task finished successfully
  • failed - Task failed with error

Complete Python Example

import requests
import time

def process_file(endpoint, file_path, **params):
    """Submit async request and poll for results"""

    # Submit request
    headers = {'Authorization': 'Bearer YOUR_API_KEY'}
    files = {'file': open(file_path, 'rb')}
    data = {k: str(v) for k, v in params.items()} # Convert params to strings

    response = requests.post(endpoint, headers=headers, files=files, data=data)
    result = response.json()

    if not result['success']:
        raise Exception(f"Submit failed: {result.get('error', 'Unknown error')}")

    task_id = result['task_id']
    print(f"Task {task_id} submitted")

    # Poll for completion
    while True:
        task_url = f"https://www.tool-cloud.com/task/{task_id}/"
        poll = requests.get(task_url, headers=headers)
        status = poll.json()

        if status['status'] == 'completed':
            return status['result']
        elif status['status'] == 'failed':
            raise Exception(f"Task failed: {status.get('error', 'Unknown error')}")
        elif status['status'] in ['pending', 'running']:             progress = status.get('progress', 0)
            print(f"Progress: {progress}% - {status.get('progress_message', '')}")
            time.sleep(3)
        else:
            raise Exception(f"Unexpected status: {status['status']}")

# Usage
result = process_file(
    "https://www.tool-cloud.com/image/resize/",
    "image.jpg",
    width=800,
    height=600
)
print(f"Complete! Download: {result['download_url']}")

Sending a file

import requests

# 1. Define the URL
base = 'https://www.tool-cloud.com'
url = base+ 'YOUR_API_ENDPOINT'

# 2. Open the file in binary mode
file_path = 'tool_4a1785d10f924faa94795248a7145b97_bordered_10px_outside.webp'

# 3. Create the 'files' dictionary.  
#    The key 'file' matches the `name="file"` in your Content-Disposition.
files = {
    'file': (file_path, open(file_path, 'rb'), 'image/webp')
}

# 4. Make the POST request
response = requests.post(url, files=files)

print(response.status_code)
# requests automatically sets the Content-Type header and boundary.
curl -X GET "https://www.tool-cloud.com/task/abcd-1234-efgh-5678/" \ -H "Authorization: Bearer YOUR_API_KEY" # When complete: {"status": "completed", "result": {"download_url": "...", "filename": "resized.jpg"}}

Error Response Format

{ "success": false, "error": "Insufficient credits", "error_code": "INSUFFICIENT_CREDITS", "credits_required": 5, "credits_available": 2 }

Available API Tools

This section is dynamically generated from our tool definitions to provide developers with comprehensive information about all available endpoints.

Loading tools documentation...