API Reference

Discovery Endpoints

Use these endpoints to discover available options before creating a poster. This is useful for building dynamic UIs or understanding what's available.

List Effects

GET/api/v1/effects

Returns all available visual effects with their categories and parameters.

Response

response.json
{
  "total": 27,
  "effects": [
    {
      "id": "ascii-standard",
      "name": "ASCII Standard",
      "category": "ascii",
      "categoryLabel": "ASCII",
      "description": "Classic ASCII art using standard characters",
      "settingsType": "ascii",
      "pro": false
    },
    {
      "id": "dither-floyd-steinberg",
      "name": "Floyd-Steinberg",
      "category": "dither",
      "categoryLabel": "Dither",
      "description": "Classic error diffusion dithering",
      "settingsType": "dither",
      "pro": false
    },
    {
      "id": "halftone-mono",
      "name": "Mono Halftone",
      "category": "halftone",
      "categoryLabel": "Halftone",
      "description": "Single-ink print halftone",
      "settingsType": "monoHalftone",
      "pro": true
    }
    // ... more effects
  ],
  "byCategory": { "ASCII": [...], "Dither": [...], ... },
  "categories": [
    { "id": "default", "label": "Default" },
    { "id": "dither", "label": "Dither" },
    { "id": "glitch", "label": "Glitch" },
    { "id": "halftone", "label": "Halftone" },
    { "id": "ascii", "label": "ASCII" },
    { "id": "art", "label": "Art" }
  ]
}

Effect Categories & IDs

Effect IDs follow the format category-variation:

  • ascii - ascii-standard, ascii-blocks, ascii-braille, ascii-hatching, ascii-matrix, ascii-technical, ascii-dense, ascii-minimal
  • dither - dither-floyd-steinberg, dither-atkinson, dither-jarvis-judice-ninke, dither-stucki, dither-burkes, dither-sierra, dither-two-row-sierra, dither-sierra-lite
  • halftone - halftone-mono, halftone-cmyk
  • glitch - glitch-chromatic, glitch-digital, glitch-vhs, glitch-weird
  • art - art-kuwahara, art-crosshatch, art-lineart, art-engraving, art-stipple

Get Effect Settings

GET/api/v1/effects/:effectId/settings

Returns detailed parameter schema for a specific effect.

ParameterTypeDescription
effectIdrequiredstringThe effect ID (e.g., "ascii-standard", "dither-floyd-steinberg")

List Fonts

GET/api/v1/fonts

Returns all available fonts for text layers.

Response

response.json
{
  "total": 25,
  "fonts": [
    {
      "name": "DM Sans",
      "category": "sans-serif",
      "weights": [300, 400, 500, 600, 700]
    },
    {
      "name": "DM Mono",
      "category": "monospace",
      "weights": [400, 500]
    }
    // ... more fonts
  ],
  "categories": ["sans-serif", "serif", "monospace", "display"]
}

List Palettes

GET/api/v1/palettes

Returns color palettes for dither and posterize effects.

Response

response.json
{
  "total": 15,
  "palettes": [
    {
      "id": "gameboy",
      "name": "Game Boy",
      "colors": ["#0f380f", "#306230", "#8bac0f", "#9bbc0f"]
    },
    {
      "id": "cga",
      "name": "CGA",
      "colors": ["#000000", "#555555", "#aaaaaa", "#ffffff", "#0000aa", ...]
    }
    // ... more palettes
  ]
}

List Materials

GET/api/v1/materials

Returns available 3D materials for Layer3D.

Response

response.json
{
  "total": 16,
  "materials": [
    {
      "id": "chrome",
      "name": "Chrome",
      "category": "metallic",
      "properties": {
        "roughness": 0,
        "metalness": 1,
        "transmission": 0
      }
    },
    {
      "id": "glassClear",
      "name": "Clear Glass",
      "category": "glass",
      "properties": {
        "roughness": 0,
        "metalness": 0,
        "transmission": 1,
        "ior": 1.5
      }
    }
    // ... more materials
  ],
  "categories": ["basic", "metallic", "glass"]
}

Material Categories

  • basic - Standard materials (matte, clay, plastic, velvet)
  • metallic - Metal materials (chrome, silver, gold, copper, brushed)
  • glass - Glass materials (clear, frosted, colored, crystal, diamond)

List Shaders

GET/api/v1/shaders

Returns procedural shader backgrounds for BackgroundLayer.

Response

response.json
{
  "total": 11,
  "shaders": [
    {
      "id": "meshGradient",
      "name": "Mesh Gradient",
      "description": "Animated organic gradient blobs",
      "animated": true
    },
    {
      "id": "voronoi",
      "name": "Voronoi",
      "description": "Voronoi cell patterns",
      "animated": true
    }
    // ... more shaders
  ]
}

List Post-Processing

GET/api/v1/postprocess

Returns all post-processing effects and presets.

Response

response.json
{
  "total": 20,
  "types": [
    {
      "id": "scanlines",
      "name": "Scanlines",
      "description": "CRT monitor scanlines",
      "parameters": {
        "intensity": { "type": "number", "min": 0, "max": 1, "default": 0.5 },
        "count": { "type": "number", "min": 100, "max": 1000, "default": 400 }
      }
    }
    // ... more types
  ],
  "presets": [
    {
      "id": "crt",
      "name": "CRT Monitor",
      "effects": [
        { "type": "scanlines", "settings": { "intensity": 0.4 } },
        { "type": "curvature", "settings": { "curvature": 0.2 } }
      ]
    }
    // ... more presets
  ]
}

Post-Process Types

19 stackable effects including: scanlines, vignette, chromatic-aberration, curvature, grain, noise, pixelate, wave, rgb-glitch, brightness-contrast, color-tint, palette, jitter, bloom, dot-screen, sepia, grid, light-beams, and motion-blur.