# Banatie Documentation — Full Specification for Claude Code **Date:** December 30, 2025 **Purpose:** Complete specification for generating documentation pages **Source of Truth:** `/docs/api/*.md` in banatie-service repository **Target:** `/apps/landing/src/app/docs/` --- ## Documentation Spirit & Voice **This is critical. Every page must follow this approach:** ### Tone - **Technical but approachable** — developers respect precision, but don't want to read a manual - **Confident, not arrogant** — we know our product works, no need to oversell - **Direct** — say what you mean, no fluff, no filler phrases - **Second person** — "you", "your", not "the user" or "one" ### Content Philosophy - **"Easy and simple" is the vibe** — everything should feel lightweight - **Positive statements over negatives** — say what we DO, not what we don't - **Show, don't tell** — code examples over explanations - **One request, one result** — emphasize simplicity of the flow - **Production-ready** — everything we deliver is ready to ship, not a prototype ### What to Avoid - Filler phrases ("In this section we will discuss...") - Marketing speak ("revolutionary", "game-changing", "cutting-edge") - Unnecessary warnings and caveats - Over-explaining simple concepts - Walls of text without visual breaks ### Visual Variety Use callouts, tables, code blocks liberally. Break up text. Make pages scannable. --- ## URL Structure (Final, SEO-Critical) ``` /docs # Getting Started /docs/generation # Image Generation (main guide) /docs/images # Working with Images /docs/live-urls # Live URL Generation /docs/authentication # API Keys & Auth (after live-urls) /docs/api # API Reference Overview /docs/api/generations # Generations endpoints /docs/api/images # Images endpoints /docs/api/flows # Flows endpoints /docs/api/live-scopes # Live Scopes endpoints ``` **10 pages total.** URLs are permanent — do not change after deployment. --- ## Sidebar Navigation Two-level navigation: ``` Getting Started → /docs Image Generation → /docs/generation Working with Images → /docs/images Live URLs → /docs/live-urls Authentication → /docs/authentication API Reference → /docs/api (expandable group) ├─ Overview → /docs/api ├─ Generations → /docs/api/generations ├─ Images → /docs/api/images ├─ Flows → /docs/api/flows └─ Live Scopes → /docs/api/live-scopes ``` "API Reference" section is collapsible/expandable in sidebar. --- ## Design System Use existing components from the landing app. Key elements: - **Code blocks** with syntax highlighting and copy button - **Tables** for parameters, status codes, response fields - **Callout blocks:** - 💡 **Tip** — helpful hints, pro tips - ⚠️ **Warning** — important cautions - 📝 **Note** — additional context - 🔒 **Security** — auth/security related - **Response blocks** with status badges - **Card links** for navigation to related pages - **Breadcrumbs** for orientation **Visual variety is important** — break up walls of text with callouts, tables, code examples. --- ## Cross-Linking Strategy Every guide page should link to corresponding API Reference section. Every API Reference page should link back to the guide for context. Examples: - `/docs/generation` → "See full endpoint details in [API Reference: Generations](/docs/api/generations)" - `/docs/api/generations` → "For concepts and examples, see [Image Generation guide](/docs/generation)" --- ## Page Specifications --- ### Page 1: `/docs` — Getting Started **SEO Title:** "Getting Started with Banatie API | AI Image Generation" **Meta Description:** "Generate your first AI image in a few simple steps. REST API for production-ready image assets via CDN." **Purpose:** First-time visitor lands here. Show them the value immediately. **CONTENT — USE EXACTLY AS WRITTEN:** ```markdown # Get Started Generate your first AI image in a few simple steps. ## What is Banatie? Banatie is an image generation API for developers. Send a text prompt, get a production-ready image delivered via CDN. Simple REST API. Optimized AI models that deliver consistent results. Images ready for production use immediately. ## Your First Image Once you have your API key, generate an image with a single request: ```bash curl -X POST https://api.banatie.app/api/v1/generations \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{"prompt": "a friendly robot waving hello"}' ``` That's it. The response contains your image: ```json { "success": true, "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "status": "success", "outputImage": { "storageUrl": "https://cdn.banatie.app/my-org/my-project/img/8a3b2c1d-4e5f-6789-abcd-ef0123456789", "width": 1792, "height": 1008 } } } ``` Open `storageUrl` in your browser — there's your robot. ## Production Ready The image URL is permanent and served via global CDN. What this means for you: - **Fast access** — images load in milliseconds - **Edge cached** — served from locations closest to your users - **Global distribution** — works fast everywhere in the world One request. Production-ready result. Drop the URL into your app and ship. ## Live URLs Want to skip the API call entirely? Generate images directly from a URL: ``` https://cdn.banatie.app/my-org/my-project/live/demo?prompt=a+friendly+robot+waving+hello ``` Put this in an `` tag. First request generates the image, all subsequent requests serve it from cache instantly. Perfect for placeholders, dynamic content, and rapid prototyping. → **[Learn more about Live URLs](/docs/live-urls)** ## Get Your API Key We're currently in early access. API keys are issued personally. **To request access:** 1. Go to [banatie.app](https://banatie.app) 2. Enter your email in the signup form 3. We'll send your API key within 24 hours ## Next Steps - **[Image Generation](/docs/generation)** — Aspect ratios, prompt templates, using references - **[Working with Images](/docs/images)** — Upload your own, organize with aliases - **[Live URLs](/docs/live-urls)** — Generate images directly from URL parameters - **[API Reference](/docs/api)** — Full endpoint documentation ``` --- ### Page 2: `/docs/generation` — Image Generation **SEO Title:** "Image Generation | Banatie API Docs" **Meta Description:** "Generate AI images from text prompts. Supports references, prompt templates, and chaining." **Sections:** 1. **Basic Generation** - POST /api/v1/generations - Simple example: just prompt - Response with status, outputImage, storageUrl - Emphasize: one request → image ready 2. **Aspect Ratios** - Table of supported ratios with use cases - 1:1, 16:9, 9:16, 3:2, 21:9 3. **Prompt Templates** - Templates improve your prompt for specific styles - Available templates: general, photorealistic, illustration, minimalist, sticker, product, comic - Example showing how template affects the result - **Note callout:** Template selection coming soon. Currently uses general style. 4. **Using Reference Images** - Add referenceImages array with image IDs - Example with UUID reference - **Pro Tip callout:** You can also use aliases like `@logo` instead of UUIDs. See [Working with Images](/docs/images) to learn about aliases. - Auto-detection from prompt text (if you mention @alias in prompt) 5. **Continuing Generation** - Pass the same flowId to chain generations - Each response includes flowId for continuation - Keep it brief, not a major feature highlight 6. **Regeneration** - POST /api/v1/generations/:id/regenerate - Same params, new image, same URL **Link to:** `/docs/api/generations` for full endpoint reference --- ### Page 3: `/docs/images` — Working with Images **SEO Title:** "Working with Images | Banatie API Docs" **Meta Description:** "Upload, manage, and organize your images. CDN delivery, aliases, and image management." **Sections:** 1. **Image URLs** - All images served via CDN: `https://cdn.banatie.app/...` - Format: `/{org}/{project}/img/{imageId}` - Fast, cached, globally distributed 2. **Uploading Images** - POST /api/v1/images/upload - Multipart form data - Use cases: brand assets, reference images, logos 3. **Listing & Getting Images** - GET /api/v1/images - GET /api/v1/images/:id 4. **Aliases** - Assign memorable names to images - Format: @alias-name (e.g., @logo, @hero-bg) - PUT /api/v1/images/:id with alias field - Access via CDN: `/{org}/{project}/img/@hero` **Pro Tip callout:** Use aliases for brand assets like `@logo`, `@brand-colors`. Reference them in generations without remembering UUIDs. 5. **Deleting Images** - DELETE /api/v1/images/:id **Link to:** `/docs/api/images` for full endpoint reference --- ### Page 4: `/docs/live-urls` — Live URL Generation **SEO Title:** "Live URLs | Banatie API Docs" **Meta Description:** "Generate images directly from URL parameters. No API calls needed — just use the URL in your HTML." **This is a highlight feature page — make it compelling but not salesy.** **Sections:** 1. **The Concept** - Generate images by putting prompt in URL - Use directly in `` - First request generates, subsequent requests serve from cache 2. **URL Format** ``` https://cdn.banatie.app/{org}/{project}/live/{scope}?prompt=...&aspectRatio=... ``` 3. **Try It** - Show a complete URL example they can open in browser 4. **Caching Behavior** - Cache HIT: instant, from CDN edge - Cache MISS: generates new image (few seconds) - X-Cache-Status header tells you which 5. **Scopes** - Organize live generations by scope - Set limits per scope - Auto-created on first use (if enabled) 6. **Rate Limits** - 10 new generations per hour per IP - Cache hits are unlimited 7. **Use Cases** - Dynamic placeholders during development - Personalized content - Rapid prototyping - HTML emails with dynamic images **Link to:** `/docs/api/live-scopes` for scope management endpoints --- ### Page 5: `/docs/authentication` — Authentication **SEO Title:** "Authentication | Banatie API Docs" **Meta Description:** "How to authenticate with Banatie API using API keys." **Sections:** 1. **Early Access** - Currently in early access phase - API keys are issued personally via email - To request access: sign up on [banatie.app](https://banatie.app) 2. **Using Your API Key** - All API requests require `X-API-Key` header - Example: `curl -H "X-API-Key: your_key_here" ...` - Keep your key secret, don't commit to git 3. **Key Types** (brief) - Project Key: for your application - Master Key: for admin operations (you probably don't need this) **Note callout:** API key management dashboard coming soon. For now, contact us if you need to rotate your key. **Link to:** `/docs/generation` as next step --- ### Page 6: `/docs/api` — API Reference Overview **SEO Title:** "API Reference | Banatie API Docs" **Meta Description:** "Complete REST API reference for Banatie. All endpoints, parameters, and response formats." **This is a hub page — brief intro then links to subsections.** **Sections:** 1. **Base URL** ``` https://api.banatie.app ``` 2. **Authentication** - All endpoints require `X-API-Key` header - Link to `/docs/authentication` 3. **Response Format** - Success: `{ "success": true, "data": {...} }` - Error: `{ "success": false, "error": {...} }` - Pagination pattern 4. **Common Error Codes** - Table of HTTP status codes and meanings 5. **Rate Limits** - 100 requests per hour - Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset 6. **Endpoints** - Card links to each subsection: - Generations — create and manage image generations - Images — upload and organize images - Flows — manage generation chains - Live Scopes — control live URL generation --- ### Page 7: `/docs/api/generations` — Generations Endpoints **SEO Title:** "Generations API | Banatie API Reference" **Style:** Dry, complete, scannable. This is reference material. **Endpoints to document:** ``` POST /api/v1/generations Create generation GET /api/v1/generations List generations GET /api/v1/generations/:id Get generation DELETE /api/v1/generations/:id Delete generation POST /api/v1/generations/:id/regenerate Regenerate PUT /api/v1/generations/:id Update generation ``` **For each endpoint:** - Method + Path - Description (1 line) - Request parameters (table) - Request body example (where applicable) - Response example - Notes if applicable **Source:** Use `/docs/api/image-generation.md` and `/docs/api/image-generation-advanced.md` **Important:** The API is synchronous. POST returns completed generation with outputImage immediately. Do NOT show polling flow. **Link to:** `/docs/generation` for guide/context --- ### Page 8: `/docs/api/images` — Images Endpoints **SEO Title:** "Images API | Banatie API Reference" **Endpoints:** ``` POST /api/v1/images/upload Upload image GET /api/v1/images List images GET /api/v1/images/:id Get image (supports @alias) PUT /api/v1/images/:id Update image (set alias, metadata) DELETE /api/v1/images/:id Delete image ``` **CDN Endpoints (public, no auth):** ``` GET /cdn/{org}/{project}/img/{id} Get image by UUID GET /cdn/{org}/{project}/img/@{alias} Get image by alias ``` **Source:** Use `/docs/api/images-upload.md` **Link to:** `/docs/images` for guide/context --- ### Page 9: `/docs/api/flows` — Flows Endpoints **SEO Title:** "Flows API | Banatie API Reference" **Brief intro:** Flows group related generations together. They're created automatically when you chain generations using the same flowId. **Endpoints:** ``` GET /api/v1/flows List flows GET /api/v1/flows/:id Get flow GET /api/v1/flows/:id/generations List flow generations GET /api/v1/flows/:id/images List flow images PUT /api/v1/flows/:id/aliases Update flow aliases DELETE /api/v1/flows/:id/aliases/:alias Remove flow alias DELETE /api/v1/flows/:id Delete flow POST /api/v1/flows/:id/regenerate Regenerate last in flow ``` **Source:** Use `/docs/api/image-generation-advanced.md` section on flows **Link to:** `/docs/generation` (section on continuing generations) --- ### Page 10: `/docs/api/live-scopes` — Live Scopes Endpoints **SEO Title:** "Live Scopes API | Banatie API Reference" **Endpoints:** ``` POST /api/v1/live/scopes Create scope GET /api/v1/live/scopes List scopes GET /api/v1/live/scopes/:slug Get scope PUT /api/v1/live/scopes/:slug Update scope DELETE /api/v1/live/scopes/:slug Delete scope POST /api/v1/live/scopes/:slug/regenerate Regenerate scope images ``` **CDN Live Endpoint (public):** ``` GET /cdn/{org}/{project}/live/{scope}?prompt=... Live generation ``` Query parameters: prompt (required), aspectRatio, autoEnhance, template **Source:** Use `/docs/api/live-url.md` **Link to:** `/docs/live-urls` for guide/context --- ## Implementation Notes for Claude Code 1. **Use existing components** — Check `/apps/landing/src/app/docs/` for current implementation patterns 2. **Correct URLs everywhere:** - API: `https://api.banatie.app` - CDN: `https://cdn.banatie.app` - NOT `.com` — always `.app` 3. **Example paths use:** `my-org/my-project` (not `default/my-project`) 4. **No SDK references** — We don't have SDK yet. Don't mention it. 5. **API is synchronous** — POST /generations returns completed result immediately. No polling. 6. **Prompt templates, not "enhancement"** — We have templates that improve prompts. Don't call it "auto-enhance" as a standalone feature. 7. **Breadcrumbs:** Every page should show path (e.g., "Docs > API Reference > Generations") 8. **Meta tags:** Each page needs proper SEO title and description as specified 9. **Mobile responsive** — Documentation must work well on mobile 10. **Code examples:** Use `bash` (curl) as primary. Show request AND response for every endpoint. 11. **Image dimensions in examples:** Use 1792 x 1008 (16:9) not 1024 x 1024 --- ## File Structure Expected ``` apps/landing/src/app/docs/ ├── page.tsx # /docs (Get Started) ├── generation/ │ └── page.tsx # /docs/generation ├── images/ │ └── page.tsx # /docs/images ├── live-urls/ │ └── page.tsx # /docs/live-urls ├── authentication/ │ └── page.tsx # /docs/authentication └── api/ ├── page.tsx # /docs/api (Overview) ├── generations/ │ └── page.tsx # /docs/api/generations ├── images/ │ └── page.tsx # /docs/api/images ├── flows/ │ └── page.tsx # /docs/api/flows └── live-scopes/ └── page.tsx # /docs/api/live-scopes ``` --- ## Priority Order for Implementation 1. `/docs` — Get Started (content provided above) 2. `/docs/generation` — Core feature 3. `/docs/api` — Reference hub 4. `/docs/api/generations` — Most used endpoints 5. `/docs/images` — Working with results 6. `/docs/api/images` — Image endpoints 7. `/docs/live-urls` — Highlight feature 8. `/docs/api/live-scopes` — Live management 9. `/docs/authentication` — Auth info 10. `/docs/api/flows` — Least priority (advanced users) --- ## Quality Checklist Before marking complete, verify: - [ ] All URLs use `banatie.app` (not `.com`) - [ ] Example paths use `my-org/my-project` - [ ] Image dimensions are 1792 x 1008 in examples - [ ] All code examples are copy-paste ready - [ ] Every endpoint shows request AND response - [ ] Tables render correctly - [ ] Callout blocks used for visual variety - [ ] Cross-links between guide and reference pages - [ ] Sidebar navigation matches URL structure - [ ] Breadcrumbs work on all pages - [ ] Mobile rendering is acceptable - [ ] No references to SDK or features that don't exist - [ ] No polling/async flow — API is synchronous - [ ] SEO titles and descriptions set for all pages - [ ] Tone matches "Documentation Spirit" section --- **End of Specification**