# Quietforge Crossword Generator — Print-Ready PDF

> Quietforge Crossword Generator — Print-Ready PDF is a paid API for AI agents from qf-api.quietforge-studio.workers.dev, paid per call via x402, $3.99/call, status unknown (last checked 2026-10-11).

Generates a verified freeform crossword puzzle PDF (and optional JSON) from your clue/answer pairs, in multiple page sizes and styles, delivered as a base64-encoded ZIP.

## Facts

- Endpoint: POST https://qf-api.quietforge-studio.workers.dev/v1/crossword/pdf?utm_source=zero.xyz
- Price: $3.99/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/quietforge-crossword-generator-print-ready-pdf-f9f88e3c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_gebIdS3_lpkQjS6VCU9hI

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability quietforge-crossword-generator-print-ready-pdf-f9f88e3c -d '<json body>'
```

Example prompt: Generate a crossword puzzle PDF for Dana's 40th birthday using these 18 clue/answer pairs, title it 'Dana's 40th Birthday Crossword', use the elegant style, and give me both Letter and 8x10 page sizes.

## When to prefer this

Choose this endpoint when you need a fully verified, print-ready crossword PDF generated from your own custom clue/answer pairs, especially for events, education, or publishing. It handles grid layout verification, crossing validation, and PDF typesetting in a single pay-per-call request with no signup. Prefer this over generic crossword tools when you need deterministic reproducibility via seed, multiple page sizes in one call, or styled output (classic vs. elegant) suitable for direct printing or KDP publishing.

## Known failure modes

- Fewer than 8 or more than 30 entries provided — returns validation error
- Duplicate answers in the entry list — returns validation error
- Answer length outside 3-15 characters — returns validation error
- Clue text exceeds 110 characters — returns validation error
- Puzzle cannot be laid out as a connected freeform grid (too few crossings) — may return layout failure
- x402 payment not provided or insufficient — returns 402 Payment Required
- Title exceeds 40 characters or subtitle exceeds 90 characters — returns validation error

## How this service works

Pay-per-call document conversion, PDF text extraction, headless-browser rendering of a URL or HTML to PNG / JPEG / PDF, a health-probed directory of x402 pay-per-call endpoints, a sudoku generator (solver-verified, technique-graded puzzles as JSON or a print-ready A4/Letter book), a book typesetter (prose manuscript to a KDP-ready interior PDF + editable docx), a crossword generator (verified freeform grid from your clue/answer pairs as JSON or print-ready PDFs), a family tree chart layout engine (descendant / ancestor / hourglass charts from people+families JSON or a GEDCOM file, as verified layout JSON or print-ready poster and tiled PDFs), and a dataset quality audit tool (duplicates, missing values, type consistency, class imbalance, numeric outliers and PII-pattern counts for a CSV/JSON dataset, as JSON or a one-page PDF summary). Payment: x402 (USDC on Base). No signup, no API key.

## Output

A base64-encoded ZIP file containing: one or more crossword PDFs (in the requested page sizes — 8x10, A4, or Letter), a puzzle.json with the full grid layout, crossing count, dimensions, seed, entry count, elapsed time, style, and title. The ZIP is returned in the response body with content_type application/zip.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "seed": {
   "type": "integer",
   "description": "Optional; same seed + entries = same grid"
  },
  "sizes": {
   "type": "array",
   "items": {
    "enum": [
     "8x10",
     "a4",
     "letter"
    ],
    "type": "string"
   },
   "description": "PDF page sizes to build (PDF route only; default all three)"
  },
  "style": {
   "enum": [
    "classic",
    "elegant"
   ],
   "type": "string",
   "description": "classic = sans-serif, elegant = serif with a gold rule (PDF only)"
  },
  "title": {
   "type": "string",
   "maxLength": 40,
   "description": "Printed above the grid"
  },
  "entries": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "answer",
     "clue"
    ],
    "properties": {
     "clue": {
      "type": "string"
     },
     "answer": {
      "type": "string"
     }
    }
   },
   "maxItems": 30,
   "minItems": 8,
   "description": "8-30 clue/answer pairs; answers 3-15 letters (spaces, hyphens and accents are dropped in the grid, kept in the key); clues up to 110 characters; no duplicate answers"
  },
  "subtitle": {
   "type": "string",
   "maxLength": 90,
   "description": "Optional line under the title"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "cols": 16,
  "rows": 19,
  "seed": 40,
  "bytes": 60000,
  "files": [
   "Danas40thBirthdayCrossword-Crossword-8x10.pdf",
   "Danas40thBirthdayCrossword-Crossword-Letter.pdf",
   "puzzle.json"
  ],
  "pages": {
   "8x10": 2,
   "letter": 2
  },
  "style": "elegant",
  "title": "Dana's 40th Birthday Crossword",
  "entries": 18,
  "crossings": 17,
  "elapsed_ms": 900,
  "content_type": "application/zip",
  "content_base64": "UEsDBBQ..."
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/quietforge-crossword-generator-print-ready-pdf-f9f88e3c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from qf-api.quietforge-studio.workers.dev](https://www.zero.xyz/host/qf-api.quietforge-studio.workers.dev/llms.txt)
