Quick Start
Our API is completely free and requires no authentication. Simply make HTTP requests to our endpoints.
Base URL: https://fancytextdecorator.com/api.php
Rate Limit: 100 requests per hour per IP
Response Format: JSON
Localization
Every endpoint accepts an optional lang parameter to return locale-specific name and url. Supported values: en, es, fr, tr. Omitting the parameter returns English by default. Error messages stay English regardless of locale — they target developers, not end users.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| lang | string | No | Locale code — one of en, es, fr, tr. Defaults to en when omitted or invalid. |
Example: localized response for ?lang=tr:
curl https://fancytextdecorator.com/api.php?action=get_generator&slug=aesthetic&lang=tr
{
"success": true,
"lang": "tr",
"generator": {
"slug": "aesthetic",
"name": "Estetik",
"url": "https://fancytextdecorator.com/tr/aesthetic-text-generator",
"example": "aesthetic",
"characters": { ... }
}
} GET List All Generators
Endpoint: /api.php?action=list_generators
Get a list of all available text generators.
Example Request:
curl https://fancytextdecorator.com/api.php?action=list_generators
Example Response:
{
"success": true,
"count": 150,
"generators": [
{
"slug": "aesthetic",
"name": "Aesthetic",
"url": "https://fancytextdecorator.com/aesthetic-text-generator",
"example": "aesthetic"
}
]
} GET Get Generator Details
Endpoint: /api.php?action=get_generator&slug={slug}
Get details about a specific generator including its character mapping.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | Yes | Generator identifier (e.g., "aesthetic", "bold", "italic") |
Example Request:
curl https://fancytextdecorator.com/api.php?action=get_generator&slug=aesthetic
Example Response:
{
"success": true,
"generator": {
"slug": "aesthetic",
"name": "Aesthetic",
"url": "https://fancytextdecorator.com/aesthetic-text-generator",
"example": "aesthetic",
"characters": {
"a": "a",
"b": "b"
}
}
} POST Transform Text
Endpoint: /api.php?action=generate
Transform plain text into fancy Unicode text using a specific generator.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | Yes | Generator identifier |
| text | string | Yes | Text to transform |
| update_stats | boolean | No | Update usage statistics (default: true) |
Example Request:
curl -X POST https://fancytextdecorator.com/api.php \ -d "action=generate" \ -d "slug=aesthetic" \ -d "text=Hello World"
Example Response:
{
"success": true,
"input": "Hello World",
"output": "Hello World",
"generator": "aesthetic",
"length": {
"input": 11,
"output": 11
}
} GET Get Statistics
Endpoint: /api.php?action=stats
Get current usage statistics.
Example Request:
curl https://fancytextdecorator.com/api.php?action=stats
Example Response:
{
"success": true,
"statistics": {
"sets": 150,
"uses": 1583,
"characters": 79480
}
} Error Handling
All errors return a JSON response with success: false and appropriate HTTP status codes.
Common Error Codes:
| Code | Description |
|---|---|
| 400 | Bad Request — Missing or invalid parameters |
| 404 | Not Found — Generator doesn't exist |
| 429 | Rate Limit Exceeded — Too many requests |
| 500 | Internal Server Error |
Example Error Response:
{
"success": false,
"error": "Generator not found",
"message": "The requested generator does not exist"
} Code Examples
JavaScript (Fetch API)
// List all generators
fetch('https://fancytextdecorator.com/api.php?action=list_generators')
.then(response => response.json())
.then(data => console.log(data.generators));
// Transform text
fetch('https://fancytextdecorator.com/api.php', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
action: 'generate',
slug: 'aesthetic',
text: 'Hello World'
})
})
.then(response => response.json())
.then(data => console.log(data.output)); Python
import requests
# List all generators
response = requests.get(
'https://fancytextdecorator.com/api.php',
params={'action': 'list_generators'}
)
print(response.json())
# Transform text
response = requests.post(
'https://fancytextdecorator.com/api.php',
data={
'action': 'generate',
'slug': 'aesthetic',
'text': 'Hello World'
}
)
print(response.json()['output']) PHP
// Transform text
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://fancytextdecorator.com/api.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'action' => 'generate',
'slug' => 'aesthetic',
'text' => 'Hello World'
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
echo $data['output']; Rate Limiting
To ensure fair usage, we limit API requests to 100 requests per hour per IP address.
If you exceed the rate limit, you'll receive a 429 Too Many Requests response with a retry_after field indicating when you can make requests again.
Rate Limit Response:
{
"success": false,
"error": "Rate limit exceeded",
"message": "Maximum 100 requests per hour allowed",
"retry_after": 1847
} Support
Need help or have questions? Contact us:
- 📧 Email: [email protected]
- 🐦 Twitter: @textdecorator
- 💬 GitHub Issues: Report a bug