API Endpoints

Tham chiếu đầy đủ cho tất cả Toolify API endpoints

Tổng quan

The Toolify API provides a comprehensive set of endpoints for managing tasks, checking your balance, and listing available services. All endpoints require authentication using your API key.

Base URL: https://api.toolify.io/api/v1

GET /services

List all available services and their pricing information.

Description

Returns a list of all available services on the Toolify platform, including their names, descriptions, and pricing information.

Parameters

No parameters required.

Response

JSON
{
  "success": true,
  "data": [
    {
      "service": "facebook_fanpage_extract_contact",
      "display_name": "Extract Fanpage Contact",
      "description": "Extract contact information from Facebook fanpages",
      "pricing": 30,
      "currency": "coins"
    },
    {
      "service": "domain_check_availability",
      "display_name": "Check Domain Availability",
      "description": "Check if a domain name is available for registration",
      "pricing": 30,
      "currency": "coins"
    }
  ],
  "meta": {
    "total": 2,
    "currency": "coins"
  }
}

Examples

curl -H "X-API-Key: your_api_key_here" \
  https://api.toolify.io/api/v1/services
const axios = require('axios');

const response = await axios.get('https://api.toolify.io/api/v1/services', {
  headers: {
    'X-API-Key': 'your_api_key_here'
  }
});

console.log(response.data);
import requests

headers = {
    'X-API-Key': 'your_api_key_here'
}

response = requests.get(
    'https://api.toolify.io/api/v1/services',
    headers=headers
)

print(response.json())

GET /balance

Get your current account balance.

Description

Returns your current account balance in coins. This endpoint is useful for checking if you have enough coins to perform a task.

Parameters

No parameters required.

Response

JSON
{
  "success": true,
  "data": {
    "balance": 1500,
    "currency": "coins"
  }
}

Examples

curl -H "X-API-Key: your_api_key_here" \
  https://api.toolify.io/api/v1/balance
const axios = require('axios');

const response = await axios.get('https://api.toolify.io/api/v1/balance', {
  headers: {
    'X-API-Key': 'your_api_key_here'
  }
});

console.log(response.data);
import requests

headers = {
    'X-API-Key': 'your_api_key_here'
}

response = requests.get(
    'https://api.toolify.io/api/v1/balance',
    headers=headers
)

print(response.json())

POST /tasks

Create a new task to process items.

Description

Creates a new task with the specified service and items. The cost is calculated automatically based on the service pricing and number of items.

Request Body Parameters

  • service (required, string) - Service identifier (e.g., "domain_check_availability")
  • items (required, array) - Array of items to process

Response

JSON
{
  "success": true,
  "message": "Task created successfully",
  "data": {
    "id": 123,
    "service": "domain_check_availability",
    "status": "pending",
    "total_items": 2,
    "cost": 60,
    "created_at": "2025-01-15T10:28:00Z",
    "completed_at": null
  }
}

Examples

curl -X POST \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "service": "domain_check_availability",
    "items": ["example.com", "test.com"]
  }' \
  https://api.toolify.io/api/v1/tasks
const axios = require('axios');

const data = {
  service: 'domain_check_availability',
  items: ['example.com', 'test.com']
};

const response = await axios.post(
  'https://api.toolify.io/api/v1/tasks',
  data,
  {
    headers: {
      'X-API-Key': 'your_api_key_here',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'X-API-Key': 'your_api_key_here',
    'Content-Type': 'application/json'
}

data = {
    'service': 'domain_check_availability',
    'items': ['example.com', 'test.com']
}

response = requests.post(
    'https://api.toolify.io/api/v1/tasks',
    headers=headers,
    json=data
)

print(response.json())

GET /tasks

List your tasks with pagination.

Description

Returns a paginated list of all your tasks, including their status and completion information.

Query Parameters

  • page (optional, integer) - Page number (default: 1)
  • per_page (optional, integer) - Items per page (default: 25, max: 100)

Response

JSON
{
  "success": true,
  "data": [
    {
      "id": 123,
      "service": "domain_check_availability",
      "status": "completed",
      "total_items": 2,
      "cost": 60,
      "created_at": "2025-01-15T10:28:00Z",
      "completed_at": "2025-01-15T10:30:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 2,
    "total_count": 50,
    "per_page": 25
  }
}

Examples

curl -H "X-API-Key: your_api_key_here" \
  "https://api.toolify.io/api/v1/tasks?page=1&per_page=25"
const axios = require('axios');

const response = await axios.get('https://api.toolify.io/api/v1/tasks', {
  params: {
    page: 1,
    per_page: 25
  },
  headers: {
    'X-API-Key': 'your_api_key_here'
  }
});

console.log(response.data);
import requests

headers = {
    'X-API-Key': 'your_api_key_here'
}

params = {
    'page': 1,
    'per_page': 25
}

response = requests.get(
    'https://api.toolify.io/api/v1/tasks',
    headers=headers,
    params=params
)

print(response.json())

GET /tasks/:id

Get detailed information about a specific task.

Description

Returns detailed information about a specific task, including all processed items and their results.

Path Parameters

  • id (required, integer) - Task ID

Response

JSON
{
  "success": true,
  "data": {
    "id": 123,
    "service": "domain_check_availability",
    "status": "completed",
    "total_items": 2,
    "cost": 60,
    "created_at": "2025-01-15T10:28:00Z",
    "completed_at": "2025-01-15T10:30:00Z",
    "items": [
      {
        "target": "example.com",
        "status": "completed",
        "data": {
          "available": true
        }
      },
      {
        "target": "google.com",
        "status": "completed",
        "data": {
          "available": false
        }
      }
    ]
  }
}

Examples

curl -H "X-API-Key: your_api_key_here" \
  https://api.toolify.io/api/v1/tasks/123
const axios = require('axios');

const taskId = 123;

const response = await axios.get(
  `https://api.toolify.io/api/v1/tasks/${taskId}`,
  {
    headers: {
      'X-API-Key': 'your_api_key_here'
    }
  }
);

console.log(response.data);
import requests

task_id = 123

headers = {
    'X-API-Key': 'your_api_key_here'
}

response = requests.get(
    f'https://api.toolify.io/api/v1/tasks/{task_id}',
    headers=headers
)

print(response.json())

Error Codes

All API errors return a consistent JSON structure with status and error information.

Error Response Format

JSON
{
  "success": false,
  "error": {
    "code": "error_code",
    "message": "Human readable error message"
  }
}

Common Error Codes

  • unauthorized - Invalid or missing API key
  • not_found - Resource not found (task, service, etc.)
  • validation_error - Validation failed or missing required parameters
  • insufficient_balance - Not enough coins to perform the operation
  • internal_error - Internal server error occurred

Example Error Responses

Insufficient Balance

JSON
{
  "success": false,
  "error": {
    "code": "insufficient_balance",
    "message": "Not enough coins. Your balance is 10 coins, but this task requires 60 coins"
  }
}

Invalid API Key

JSON
{
  "success": false,
  "error": {
    "code": "unauthorized",
    "message": "Invalid or missing API key"
  }
}

Resource Not Found

JSON
{
  "success": false,
  "error": {
    "code": "not_found",
    "message": "Task with ID 123 not found"
  }
}

Rate Limiting

The API has rate limiting in place to ensure fair usage. Current limits are:

  • 100 requests per minute per API key
  • Contact support for higher limits if needed

Rate limit information is included in response headers:

Headers
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1642265280

Ready to Build?

Start integrating the Toolify API into your application. For authentication details, check out our authentication guide.

View Authentication Guide →