IMAGE API

convert

Convert an image from one format to another. Supported formats: jpeg, jpg, png, bmp, gif, avif, webp, ico, dds, tiff, tga, heic, svg
Credits Required: 2.0/MB
File size is rounded up to the nearest MB — minimum billable size is 1 MB

PARAMETERS

NAME TYPE REQUIRED DESCRIPTION ADDITIONAL CREDITS PER ITEM EXAMPLE
image string Yes Base64 encoded image data (max 10MB) None
base64_encoded_image_string_here
output_format string Yes Target image format (e.g. png, jpg, webp, gif, bmp, avif, tiff, ico) None
png

RESPONSE EXAMPLE

{
    "status": "success",
    "message": "Image converted successfully",
    "data":
    {
        "image": "base64_encoded_result_image"
    }
}

CODE EXAMPLES

<?php

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest($endpoint, $PostFields)
{
    $token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    $base_url = 'https://apicentral.dev';

    $Curl = curl_init();

    curl_setopt_array(
        $Curl,
        [
            CURLOPT_URL => $base_url . '/' . $endpoint,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($PostFields),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTPHEADER =>
            [
                'Authorization: Bearer ' . $token,
                'Content-Type: application/x-www-form-urlencoded'
            ]
        ]
    );

    $Response = curl_exec($Curl);
    $Data = json_decode($Response, true);

    if (curl_errno($Curl))
        return ['error' => curl_error($Curl)];

    curl_close($Curl); // Omit in PHP 8 and above

    return $Data;
}

// ================================================================
// API-specific usage
// ================================================================
$endpoint = 'Image/convert';
$PostFields = 
[
  'image' => 'base64_encoded_image_string_here',
  'output_format' => 'png',
];

$Data = processAPIRequest($endpoint, $PostFields);

$status = $Data['status'];
$message = $Data['message'];
$data = $Data['data'] ?? null;
?>

import requests
import json

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, Data):
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'
    Headers = {'Authorization': 'Bearer ' + token}

    try:
        Response = requests.post(base_url + '/' + endpoint, json=Data, headers=Headers)
        return Response.json()
    except Exception as e:
        return {'error': str(e)}

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/convert'
Data = 
{
  "image": "base64_encoded_image_string_here",
  "output_format": "png"
}

ResData = process_api_request(endpoint, Data)

status = ResData.get('status')
message = ResData.get('message')
data = ResData.get('data')

const axios = require('axios');

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest(endpoint, Data)
{
    const token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    const base_url = 'https://apicentral.dev';

    return axios.post(
        base_url + '/' + endpoint,
        Data,
        {
            headers: {'Authorization': 'Bearer ' + token}
        }
    );
}

// ================================================================
// API-specific usage
// ================================================================
const Data = 
{
  "image": "base64_encoded_image_string_here",
  "output_format": "png"
};

processAPIRequest('Image/convert', Data)
.then(Response =>
{
    const status = Response.data.status;
    const message = Response.data.message;
    const data = Response.data.data;
})
.catch(Error => { const error = Error.message; });

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static JsonObject processAPIRequest(String endpoint, String jsonPayload) throws Exception
    {
        String token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        String base_url = "https://apicentral.dev";

        HttpClient Client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(30))
            .build();

        HttpRequest Request = HttpRequest.newBuilder()
            .uri(URI.create(base_url + "/" + endpoint))
            .header("Authorization", "Bearer " + token)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
            .build();

        HttpResponse<String> Response = Client.send(Request, HttpResponse.BodyHandlers.ofString());

        return JsonParser.parseString(Response.body()).getAsJsonObject();
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static void main(String[] args)
    {
        String endpoint = "Image/convert";
        String JsonPayload = """
        
        {
          "image": "base64_encoded_image_string_here",
          "output_format": "png"
        }
        """;

        try
        {
            JsonObject ResData = processAPIRequest(endpoint, JsonPayload);
            String status = ResData.get("status").getAsString();
            String message = ResData.get("message").getAsString();
            Object data = ResData.has("data") ? ResData.get("data") : null;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static async Task<dynamic> ProcessAPIRequest(string endpoint, string jsonPayload)
    {
        string token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        string base_url = "https://apicentral.dev";

        using var Client = new HttpClient();
        Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);

        var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

        var Response = await Client.PostAsync(base_url + "/" + endpoint, content);
        var Result = await Response.Content.ReadAsStringAsync();

        return JsonConvert.DeserializeObject(Result);
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static async Task Main()
    {
        var endpoint = "Image/convert";
        var json_payload = @"
        {
          "image": "base64_encoded_image_string_here",
          "output_format": "png"
        }";

        dynamic ResData = await ProcessAPIRequest(endpoint, json_payload);

        string status = ResData.status;
        string message = ResData.message;
        object data = ResData.data;
    }
}

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "io"
)

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint string, jsonPayload []byte) (map[string]interface{}, error) {
    token := "YOUR_API_TOKEN_HERE" // Configure your token here
    base_url := "https://apicentral.dev"

    Client := &http.Client{}
    Request, err := http.NewRequest("POST", base_url+"/"+endpoint, bytes.NewBuffer(jsonPayload))

    if err != nil {
        return nil, err
    }

    Request.Header.Set("Authorization", "Bearer " + token)
    Request.Header.Set("Content-Type", "application/json")

    Response, err := Client.Do(Request)

    if err != nil {
        return nil, err
    }

    defer Response.Body.Close()

    Body, _ := io.ReadAll(Response.Body)

    var ResData map[string]interface{}
    json.Unmarshal(Body, &ResData)

    return ResData, nil
}

// ================================================================
// API-specific usage
// ================================================================
func main() {
    JsonPayload := []byte(`
    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png"
    }`)

    ResData, err := processAPIRequest("Image/convert", JsonPayload)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    status := ResData["status"]
    message := ResData["message"]
    data := ResData["data"]

    fmt.Println(status, message, data)
}

require 'net/http'
require 'uri'
require 'json'

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, data)
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'

    uri = URI(base_url + '/' + endpoint)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true

    request = Net::HTTP::Post.new(uri)
    request['Authorization'] = 'Bearer ' + token
    request['Content-Type'] = 'application/json'
    request.body = data.to_json

    response = http.request(request)
    JSON.parse(response.body)
end

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/convert'
data = 
{
  "image": "base64_encoded_image_string_here",
  "output_format": "png"
}

res_data = process_api_request(endpoint, data)

status = res_data['status']
message = res_data['message']
data = res_data['data']

import Foundation

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint: String, jsonPayload: Data, completion: @escaping ([String: Any]?) -> Void)
{
    let token = "YOUR_API_TOKEN_HERE" // Configure your token here
    let base_url = "https://apicentral.dev"

    let requestUrl = URL(string: base_url + "/" + endpoint)!
    var request = URLRequest(url: requestUrl)
    request.httpMethod = "POST"
    request.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = jsonPayload

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let error = error {
            print("Error: \(error)")
            completion(nil)
            return
        }

        guard let data = data else {
            completion(nil)
            return
        }

        let resData = try? JSONSerialization.jsonObject(with: data) as? [String: Any]
        completion(resData)
    }

    task.resume()
}

// ================================================================
// API-specific usage
// ================================================================
let endpoint = "Image/convert"
let JsonPayload = """

    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png"
    }
""".data(using: .utf8)!

processAPIRequest(endpoint: endpoint, jsonPayload: JsonPayload) { resData in
    let status = resData?["status"] as? String
    let message = resData?["message"] as? String
    let data = resData?["data"]
}

import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.net.URI
import java.time.Duration
import com.google.gson.JsonObject
import com.google.gson.JsonParser

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fun processAPIRequest(endpoint: String, jsonPayload: String): JsonObject
{
    val token = "YOUR_API_TOKEN_HERE" // Configure your token here
    val base_url = "https://apicentral.dev"

    val client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(30))
        .build()

    val request = HttpRequest.newBuilder()
        .uri(URI.create(base_url + "/" + endpoint))
        .header("Authorization", "Bearer " + token)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
        .build()

    val response = client.send(request, HttpResponse.BodyHandlers.ofString())

    return JsonParser.parseString(response.body()).asJsonObject
}

// ================================================================
// API-specific usage
// ================================================================
fun main() {
    val endpoint = "Image/convert"
    val jsonPayload = """
    
    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png"
    }
    """.trimIndent()

    try {
        val resData = processAPIRequest(endpoint, jsonPayload)
        val status = resData.get("status").asString
        val message = resData.get("message").asString
        val data = if (resData.has("data")) resData.get("data") else null
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

import 'dart:convert';
import 'package:http/http.dart' as http;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
Future<Map<String, dynamic>> processAPIRequest(String endpoint, Map<String, dynamic> data) async
{
    final token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    final base_url = 'https://apicentral.dev';
    final headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    };

    final response = await http.post(Uri.parse(base_url + '/' + endpoint), headers: headers, body: jsonEncode(data));

    return jsonDecode(response.body);
}

// ================================================================
// API-specific usage
// ================================================================
void main() async {
    final endpoint = 'Image/convert';
    final data = 
    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png"
    };

    try {
        final resData = await processAPIRequest(endpoint, data);
        final status = resData['status'];
        final message = resData['message'];
        final data = resData['data'];
    } catch (e) {
        print('Error: $e');
    }
}

use reqwest::blocking::Client;
use serde_json::Value;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fn process_api_request(endpoint: &str, json_payload: &str) -> Result<Value, Box<dyn std::error::Error>>
{
    let token = "YOUR_API_TOKEN_HERE"; // Configure your token here
    let base_url = "https://apicentral.dev";

    let client = Client::new();

    let response = client
        .post(format!("{}/{}", base_url, endpoint))
        .header("Authorization", format!("Bearer {}", token))
        .header("Content-Type", "application/json")
        .body(json_payload.to_string())
        .send()?;

    let res_data: Value = serde_json::from_str(&response.text()?)?;

    Ok(res_data)
}

// ================================================================
// API-specific usage
// ================================================================
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let endpoint = "Image/convert";
    let json_payload = r#"
    
    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png"
    }
    "#;

    let res_data = process_api_request(endpoint, json_payload)?;

    let status = &res_data["status"];
    let message = &res_data["message"];
    let data = &res_data["data"];

    println!("{} {} {:?}", status, message, data);

    Ok(())
}

curl -X POST 'https://apicentral.dev/Image/convert' \
    -H 'Authorization: Bearer YOUR_API_TOKEN_HERE' \
    -H 'Content-Type: application/json' \
    -d '
    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png"
    }'

compress

Compress an image with a specified quality level (1-100)
Credits Required: 2.0/MB
File size is rounded up to the nearest MB — minimum billable size is 1 MB

PARAMETERS

NAME TYPE REQUIRED DESCRIPTION ADDITIONAL CREDITS PER ITEM EXAMPLE
image string Yes Base64 encoded image data (max 10MB) None
base64_encoded_image_string_here
quality int Yes Compression quality from 1 (lowest) to 100 (highest) None
75

RESPONSE EXAMPLE

{
    "status": "success",
    "message": "Image compressed successfully",
    "data":
    {
        "image": "base64_encoded_result_image"
    }
}

CODE EXAMPLES

<?php

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest($endpoint, $PostFields)
{
    $token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    $base_url = 'https://apicentral.dev';

    $Curl = curl_init();

    curl_setopt_array(
        $Curl,
        [
            CURLOPT_URL => $base_url . '/' . $endpoint,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($PostFields),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTPHEADER =>
            [
                'Authorization: Bearer ' . $token,
                'Content-Type: application/x-www-form-urlencoded'
            ]
        ]
    );

    $Response = curl_exec($Curl);
    $Data = json_decode($Response, true);

    if (curl_errno($Curl))
        return ['error' => curl_error($Curl)];

    curl_close($Curl); // Omit in PHP 8 and above

    return $Data;
}

// ================================================================
// API-specific usage
// ================================================================
$endpoint = 'Image/compress';
$PostFields = 
[
  'image' => 'base64_encoded_image_string_here',
  'quality' => 75,
];

$Data = processAPIRequest($endpoint, $PostFields);

$status = $Data['status'];
$message = $Data['message'];
$data = $Data['data'] ?? null;
?>

import requests
import json

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, Data):
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'
    Headers = {'Authorization': 'Bearer ' + token}

    try:
        Response = requests.post(base_url + '/' + endpoint, json=Data, headers=Headers)
        return Response.json()
    except Exception as e:
        return {'error': str(e)}

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/compress'
Data = 
{
  "image": "base64_encoded_image_string_here",
  "quality": 75
}

ResData = process_api_request(endpoint, Data)

status = ResData.get('status')
message = ResData.get('message')
data = ResData.get('data')

const axios = require('axios');

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest(endpoint, Data)
{
    const token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    const base_url = 'https://apicentral.dev';

    return axios.post(
        base_url + '/' + endpoint,
        Data,
        {
            headers: {'Authorization': 'Bearer ' + token}
        }
    );
}

// ================================================================
// API-specific usage
// ================================================================
const Data = 
{
  "image": "base64_encoded_image_string_here",
  "quality": 75
};

processAPIRequest('Image/compress', Data)
.then(Response =>
{
    const status = Response.data.status;
    const message = Response.data.message;
    const data = Response.data.data;
})
.catch(Error => { const error = Error.message; });

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static JsonObject processAPIRequest(String endpoint, String jsonPayload) throws Exception
    {
        String token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        String base_url = "https://apicentral.dev";

        HttpClient Client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(30))
            .build();

        HttpRequest Request = HttpRequest.newBuilder()
            .uri(URI.create(base_url + "/" + endpoint))
            .header("Authorization", "Bearer " + token)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
            .build();

        HttpResponse<String> Response = Client.send(Request, HttpResponse.BodyHandlers.ofString());

        return JsonParser.parseString(Response.body()).getAsJsonObject();
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static void main(String[] args)
    {
        String endpoint = "Image/compress";
        String JsonPayload = """
        
        {
          "image": "base64_encoded_image_string_here",
          "quality": 75
        }
        """;

        try
        {
            JsonObject ResData = processAPIRequest(endpoint, JsonPayload);
            String status = ResData.get("status").getAsString();
            String message = ResData.get("message").getAsString();
            Object data = ResData.has("data") ? ResData.get("data") : null;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static async Task<dynamic> ProcessAPIRequest(string endpoint, string jsonPayload)
    {
        string token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        string base_url = "https://apicentral.dev";

        using var Client = new HttpClient();
        Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);

        var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

        var Response = await Client.PostAsync(base_url + "/" + endpoint, content);
        var Result = await Response.Content.ReadAsStringAsync();

        return JsonConvert.DeserializeObject(Result);
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static async Task Main()
    {
        var endpoint = "Image/compress";
        var json_payload = @"
        {
          "image": "base64_encoded_image_string_here",
          "quality": 75
        }";

        dynamic ResData = await ProcessAPIRequest(endpoint, json_payload);

        string status = ResData.status;
        string message = ResData.message;
        object data = ResData.data;
    }
}

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "io"
)

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint string, jsonPayload []byte) (map[string]interface{}, error) {
    token := "YOUR_API_TOKEN_HERE" // Configure your token here
    base_url := "https://apicentral.dev"

    Client := &http.Client{}
    Request, err := http.NewRequest("POST", base_url+"/"+endpoint, bytes.NewBuffer(jsonPayload))

    if err != nil {
        return nil, err
    }

    Request.Header.Set("Authorization", "Bearer " + token)
    Request.Header.Set("Content-Type", "application/json")

    Response, err := Client.Do(Request)

    if err != nil {
        return nil, err
    }

    defer Response.Body.Close()

    Body, _ := io.ReadAll(Response.Body)

    var ResData map[string]interface{}
    json.Unmarshal(Body, &ResData)

    return ResData, nil
}

// ================================================================
// API-specific usage
// ================================================================
func main() {
    JsonPayload := []byte(`
    {
      "image": "base64_encoded_image_string_here",
      "quality": 75
    }`)

    ResData, err := processAPIRequest("Image/compress", JsonPayload)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    status := ResData["status"]
    message := ResData["message"]
    data := ResData["data"]

    fmt.Println(status, message, data)
}

require 'net/http'
require 'uri'
require 'json'

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, data)
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'

    uri = URI(base_url + '/' + endpoint)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true

    request = Net::HTTP::Post.new(uri)
    request['Authorization'] = 'Bearer ' + token
    request['Content-Type'] = 'application/json'
    request.body = data.to_json

    response = http.request(request)
    JSON.parse(response.body)
end

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/compress'
data = 
{
  "image": "base64_encoded_image_string_here",
  "quality": 75
}

res_data = process_api_request(endpoint, data)

status = res_data['status']
message = res_data['message']
data = res_data['data']

import Foundation

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint: String, jsonPayload: Data, completion: @escaping ([String: Any]?) -> Void)
{
    let token = "YOUR_API_TOKEN_HERE" // Configure your token here
    let base_url = "https://apicentral.dev"

    let requestUrl = URL(string: base_url + "/" + endpoint)!
    var request = URLRequest(url: requestUrl)
    request.httpMethod = "POST"
    request.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = jsonPayload

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let error = error {
            print("Error: \(error)")
            completion(nil)
            return
        }

        guard let data = data else {
            completion(nil)
            return
        }

        let resData = try? JSONSerialization.jsonObject(with: data) as? [String: Any]
        completion(resData)
    }

    task.resume()
}

// ================================================================
// API-specific usage
// ================================================================
let endpoint = "Image/compress"
let JsonPayload = """

    {
      "image": "base64_encoded_image_string_here",
      "quality": 75
    }
""".data(using: .utf8)!

processAPIRequest(endpoint: endpoint, jsonPayload: JsonPayload) { resData in
    let status = resData?["status"] as? String
    let message = resData?["message"] as? String
    let data = resData?["data"]
}

import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.net.URI
import java.time.Duration
import com.google.gson.JsonObject
import com.google.gson.JsonParser

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fun processAPIRequest(endpoint: String, jsonPayload: String): JsonObject
{
    val token = "YOUR_API_TOKEN_HERE" // Configure your token here
    val base_url = "https://apicentral.dev"

    val client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(30))
        .build()

    val request = HttpRequest.newBuilder()
        .uri(URI.create(base_url + "/" + endpoint))
        .header("Authorization", "Bearer " + token)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
        .build()

    val response = client.send(request, HttpResponse.BodyHandlers.ofString())

    return JsonParser.parseString(response.body()).asJsonObject
}

// ================================================================
// API-specific usage
// ================================================================
fun main() {
    val endpoint = "Image/compress"
    val jsonPayload = """
    
    {
      "image": "base64_encoded_image_string_here",
      "quality": 75
    }
    """.trimIndent()

    try {
        val resData = processAPIRequest(endpoint, jsonPayload)
        val status = resData.get("status").asString
        val message = resData.get("message").asString
        val data = if (resData.has("data")) resData.get("data") else null
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

import 'dart:convert';
import 'package:http/http.dart' as http;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
Future<Map<String, dynamic>> processAPIRequest(String endpoint, Map<String, dynamic> data) async
{
    final token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    final base_url = 'https://apicentral.dev';
    final headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    };

    final response = await http.post(Uri.parse(base_url + '/' + endpoint), headers: headers, body: jsonEncode(data));

    return jsonDecode(response.body);
}

// ================================================================
// API-specific usage
// ================================================================
void main() async {
    final endpoint = 'Image/compress';
    final data = 
    {
      "image": "base64_encoded_image_string_here",
      "quality": 75
    };

    try {
        final resData = await processAPIRequest(endpoint, data);
        final status = resData['status'];
        final message = resData['message'];
        final data = resData['data'];
    } catch (e) {
        print('Error: $e');
    }
}

use reqwest::blocking::Client;
use serde_json::Value;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fn process_api_request(endpoint: &str, json_payload: &str) -> Result<Value, Box<dyn std::error::Error>>
{
    let token = "YOUR_API_TOKEN_HERE"; // Configure your token here
    let base_url = "https://apicentral.dev";

    let client = Client::new();

    let response = client
        .post(format!("{}/{}", base_url, endpoint))
        .header("Authorization", format!("Bearer {}", token))
        .header("Content-Type", "application/json")
        .body(json_payload.to_string())
        .send()?;

    let res_data: Value = serde_json::from_str(&response.text()?)?;

    Ok(res_data)
}

// ================================================================
// API-specific usage
// ================================================================
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let endpoint = "Image/compress";
    let json_payload = r#"
    
    {
      "image": "base64_encoded_image_string_here",
      "quality": 75
    }
    "#;

    let res_data = process_api_request(endpoint, json_payload)?;

    let status = &res_data["status"];
    let message = &res_data["message"];
    let data = &res_data["data"];

    println!("{} {} {:?}", status, message, data);

    Ok(())
}

curl -X POST 'https://apicentral.dev/Image/compress' \
    -H 'Authorization: Bearer YOUR_API_TOKEN_HERE' \
    -H 'Content-Type: application/json' \
    -d '
    {
      "image": "base64_encoded_image_string_here",
      "quality": 75
    }'

resize

Resize an image by percentage or exact dimensions (max 8192x8192 pixels)
Credits Required: 2.0/MB
File size is rounded up to the nearest MB — minimum billable size is 1 MB

PARAMETERS

NAME TYPE REQUIRED DESCRIPTION ADDITIONAL CREDITS PER ITEM EXAMPLE
image string Yes Base64 encoded image data (max 10MB) None
base64_encoded_image_string_here
resize_mode int Yes Resize mode: 1 = by percentage, 2 = exact dimensions None
2
resize_percentage int No Resize percentage (1-500), used when resize_mode = 1 None
50
resize_width int No Target width in pixels (1-8192), used when resize_mode = 2 None
800
resize_height int No Target height in pixels (1-8192), used when resize_mode = 2 None
600

RESPONSE EXAMPLE

{
    "status": "success",
    "message": "Image resized successfully",
    "data":
    {
        "image": "base64_encoded_result_image"
    }
}

CODE EXAMPLES

<?php

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest($endpoint, $PostFields)
{
    $token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    $base_url = 'https://apicentral.dev';

    $Curl = curl_init();

    curl_setopt_array(
        $Curl,
        [
            CURLOPT_URL => $base_url . '/' . $endpoint,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($PostFields),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTPHEADER =>
            [
                'Authorization: Bearer ' . $token,
                'Content-Type: application/x-www-form-urlencoded'
            ]
        ]
    );

    $Response = curl_exec($Curl);
    $Data = json_decode($Response, true);

    if (curl_errno($Curl))
        return ['error' => curl_error($Curl)];

    curl_close($Curl); // Omit in PHP 8 and above

    return $Data;
}

// ================================================================
// API-specific usage
// ================================================================
$endpoint = 'Image/resize';
$PostFields = 
[
  'image' => 'base64_encoded_image_string_here',
  'resize_mode' => 2,
  'resize_percentage' => 50,
  'resize_width' => 800,
  'resize_height' => 600,
];

$Data = processAPIRequest($endpoint, $PostFields);

$status = $Data['status'];
$message = $Data['message'];
$data = $Data['data'] ?? null;
?>

import requests
import json

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, Data):
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'
    Headers = {'Authorization': 'Bearer ' + token}

    try:
        Response = requests.post(base_url + '/' + endpoint, json=Data, headers=Headers)
        return Response.json()
    except Exception as e:
        return {'error': str(e)}

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/resize'
Data = 
{
  "image": "base64_encoded_image_string_here",
  "resize_mode": 2,
  "resize_percentage": 50,
  "resize_width": 800,
  "resize_height": 600
}

ResData = process_api_request(endpoint, Data)

status = ResData.get('status')
message = ResData.get('message')
data = ResData.get('data')

const axios = require('axios');

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest(endpoint, Data)
{
    const token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    const base_url = 'https://apicentral.dev';

    return axios.post(
        base_url + '/' + endpoint,
        Data,
        {
            headers: {'Authorization': 'Bearer ' + token}
        }
    );
}

// ================================================================
// API-specific usage
// ================================================================
const Data = 
{
  "image": "base64_encoded_image_string_here",
  "resize_mode": 2,
  "resize_percentage": 50,
  "resize_width": 800,
  "resize_height": 600
};

processAPIRequest('Image/resize', Data)
.then(Response =>
{
    const status = Response.data.status;
    const message = Response.data.message;
    const data = Response.data.data;
})
.catch(Error => { const error = Error.message; });

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static JsonObject processAPIRequest(String endpoint, String jsonPayload) throws Exception
    {
        String token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        String base_url = "https://apicentral.dev";

        HttpClient Client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(30))
            .build();

        HttpRequest Request = HttpRequest.newBuilder()
            .uri(URI.create(base_url + "/" + endpoint))
            .header("Authorization", "Bearer " + token)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
            .build();

        HttpResponse<String> Response = Client.send(Request, HttpResponse.BodyHandlers.ofString());

        return JsonParser.parseString(Response.body()).getAsJsonObject();
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static void main(String[] args)
    {
        String endpoint = "Image/resize";
        String JsonPayload = """
        
        {
          "image": "base64_encoded_image_string_here",
          "resize_mode": 2,
          "resize_percentage": 50,
          "resize_width": 800,
          "resize_height": 600
        }
        """;

        try
        {
            JsonObject ResData = processAPIRequest(endpoint, JsonPayload);
            String status = ResData.get("status").getAsString();
            String message = ResData.get("message").getAsString();
            Object data = ResData.has("data") ? ResData.get("data") : null;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static async Task<dynamic> ProcessAPIRequest(string endpoint, string jsonPayload)
    {
        string token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        string base_url = "https://apicentral.dev";

        using var Client = new HttpClient();
        Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);

        var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

        var Response = await Client.PostAsync(base_url + "/" + endpoint, content);
        var Result = await Response.Content.ReadAsStringAsync();

        return JsonConvert.DeserializeObject(Result);
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static async Task Main()
    {
        var endpoint = "Image/resize";
        var json_payload = @"
        {
          "image": "base64_encoded_image_string_here",
          "resize_mode": 2,
          "resize_percentage": 50,
          "resize_width": 800,
          "resize_height": 600
        }";

        dynamic ResData = await ProcessAPIRequest(endpoint, json_payload);

        string status = ResData.status;
        string message = ResData.message;
        object data = ResData.data;
    }
}

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "io"
)

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint string, jsonPayload []byte) (map[string]interface{}, error) {
    token := "YOUR_API_TOKEN_HERE" // Configure your token here
    base_url := "https://apicentral.dev"

    Client := &http.Client{}
    Request, err := http.NewRequest("POST", base_url+"/"+endpoint, bytes.NewBuffer(jsonPayload))

    if err != nil {
        return nil, err
    }

    Request.Header.Set("Authorization", "Bearer " + token)
    Request.Header.Set("Content-Type", "application/json")

    Response, err := Client.Do(Request)

    if err != nil {
        return nil, err
    }

    defer Response.Body.Close()

    Body, _ := io.ReadAll(Response.Body)

    var ResData map[string]interface{}
    json.Unmarshal(Body, &ResData)

    return ResData, nil
}

// ================================================================
// API-specific usage
// ================================================================
func main() {
    JsonPayload := []byte(`
    {
      "image": "base64_encoded_image_string_here",
      "resize_mode": 2,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600
    }`)

    ResData, err := processAPIRequest("Image/resize", JsonPayload)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    status := ResData["status"]
    message := ResData["message"]
    data := ResData["data"]

    fmt.Println(status, message, data)
}

require 'net/http'
require 'uri'
require 'json'

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, data)
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'

    uri = URI(base_url + '/' + endpoint)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true

    request = Net::HTTP::Post.new(uri)
    request['Authorization'] = 'Bearer ' + token
    request['Content-Type'] = 'application/json'
    request.body = data.to_json

    response = http.request(request)
    JSON.parse(response.body)
end

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/resize'
data = 
{
  "image": "base64_encoded_image_string_here",
  "resize_mode": 2,
  "resize_percentage": 50,
  "resize_width": 800,
  "resize_height": 600
}

res_data = process_api_request(endpoint, data)

status = res_data['status']
message = res_data['message']
data = res_data['data']

import Foundation

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint: String, jsonPayload: Data, completion: @escaping ([String: Any]?) -> Void)
{
    let token = "YOUR_API_TOKEN_HERE" // Configure your token here
    let base_url = "https://apicentral.dev"

    let requestUrl = URL(string: base_url + "/" + endpoint)!
    var request = URLRequest(url: requestUrl)
    request.httpMethod = "POST"
    request.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = jsonPayload

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let error = error {
            print("Error: \(error)")
            completion(nil)
            return
        }

        guard let data = data else {
            completion(nil)
            return
        }

        let resData = try? JSONSerialization.jsonObject(with: data) as? [String: Any]
        completion(resData)
    }

    task.resume()
}

// ================================================================
// API-specific usage
// ================================================================
let endpoint = "Image/resize"
let JsonPayload = """

    {
      "image": "base64_encoded_image_string_here",
      "resize_mode": 2,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600
    }
""".data(using: .utf8)!

processAPIRequest(endpoint: endpoint, jsonPayload: JsonPayload) { resData in
    let status = resData?["status"] as? String
    let message = resData?["message"] as? String
    let data = resData?["data"]
}

import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.net.URI
import java.time.Duration
import com.google.gson.JsonObject
import com.google.gson.JsonParser

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fun processAPIRequest(endpoint: String, jsonPayload: String): JsonObject
{
    val token = "YOUR_API_TOKEN_HERE" // Configure your token here
    val base_url = "https://apicentral.dev"

    val client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(30))
        .build()

    val request = HttpRequest.newBuilder()
        .uri(URI.create(base_url + "/" + endpoint))
        .header("Authorization", "Bearer " + token)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
        .build()

    val response = client.send(request, HttpResponse.BodyHandlers.ofString())

    return JsonParser.parseString(response.body()).asJsonObject
}

// ================================================================
// API-specific usage
// ================================================================
fun main() {
    val endpoint = "Image/resize"
    val jsonPayload = """
    
    {
      "image": "base64_encoded_image_string_here",
      "resize_mode": 2,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600
    }
    """.trimIndent()

    try {
        val resData = processAPIRequest(endpoint, jsonPayload)
        val status = resData.get("status").asString
        val message = resData.get("message").asString
        val data = if (resData.has("data")) resData.get("data") else null
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

import 'dart:convert';
import 'package:http/http.dart' as http;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
Future<Map<String, dynamic>> processAPIRequest(String endpoint, Map<String, dynamic> data) async
{
    final token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    final base_url = 'https://apicentral.dev';
    final headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    };

    final response = await http.post(Uri.parse(base_url + '/' + endpoint), headers: headers, body: jsonEncode(data));

    return jsonDecode(response.body);
}

// ================================================================
// API-specific usage
// ================================================================
void main() async {
    final endpoint = 'Image/resize';
    final data = 
    {
      "image": "base64_encoded_image_string_here",
      "resize_mode": 2,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600
    };

    try {
        final resData = await processAPIRequest(endpoint, data);
        final status = resData['status'];
        final message = resData['message'];
        final data = resData['data'];
    } catch (e) {
        print('Error: $e');
    }
}

use reqwest::blocking::Client;
use serde_json::Value;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fn process_api_request(endpoint: &str, json_payload: &str) -> Result<Value, Box<dyn std::error::Error>>
{
    let token = "YOUR_API_TOKEN_HERE"; // Configure your token here
    let base_url = "https://apicentral.dev";

    let client = Client::new();

    let response = client
        .post(format!("{}/{}", base_url, endpoint))
        .header("Authorization", format!("Bearer {}", token))
        .header("Content-Type", "application/json")
        .body(json_payload.to_string())
        .send()?;

    let res_data: Value = serde_json::from_str(&response.text()?)?;

    Ok(res_data)
}

// ================================================================
// API-specific usage
// ================================================================
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let endpoint = "Image/resize";
    let json_payload = r#"
    
    {
      "image": "base64_encoded_image_string_here",
      "resize_mode": 2,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600
    }
    "#;

    let res_data = process_api_request(endpoint, json_payload)?;

    let status = &res_data["status"];
    let message = &res_data["message"];
    let data = &res_data["data"];

    println!("{} {} {:?}", status, message, data);

    Ok(())
}

curl -X POST 'https://apicentral.dev/Image/resize' \
    -H 'Authorization: Bearer YOUR_API_TOKEN_HERE' \
    -H 'Content-Type: application/json' \
    -d '
    {
      "image": "base64_encoded_image_string_here",
      "resize_mode": 2,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600
    }'

rotate

Rotate an image by a specified number of degrees with an optional background color
Credits Required: 2.0/MB
File size is rounded up to the nearest MB — minimum billable size is 1 MB

PARAMETERS

NAME TYPE REQUIRED DESCRIPTION ADDITIONAL CREDITS PER ITEM EXAMPLE
image string Yes Base64 encoded image data (max 10MB) None
base64_encoded_image_string_here
degrees float Yes Rotation angle in degrees (0-360) None
90
background_color string No Background color for exposed areas after rotation (hex format, e.g. #FFFFFF). Use "none" for transparent None
none

RESPONSE EXAMPLE

{
    "status": "success",
    "message": "Image rotated successfully",
    "data":
    {
        "image": "base64_encoded_result_image"
    }
}

CODE EXAMPLES

<?php

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest($endpoint, $PostFields)
{
    $token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    $base_url = 'https://apicentral.dev';

    $Curl = curl_init();

    curl_setopt_array(
        $Curl,
        [
            CURLOPT_URL => $base_url . '/' . $endpoint,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($PostFields),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTPHEADER =>
            [
                'Authorization: Bearer ' . $token,
                'Content-Type: application/x-www-form-urlencoded'
            ]
        ]
    );

    $Response = curl_exec($Curl);
    $Data = json_decode($Response, true);

    if (curl_errno($Curl))
        return ['error' => curl_error($Curl)];

    curl_close($Curl); // Omit in PHP 8 and above

    return $Data;
}

// ================================================================
// API-specific usage
// ================================================================
$endpoint = 'Image/rotate';
$PostFields = 
[
  'image' => 'base64_encoded_image_string_here',
  'degrees' => 90,
  'background_color' => 'none',
];

$Data = processAPIRequest($endpoint, $PostFields);

$status = $Data['status'];
$message = $Data['message'];
$data = $Data['data'] ?? null;
?>

import requests
import json

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, Data):
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'
    Headers = {'Authorization': 'Bearer ' + token}

    try:
        Response = requests.post(base_url + '/' + endpoint, json=Data, headers=Headers)
        return Response.json()
    except Exception as e:
        return {'error': str(e)}

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/rotate'
Data = 
{
  "image": "base64_encoded_image_string_here",
  "degrees": 90,
  "background_color": "none"
}

ResData = process_api_request(endpoint, Data)

status = ResData.get('status')
message = ResData.get('message')
data = ResData.get('data')

const axios = require('axios');

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest(endpoint, Data)
{
    const token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    const base_url = 'https://apicentral.dev';

    return axios.post(
        base_url + '/' + endpoint,
        Data,
        {
            headers: {'Authorization': 'Bearer ' + token}
        }
    );
}

// ================================================================
// API-specific usage
// ================================================================
const Data = 
{
  "image": "base64_encoded_image_string_here",
  "degrees": 90,
  "background_color": "none"
};

processAPIRequest('Image/rotate', Data)
.then(Response =>
{
    const status = Response.data.status;
    const message = Response.data.message;
    const data = Response.data.data;
})
.catch(Error => { const error = Error.message; });

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static JsonObject processAPIRequest(String endpoint, String jsonPayload) throws Exception
    {
        String token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        String base_url = "https://apicentral.dev";

        HttpClient Client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(30))
            .build();

        HttpRequest Request = HttpRequest.newBuilder()
            .uri(URI.create(base_url + "/" + endpoint))
            .header("Authorization", "Bearer " + token)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
            .build();

        HttpResponse<String> Response = Client.send(Request, HttpResponse.BodyHandlers.ofString());

        return JsonParser.parseString(Response.body()).getAsJsonObject();
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static void main(String[] args)
    {
        String endpoint = "Image/rotate";
        String JsonPayload = """
        
        {
          "image": "base64_encoded_image_string_here",
          "degrees": 90,
          "background_color": "none"
        }
        """;

        try
        {
            JsonObject ResData = processAPIRequest(endpoint, JsonPayload);
            String status = ResData.get("status").getAsString();
            String message = ResData.get("message").getAsString();
            Object data = ResData.has("data") ? ResData.get("data") : null;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static async Task<dynamic> ProcessAPIRequest(string endpoint, string jsonPayload)
    {
        string token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        string base_url = "https://apicentral.dev";

        using var Client = new HttpClient();
        Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);

        var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

        var Response = await Client.PostAsync(base_url + "/" + endpoint, content);
        var Result = await Response.Content.ReadAsStringAsync();

        return JsonConvert.DeserializeObject(Result);
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static async Task Main()
    {
        var endpoint = "Image/rotate";
        var json_payload = @"
        {
          "image": "base64_encoded_image_string_here",
          "degrees": 90,
          "background_color": "none"
        }";

        dynamic ResData = await ProcessAPIRequest(endpoint, json_payload);

        string status = ResData.status;
        string message = ResData.message;
        object data = ResData.data;
    }
}

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "io"
)

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint string, jsonPayload []byte) (map[string]interface{}, error) {
    token := "YOUR_API_TOKEN_HERE" // Configure your token here
    base_url := "https://apicentral.dev"

    Client := &http.Client{}
    Request, err := http.NewRequest("POST", base_url+"/"+endpoint, bytes.NewBuffer(jsonPayload))

    if err != nil {
        return nil, err
    }

    Request.Header.Set("Authorization", "Bearer " + token)
    Request.Header.Set("Content-Type", "application/json")

    Response, err := Client.Do(Request)

    if err != nil {
        return nil, err
    }

    defer Response.Body.Close()

    Body, _ := io.ReadAll(Response.Body)

    var ResData map[string]interface{}
    json.Unmarshal(Body, &ResData)

    return ResData, nil
}

// ================================================================
// API-specific usage
// ================================================================
func main() {
    JsonPayload := []byte(`
    {
      "image": "base64_encoded_image_string_here",
      "degrees": 90,
      "background_color": "none"
    }`)

    ResData, err := processAPIRequest("Image/rotate", JsonPayload)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    status := ResData["status"]
    message := ResData["message"]
    data := ResData["data"]

    fmt.Println(status, message, data)
}

require 'net/http'
require 'uri'
require 'json'

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, data)
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'

    uri = URI(base_url + '/' + endpoint)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true

    request = Net::HTTP::Post.new(uri)
    request['Authorization'] = 'Bearer ' + token
    request['Content-Type'] = 'application/json'
    request.body = data.to_json

    response = http.request(request)
    JSON.parse(response.body)
end

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/rotate'
data = 
{
  "image": "base64_encoded_image_string_here",
  "degrees": 90,
  "background_color": "none"
}

res_data = process_api_request(endpoint, data)

status = res_data['status']
message = res_data['message']
data = res_data['data']

import Foundation

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint: String, jsonPayload: Data, completion: @escaping ([String: Any]?) -> Void)
{
    let token = "YOUR_API_TOKEN_HERE" // Configure your token here
    let base_url = "https://apicentral.dev"

    let requestUrl = URL(string: base_url + "/" + endpoint)!
    var request = URLRequest(url: requestUrl)
    request.httpMethod = "POST"
    request.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = jsonPayload

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let error = error {
            print("Error: \(error)")
            completion(nil)
            return
        }

        guard let data = data else {
            completion(nil)
            return
        }

        let resData = try? JSONSerialization.jsonObject(with: data) as? [String: Any]
        completion(resData)
    }

    task.resume()
}

// ================================================================
// API-specific usage
// ================================================================
let endpoint = "Image/rotate"
let JsonPayload = """

    {
      "image": "base64_encoded_image_string_here",
      "degrees": 90,
      "background_color": "none"
    }
""".data(using: .utf8)!

processAPIRequest(endpoint: endpoint, jsonPayload: JsonPayload) { resData in
    let status = resData?["status"] as? String
    let message = resData?["message"] as? String
    let data = resData?["data"]
}

import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.net.URI
import java.time.Duration
import com.google.gson.JsonObject
import com.google.gson.JsonParser

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fun processAPIRequest(endpoint: String, jsonPayload: String): JsonObject
{
    val token = "YOUR_API_TOKEN_HERE" // Configure your token here
    val base_url = "https://apicentral.dev"

    val client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(30))
        .build()

    val request = HttpRequest.newBuilder()
        .uri(URI.create(base_url + "/" + endpoint))
        .header("Authorization", "Bearer " + token)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
        .build()

    val response = client.send(request, HttpResponse.BodyHandlers.ofString())

    return JsonParser.parseString(response.body()).asJsonObject
}

// ================================================================
// API-specific usage
// ================================================================
fun main() {
    val endpoint = "Image/rotate"
    val jsonPayload = """
    
    {
      "image": "base64_encoded_image_string_here",
      "degrees": 90,
      "background_color": "none"
    }
    """.trimIndent()

    try {
        val resData = processAPIRequest(endpoint, jsonPayload)
        val status = resData.get("status").asString
        val message = resData.get("message").asString
        val data = if (resData.has("data")) resData.get("data") else null
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

import 'dart:convert';
import 'package:http/http.dart' as http;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
Future<Map<String, dynamic>> processAPIRequest(String endpoint, Map<String, dynamic> data) async
{
    final token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    final base_url = 'https://apicentral.dev';
    final headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    };

    final response = await http.post(Uri.parse(base_url + '/' + endpoint), headers: headers, body: jsonEncode(data));

    return jsonDecode(response.body);
}

// ================================================================
// API-specific usage
// ================================================================
void main() async {
    final endpoint = 'Image/rotate';
    final data = 
    {
      "image": "base64_encoded_image_string_here",
      "degrees": 90,
      "background_color": "none"
    };

    try {
        final resData = await processAPIRequest(endpoint, data);
        final status = resData['status'];
        final message = resData['message'];
        final data = resData['data'];
    } catch (e) {
        print('Error: $e');
    }
}

use reqwest::blocking::Client;
use serde_json::Value;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fn process_api_request(endpoint: &str, json_payload: &str) -> Result<Value, Box<dyn std::error::Error>>
{
    let token = "YOUR_API_TOKEN_HERE"; // Configure your token here
    let base_url = "https://apicentral.dev";

    let client = Client::new();

    let response = client
        .post(format!("{}/{}", base_url, endpoint))
        .header("Authorization", format!("Bearer {}", token))
        .header("Content-Type", "application/json")
        .body(json_payload.to_string())
        .send()?;

    let res_data: Value = serde_json::from_str(&response.text()?)?;

    Ok(res_data)
}

// ================================================================
// API-specific usage
// ================================================================
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let endpoint = "Image/rotate";
    let json_payload = r#"
    
    {
      "image": "base64_encoded_image_string_here",
      "degrees": 90,
      "background_color": "none"
    }
    "#;

    let res_data = process_api_request(endpoint, json_payload)?;

    let status = &res_data["status"];
    let message = &res_data["message"];
    let data = &res_data["data"];

    println!("{} {} {:?}", status, message, data);

    Ok(())
}

curl -X POST 'https://apicentral.dev/Image/rotate' \
    -H 'Authorization: Bearer YOUR_API_TOKEN_HERE' \
    -H 'Content-Type: application/json' \
    -d '
    {
      "image": "base64_encoded_image_string_here",
      "degrees": 90,
      "background_color": "none"
    }'

crop

Crop an image by percentage (centered) or by exact coordinates and dimensions
Credits Required: 2.0/MB
File size is rounded up to the nearest MB — minimum billable size is 1 MB

PARAMETERS

NAME TYPE REQUIRED DESCRIPTION ADDITIONAL CREDITS PER ITEM EXAMPLE
image string Yes Base64 encoded image data (max 10MB) None
base64_encoded_image_string_here
crop_mode int Yes Crop mode: 1 = by percentage (centered), 2 = exact coordinates None
1
crop_percentage int No Crop to this percentage of the original size (1-99), used when crop_mode = 1 None
80
crop_x int No Starting X coordinate in pixels, used when crop_mode = 2 None
100
crop_y int No Starting Y coordinate in pixels, used when crop_mode = 2 None
100
crop_width int No Crop width in pixels, used when crop_mode = 2 None
400
crop_height int No Crop height in pixels, used when crop_mode = 2 None
300

RESPONSE EXAMPLE

{
    "status": "success",
    "message": "Image cropped successfully",
    "data":
    {
        "image": "base64_encoded_result_image"
    }
}

CODE EXAMPLES

<?php

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest($endpoint, $PostFields)
{
    $token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    $base_url = 'https://apicentral.dev';

    $Curl = curl_init();

    curl_setopt_array(
        $Curl,
        [
            CURLOPT_URL => $base_url . '/' . $endpoint,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($PostFields),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTPHEADER =>
            [
                'Authorization: Bearer ' . $token,
                'Content-Type: application/x-www-form-urlencoded'
            ]
        ]
    );

    $Response = curl_exec($Curl);
    $Data = json_decode($Response, true);

    if (curl_errno($Curl))
        return ['error' => curl_error($Curl)];

    curl_close($Curl); // Omit in PHP 8 and above

    return $Data;
}

// ================================================================
// API-specific usage
// ================================================================
$endpoint = 'Image/crop';
$PostFields = 
[
  'image' => 'base64_encoded_image_string_here',
  'crop_mode' => 1,
  'crop_percentage' => 80,
  'crop_x' => 100,
  'crop_y' => 100,
  'crop_width' => 400,
  'crop_height' => 300,
];

$Data = processAPIRequest($endpoint, $PostFields);

$status = $Data['status'];
$message = $Data['message'];
$data = $Data['data'] ?? null;
?>

import requests
import json

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, Data):
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'
    Headers = {'Authorization': 'Bearer ' + token}

    try:
        Response = requests.post(base_url + '/' + endpoint, json=Data, headers=Headers)
        return Response.json()
    except Exception as e:
        return {'error': str(e)}

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/crop'
Data = 
{
  "image": "base64_encoded_image_string_here",
  "crop_mode": 1,
  "crop_percentage": 80,
  "crop_x": 100,
  "crop_y": 100,
  "crop_width": 400,
  "crop_height": 300
}

ResData = process_api_request(endpoint, Data)

status = ResData.get('status')
message = ResData.get('message')
data = ResData.get('data')

const axios = require('axios');

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest(endpoint, Data)
{
    const token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    const base_url = 'https://apicentral.dev';

    return axios.post(
        base_url + '/' + endpoint,
        Data,
        {
            headers: {'Authorization': 'Bearer ' + token}
        }
    );
}

// ================================================================
// API-specific usage
// ================================================================
const Data = 
{
  "image": "base64_encoded_image_string_here",
  "crop_mode": 1,
  "crop_percentage": 80,
  "crop_x": 100,
  "crop_y": 100,
  "crop_width": 400,
  "crop_height": 300
};

processAPIRequest('Image/crop', Data)
.then(Response =>
{
    const status = Response.data.status;
    const message = Response.data.message;
    const data = Response.data.data;
})
.catch(Error => { const error = Error.message; });

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static JsonObject processAPIRequest(String endpoint, String jsonPayload) throws Exception
    {
        String token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        String base_url = "https://apicentral.dev";

        HttpClient Client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(30))
            .build();

        HttpRequest Request = HttpRequest.newBuilder()
            .uri(URI.create(base_url + "/" + endpoint))
            .header("Authorization", "Bearer " + token)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
            .build();

        HttpResponse<String> Response = Client.send(Request, HttpResponse.BodyHandlers.ofString());

        return JsonParser.parseString(Response.body()).getAsJsonObject();
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static void main(String[] args)
    {
        String endpoint = "Image/crop";
        String JsonPayload = """
        
        {
          "image": "base64_encoded_image_string_here",
          "crop_mode": 1,
          "crop_percentage": 80,
          "crop_x": 100,
          "crop_y": 100,
          "crop_width": 400,
          "crop_height": 300
        }
        """;

        try
        {
            JsonObject ResData = processAPIRequest(endpoint, JsonPayload);
            String status = ResData.get("status").getAsString();
            String message = ResData.get("message").getAsString();
            Object data = ResData.has("data") ? ResData.get("data") : null;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static async Task<dynamic> ProcessAPIRequest(string endpoint, string jsonPayload)
    {
        string token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        string base_url = "https://apicentral.dev";

        using var Client = new HttpClient();
        Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);

        var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

        var Response = await Client.PostAsync(base_url + "/" + endpoint, content);
        var Result = await Response.Content.ReadAsStringAsync();

        return JsonConvert.DeserializeObject(Result);
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static async Task Main()
    {
        var endpoint = "Image/crop";
        var json_payload = @"
        {
          "image": "base64_encoded_image_string_here",
          "crop_mode": 1,
          "crop_percentage": 80,
          "crop_x": 100,
          "crop_y": 100,
          "crop_width": 400,
          "crop_height": 300
        }";

        dynamic ResData = await ProcessAPIRequest(endpoint, json_payload);

        string status = ResData.status;
        string message = ResData.message;
        object data = ResData.data;
    }
}

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "io"
)

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint string, jsonPayload []byte) (map[string]interface{}, error) {
    token := "YOUR_API_TOKEN_HERE" // Configure your token here
    base_url := "https://apicentral.dev"

    Client := &http.Client{}
    Request, err := http.NewRequest("POST", base_url+"/"+endpoint, bytes.NewBuffer(jsonPayload))

    if err != nil {
        return nil, err
    }

    Request.Header.Set("Authorization", "Bearer " + token)
    Request.Header.Set("Content-Type", "application/json")

    Response, err := Client.Do(Request)

    if err != nil {
        return nil, err
    }

    defer Response.Body.Close()

    Body, _ := io.ReadAll(Response.Body)

    var ResData map[string]interface{}
    json.Unmarshal(Body, &ResData)

    return ResData, nil
}

// ================================================================
// API-specific usage
// ================================================================
func main() {
    JsonPayload := []byte(`
    {
      "image": "base64_encoded_image_string_here",
      "crop_mode": 1,
      "crop_percentage": 80,
      "crop_x": 100,
      "crop_y": 100,
      "crop_width": 400,
      "crop_height": 300
    }`)

    ResData, err := processAPIRequest("Image/crop", JsonPayload)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    status := ResData["status"]
    message := ResData["message"]
    data := ResData["data"]

    fmt.Println(status, message, data)
}

require 'net/http'
require 'uri'
require 'json'

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, data)
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'

    uri = URI(base_url + '/' + endpoint)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true

    request = Net::HTTP::Post.new(uri)
    request['Authorization'] = 'Bearer ' + token
    request['Content-Type'] = 'application/json'
    request.body = data.to_json

    response = http.request(request)
    JSON.parse(response.body)
end

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/crop'
data = 
{
  "image": "base64_encoded_image_string_here",
  "crop_mode": 1,
  "crop_percentage": 80,
  "crop_x": 100,
  "crop_y": 100,
  "crop_width": 400,
  "crop_height": 300
}

res_data = process_api_request(endpoint, data)

status = res_data['status']
message = res_data['message']
data = res_data['data']

import Foundation

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint: String, jsonPayload: Data, completion: @escaping ([String: Any]?) -> Void)
{
    let token = "YOUR_API_TOKEN_HERE" // Configure your token here
    let base_url = "https://apicentral.dev"

    let requestUrl = URL(string: base_url + "/" + endpoint)!
    var request = URLRequest(url: requestUrl)
    request.httpMethod = "POST"
    request.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = jsonPayload

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let error = error {
            print("Error: \(error)")
            completion(nil)
            return
        }

        guard let data = data else {
            completion(nil)
            return
        }

        let resData = try? JSONSerialization.jsonObject(with: data) as? [String: Any]
        completion(resData)
    }

    task.resume()
}

// ================================================================
// API-specific usage
// ================================================================
let endpoint = "Image/crop"
let JsonPayload = """

    {
      "image": "base64_encoded_image_string_here",
      "crop_mode": 1,
      "crop_percentage": 80,
      "crop_x": 100,
      "crop_y": 100,
      "crop_width": 400,
      "crop_height": 300
    }
""".data(using: .utf8)!

processAPIRequest(endpoint: endpoint, jsonPayload: JsonPayload) { resData in
    let status = resData?["status"] as? String
    let message = resData?["message"] as? String
    let data = resData?["data"]
}

import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.net.URI
import java.time.Duration
import com.google.gson.JsonObject
import com.google.gson.JsonParser

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fun processAPIRequest(endpoint: String, jsonPayload: String): JsonObject
{
    val token = "YOUR_API_TOKEN_HERE" // Configure your token here
    val base_url = "https://apicentral.dev"

    val client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(30))
        .build()

    val request = HttpRequest.newBuilder()
        .uri(URI.create(base_url + "/" + endpoint))
        .header("Authorization", "Bearer " + token)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
        .build()

    val response = client.send(request, HttpResponse.BodyHandlers.ofString())

    return JsonParser.parseString(response.body()).asJsonObject
}

// ================================================================
// API-specific usage
// ================================================================
fun main() {
    val endpoint = "Image/crop"
    val jsonPayload = """
    
    {
      "image": "base64_encoded_image_string_here",
      "crop_mode": 1,
      "crop_percentage": 80,
      "crop_x": 100,
      "crop_y": 100,
      "crop_width": 400,
      "crop_height": 300
    }
    """.trimIndent()

    try {
        val resData = processAPIRequest(endpoint, jsonPayload)
        val status = resData.get("status").asString
        val message = resData.get("message").asString
        val data = if (resData.has("data")) resData.get("data") else null
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

import 'dart:convert';
import 'package:http/http.dart' as http;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
Future<Map<String, dynamic>> processAPIRequest(String endpoint, Map<String, dynamic> data) async
{
    final token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    final base_url = 'https://apicentral.dev';
    final headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    };

    final response = await http.post(Uri.parse(base_url + '/' + endpoint), headers: headers, body: jsonEncode(data));

    return jsonDecode(response.body);
}

// ================================================================
// API-specific usage
// ================================================================
void main() async {
    final endpoint = 'Image/crop';
    final data = 
    {
      "image": "base64_encoded_image_string_here",
      "crop_mode": 1,
      "crop_percentage": 80,
      "crop_x": 100,
      "crop_y": 100,
      "crop_width": 400,
      "crop_height": 300
    };

    try {
        final resData = await processAPIRequest(endpoint, data);
        final status = resData['status'];
        final message = resData['message'];
        final data = resData['data'];
    } catch (e) {
        print('Error: $e');
    }
}

use reqwest::blocking::Client;
use serde_json::Value;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fn process_api_request(endpoint: &str, json_payload: &str) -> Result<Value, Box<dyn std::error::Error>>
{
    let token = "YOUR_API_TOKEN_HERE"; // Configure your token here
    let base_url = "https://apicentral.dev";

    let client = Client::new();

    let response = client
        .post(format!("{}/{}", base_url, endpoint))
        .header("Authorization", format!("Bearer {}", token))
        .header("Content-Type", "application/json")
        .body(json_payload.to_string())
        .send()?;

    let res_data: Value = serde_json::from_str(&response.text()?)?;

    Ok(res_data)
}

// ================================================================
// API-specific usage
// ================================================================
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let endpoint = "Image/crop";
    let json_payload = r#"
    
    {
      "image": "base64_encoded_image_string_here",
      "crop_mode": 1,
      "crop_percentage": 80,
      "crop_x": 100,
      "crop_y": 100,
      "crop_width": 400,
      "crop_height": 300
    }
    "#;

    let res_data = process_api_request(endpoint, json_payload)?;

    let status = &res_data["status"];
    let message = &res_data["message"];
    let data = &res_data["data"];

    println!("{} {} {:?}", status, message, data);

    Ok(())
}

curl -X POST 'https://apicentral.dev/Image/crop' \
    -H 'Authorization: Bearer YOUR_API_TOKEN_HERE' \
    -H 'Content-Type: application/json' \
    -d '
    {
      "image": "base64_encoded_image_string_here",
      "crop_mode": 1,
      "crop_percentage": 80,
      "crop_x": 100,
      "crop_y": 100,
      "crop_width": 400,
      "crop_height": 300
    }'

flip

Flip an image horizontally, vertically, or both
Credits Required: 2.0/MB
File size is rounded up to the nearest MB — minimum billable size is 1 MB

PARAMETERS

NAME TYPE REQUIRED DESCRIPTION ADDITIONAL CREDITS PER ITEM EXAMPLE
image string Yes Base64 encoded image data (max 10MB) None
base64_encoded_image_string_here
flip_mode int Yes Flip mode: 1 = horizontal, 2 = vertical, 3 = both None
1

RESPONSE EXAMPLE

{
    "status": "success",
    "message": "Image flipped successfully",
    "data":
    {
        "image": "base64_encoded_result_image"
    }
}

CODE EXAMPLES

<?php

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest($endpoint, $PostFields)
{
    $token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    $base_url = 'https://apicentral.dev';

    $Curl = curl_init();

    curl_setopt_array(
        $Curl,
        [
            CURLOPT_URL => $base_url . '/' . $endpoint,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($PostFields),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTPHEADER =>
            [
                'Authorization: Bearer ' . $token,
                'Content-Type: application/x-www-form-urlencoded'
            ]
        ]
    );

    $Response = curl_exec($Curl);
    $Data = json_decode($Response, true);

    if (curl_errno($Curl))
        return ['error' => curl_error($Curl)];

    curl_close($Curl); // Omit in PHP 8 and above

    return $Data;
}

// ================================================================
// API-specific usage
// ================================================================
$endpoint = 'Image/flip';
$PostFields = 
[
  'image' => 'base64_encoded_image_string_here',
  'flip_mode' => 1,
];

$Data = processAPIRequest($endpoint, $PostFields);

$status = $Data['status'];
$message = $Data['message'];
$data = $Data['data'] ?? null;
?>

import requests
import json

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, Data):
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'
    Headers = {'Authorization': 'Bearer ' + token}

    try:
        Response = requests.post(base_url + '/' + endpoint, json=Data, headers=Headers)
        return Response.json()
    except Exception as e:
        return {'error': str(e)}

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/flip'
Data = 
{
  "image": "base64_encoded_image_string_here",
  "flip_mode": 1
}

ResData = process_api_request(endpoint, Data)

status = ResData.get('status')
message = ResData.get('message')
data = ResData.get('data')

const axios = require('axios');

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest(endpoint, Data)
{
    const token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    const base_url = 'https://apicentral.dev';

    return axios.post(
        base_url + '/' + endpoint,
        Data,
        {
            headers: {'Authorization': 'Bearer ' + token}
        }
    );
}

// ================================================================
// API-specific usage
// ================================================================
const Data = 
{
  "image": "base64_encoded_image_string_here",
  "flip_mode": 1
};

processAPIRequest('Image/flip', Data)
.then(Response =>
{
    const status = Response.data.status;
    const message = Response.data.message;
    const data = Response.data.data;
})
.catch(Error => { const error = Error.message; });

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static JsonObject processAPIRequest(String endpoint, String jsonPayload) throws Exception
    {
        String token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        String base_url = "https://apicentral.dev";

        HttpClient Client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(30))
            .build();

        HttpRequest Request = HttpRequest.newBuilder()
            .uri(URI.create(base_url + "/" + endpoint))
            .header("Authorization", "Bearer " + token)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
            .build();

        HttpResponse<String> Response = Client.send(Request, HttpResponse.BodyHandlers.ofString());

        return JsonParser.parseString(Response.body()).getAsJsonObject();
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static void main(String[] args)
    {
        String endpoint = "Image/flip";
        String JsonPayload = """
        
        {
          "image": "base64_encoded_image_string_here",
          "flip_mode": 1
        }
        """;

        try
        {
            JsonObject ResData = processAPIRequest(endpoint, JsonPayload);
            String status = ResData.get("status").getAsString();
            String message = ResData.get("message").getAsString();
            Object data = ResData.has("data") ? ResData.get("data") : null;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static async Task<dynamic> ProcessAPIRequest(string endpoint, string jsonPayload)
    {
        string token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        string base_url = "https://apicentral.dev";

        using var Client = new HttpClient();
        Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);

        var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

        var Response = await Client.PostAsync(base_url + "/" + endpoint, content);
        var Result = await Response.Content.ReadAsStringAsync();

        return JsonConvert.DeserializeObject(Result);
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static async Task Main()
    {
        var endpoint = "Image/flip";
        var json_payload = @"
        {
          "image": "base64_encoded_image_string_here",
          "flip_mode": 1
        }";

        dynamic ResData = await ProcessAPIRequest(endpoint, json_payload);

        string status = ResData.status;
        string message = ResData.message;
        object data = ResData.data;
    }
}

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "io"
)

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint string, jsonPayload []byte) (map[string]interface{}, error) {
    token := "YOUR_API_TOKEN_HERE" // Configure your token here
    base_url := "https://apicentral.dev"

    Client := &http.Client{}
    Request, err := http.NewRequest("POST", base_url+"/"+endpoint, bytes.NewBuffer(jsonPayload))

    if err != nil {
        return nil, err
    }

    Request.Header.Set("Authorization", "Bearer " + token)
    Request.Header.Set("Content-Type", "application/json")

    Response, err := Client.Do(Request)

    if err != nil {
        return nil, err
    }

    defer Response.Body.Close()

    Body, _ := io.ReadAll(Response.Body)

    var ResData map[string]interface{}
    json.Unmarshal(Body, &ResData)

    return ResData, nil
}

// ================================================================
// API-specific usage
// ================================================================
func main() {
    JsonPayload := []byte(`
    {
      "image": "base64_encoded_image_string_here",
      "flip_mode": 1
    }`)

    ResData, err := processAPIRequest("Image/flip", JsonPayload)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    status := ResData["status"]
    message := ResData["message"]
    data := ResData["data"]

    fmt.Println(status, message, data)
}

require 'net/http'
require 'uri'
require 'json'

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, data)
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'

    uri = URI(base_url + '/' + endpoint)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true

    request = Net::HTTP::Post.new(uri)
    request['Authorization'] = 'Bearer ' + token
    request['Content-Type'] = 'application/json'
    request.body = data.to_json

    response = http.request(request)
    JSON.parse(response.body)
end

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/flip'
data = 
{
  "image": "base64_encoded_image_string_here",
  "flip_mode": 1
}

res_data = process_api_request(endpoint, data)

status = res_data['status']
message = res_data['message']
data = res_data['data']

import Foundation

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint: String, jsonPayload: Data, completion: @escaping ([String: Any]?) -> Void)
{
    let token = "YOUR_API_TOKEN_HERE" // Configure your token here
    let base_url = "https://apicentral.dev"

    let requestUrl = URL(string: base_url + "/" + endpoint)!
    var request = URLRequest(url: requestUrl)
    request.httpMethod = "POST"
    request.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = jsonPayload

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let error = error {
            print("Error: \(error)")
            completion(nil)
            return
        }

        guard let data = data else {
            completion(nil)
            return
        }

        let resData = try? JSONSerialization.jsonObject(with: data) as? [String: Any]
        completion(resData)
    }

    task.resume()
}

// ================================================================
// API-specific usage
// ================================================================
let endpoint = "Image/flip"
let JsonPayload = """

    {
      "image": "base64_encoded_image_string_here",
      "flip_mode": 1
    }
""".data(using: .utf8)!

processAPIRequest(endpoint: endpoint, jsonPayload: JsonPayload) { resData in
    let status = resData?["status"] as? String
    let message = resData?["message"] as? String
    let data = resData?["data"]
}

import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.net.URI
import java.time.Duration
import com.google.gson.JsonObject
import com.google.gson.JsonParser

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fun processAPIRequest(endpoint: String, jsonPayload: String): JsonObject
{
    val token = "YOUR_API_TOKEN_HERE" // Configure your token here
    val base_url = "https://apicentral.dev"

    val client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(30))
        .build()

    val request = HttpRequest.newBuilder()
        .uri(URI.create(base_url + "/" + endpoint))
        .header("Authorization", "Bearer " + token)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
        .build()

    val response = client.send(request, HttpResponse.BodyHandlers.ofString())

    return JsonParser.parseString(response.body()).asJsonObject
}

// ================================================================
// API-specific usage
// ================================================================
fun main() {
    val endpoint = "Image/flip"
    val jsonPayload = """
    
    {
      "image": "base64_encoded_image_string_here",
      "flip_mode": 1
    }
    """.trimIndent()

    try {
        val resData = processAPIRequest(endpoint, jsonPayload)
        val status = resData.get("status").asString
        val message = resData.get("message").asString
        val data = if (resData.has("data")) resData.get("data") else null
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

import 'dart:convert';
import 'package:http/http.dart' as http;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
Future<Map<String, dynamic>> processAPIRequest(String endpoint, Map<String, dynamic> data) async
{
    final token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    final base_url = 'https://apicentral.dev';
    final headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    };

    final response = await http.post(Uri.parse(base_url + '/' + endpoint), headers: headers, body: jsonEncode(data));

    return jsonDecode(response.body);
}

// ================================================================
// API-specific usage
// ================================================================
void main() async {
    final endpoint = 'Image/flip';
    final data = 
    {
      "image": "base64_encoded_image_string_here",
      "flip_mode": 1
    };

    try {
        final resData = await processAPIRequest(endpoint, data);
        final status = resData['status'];
        final message = resData['message'];
        final data = resData['data'];
    } catch (e) {
        print('Error: $e');
    }
}

use reqwest::blocking::Client;
use serde_json::Value;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fn process_api_request(endpoint: &str, json_payload: &str) -> Result<Value, Box<dyn std::error::Error>>
{
    let token = "YOUR_API_TOKEN_HERE"; // Configure your token here
    let base_url = "https://apicentral.dev";

    let client = Client::new();

    let response = client
        .post(format!("{}/{}", base_url, endpoint))
        .header("Authorization", format!("Bearer {}", token))
        .header("Content-Type", "application/json")
        .body(json_payload.to_string())
        .send()?;

    let res_data: Value = serde_json::from_str(&response.text()?)?;

    Ok(res_data)
}

// ================================================================
// API-specific usage
// ================================================================
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let endpoint = "Image/flip";
    let json_payload = r#"
    
    {
      "image": "base64_encoded_image_string_here",
      "flip_mode": 1
    }
    "#;

    let res_data = process_api_request(endpoint, json_payload)?;

    let status = &res_data["status"];
    let message = &res_data["message"];
    let data = &res_data["data"];

    println!("{} {} {:?}", status, message, data);

    Ok(())
}

curl -X POST 'https://apicentral.dev/Image/flip' \
    -H 'Authorization: Bearer YOUR_API_TOKEN_HERE' \
    -H 'Content-Type: application/json' \
    -d '
    {
      "image": "base64_encoded_image_string_here",
      "flip_mode": 1
    }'

border

Add a border around an image with specified width, height, and color
Credits Required: 2.0/MB
File size is rounded up to the nearest MB — minimum billable size is 1 MB

PARAMETERS

NAME TYPE REQUIRED DESCRIPTION ADDITIONAL CREDITS PER ITEM EXAMPLE
image string Yes Base64 encoded image data (max 10MB) None
base64_encoded_image_string_here
border_width int Yes Border width in pixels (1-500) None
10
border_height int Yes Border height in pixels (1-500) None
10
border_color string Yes Border color in hex format (e.g. #000000) None
#000000

RESPONSE EXAMPLE

{
    "status": "success",
    "message": "Border added successfully",
    "data":
    {
        "image": "base64_encoded_result_image"
    }
}

CODE EXAMPLES

<?php

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest($endpoint, $PostFields)
{
    $token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    $base_url = 'https://apicentral.dev';

    $Curl = curl_init();

    curl_setopt_array(
        $Curl,
        [
            CURLOPT_URL => $base_url . '/' . $endpoint,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($PostFields),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTPHEADER =>
            [
                'Authorization: Bearer ' . $token,
                'Content-Type: application/x-www-form-urlencoded'
            ]
        ]
    );

    $Response = curl_exec($Curl);
    $Data = json_decode($Response, true);

    if (curl_errno($Curl))
        return ['error' => curl_error($Curl)];

    curl_close($Curl); // Omit in PHP 8 and above

    return $Data;
}

// ================================================================
// API-specific usage
// ================================================================
$endpoint = 'Image/border';
$PostFields = 
[
  'image' => 'base64_encoded_image_string_here',
  'border_width' => 10,
  'border_height' => 10,
  'border_color' => '#000000',
];

$Data = processAPIRequest($endpoint, $PostFields);

$status = $Data['status'];
$message = $Data['message'];
$data = $Data['data'] ?? null;
?>

import requests
import json

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, Data):
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'
    Headers = {'Authorization': 'Bearer ' + token}

    try:
        Response = requests.post(base_url + '/' + endpoint, json=Data, headers=Headers)
        return Response.json()
    except Exception as e:
        return {'error': str(e)}

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/border'
Data = 
{
  "image": "base64_encoded_image_string_here",
  "border_width": 10,
  "border_height": 10,
  "border_color": "#000000"
}

ResData = process_api_request(endpoint, Data)

status = ResData.get('status')
message = ResData.get('message')
data = ResData.get('data')

const axios = require('axios');

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest(endpoint, Data)
{
    const token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    const base_url = 'https://apicentral.dev';

    return axios.post(
        base_url + '/' + endpoint,
        Data,
        {
            headers: {'Authorization': 'Bearer ' + token}
        }
    );
}

// ================================================================
// API-specific usage
// ================================================================
const Data = 
{
  "image": "base64_encoded_image_string_here",
  "border_width": 10,
  "border_height": 10,
  "border_color": "#000000"
};

processAPIRequest('Image/border', Data)
.then(Response =>
{
    const status = Response.data.status;
    const message = Response.data.message;
    const data = Response.data.data;
})
.catch(Error => { const error = Error.message; });

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static JsonObject processAPIRequest(String endpoint, String jsonPayload) throws Exception
    {
        String token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        String base_url = "https://apicentral.dev";

        HttpClient Client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(30))
            .build();

        HttpRequest Request = HttpRequest.newBuilder()
            .uri(URI.create(base_url + "/" + endpoint))
            .header("Authorization", "Bearer " + token)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
            .build();

        HttpResponse<String> Response = Client.send(Request, HttpResponse.BodyHandlers.ofString());

        return JsonParser.parseString(Response.body()).getAsJsonObject();
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static void main(String[] args)
    {
        String endpoint = "Image/border";
        String JsonPayload = """
        
        {
          "image": "base64_encoded_image_string_here",
          "border_width": 10,
          "border_height": 10,
          "border_color": "#000000"
        }
        """;

        try
        {
            JsonObject ResData = processAPIRequest(endpoint, JsonPayload);
            String status = ResData.get("status").getAsString();
            String message = ResData.get("message").getAsString();
            Object data = ResData.has("data") ? ResData.get("data") : null;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static async Task<dynamic> ProcessAPIRequest(string endpoint, string jsonPayload)
    {
        string token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        string base_url = "https://apicentral.dev";

        using var Client = new HttpClient();
        Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);

        var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

        var Response = await Client.PostAsync(base_url + "/" + endpoint, content);
        var Result = await Response.Content.ReadAsStringAsync();

        return JsonConvert.DeserializeObject(Result);
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static async Task Main()
    {
        var endpoint = "Image/border";
        var json_payload = @"
        {
          "image": "base64_encoded_image_string_here",
          "border_width": 10,
          "border_height": 10,
          "border_color": "#000000"
        }";

        dynamic ResData = await ProcessAPIRequest(endpoint, json_payload);

        string status = ResData.status;
        string message = ResData.message;
        object data = ResData.data;
    }
}

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "io"
)

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint string, jsonPayload []byte) (map[string]interface{}, error) {
    token := "YOUR_API_TOKEN_HERE" // Configure your token here
    base_url := "https://apicentral.dev"

    Client := &http.Client{}
    Request, err := http.NewRequest("POST", base_url+"/"+endpoint, bytes.NewBuffer(jsonPayload))

    if err != nil {
        return nil, err
    }

    Request.Header.Set("Authorization", "Bearer " + token)
    Request.Header.Set("Content-Type", "application/json")

    Response, err := Client.Do(Request)

    if err != nil {
        return nil, err
    }

    defer Response.Body.Close()

    Body, _ := io.ReadAll(Response.Body)

    var ResData map[string]interface{}
    json.Unmarshal(Body, &ResData)

    return ResData, nil
}

// ================================================================
// API-specific usage
// ================================================================
func main() {
    JsonPayload := []byte(`
    {
      "image": "base64_encoded_image_string_here",
      "border_width": 10,
      "border_height": 10,
      "border_color": "#000000"
    }`)

    ResData, err := processAPIRequest("Image/border", JsonPayload)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    status := ResData["status"]
    message := ResData["message"]
    data := ResData["data"]

    fmt.Println(status, message, data)
}

require 'net/http'
require 'uri'
require 'json'

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, data)
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'

    uri = URI(base_url + '/' + endpoint)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true

    request = Net::HTTP::Post.new(uri)
    request['Authorization'] = 'Bearer ' + token
    request['Content-Type'] = 'application/json'
    request.body = data.to_json

    response = http.request(request)
    JSON.parse(response.body)
end

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/border'
data = 
{
  "image": "base64_encoded_image_string_here",
  "border_width": 10,
  "border_height": 10,
  "border_color": "#000000"
}

res_data = process_api_request(endpoint, data)

status = res_data['status']
message = res_data['message']
data = res_data['data']

import Foundation

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint: String, jsonPayload: Data, completion: @escaping ([String: Any]?) -> Void)
{
    let token = "YOUR_API_TOKEN_HERE" // Configure your token here
    let base_url = "https://apicentral.dev"

    let requestUrl = URL(string: base_url + "/" + endpoint)!
    var request = URLRequest(url: requestUrl)
    request.httpMethod = "POST"
    request.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = jsonPayload

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let error = error {
            print("Error: \(error)")
            completion(nil)
            return
        }

        guard let data = data else {
            completion(nil)
            return
        }

        let resData = try? JSONSerialization.jsonObject(with: data) as? [String: Any]
        completion(resData)
    }

    task.resume()
}

// ================================================================
// API-specific usage
// ================================================================
let endpoint = "Image/border"
let JsonPayload = """

    {
      "image": "base64_encoded_image_string_here",
      "border_width": 10,
      "border_height": 10,
      "border_color": "#000000"
    }
""".data(using: .utf8)!

processAPIRequest(endpoint: endpoint, jsonPayload: JsonPayload) { resData in
    let status = resData?["status"] as? String
    let message = resData?["message"] as? String
    let data = resData?["data"]
}

import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.net.URI
import java.time.Duration
import com.google.gson.JsonObject
import com.google.gson.JsonParser

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fun processAPIRequest(endpoint: String, jsonPayload: String): JsonObject
{
    val token = "YOUR_API_TOKEN_HERE" // Configure your token here
    val base_url = "https://apicentral.dev"

    val client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(30))
        .build()

    val request = HttpRequest.newBuilder()
        .uri(URI.create(base_url + "/" + endpoint))
        .header("Authorization", "Bearer " + token)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
        .build()

    val response = client.send(request, HttpResponse.BodyHandlers.ofString())

    return JsonParser.parseString(response.body()).asJsonObject
}

// ================================================================
// API-specific usage
// ================================================================
fun main() {
    val endpoint = "Image/border"
    val jsonPayload = """
    
    {
      "image": "base64_encoded_image_string_here",
      "border_width": 10,
      "border_height": 10,
      "border_color": "#000000"
    }
    """.trimIndent()

    try {
        val resData = processAPIRequest(endpoint, jsonPayload)
        val status = resData.get("status").asString
        val message = resData.get("message").asString
        val data = if (resData.has("data")) resData.get("data") else null
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

import 'dart:convert';
import 'package:http/http.dart' as http;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
Future<Map<String, dynamic>> processAPIRequest(String endpoint, Map<String, dynamic> data) async
{
    final token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    final base_url = 'https://apicentral.dev';
    final headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    };

    final response = await http.post(Uri.parse(base_url + '/' + endpoint), headers: headers, body: jsonEncode(data));

    return jsonDecode(response.body);
}

// ================================================================
// API-specific usage
// ================================================================
void main() async {
    final endpoint = 'Image/border';
    final data = 
    {
      "image": "base64_encoded_image_string_here",
      "border_width": 10,
      "border_height": 10,
      "border_color": "#000000"
    };

    try {
        final resData = await processAPIRequest(endpoint, data);
        final status = resData['status'];
        final message = resData['message'];
        final data = resData['data'];
    } catch (e) {
        print('Error: $e');
    }
}

use reqwest::blocking::Client;
use serde_json::Value;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fn process_api_request(endpoint: &str, json_payload: &str) -> Result<Value, Box<dyn std::error::Error>>
{
    let token = "YOUR_API_TOKEN_HERE"; // Configure your token here
    let base_url = "https://apicentral.dev";

    let client = Client::new();

    let response = client
        .post(format!("{}/{}", base_url, endpoint))
        .header("Authorization", format!("Bearer {}", token))
        .header("Content-Type", "application/json")
        .body(json_payload.to_string())
        .send()?;

    let res_data: Value = serde_json::from_str(&response.text()?)?;

    Ok(res_data)
}

// ================================================================
// API-specific usage
// ================================================================
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let endpoint = "Image/border";
    let json_payload = r#"
    
    {
      "image": "base64_encoded_image_string_here",
      "border_width": 10,
      "border_height": 10,
      "border_color": "#000000"
    }
    "#;

    let res_data = process_api_request(endpoint, json_payload)?;

    let status = &res_data["status"];
    let message = &res_data["message"];
    let data = &res_data["data"];

    println!("{} {} {:?}", status, message, data);

    Ok(())
}

curl -X POST 'https://apicentral.dev/Image/border' \
    -H 'Authorization: Bearer YOUR_API_TOKEN_HERE' \
    -H 'Content-Type: application/json' \
    -d '
    {
      "image": "base64_encoded_image_string_here",
      "border_width": 10,
      "border_height": 10,
      "border_color": "#000000"
    }'

merge

Merge multiple images into a single image horizontally, vertically, or in a grid layout
Credits Required: 0.0
File size is rounded up to the nearest MB — minimum billable size is 1 MB

PARAMETERS

NAME TYPE REQUIRED DESCRIPTION ADDITIONAL CREDITS PER ITEM EXAMPLE
Images array Yes Array of base64 encoded image strings (min 2, max 100 images, each max 10MB, total max 100MB) 2.0/MB
[
    "base64_encoded_image_1_here",
    "base64_encoded_image_2_here",
    "base64_encoded_image_3_here"
]
merge_mode int Yes Merge mode: 1 = horizontal, 2 = vertical, 3 = grid None
1

RESPONSE EXAMPLE

{
    "status": "success",
    "message": "Images merged successfully",
    "data":
    {
        "image": "base64_encoded_result_image"
    }
}

CODE EXAMPLES

<?php

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest($endpoint, $PostFields)
{
    $token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    $base_url = 'https://apicentral.dev';

    $Curl = curl_init();

    curl_setopt_array(
        $Curl,
        [
            CURLOPT_URL => $base_url . '/' . $endpoint,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($PostFields),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTPHEADER =>
            [
                'Authorization: Bearer ' . $token,
                'Content-Type: application/x-www-form-urlencoded'
            ]
        ]
    );

    $Response = curl_exec($Curl);
    $Data = json_decode($Response, true);

    if (curl_errno($Curl))
        return ['error' => curl_error($Curl)];

    curl_close($Curl); // Omit in PHP 8 and above

    return $Data;
}

// ================================================================
// API-specific usage
// ================================================================
$endpoint = 'Image/merge';
$PostFields = 
[
  'Images' => 
  [
    '0' => 'base64_encoded_image_1_here',
    '1' => 'base64_encoded_image_2_here',
    '2' => 'base64_encoded_image_3_here',
  ],
  'merge_mode' => 1,
];

$Data = processAPIRequest($endpoint, $PostFields);

$status = $Data['status'];
$message = $Data['message'];
$data = $Data['data'] ?? null;
?>

import requests
import json

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, Data):
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'
    Headers = {'Authorization': 'Bearer ' + token}

    try:
        Response = requests.post(base_url + '/' + endpoint, json=Data, headers=Headers)
        return Response.json()
    except Exception as e:
        return {'error': str(e)}

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/merge'
Data = 
{
  "Images": 
  {
    "0": "base64_encoded_image_1_here",
    "1": "base64_encoded_image_2_here",
    "2": "base64_encoded_image_3_here"
  },
  "merge_mode": 1
}

ResData = process_api_request(endpoint, Data)

status = ResData.get('status')
message = ResData.get('message')
data = ResData.get('data')

const axios = require('axios');

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest(endpoint, Data)
{
    const token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    const base_url = 'https://apicentral.dev';

    return axios.post(
        base_url + '/' + endpoint,
        Data,
        {
            headers: {'Authorization': 'Bearer ' + token}
        }
    );
}

// ================================================================
// API-specific usage
// ================================================================
const Data = 
{
  "Images": 
  {
    "0": "base64_encoded_image_1_here",
    "1": "base64_encoded_image_2_here",
    "2": "base64_encoded_image_3_here"
  },
  "merge_mode": 1
};

processAPIRequest('Image/merge', Data)
.then(Response =>
{
    const status = Response.data.status;
    const message = Response.data.message;
    const data = Response.data.data;
})
.catch(Error => { const error = Error.message; });

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static JsonObject processAPIRequest(String endpoint, String jsonPayload) throws Exception
    {
        String token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        String base_url = "https://apicentral.dev";

        HttpClient Client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(30))
            .build();

        HttpRequest Request = HttpRequest.newBuilder()
            .uri(URI.create(base_url + "/" + endpoint))
            .header("Authorization", "Bearer " + token)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
            .build();

        HttpResponse<String> Response = Client.send(Request, HttpResponse.BodyHandlers.ofString());

        return JsonParser.parseString(Response.body()).getAsJsonObject();
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static void main(String[] args)
    {
        String endpoint = "Image/merge";
        String JsonPayload = """
        
        {
          "Images": 
          {
            "0": "base64_encoded_image_1_here",
            "1": "base64_encoded_image_2_here",
            "2": "base64_encoded_image_3_here"
          },
          "merge_mode": 1
        }
        """;

        try
        {
            JsonObject ResData = processAPIRequest(endpoint, JsonPayload);
            String status = ResData.get("status").getAsString();
            String message = ResData.get("message").getAsString();
            Object data = ResData.has("data") ? ResData.get("data") : null;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static async Task<dynamic> ProcessAPIRequest(string endpoint, string jsonPayload)
    {
        string token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        string base_url = "https://apicentral.dev";

        using var Client = new HttpClient();
        Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);

        var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

        var Response = await Client.PostAsync(base_url + "/" + endpoint, content);
        var Result = await Response.Content.ReadAsStringAsync();

        return JsonConvert.DeserializeObject(Result);
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static async Task Main()
    {
        var endpoint = "Image/merge";
        var json_payload = @"
        {
          "Images": 
          {
            "0": "base64_encoded_image_1_here",
            "1": "base64_encoded_image_2_here",
            "2": "base64_encoded_image_3_here"
          },
          "merge_mode": 1
        }";

        dynamic ResData = await ProcessAPIRequest(endpoint, json_payload);

        string status = ResData.status;
        string message = ResData.message;
        object data = ResData.data;
    }
}

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "io"
)

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint string, jsonPayload []byte) (map[string]interface{}, error) {
    token := "YOUR_API_TOKEN_HERE" // Configure your token here
    base_url := "https://apicentral.dev"

    Client := &http.Client{}
    Request, err := http.NewRequest("POST", base_url+"/"+endpoint, bytes.NewBuffer(jsonPayload))

    if err != nil {
        return nil, err
    }

    Request.Header.Set("Authorization", "Bearer " + token)
    Request.Header.Set("Content-Type", "application/json")

    Response, err := Client.Do(Request)

    if err != nil {
        return nil, err
    }

    defer Response.Body.Close()

    Body, _ := io.ReadAll(Response.Body)

    var ResData map[string]interface{}
    json.Unmarshal(Body, &ResData)

    return ResData, nil
}

// ================================================================
// API-specific usage
// ================================================================
func main() {
    JsonPayload := []byte(`
    {
      "Images": 
      {
        "0": "base64_encoded_image_1_here",
        "1": "base64_encoded_image_2_here",
        "2": "base64_encoded_image_3_here"
      },
      "merge_mode": 1
    }`)

    ResData, err := processAPIRequest("Image/merge", JsonPayload)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    status := ResData["status"]
    message := ResData["message"]
    data := ResData["data"]

    fmt.Println(status, message, data)
}

require 'net/http'
require 'uri'
require 'json'

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, data)
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'

    uri = URI(base_url + '/' + endpoint)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true

    request = Net::HTTP::Post.new(uri)
    request['Authorization'] = 'Bearer ' + token
    request['Content-Type'] = 'application/json'
    request.body = data.to_json

    response = http.request(request)
    JSON.parse(response.body)
end

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/merge'
data = 
{
  "Images": 
  {
    "0": "base64_encoded_image_1_here",
    "1": "base64_encoded_image_2_here",
    "2": "base64_encoded_image_3_here"
  },
  "merge_mode": 1
}

res_data = process_api_request(endpoint, data)

status = res_data['status']
message = res_data['message']
data = res_data['data']

import Foundation

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint: String, jsonPayload: Data, completion: @escaping ([String: Any]?) -> Void)
{
    let token = "YOUR_API_TOKEN_HERE" // Configure your token here
    let base_url = "https://apicentral.dev"

    let requestUrl = URL(string: base_url + "/" + endpoint)!
    var request = URLRequest(url: requestUrl)
    request.httpMethod = "POST"
    request.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = jsonPayload

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let error = error {
            print("Error: \(error)")
            completion(nil)
            return
        }

        guard let data = data else {
            completion(nil)
            return
        }

        let resData = try? JSONSerialization.jsonObject(with: data) as? [String: Any]
        completion(resData)
    }

    task.resume()
}

// ================================================================
// API-specific usage
// ================================================================
let endpoint = "Image/merge"
let JsonPayload = """

    {
      "Images": 
      {
        "0": "base64_encoded_image_1_here",
        "1": "base64_encoded_image_2_here",
        "2": "base64_encoded_image_3_here"
      },
      "merge_mode": 1
    }
""".data(using: .utf8)!

processAPIRequest(endpoint: endpoint, jsonPayload: JsonPayload) { resData in
    let status = resData?["status"] as? String
    let message = resData?["message"] as? String
    let data = resData?["data"]
}

import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.net.URI
import java.time.Duration
import com.google.gson.JsonObject
import com.google.gson.JsonParser

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fun processAPIRequest(endpoint: String, jsonPayload: String): JsonObject
{
    val token = "YOUR_API_TOKEN_HERE" // Configure your token here
    val base_url = "https://apicentral.dev"

    val client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(30))
        .build()

    val request = HttpRequest.newBuilder()
        .uri(URI.create(base_url + "/" + endpoint))
        .header("Authorization", "Bearer " + token)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
        .build()

    val response = client.send(request, HttpResponse.BodyHandlers.ofString())

    return JsonParser.parseString(response.body()).asJsonObject
}

// ================================================================
// API-specific usage
// ================================================================
fun main() {
    val endpoint = "Image/merge"
    val jsonPayload = """
    
    {
      "Images": 
      {
        "0": "base64_encoded_image_1_here",
        "1": "base64_encoded_image_2_here",
        "2": "base64_encoded_image_3_here"
      },
      "merge_mode": 1
    }
    """.trimIndent()

    try {
        val resData = processAPIRequest(endpoint, jsonPayload)
        val status = resData.get("status").asString
        val message = resData.get("message").asString
        val data = if (resData.has("data")) resData.get("data") else null
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

import 'dart:convert';
import 'package:http/http.dart' as http;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
Future<Map<String, dynamic>> processAPIRequest(String endpoint, Map<String, dynamic> data) async
{
    final token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    final base_url = 'https://apicentral.dev';
    final headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    };

    final response = await http.post(Uri.parse(base_url + '/' + endpoint), headers: headers, body: jsonEncode(data));

    return jsonDecode(response.body);
}

// ================================================================
// API-specific usage
// ================================================================
void main() async {
    final endpoint = 'Image/merge';
    final data = 
    {
      "Images": 
      {
        "0": "base64_encoded_image_1_here",
        "1": "base64_encoded_image_2_here",
        "2": "base64_encoded_image_3_here"
      },
      "merge_mode": 1
    };

    try {
        final resData = await processAPIRequest(endpoint, data);
        final status = resData['status'];
        final message = resData['message'];
        final data = resData['data'];
    } catch (e) {
        print('Error: $e');
    }
}

use reqwest::blocking::Client;
use serde_json::Value;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fn process_api_request(endpoint: &str, json_payload: &str) -> Result<Value, Box<dyn std::error::Error>>
{
    let token = "YOUR_API_TOKEN_HERE"; // Configure your token here
    let base_url = "https://apicentral.dev";

    let client = Client::new();

    let response = client
        .post(format!("{}/{}", base_url, endpoint))
        .header("Authorization", format!("Bearer {}", token))
        .header("Content-Type", "application/json")
        .body(json_payload.to_string())
        .send()?;

    let res_data: Value = serde_json::from_str(&response.text()?)?;

    Ok(res_data)
}

// ================================================================
// API-specific usage
// ================================================================
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let endpoint = "Image/merge";
    let json_payload = r#"
    
    {
      "Images": 
      {
        "0": "base64_encoded_image_1_here",
        "1": "base64_encoded_image_2_here",
        "2": "base64_encoded_image_3_here"
      },
      "merge_mode": 1
    }
    "#;

    let res_data = process_api_request(endpoint, json_payload)?;

    let status = &res_data["status"];
    let message = &res_data["message"];
    let data = &res_data["data"];

    println!("{} {} {:?}", status, message, data);

    Ok(())
}

curl -X POST 'https://apicentral.dev/Image/merge' \
    -H 'Authorization: Bearer YOUR_API_TOKEN_HERE' \
    -H 'Content-Type: application/json' \
    -d '
    {
      "Images": 
      {
        "0": "base64_encoded_image_1_here",
        "1": "base64_encoded_image_2_here",
        "2": "base64_encoded_image_3_here"
      },
      "merge_mode": 1
    }'

specialEffects

Apply one or more special effects to an image: oil paint, polaroid, swirl, wave, negate, charcoal, sepia, vignette, enhance saturation, enhance contrast
Credits Required: 0.0
File size is rounded up to the nearest MB — minimum billable size is 1 MB

PARAMETERS

NAME TYPE REQUIRED DESCRIPTION ADDITIONAL CREDITS PER ITEM EXAMPLE
image string Yes Base64 encoded image data (max 10MB) None
base64_encoded_image_string_here
oil_paint int No Apply oil paint effect (0 = no, 1 = yes) 2.0/MB
0
polaroid int No Apply polaroid effect (0 = no, 1 = yes) 2.0/MB
0
polaroid_angle float No Polaroid rotation angle in degrees (used when polaroid = 1) None
5
swirl int No Apply swirl effect (0 = no, 1 = yes) 2.0/MB
0
swirl_amount float No Swirl intensity in degrees (used when swirl = 1) None
60
wave int No Apply wave effect (0 = no, 1 = yes) 2.0/MB
0
wave_amplitude float No Wave amplitude in pixels (used when wave = 1) None
10
wave_length float No Wave length in pixels (used when wave = 1) None
50
negate int No Apply negate/invert effect (0 = no, 1 = yes) 2.0/MB
0
charcoal int No Apply charcoal sketch effect (0 = no, 1 = yes) 2.0/MB
0
sepia int No Apply sepia tone effect (0 = no, 1 = yes) 2.0/MB
0
vignette int No Apply vignette effect (0 = no, 1 = yes) 2.0/MB
0
enhance_saturation int No Enhance color saturation (0 = no, 1 = yes) 2.0/MB
0
enhance_contrast int No Enhance contrast / normalize (0 = no, 1 = yes) 2.0/MB
0

RESPONSE EXAMPLE

{
    "status": "success",
    "message": "Special effects applied successfully",
    "data":
    {
        "image": "base64_encoded_result_image"
    }
}

CODE EXAMPLES

<?php

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest($endpoint, $PostFields)
{
    $token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    $base_url = 'https://apicentral.dev';

    $Curl = curl_init();

    curl_setopt_array(
        $Curl,
        [
            CURLOPT_URL => $base_url . '/' . $endpoint,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($PostFields),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTPHEADER =>
            [
                'Authorization: Bearer ' . $token,
                'Content-Type: application/x-www-form-urlencoded'
            ]
        ]
    );

    $Response = curl_exec($Curl);
    $Data = json_decode($Response, true);

    if (curl_errno($Curl))
        return ['error' => curl_error($Curl)];

    curl_close($Curl); // Omit in PHP 8 and above

    return $Data;
}

// ================================================================
// API-specific usage
// ================================================================
$endpoint = 'Image/specialEffects';
$PostFields = 
[
  'image' => 'base64_encoded_image_string_here',
  'oil_paint' => 0,
  'polaroid' => 0,
  'polaroid_angle' => 5,
  'swirl' => 0,
  'swirl_amount' => 60,
  'wave' => 0,
  'wave_amplitude' => 10,
  'wave_length' => 50,
  'negate' => 0,
  'charcoal' => 0,
  'sepia' => 0,
  'vignette' => 0,
  'enhance_saturation' => 0,
  'enhance_contrast' => 0,
];

$Data = processAPIRequest($endpoint, $PostFields);

$status = $Data['status'];
$message = $Data['message'];
$data = $Data['data'] ?? null;
?>

import requests
import json

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, Data):
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'
    Headers = {'Authorization': 'Bearer ' + token}

    try:
        Response = requests.post(base_url + '/' + endpoint, json=Data, headers=Headers)
        return Response.json()
    except Exception as e:
        return {'error': str(e)}

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/specialEffects'
Data = 
{
  "image": "base64_encoded_image_string_here",
  "oil_paint": 0,
  "polaroid": 0,
  "polaroid_angle": 5,
  "swirl": 0,
  "swirl_amount": 60,
  "wave": 0,
  "wave_amplitude": 10,
  "wave_length": 50,
  "negate": 0,
  "charcoal": 0,
  "sepia": 0,
  "vignette": 0,
  "enhance_saturation": 0,
  "enhance_contrast": 0
}

ResData = process_api_request(endpoint, Data)

status = ResData.get('status')
message = ResData.get('message')
data = ResData.get('data')

const axios = require('axios');

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest(endpoint, Data)
{
    const token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    const base_url = 'https://apicentral.dev';

    return axios.post(
        base_url + '/' + endpoint,
        Data,
        {
            headers: {'Authorization': 'Bearer ' + token}
        }
    );
}

// ================================================================
// API-specific usage
// ================================================================
const Data = 
{
  "image": "base64_encoded_image_string_here",
  "oil_paint": 0,
  "polaroid": 0,
  "polaroid_angle": 5,
  "swirl": 0,
  "swirl_amount": 60,
  "wave": 0,
  "wave_amplitude": 10,
  "wave_length": 50,
  "negate": 0,
  "charcoal": 0,
  "sepia": 0,
  "vignette": 0,
  "enhance_saturation": 0,
  "enhance_contrast": 0
};

processAPIRequest('Image/specialEffects', Data)
.then(Response =>
{
    const status = Response.data.status;
    const message = Response.data.message;
    const data = Response.data.data;
})
.catch(Error => { const error = Error.message; });

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static JsonObject processAPIRequest(String endpoint, String jsonPayload) throws Exception
    {
        String token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        String base_url = "https://apicentral.dev";

        HttpClient Client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(30))
            .build();

        HttpRequest Request = HttpRequest.newBuilder()
            .uri(URI.create(base_url + "/" + endpoint))
            .header("Authorization", "Bearer " + token)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
            .build();

        HttpResponse<String> Response = Client.send(Request, HttpResponse.BodyHandlers.ofString());

        return JsonParser.parseString(Response.body()).getAsJsonObject();
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static void main(String[] args)
    {
        String endpoint = "Image/specialEffects";
        String JsonPayload = """
        
        {
          "image": "base64_encoded_image_string_here",
          "oil_paint": 0,
          "polaroid": 0,
          "polaroid_angle": 5,
          "swirl": 0,
          "swirl_amount": 60,
          "wave": 0,
          "wave_amplitude": 10,
          "wave_length": 50,
          "negate": 0,
          "charcoal": 0,
          "sepia": 0,
          "vignette": 0,
          "enhance_saturation": 0,
          "enhance_contrast": 0
        }
        """;

        try
        {
            JsonObject ResData = processAPIRequest(endpoint, JsonPayload);
            String status = ResData.get("status").getAsString();
            String message = ResData.get("message").getAsString();
            Object data = ResData.has("data") ? ResData.get("data") : null;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static async Task<dynamic> ProcessAPIRequest(string endpoint, string jsonPayload)
    {
        string token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        string base_url = "https://apicentral.dev";

        using var Client = new HttpClient();
        Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);

        var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

        var Response = await Client.PostAsync(base_url + "/" + endpoint, content);
        var Result = await Response.Content.ReadAsStringAsync();

        return JsonConvert.DeserializeObject(Result);
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static async Task Main()
    {
        var endpoint = "Image/specialEffects";
        var json_payload = @"
        {
          "image": "base64_encoded_image_string_here",
          "oil_paint": 0,
          "polaroid": 0,
          "polaroid_angle": 5,
          "swirl": 0,
          "swirl_amount": 60,
          "wave": 0,
          "wave_amplitude": 10,
          "wave_length": 50,
          "negate": 0,
          "charcoal": 0,
          "sepia": 0,
          "vignette": 0,
          "enhance_saturation": 0,
          "enhance_contrast": 0
        }";

        dynamic ResData = await ProcessAPIRequest(endpoint, json_payload);

        string status = ResData.status;
        string message = ResData.message;
        object data = ResData.data;
    }
}

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "io"
)

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint string, jsonPayload []byte) (map[string]interface{}, error) {
    token := "YOUR_API_TOKEN_HERE" // Configure your token here
    base_url := "https://apicentral.dev"

    Client := &http.Client{}
    Request, err := http.NewRequest("POST", base_url+"/"+endpoint, bytes.NewBuffer(jsonPayload))

    if err != nil {
        return nil, err
    }

    Request.Header.Set("Authorization", "Bearer " + token)
    Request.Header.Set("Content-Type", "application/json")

    Response, err := Client.Do(Request)

    if err != nil {
        return nil, err
    }

    defer Response.Body.Close()

    Body, _ := io.ReadAll(Response.Body)

    var ResData map[string]interface{}
    json.Unmarshal(Body, &ResData)

    return ResData, nil
}

// ================================================================
// API-specific usage
// ================================================================
func main() {
    JsonPayload := []byte(`
    {
      "image": "base64_encoded_image_string_here",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    }`)

    ResData, err := processAPIRequest("Image/specialEffects", JsonPayload)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    status := ResData["status"]
    message := ResData["message"]
    data := ResData["data"]

    fmt.Println(status, message, data)
}

require 'net/http'
require 'uri'
require 'json'

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, data)
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'

    uri = URI(base_url + '/' + endpoint)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true

    request = Net::HTTP::Post.new(uri)
    request['Authorization'] = 'Bearer ' + token
    request['Content-Type'] = 'application/json'
    request.body = data.to_json

    response = http.request(request)
    JSON.parse(response.body)
end

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/specialEffects'
data = 
{
  "image": "base64_encoded_image_string_here",
  "oil_paint": 0,
  "polaroid": 0,
  "polaroid_angle": 5,
  "swirl": 0,
  "swirl_amount": 60,
  "wave": 0,
  "wave_amplitude": 10,
  "wave_length": 50,
  "negate": 0,
  "charcoal": 0,
  "sepia": 0,
  "vignette": 0,
  "enhance_saturation": 0,
  "enhance_contrast": 0
}

res_data = process_api_request(endpoint, data)

status = res_data['status']
message = res_data['message']
data = res_data['data']

import Foundation

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint: String, jsonPayload: Data, completion: @escaping ([String: Any]?) -> Void)
{
    let token = "YOUR_API_TOKEN_HERE" // Configure your token here
    let base_url = "https://apicentral.dev"

    let requestUrl = URL(string: base_url + "/" + endpoint)!
    var request = URLRequest(url: requestUrl)
    request.httpMethod = "POST"
    request.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = jsonPayload

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let error = error {
            print("Error: \(error)")
            completion(nil)
            return
        }

        guard let data = data else {
            completion(nil)
            return
        }

        let resData = try? JSONSerialization.jsonObject(with: data) as? [String: Any]
        completion(resData)
    }

    task.resume()
}

// ================================================================
// API-specific usage
// ================================================================
let endpoint = "Image/specialEffects"
let JsonPayload = """

    {
      "image": "base64_encoded_image_string_here",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    }
""".data(using: .utf8)!

processAPIRequest(endpoint: endpoint, jsonPayload: JsonPayload) { resData in
    let status = resData?["status"] as? String
    let message = resData?["message"] as? String
    let data = resData?["data"]
}

import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.net.URI
import java.time.Duration
import com.google.gson.JsonObject
import com.google.gson.JsonParser

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fun processAPIRequest(endpoint: String, jsonPayload: String): JsonObject
{
    val token = "YOUR_API_TOKEN_HERE" // Configure your token here
    val base_url = "https://apicentral.dev"

    val client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(30))
        .build()

    val request = HttpRequest.newBuilder()
        .uri(URI.create(base_url + "/" + endpoint))
        .header("Authorization", "Bearer " + token)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
        .build()

    val response = client.send(request, HttpResponse.BodyHandlers.ofString())

    return JsonParser.parseString(response.body()).asJsonObject
}

// ================================================================
// API-specific usage
// ================================================================
fun main() {
    val endpoint = "Image/specialEffects"
    val jsonPayload = """
    
    {
      "image": "base64_encoded_image_string_here",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    }
    """.trimIndent()

    try {
        val resData = processAPIRequest(endpoint, jsonPayload)
        val status = resData.get("status").asString
        val message = resData.get("message").asString
        val data = if (resData.has("data")) resData.get("data") else null
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

import 'dart:convert';
import 'package:http/http.dart' as http;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
Future<Map<String, dynamic>> processAPIRequest(String endpoint, Map<String, dynamic> data) async
{
    final token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    final base_url = 'https://apicentral.dev';
    final headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    };

    final response = await http.post(Uri.parse(base_url + '/' + endpoint), headers: headers, body: jsonEncode(data));

    return jsonDecode(response.body);
}

// ================================================================
// API-specific usage
// ================================================================
void main() async {
    final endpoint = 'Image/specialEffects';
    final data = 
    {
      "image": "base64_encoded_image_string_here",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    };

    try {
        final resData = await processAPIRequest(endpoint, data);
        final status = resData['status'];
        final message = resData['message'];
        final data = resData['data'];
    } catch (e) {
        print('Error: $e');
    }
}

use reqwest::blocking::Client;
use serde_json::Value;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fn process_api_request(endpoint: &str, json_payload: &str) -> Result<Value, Box<dyn std::error::Error>>
{
    let token = "YOUR_API_TOKEN_HERE"; // Configure your token here
    let base_url = "https://apicentral.dev";

    let client = Client::new();

    let response = client
        .post(format!("{}/{}", base_url, endpoint))
        .header("Authorization", format!("Bearer {}", token))
        .header("Content-Type", "application/json")
        .body(json_payload.to_string())
        .send()?;

    let res_data: Value = serde_json::from_str(&response.text()?)?;

    Ok(res_data)
}

// ================================================================
// API-specific usage
// ================================================================
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let endpoint = "Image/specialEffects";
    let json_payload = r#"
    
    {
      "image": "base64_encoded_image_string_here",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    }
    "#;

    let res_data = process_api_request(endpoint, json_payload)?;

    let status = &res_data["status"];
    let message = &res_data["message"];
    let data = &res_data["data"];

    println!("{} {} {:?}", status, message, data);

    Ok(())
}

curl -X POST 'https://apicentral.dev/Image/specialEffects' \
    -H 'Authorization: Bearer YOUR_API_TOKEN_HERE' \
    -H 'Content-Type: application/json' \
    -d '
    {
      "image": "base64_encoded_image_string_here",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    }'

multiTool

Apply multiple image operations in a single request: convert, compress, resize, rotate, crop, flip, border, and special effects. Each enabled operation costs 2 credits per MB
Credits Required: 0.0
File size is rounded up to the nearest MB — minimum billable size is 1 MB

PARAMETERS

NAME TYPE REQUIRED DESCRIPTION ADDITIONAL CREDITS PER ITEM EXAMPLE
image string Yes Base64 encoded image data (max 10MB) None
base64_encoded_image_string_here
output_format string No Target image format (e.g. png, jpg, webp). Leave empty to keep original format 2.0/MB
png
quality int No Compression quality from 1 to 100 (0 or empty to skip compression) 2.0/MB
85
resize_mode int No Resize mode: 0 = skip, 1 = by percentage, 2 = exact dimensions 2.0/MB
0
resize_percentage int No Resize percentage (1-500), used when resize_mode = 1 None
50
resize_width int No Target width in pixels (1-8192), used when resize_mode = 2 None
800
resize_height int No Target height in pixels (1-8192), used when resize_mode = 2 None
600
rotate float No Rotation angle in degrees (0 to skip) 2.0/MB
0
rotate_background_color string No Background color for rotation (hex format or "none" for transparent) None
none
crop_mode int No Crop mode: 0 = skip, 1 = by percentage, 2 = exact coordinates 2.0/MB
0
crop_percentage int No Crop to this percentage of the original size (1-99), used when crop_mode = 1 None
80
crop_x int No Starting X coordinate in pixels, used when crop_mode = 2 None
0
crop_y int No Starting Y coordinate in pixels, used when crop_mode = 2 None
0
crop_width int No Crop width in pixels, used when crop_mode = 2 None
400
crop_height int No Crop height in pixels, used when crop_mode = 2 None
300
flip_mode int No Flip mode: 0 = skip, 1 = horizontal, 2 = vertical, 3 = both 2.0/MB
0
border_width int No Border width in pixels (0 to skip) 2.0/MB
0
border_height int No Border height in pixels (0 to skip) None
0
border_color string No Border color in hex format (e.g. #000000) None
#000000
oil_paint int No Apply oil paint effect (0 = no, 1 = yes) 2.0/MB
0
polaroid int No Apply polaroid effect (0 = no, 1 = yes) 2.0/MB
0
polaroid_angle float No Polaroid rotation angle in degrees None
5
swirl int No Apply swirl effect (0 = no, 1 = yes) 2.0/MB
0
swirl_amount float No Swirl intensity in degrees None
60
wave int No Apply wave effect (0 = no, 1 = yes) 2.0/MB
0
wave_amplitude float No Wave amplitude in pixels None
10
wave_length float No Wave length in pixels None
50
negate int No Apply negate/invert effect (0 = no, 1 = yes) 2.0/MB
0
charcoal int No Apply charcoal sketch effect (0 = no, 1 = yes) 2.0/MB
0
sepia int No Apply sepia tone effect (0 = no, 1 = yes) 2.0/MB
0
vignette int No Apply vignette effect (0 = no, 1 = yes) 2.0/MB
0
enhance_saturation int No Enhance color saturation (0 = no, 1 = yes) 2.0/MB
0
enhance_contrast int No Enhance contrast / normalize (0 = no, 1 = yes) 2.0/MB
0

RESPONSE EXAMPLE

{
    "status": "success",
    "message": "Image processed successfully (4 operations applied)",
    "data":
    {
        "image": "base64_encoded_result_image"
    }
}

ADDITIONAL INFO

Base cost is 0.0 credits.
- Each operation (convert, compress, resize, rotate, crop, flip, border): +2.0 credits per MB (min 1 MB)
- Special effects: +2.0 per effect per MB (min 1 MB)
- Total cost = (operations count + effects count) * 2.0 * file size in MB
Operations are applied in this order: convert, rotate, crop, flip, border, resize, special effects, compress.
At least one operation must be enabled.

CODE EXAMPLES

<?php

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest($endpoint, $PostFields)
{
    $token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    $base_url = 'https://apicentral.dev';

    $Curl = curl_init();

    curl_setopt_array(
        $Curl,
        [
            CURLOPT_URL => $base_url . '/' . $endpoint,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($PostFields),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTPHEADER =>
            [
                'Authorization: Bearer ' . $token,
                'Content-Type: application/x-www-form-urlencoded'
            ]
        ]
    );

    $Response = curl_exec($Curl);
    $Data = json_decode($Response, true);

    if (curl_errno($Curl))
        return ['error' => curl_error($Curl)];

    curl_close($Curl); // Omit in PHP 8 and above

    return $Data;
}

// ================================================================
// API-specific usage
// ================================================================
$endpoint = 'Image/multiTool';
$PostFields = 
[
  'image' => 'base64_encoded_image_string_here',
  'output_format' => 'png',
  'quality' => 85,
  'resize_mode' => 0,
  'resize_percentage' => 50,
  'resize_width' => 800,
  'resize_height' => 600,
  'rotate' => 0,
  'rotate_background_color' => 'none',
  'crop_mode' => 0,
  'crop_percentage' => 80,
  'crop_x' => 0,
  'crop_y' => 0,
  'crop_width' => 400,
  'crop_height' => 300,
  'flip_mode' => 0,
  'border_width' => 0,
  'border_height' => 0,
  'border_color' => '#000000',
  'oil_paint' => 0,
  'polaroid' => 0,
  'polaroid_angle' => 5,
  'swirl' => 0,
  'swirl_amount' => 60,
  'wave' => 0,
  'wave_amplitude' => 10,
  'wave_length' => 50,
  'negate' => 0,
  'charcoal' => 0,
  'sepia' => 0,
  'vignette' => 0,
  'enhance_saturation' => 0,
  'enhance_contrast' => 0,
];

$Data = processAPIRequest($endpoint, $PostFields);

$status = $Data['status'];
$message = $Data['message'];
$data = $Data['data'] ?? null;
?>

import requests
import json

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, Data):
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'
    Headers = {'Authorization': 'Bearer ' + token}

    try:
        Response = requests.post(base_url + '/' + endpoint, json=Data, headers=Headers)
        return Response.json()
    except Exception as e:
        return {'error': str(e)}

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/multiTool'
Data = 
{
  "image": "base64_encoded_image_string_here",
  "output_format": "png",
  "quality": 85,
  "resize_mode": 0,
  "resize_percentage": 50,
  "resize_width": 800,
  "resize_height": 600,
  "rotate": 0,
  "rotate_background_color": "none",
  "crop_mode": 0,
  "crop_percentage": 80,
  "crop_x": 0,
  "crop_y": 0,
  "crop_width": 400,
  "crop_height": 300,
  "flip_mode": 0,
  "border_width": 0,
  "border_height": 0,
  "border_color": "#000000",
  "oil_paint": 0,
  "polaroid": 0,
  "polaroid_angle": 5,
  "swirl": 0,
  "swirl_amount": 60,
  "wave": 0,
  "wave_amplitude": 10,
  "wave_length": 50,
  "negate": 0,
  "charcoal": 0,
  "sepia": 0,
  "vignette": 0,
  "enhance_saturation": 0,
  "enhance_contrast": 0
}

ResData = process_api_request(endpoint, Data)

status = ResData.get('status')
message = ResData.get('message')
data = ResData.get('data')

const axios = require('axios');

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
function processAPIRequest(endpoint, Data)
{
    const token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    const base_url = 'https://apicentral.dev';

    return axios.post(
        base_url + '/' + endpoint,
        Data,
        {
            headers: {'Authorization': 'Bearer ' + token}
        }
    );
}

// ================================================================
// API-specific usage
// ================================================================
const Data = 
{
  "image": "base64_encoded_image_string_here",
  "output_format": "png",
  "quality": 85,
  "resize_mode": 0,
  "resize_percentage": 50,
  "resize_width": 800,
  "resize_height": 600,
  "rotate": 0,
  "rotate_background_color": "none",
  "crop_mode": 0,
  "crop_percentage": 80,
  "crop_x": 0,
  "crop_y": 0,
  "crop_width": 400,
  "crop_height": 300,
  "flip_mode": 0,
  "border_width": 0,
  "border_height": 0,
  "border_color": "#000000",
  "oil_paint": 0,
  "polaroid": 0,
  "polaroid_angle": 5,
  "swirl": 0,
  "swirl_amount": 60,
  "wave": 0,
  "wave_amplitude": 10,
  "wave_length": 50,
  "negate": 0,
  "charcoal": 0,
  "sepia": 0,
  "vignette": 0,
  "enhance_saturation": 0,
  "enhance_contrast": 0
};

processAPIRequest('Image/multiTool', Data)
.then(Response =>
{
    const status = Response.data.status;
    const message = Response.data.message;
    const data = Response.data.data;
})
.catch(Error => { const error = Error.message; });

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static JsonObject processAPIRequest(String endpoint, String jsonPayload) throws Exception
    {
        String token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        String base_url = "https://apicentral.dev";

        HttpClient Client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(30))
            .build();

        HttpRequest Request = HttpRequest.newBuilder()
            .uri(URI.create(base_url + "/" + endpoint))
            .header("Authorization", "Bearer " + token)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
            .build();

        HttpResponse<String> Response = Client.send(Request, HttpResponse.BodyHandlers.ofString());

        return JsonParser.parseString(Response.body()).getAsJsonObject();
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static void main(String[] args)
    {
        String endpoint = "Image/multiTool";
        String JsonPayload = """
        
        {
          "image": "base64_encoded_image_string_here",
          "output_format": "png",
          "quality": 85,
          "resize_mode": 0,
          "resize_percentage": 50,
          "resize_width": 800,
          "resize_height": 600,
          "rotate": 0,
          "rotate_background_color": "none",
          "crop_mode": 0,
          "crop_percentage": 80,
          "crop_x": 0,
          "crop_y": 0,
          "crop_width": 400,
          "crop_height": 300,
          "flip_mode": 0,
          "border_width": 0,
          "border_height": 0,
          "border_color": "#000000",
          "oil_paint": 0,
          "polaroid": 0,
          "polaroid_angle": 5,
          "swirl": 0,
          "swirl_amount": 60,
          "wave": 0,
          "wave_amplitude": 10,
          "wave_length": 50,
          "negate": 0,
          "charcoal": 0,
          "sepia": 0,
          "vignette": 0,
          "enhance_saturation": 0,
          "enhance_contrast": 0
        }
        """;

        try
        {
            JsonObject ResData = processAPIRequest(endpoint, JsonPayload);
            String status = ResData.get("status").getAsString();
            String message = ResData.get("message").getAsString();
            Object data = ResData.has("data") ? ResData.get("data") : null;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ApiExample
{
    // ================================================================
    // Generic method - copy once, reuse for all APIs
    // ================================================================
    public static async Task<dynamic> ProcessAPIRequest(string endpoint, string jsonPayload)
    {
        string token = "YOUR_API_TOKEN_HERE"; // Configure your token here
        string base_url = "https://apicentral.dev";

        using var Client = new HttpClient();
        Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);

        var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

        var Response = await Client.PostAsync(base_url + "/" + endpoint, content);
        var Result = await Response.Content.ReadAsStringAsync();

        return JsonConvert.DeserializeObject(Result);
    }

    // ================================================================
    // API-specific usage
    // ================================================================
    public static async Task Main()
    {
        var endpoint = "Image/multiTool";
        var json_payload = @"
        {
          "image": "base64_encoded_image_string_here",
          "output_format": "png",
          "quality": 85,
          "resize_mode": 0,
          "resize_percentage": 50,
          "resize_width": 800,
          "resize_height": 600,
          "rotate": 0,
          "rotate_background_color": "none",
          "crop_mode": 0,
          "crop_percentage": 80,
          "crop_x": 0,
          "crop_y": 0,
          "crop_width": 400,
          "crop_height": 300,
          "flip_mode": 0,
          "border_width": 0,
          "border_height": 0,
          "border_color": "#000000",
          "oil_paint": 0,
          "polaroid": 0,
          "polaroid_angle": 5,
          "swirl": 0,
          "swirl_amount": 60,
          "wave": 0,
          "wave_amplitude": 10,
          "wave_length": 50,
          "negate": 0,
          "charcoal": 0,
          "sepia": 0,
          "vignette": 0,
          "enhance_saturation": 0,
          "enhance_contrast": 0
        }";

        dynamic ResData = await ProcessAPIRequest(endpoint, json_payload);

        string status = ResData.status;
        string message = ResData.message;
        object data = ResData.data;
    }
}

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "io"
)

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint string, jsonPayload []byte) (map[string]interface{}, error) {
    token := "YOUR_API_TOKEN_HERE" // Configure your token here
    base_url := "https://apicentral.dev"

    Client := &http.Client{}
    Request, err := http.NewRequest("POST", base_url+"/"+endpoint, bytes.NewBuffer(jsonPayload))

    if err != nil {
        return nil, err
    }

    Request.Header.Set("Authorization", "Bearer " + token)
    Request.Header.Set("Content-Type", "application/json")

    Response, err := Client.Do(Request)

    if err != nil {
        return nil, err
    }

    defer Response.Body.Close()

    Body, _ := io.ReadAll(Response.Body)

    var ResData map[string]interface{}
    json.Unmarshal(Body, &ResData)

    return ResData, nil
}

// ================================================================
// API-specific usage
// ================================================================
func main() {
    JsonPayload := []byte(`
    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png",
      "quality": 85,
      "resize_mode": 0,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600,
      "rotate": 0,
      "rotate_background_color": "none",
      "crop_mode": 0,
      "crop_percentage": 80,
      "crop_x": 0,
      "crop_y": 0,
      "crop_width": 400,
      "crop_height": 300,
      "flip_mode": 0,
      "border_width": 0,
      "border_height": 0,
      "border_color": "#000000",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    }`)

    ResData, err := processAPIRequest("Image/multiTool", JsonPayload)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    status := ResData["status"]
    message := ResData["message"]
    data := ResData["data"]

    fmt.Println(status, message, data)
}

require 'net/http'
require 'uri'
require 'json'

# ================================================================
# Generic function - copy once, reuse for all APIs
# ================================================================
def process_api_request(endpoint, data)
    token = 'YOUR_API_TOKEN_HERE'  # Configure your token here
    base_url = 'https://apicentral.dev'

    uri = URI(base_url + '/' + endpoint)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true

    request = Net::HTTP::Post.new(uri)
    request['Authorization'] = 'Bearer ' + token
    request['Content-Type'] = 'application/json'
    request.body = data.to_json

    response = http.request(request)
    JSON.parse(response.body)
end

# ================================================================
# API-specific usage
# ================================================================
endpoint = 'Image/multiTool'
data = 
{
  "image": "base64_encoded_image_string_here",
  "output_format": "png",
  "quality": 85,
  "resize_mode": 0,
  "resize_percentage": 50,
  "resize_width": 800,
  "resize_height": 600,
  "rotate": 0,
  "rotate_background_color": "none",
  "crop_mode": 0,
  "crop_percentage": 80,
  "crop_x": 0,
  "crop_y": 0,
  "crop_width": 400,
  "crop_height": 300,
  "flip_mode": 0,
  "border_width": 0,
  "border_height": 0,
  "border_color": "#000000",
  "oil_paint": 0,
  "polaroid": 0,
  "polaroid_angle": 5,
  "swirl": 0,
  "swirl_amount": 60,
  "wave": 0,
  "wave_amplitude": 10,
  "wave_length": 50,
  "negate": 0,
  "charcoal": 0,
  "sepia": 0,
  "vignette": 0,
  "enhance_saturation": 0,
  "enhance_contrast": 0
}

res_data = process_api_request(endpoint, data)

status = res_data['status']
message = res_data['message']
data = res_data['data']

import Foundation

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
func processAPIRequest(endpoint: String, jsonPayload: Data, completion: @escaping ([String: Any]?) -> Void)
{
    let token = "YOUR_API_TOKEN_HERE" // Configure your token here
    let base_url = "https://apicentral.dev"

    let requestUrl = URL(string: base_url + "/" + endpoint)!
    var request = URLRequest(url: requestUrl)
    request.httpMethod = "POST"
    request.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = jsonPayload

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let error = error {
            print("Error: \(error)")
            completion(nil)
            return
        }

        guard let data = data else {
            completion(nil)
            return
        }

        let resData = try? JSONSerialization.jsonObject(with: data) as? [String: Any]
        completion(resData)
    }

    task.resume()
}

// ================================================================
// API-specific usage
// ================================================================
let endpoint = "Image/multiTool"
let JsonPayload = """

    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png",
      "quality": 85,
      "resize_mode": 0,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600,
      "rotate": 0,
      "rotate_background_color": "none",
      "crop_mode": 0,
      "crop_percentage": 80,
      "crop_x": 0,
      "crop_y": 0,
      "crop_width": 400,
      "crop_height": 300,
      "flip_mode": 0,
      "border_width": 0,
      "border_height": 0,
      "border_color": "#000000",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    }
""".data(using: .utf8)!

processAPIRequest(endpoint: endpoint, jsonPayload: JsonPayload) { resData in
    let status = resData?["status"] as? String
    let message = resData?["message"] as? String
    let data = resData?["data"]
}

import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.net.URI
import java.time.Duration
import com.google.gson.JsonObject
import com.google.gson.JsonParser

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fun processAPIRequest(endpoint: String, jsonPayload: String): JsonObject
{
    val token = "YOUR_API_TOKEN_HERE" // Configure your token here
    val base_url = "https://apicentral.dev"

    val client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(30))
        .build()

    val request = HttpRequest.newBuilder()
        .uri(URI.create(base_url + "/" + endpoint))
        .header("Authorization", "Bearer " + token)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
        .build()

    val response = client.send(request, HttpResponse.BodyHandlers.ofString())

    return JsonParser.parseString(response.body()).asJsonObject
}

// ================================================================
// API-specific usage
// ================================================================
fun main() {
    val endpoint = "Image/multiTool"
    val jsonPayload = """
    
    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png",
      "quality": 85,
      "resize_mode": 0,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600,
      "rotate": 0,
      "rotate_background_color": "none",
      "crop_mode": 0,
      "crop_percentage": 80,
      "crop_x": 0,
      "crop_y": 0,
      "crop_width": 400,
      "crop_height": 300,
      "flip_mode": 0,
      "border_width": 0,
      "border_height": 0,
      "border_color": "#000000",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    }
    """.trimIndent()

    try {
        val resData = processAPIRequest(endpoint, jsonPayload)
        val status = resData.get("status").asString
        val message = resData.get("message").asString
        val data = if (resData.has("data")) resData.get("data") else null
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

import 'dart:convert';
import 'package:http/http.dart' as http;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
Future<Map<String, dynamic>> processAPIRequest(String endpoint, Map<String, dynamic> data) async
{
    final token = 'YOUR_API_TOKEN_HERE'; // Configure your token here
    final base_url = 'https://apicentral.dev';
    final headers = {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
    };

    final response = await http.post(Uri.parse(base_url + '/' + endpoint), headers: headers, body: jsonEncode(data));

    return jsonDecode(response.body);
}

// ================================================================
// API-specific usage
// ================================================================
void main() async {
    final endpoint = 'Image/multiTool';
    final data = 
    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png",
      "quality": 85,
      "resize_mode": 0,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600,
      "rotate": 0,
      "rotate_background_color": "none",
      "crop_mode": 0,
      "crop_percentage": 80,
      "crop_x": 0,
      "crop_y": 0,
      "crop_width": 400,
      "crop_height": 300,
      "flip_mode": 0,
      "border_width": 0,
      "border_height": 0,
      "border_color": "#000000",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    };

    try {
        final resData = await processAPIRequest(endpoint, data);
        final status = resData['status'];
        final message = resData['message'];
        final data = resData['data'];
    } catch (e) {
        print('Error: $e');
    }
}

use reqwest::blocking::Client;
use serde_json::Value;

// ================================================================
// Generic function - copy once, reuse for all APIs
// ================================================================
fn process_api_request(endpoint: &str, json_payload: &str) -> Result<Value, Box<dyn std::error::Error>>
{
    let token = "YOUR_API_TOKEN_HERE"; // Configure your token here
    let base_url = "https://apicentral.dev";

    let client = Client::new();

    let response = client
        .post(format!("{}/{}", base_url, endpoint))
        .header("Authorization", format!("Bearer {}", token))
        .header("Content-Type", "application/json")
        .body(json_payload.to_string())
        .send()?;

    let res_data: Value = serde_json::from_str(&response.text()?)?;

    Ok(res_data)
}

// ================================================================
// API-specific usage
// ================================================================
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let endpoint = "Image/multiTool";
    let json_payload = r#"
    
    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png",
      "quality": 85,
      "resize_mode": 0,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600,
      "rotate": 0,
      "rotate_background_color": "none",
      "crop_mode": 0,
      "crop_percentage": 80,
      "crop_x": 0,
      "crop_y": 0,
      "crop_width": 400,
      "crop_height": 300,
      "flip_mode": 0,
      "border_width": 0,
      "border_height": 0,
      "border_color": "#000000",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    }
    "#;

    let res_data = process_api_request(endpoint, json_payload)?;

    let status = &res_data["status"];
    let message = &res_data["message"];
    let data = &res_data["data"];

    println!("{} {} {:?}", status, message, data);

    Ok(())
}

curl -X POST 'https://apicentral.dev/Image/multiTool' \
    -H 'Authorization: Bearer YOUR_API_TOKEN_HERE' \
    -H 'Content-Type: application/json' \
    -d '
    {
      "image": "base64_encoded_image_string_here",
      "output_format": "png",
      "quality": 85,
      "resize_mode": 0,
      "resize_percentage": 50,
      "resize_width": 800,
      "resize_height": 600,
      "rotate": 0,
      "rotate_background_color": "none",
      "crop_mode": 0,
      "crop_percentage": 80,
      "crop_x": 0,
      "crop_y": 0,
      "crop_width": 400,
      "crop_height": 300,
      "flip_mode": 0,
      "border_width": 0,
      "border_height": 0,
      "border_color": "#000000",
      "oil_paint": 0,
      "polaroid": 0,
      "polaroid_angle": 5,
      "swirl": 0,
      "swirl_amount": 60,
      "wave": 0,
      "wave_amplitude": 10,
      "wave_length": 50,
      "negate": 0,
      "charcoal": 0,
      "sepia": 0,
      "vignette": 0,
      "enhance_saturation": 0,
      "enhance_contrast": 0
    }'