# ASCII Art Generator (`automation-lab/ascii-art-generator`) Actor

Convert text to ASCII art using 328 figlet fonts. Batch mode, adjustable width, horizontal/vertical layouts. Zero proxy — pure computation. Results in seconds.

- **URL**: https://apify.com/automation-lab/ascii-art-generator.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## ASCII Art Generator

Convert any text to **ASCII art** using 200+ figlet fonts — batch mode, adjustable width, and horizontal/vertical layout control. Zero proxy, pure computation. Results delivered to the Apify dataset in seconds.

Try it directly on [Apify Store](https://apify.com/automation-lab/ascii-art-generator) — no sign-up required to start.

---

### What does ASCII Art Generator do?

ASCII Art Generator takes one or more text strings and converts them into **figlet-style ASCII art** — large, stylized characters made entirely of printable ASCII characters. Choose from **328 built-in fonts** including classics like Standard, Big, Slant, Banner, Block, and hundreds of specialty styles.

This actor is **zero-proxy and zero-browser** — it runs as pure Node.js computation, so every run is fast, cheap, and reliable. There are no websites to scrape, no rate limits to hit, and no anti-bot challenges to worry about.

You can generate a single piece of ASCII art in under a second, or batch-convert hundreds of strings in a single run.

---

### Who is ASCII Art Generator for?

**Developers and DevOps engineers** who want to add ASCII art headers to terminal scripts, CLI tools, startup banners, or README files. Instead of installing and running figlet locally, they call this actor via API and embed the result directly.

**Content creators and marketers** looking for eye-catching text styles for social media posts, Discord announcements, Slack messages, or newsletter headers. ASCII art adds personality to plain-text communication.

**Automation builders** who use Make, Zapier, or n8n and need dynamic ASCII art generated as part of a workflow — e.g., auto-generating a weekly "STATUS REPORT" banner or personalizing messages with a user's name in large ASCII letters.

**Game developers and interactive fiction authors** who need styled title screens, map labels, or in-game text art for terminal-based or retro-styled projects.

---

### Why use ASCII Art Generator?

- 🚀 **Instant results** — pure computation, no browser, no proxy. Most runs complete in under 2 seconds
- 🎨 **328 figlet fonts** built in — Standard, Big, Slant, Block, Banner, Doom, Gothic, and hundreds more
- 📦 **Batch mode** — convert many strings in a single run, each with its own font
- 📐 **Layout control** — adjust horizontal and vertical character spacing (default, fitted, full, smushing)
- 💰 **Ultra-low cost** — no proxy, no browser, just CPU. Pennies per batch
- 🔌 **API-first** — integrate with any programming language via the Apify API
- 🤖 **MCP-ready** — use directly from Claude Code, Claude Desktop, and other AI assistants
- 📋 **Font discovery** — run in `listFonts` mode to get a full catalog of 328 available font names

---

### What data can you extract?

Each converted text item produces a dataset record with:

| Field | Type | Description |
|-------|------|-------------|
| `text` | string | The original input text |
| `font` | string | The figlet font used |
| `width` | number | The line-wrap width setting |
| `horizontalLayout` | string | Horizontal spacing mode |
| `verticalLayout` | string | Vertical spacing mode |
| `asciiArt` | string | The generated ASCII art (multi-line, newline-separated) |
| `lineCount` | number | Number of non-empty lines in the output |
| `charWidth` | number | Width of the widest line in the output |
| `success` | boolean | Whether generation succeeded |
| `error` | string | Error message if generation failed |

When run in **font list mode** (`listFonts: true`), each record contains only a `font` field — one per available font.

---

### How much does it cost to generate ASCII art?

ASCII Art Generator uses **Pay-Per-Event (PPE) pricing** — you only pay for what you use.

| Event | FREE tier | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|-------|-----------|--------|--------|------|----------|---------|
| Actor start (per run) | $0.0050 | $0.00475 | $0.00425 | $0.00375 | $0.0030 | $0.0025 |
| Per text generated | $0.0002 | $0.00018 | $0.00016 | $0.00013 | $0.0001 | $0.00008 |

**Real-world cost examples:**

- **10 texts** (FREE tier): $0.005 start + 10 × $0.0002 = **$0.007 total**
- **100 texts** (FREE tier): $0.005 + 100 × $0.0002 = **$0.025 total**
- **1,000 texts** (GOLD tier): $0.00375 + 1,000 × $0.00013 = **$0.133 total**

**Free plan estimate:** With Apify's $5 free credits you can generate approximately **24,000 text items** at the FREE tier rate.

Pricing is transparent — no surprises, no hidden fees. The `listFonts` mode only charges the $0.005 start event (no per-item charge), so font discovery is essentially free.

---

### How to convert text to ASCII art

1. Open [ASCII Art Generator](https://apify.com/automation-lab/ascii-art-generator) on Apify Store
2. Click **Try for free** to open the actor in Apify Console
3. In the **Texts to convert** field, add your text items as JSON:
   ```json
   [
     { "text": "Hello World", "font": "Standard" },
     { "text": "My Company", "font": "Big" }
   ]
````

4. Optionally choose a default **font**, **line width**, and layout settings
5. Click **Start** — results appear in the **Dataset** tab in seconds
6. Export results as JSON, CSV, or Excel from the dataset

**To discover available fonts:** Enable **List all available fonts** in the input, run the actor, and browse the 328 font names in the dataset. Copy the font name you want and use it in your next run.

***

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `texts` | array | — | List of text items to convert. Each can have `text`, `font`, `width`, `horizontalLayout`, `verticalLayout` |
| `listFonts` | boolean | `false` | When `true`, outputs all 328 available font names instead of generating art |
| `font` | string | `Standard` | Default font for all texts (overridden per item). Run `listFonts` to see all options |
| `width` | integer | `80` | Max line width for text wrapping. `0` = no wrapping |
| `horizontalLayout` | string | `default` | Horizontal character spacing: `default`, `fitted`, `full`, `controlled smushing`, `universal smushing` |
| `verticalLayout` | string | `default` | Vertical spacing: `default`, `fitted`, `full`, `controlled smushing`, `universal smushing` |

**Per-item overrides:** Each entry in `texts` can override `font`, `width`, `horizontalLayout`, and `verticalLayout` independently of the global settings.

***

### Output examples

#### Single text with Standard font

Input:

```json
{ "text": "Hello World", "font": "Standard" }
```

Output record:

```json
{
  "text": "Hello World",
  "font": "Standard",
  "width": 80,
  "horizontalLayout": "default",
  "verticalLayout": "default",
  "asciiArt": "  _   _      _ _        __        __         _     _ \n | | | | ___| | | ___   \\ \\      / /__  _ __| | __| |\n | |_| |/ _ \\ | |/ _ \\   \\ \\ /\\ / / _ \\| '__| |/ _` |\n |  _  |  __/ | | (_) |   \\ V  V / (_) | |  | | (_| |\n |_| |_|\\___|_|_|\\___/     \\_/\\_/ \\___/|_|  |_|\\__,_|\n",
  "lineCount": 5,
  "charWidth": 53,
  "success": true,
  "error": null
}
```

#### Batch mode

Input:

```json
[
  { "text": "Hello", "font": "Big" },
  { "text": "World", "font": "Slant" },
  { "text": "2025", "font": "Banner3" }
]
```

Each produces an independent dataset record. Invalid fonts or empty texts are skipped gracefully with an error message in the `error` field — the run continues.

#### Font list mode

Input:

```json
{ "listFonts": true }
```

Output (328 records):

```json
[
  { "font": "1Row" },
  { "font": "3-D" },
  { "font": "3D Diagonal" },
  ...
  { "font": "Standard" },
  ...
  { "font": "Whimsy" }
]
```

***

### Tips for best results

- 🔍 **Discover fonts first** — run with `listFonts: true` to browse all 328 available fonts. Copy the exact name (case-sensitive) for use in your texts array.
- 📐 **Width matters** — long texts with small width values wrap onto multiple lines. Set `width: 0` to disable wrapping and get the full text on one line (may be very wide).
- ✂️ **Use `fitted` layout** for tighter output — removes excess whitespace between characters. Useful for compact banners.
- 🧪 **Test layouts** — `horizontal smushing` modes merge adjacent characters in interesting ways. Some fonts look better with smushing, others look garbled. Test before batch-converting.
- 💡 **Batch everything** — there's a per-run start cost, so combine all your texts into one run instead of running the actor separately for each text.
- 📋 **Copy the `asciiArt` field directly** — it uses `\n` newline characters. In most terminals and text editors, these render correctly. In JSON output, replace `\n` with actual newlines if needed.
- 🎨 **Popular fonts** for various use cases:
  - Banners/headers: `Big`, `Banner`, `Banner3`, `Block`
  - Modern style: `Slant`, `3D Diagonal`, `Doom`
  - Minimal: `Standard`, `Small`, `Mini`
  - Decorative: `Gothic`, `Whimsy`, `Graffiti`

***

### Integrations

**ASCII Art Generator → Discord/Slack announcements:** Use Make or Zapier to trigger a run when a new product version is released. The actor converts the version number and release name to ASCII art, which is posted as a styled announcement in your team channel.

**ASCII Art Generator → GitHub README auto-update:** Schedule a weekly run that generates a fresh ASCII art header for your project's README, then use the GitHub API to commit the updated file automatically.

**ASCII Art Generator → CLI banner files:** Use the Apify API in your CI/CD pipeline to generate startup banners for your tools. Store the `asciiArt` field as a static file that gets embedded in your CLI application at build time.

**ASCII Art Generator → Email newsletters:** Generate personalized ASCII art greetings (e.g., subscriber name in `Slant` font) via the API and embed them in plain-text email newsletters for a retro, personal feel.

**Scheduled font exploration:** Set up a scheduled run in `listFonts` mode monthly to stay current with any new fonts added to the figlet library. Output goes to a Google Sheet via Apify's Google Sheets integration.

***

### Using the Apify API

#### Node.js

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('automation-lab/ascii-art-generator').call({
    texts: [
        { text: 'Hello World', font: 'Standard' },
        { text: 'My App', font: 'Big' },
    ],
    width: 80,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
    if (item.success) {
        console.log(`Font: ${item.font}`);
        console.log(item.asciiArt);
    }
}
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient(token='YOUR_API_TOKEN')

run = client.actor('automation-lab/ascii-art-generator').call(run_input={
    'texts': [
        {'text': 'Hello World', 'font': 'Standard'},
        {'text': 'My App', 'font': 'Big'},
    ],
    'width': 80,
})

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    if item['success']:
        print(f"Font: {item['font']}")
        print(item['asciiArt'])
```

#### cURL

```bash
## Start the actor run
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~ascii-art-generator/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "texts": [
      { "text": "Hello World", "font": "Standard" },
      { "text": "My App", "font": "Big" }
    ],
    "width": 80
  }'

## Fetch results (replace DATASET_ID with the ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN"
```

***

### Use with AI agents via MCP

ASCII Art Generator is available as a tool for AI assistants that support the [Model Context Protocol (MCP)](https://docs.apify.com/platform/integrations/mcp).

Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:

#### Setup for Claude Code

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/ascii-art-generator"
```

#### Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com?tools=automation-lab/ascii-art-generator",
            "headers": {
                "Authorization": "Bearer YOUR_APIFY_TOKEN"
            }
        }
    }
}
```

#### Example prompts for AI assistants

- *"Generate ASCII art of the text 'Hello World' using the Big font"*
- *"List all available figlet fonts so I can choose one for my project"*
- *"Convert these 5 company names to ASCII art using the Slant font: Apify, Google, Apple, Meta, Amazon"*

***

### Is it legal to generate ASCII art?

ASCII art generation is entirely legal — this actor performs local computation only and does not scrape any website. The figlet font library is open-source (MIT/BSD licensed). The text you provide is yours to use as you see fit.

This actor does not interact with any external service, collect personal data, or store any information beyond your run's dataset. It complies with all standard data processing regulations.

For more information on responsible use of Apify actors, see the [Apify Terms of Service](https://apify.com/terms-of-service).

***

### FAQ

**How many fonts are available?**
The actor includes 328 figlet fonts built into the `figlet` npm package. Run the actor with `listFonts: true` to get the complete list in the dataset. All fonts are loaded locally — no external downloads required.

**How fast is each run?**
Most runs complete in under 2 seconds. Even large batches of 1,000 texts typically finish in under 10 seconds. The actor is pure computation — there's no network I/O beyond the Apify platform itself.

**How much does it cost for a batch of 500 texts?**
At the FREE tier: $0.005 start + 500 × $0.0002 = $0.105. At GOLD tier it's about $0.069. Costs drop significantly with higher subscription tiers.

**Why does my font name not work?**
Font names are **case-sensitive**. Use `listFonts: true` to see the exact names. For example, it's `"3D Diagonal"` (with capital D and space), not `"3d-diagonal"`. The error message in the dataset will tell you if the font file was not found.

**Why does the ASCII art look different from what I expected?**
Some fonts look very different depending on layout settings. Try changing `horizontalLayout` from `"default"` to `"fitted"` to reduce spacing, or experiment with smushing modes. Short texts may also produce unexpected results with some fonts designed for longer strings.

**Can I use the actor for non-English text or special characters?**
Most figlet fonts support only printable ASCII characters (standard English alphabet, numbers, and some punctuation). Non-ASCII characters (accented letters, CJK, emoji) will typically produce empty or garbled output. The `error` field will indicate if the output was empty.

**What happens if a font doesn't exist?**
The actor logs an error for that item, writes the error message to the `error` field in the dataset record, and continues processing the remaining texts. A run with some failures still succeeds overall.

***

### Other automation-lab tools

Looking for more text and content processing tools?

- [Barcode Generator](https://apify.com/automation-lab/barcode-generator) — Generate EAN-13, Code128, QR codes and 10+ barcode formats as PNG or SVG
- [Fake Test Data Generator](https://apify.com/automation-lab/fake-test-data-generator) — Generate realistic fake data for testing: names, emails, addresses, phone numbers, and more
- [Curl to Code Converter](https://apify.com/automation-lab/curl-to-code-converter) — Convert cURL commands to Python, Node.js, PHP, Go, and other languages instantly
- [Unicode Text Inspector](https://apify.com/automation-lab/unicode-text-inspector) — Analyze and decode Unicode text: code points, categories, scripts, and encoding details
- [Wayback Machine CDX Extractor](https://apify.com/automation-lab/wayback-machine-cdx-extractor) — Query the Wayback Machine CDX API to find historical snapshots of any URL

# Actor input Schema

## `texts` (type: `array`):

List of text strings to convert to ASCII art. Each entry can optionally override the global font and width settings.

## `listFonts` (type: `boolean`):

When enabled, outputs the complete list of available figlet fonts to the dataset instead of generating ASCII art. Useful for discovering fonts before choosing one.

## `font` (type: `string`):

Default figlet font for all texts. Individual texts can override this. Run with 'List all available fonts' to see all 200+ options.

## `width` (type: `integer`):

Maximum character width for text wrapping. Use 0 for no wrapping. Range: 0–500.

## `horizontalLayout` (type: `string`):

Controls horizontal character spacing. 'default' uses the font's built-in spacing. 'fitted' removes most whitespace. 'full' uses maximum spacing.

## `verticalLayout` (type: `string`):

Controls vertical character spacing. 'default' uses the font's built-in vertical spacing.

## Actor input object example

```json
{
  "texts": [
    {
      "text": "Hello World",
      "font": "Standard"
    },
    {
      "text": "Apify",
      "font": "Big"
    }
  ],
  "listFonts": false,
  "font": "Standard",
  "width": 80,
  "horizontalLayout": "default",
  "verticalLayout": "default"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "texts": [
        {
            "text": "Hello World",
            "font": "Standard"
        },
        {
            "text": "Apify",
            "font": "Big"
        }
    ],
    "listFonts": false,
    "font": "Standard",
    "width": 80,
    "horizontalLayout": "default",
    "verticalLayout": "default"
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/ascii-art-generator").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "texts": [
        {
            "text": "Hello World",
            "font": "Standard",
        },
        {
            "text": "Apify",
            "font": "Big",
        },
    ],
    "listFonts": False,
    "font": "Standard",
    "width": 80,
    "horizontalLayout": "default",
    "verticalLayout": "default",
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/ascii-art-generator").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "texts": [
    {
      "text": "Hello World",
      "font": "Standard"
    },
    {
      "text": "Apify",
      "font": "Big"
    }
  ],
  "listFonts": false,
  "font": "Standard",
  "width": 80,
  "horizontalLayout": "default",
  "verticalLayout": "default"
}' |
apify call automation-lab/ascii-art-generator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/ascii-art-generator",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ASCII Art Generator",
        "description": "Convert text to ASCII art using 328 figlet fonts. Batch mode, adjustable width, horizontal/vertical layouts. Zero proxy — pure computation. Results in seconds.",
        "version": "0.1",
        "x-build-id": "DaMkdtgA9QObVfqHR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~ascii-art-generator/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-ascii-art-generator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/automation-lab~ascii-art-generator/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-ascii-art-generator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/automation-lab~ascii-art-generator/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-ascii-art-generator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "texts": {
                        "title": "🔤 Texts to convert",
                        "type": "array",
                        "description": "List of text strings to convert to ASCII art. Each entry can optionally override the global font and width settings."
                    },
                    "listFonts": {
                        "title": "📋 List all available fonts",
                        "type": "boolean",
                        "description": "When enabled, outputs the complete list of available figlet fonts to the dataset instead of generating ASCII art. Useful for discovering fonts before choosing one.",
                        "default": false
                    },
                    "font": {
                        "title": "🎨 Default font",
                        "type": "string",
                        "description": "Default figlet font for all texts. Individual texts can override this. Run with 'List all available fonts' to see all 200+ options.",
                        "default": "Standard"
                    },
                    "width": {
                        "title": "📐 Default line width",
                        "minimum": 0,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum character width for text wrapping. Use 0 for no wrapping. Range: 0–500.",
                        "default": 80
                    },
                    "horizontalLayout": {
                        "title": "↔️ Horizontal layout",
                        "enum": [
                            "default",
                            "fitted",
                            "full",
                            "controlled smushing",
                            "universal smushing"
                        ],
                        "type": "string",
                        "description": "Controls horizontal character spacing. 'default' uses the font's built-in spacing. 'fitted' removes most whitespace. 'full' uses maximum spacing.",
                        "default": "default"
                    },
                    "verticalLayout": {
                        "title": "↕️ Vertical layout",
                        "enum": [
                            "default",
                            "fitted",
                            "full",
                            "controlled smushing",
                            "universal smushing"
                        ],
                        "type": "string",
                        "description": "Controls vertical character spacing. 'default' uses the font's built-in vertical spacing.",
                        "default": "default"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
