The MiniToolAI API provides a simple interface to state-of-the-art AI models for natural language processing, image generation, text to speech. Follow this guide to learn how to generate human-like responses (chatGPT), generate image from textual descriptions.
The cost of API requests will be deducted from your credit balance.
Top upThe API key must be included in the header for each API request.
Header: "Authorization: Bearer API_key"
Creates a model response for the given chat conversation.
import requests
import json
API_Url = "https://minitoolai.com/api/chat-completions/"
API_Key = "MiniToolAI_API_Key"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_Key}"
}
data = {
"model": "gpt-4o-mini", #gpt-4o, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano
"messages": [
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello"},
{"role": "assistant", "content": "How can I help you today?"},
{"role": "user", "content": "What's the largest U.S. state by area?"}
],
"temperature": 1.0,
"max_completion_tokens": 1000
}
response = requests.post(API_Url, headers=headers, json=data, stream=True)
#single result
print(response.text)
#streamed
for line in response.iter_lines():
if line:
decode_line = line.decode('utf-8')
print(decode_line)
<?php
$api_url = "https://minitoolai.com/api/chat-completions/";
$api_key = "MiniToolAI_API_Key";
$data = [
"model" => "gpt-4o-mini", //gpt-4o, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano
"messages" => [
["role" => "developer", "content" => "You are a helpful assistant."],
["role" => "user", "content" => "Hello"],
["role" => "assistant", "content" => "How can I help you today?"],
["role" => "user", "content" => "What's the largest U.S. state by area?"],
],
"temperature" => 1.0,
"max_completion_tokens" => 1000
];
$headers = [
"Content-Type: application/json",
"Authorization: Bearer $api_key"
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
// streamed
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($ch, $data) {
echo $data;
ob_flush();
flush();
return strlen($data);
});
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo "cURL error: " . curl_error($ch);
}
curl_close($ch);
?>
#data with image input
data = {
"model": "gpt-4o-mini", #gpt-4o
"messages": [
{"role": "developer", "content": "You are a helpful assistant."},
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg", #jpg, jpeg, png, webp or gif
"detail": "auto" #auto, high or low
}
}
]
}
],
"temperature": 0.7,
"max_completion_tokens": 300
}
//data with image input
$data = [
"model" => "gpt-4o-mini", // gpt-4o
"messages" => [
["role" => "developer", "content" => "You are a helpful assistant."],
[
"role" => "user",
"content" => [
[
"type" => "text",
"text" => "What's in this image?"
],
[
"type" => "image_url",
"image_url" => [
"url" => "https://example.com/image.jpg", // jpg, jpeg, png, webp or gif
"detail" => "auto" // auto, high or low
]
]
]
]
],
"temperature" => 0.7,
"max_completion_tokens" => 300
];
messages array Required
A list of messages comprising the conversation so far.
model string Required
ID of the model to use
Available models: gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano
temperature number or null Optional
Defaults to 1
What sampling temperature to use, between 0.0 and 2.0. Higher values like 0.8 will make the output more creative, while lower values like 0.2 will make it more focused and deterministic.
max_completion_tokens integer or null Optional
Defaults to 1000
An upper bound for the number of tokens that can be generated for a completion
data: {"id":"chatcmpl-B5qoZsT8kFDNJK3UyGLiJmjv6Pp90","object":"chat.completion.chunk","created":1740734359,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_06737a9306","choices":[{"index":0,"delta":{"content":"Ok"},"logprobs":null,"finish_reason":null}],"usage":null}
data: {"id":"chatcmpl-B5qoZsT8kFDNJK3UyGLiJmjv6Pp90","object":"chat.completion.chunk","created":1740734359,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_06737a9306","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null}
data: {"id":"chatcmpl-B5qoZsT8kFDNJK3UyGLiJmjv6Pp90","object":"chat.completion.chunk","created":1740734359,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_06737a9306","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null}
data: {"id":"chatcmpl-B5qoZsT8kFDNJK3UyGLiJmjv6Pp90","object":"chat.completion.chunk","created":1740734359,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_06737a9306","choices":[],"usage":{"prompt_tokens":17,"completion_tokens":3,"total_tokens":20,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}}}
data: [DONE]
Creates an image given a prompt.
import requests
import json
url = "https://minitoolai.com/api/texttoimage/"
API_Key = "MiniToolAI_API_Key"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_Key}"
}
data = {
"model": "realvision",
"prompt": "Ultra realistic portrait of a 20 year old woman, wearing an elegant black gown, joyful expression, deep shadows, cinematic composition, moody lighting",
"negativePrompt": "unrealistic eyes, malformed features, ugly drawn",
"scheduler": "DPM++ SDE",
"steps": 4,
"cfgScale": 2.0,
"width": 1152,
"height": 768
}
response = requests.post(url, json=data, headers=headers)
print(response.text)
'''
#response
Success:
{"status":"success","jobid":12345678,"signature":"abcxyz123"}
Error:
{"status":"error","jobid":null,"signature":null}
'''
<?php
// API URL and Key
$url = "https://minitoolai.com/api/texttoimage/";
$API_Key = "MiniToolAI_API_Key";
// Headers
$headers = [
"Content-Type: application/json",
"Authorization: Bearer $API_Key"
];
// Data to be sent in the request
$data = [
"model" => "realvision",
"prompt" => "Ultra realistic portrait of a 20 year old woman, wearing an elegant black gown, joyful expression, deep shadows, cinematic composition, moody lighting",
"negativePrompt" => "unrealistic eyes, malformed features, ugly drawn",
"scheduler" => "DPM++ SDE",
"steps" => 4,
"cfgScale" => 2.0,
"width" => 1152,
"height" => 768
];
// Initialize cURL session
$ch = curl_init();
// Set cURL options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
// Execute the cURL request
$response = curl_exec($ch);
echo $response;
// Close the cURL session
curl_close($ch);
/*
Response:
Success:
{"status":"success","jobid":12345678,"signature":"abcxyz123"}
Error:
{"status":"error","jobid":null,"signature":null}
*/
?>
Retrieve Job Status and Result
curl -X POST https://minitoolai.com/api/texttoimage/jobs/ \
-H "Content-Type: application/json" \
-d '{
"jobid": "12345678",
"signature": "abcxyz123"
}'
Response
{
"status": "success",
"image_url": "https://...",
"message": "success"
}
model string Required
ID of the model to use
Available models: "realvision", "juggernaut", "autismmix", "dreamshaper", "valhalla", "mixrealistic", "campursari", "reality", "extrarealistic", "realism", "realgirls", "realityreborn", "amigo", "simplemix", "beautifulrealistic"
prompt string Required
Description of the image
negativePrompt string or null Optional
Description what you wish to exclude from the generated image
scheduler string or null Optional
Controls how noise is removed during the image generation process.
Defaults to "DPM++ SDE"
Possible values are: "Euler a", "Euler", "LMS", "Heun", "DPM2", "DPM2 a", "DPM++ 2S a", "DPM++ 2M", "DPM++ SDE", "DPM++ 2M SDE", "DPM fast", "LMS Karras", "DPM2 Karras", "DPM2 a Karras", "DPM++ 2S a Karras", "DPM++ 2M Karras", "DPM++ SDE Karras", "DPM++ 2M SDE Karras"
steps integer or null Optional
The number of steps for the image generation process, between 1 and 8.
Defaults to 4
cfgScale number or null Optional
cfgScale controls how much the model should adhere to the given text prompt. It balances between creativity and prompt accuracy, between 1 and 7.
Defaults to 2
cfgScale < 4 → more creative images, cfgScale > 4 → closer to prompt, less creative
width/height integer or null Optional
The size of the generated image, beetween 256 to 1344.
Defaults to 1024
Price per 1M tokens
| Model | Input | Output |
|---|---|---|
| gpt-4o-mini | $0.15 | $0.60 |
| gpt-4o | $2.50 | $10.00 |
| gpt-4.1 | $2.00 | $8.00 |
| gpt-4.1-mini | $0.40 | $1.60 |
| gpt-4.1-nano | $0.10 | $0.40 |
| Model | Price per Image |
|---|---|
| All models | $0.0015 |