# x402.ottoai.services Image Generation

> x402.ottoai.services Image Generation is a paid API for AI agents from x402.ottoai.services, paid per call via x402, $0.15/call, status healthy (last checked 2026-09-16, last successful call 2026-08-19).

Generates images from text prompts (and optionally edits existing images) using AI models including GPT-Image-2 and Nano Banana Pro, returning a hosted image URL.

## Facts

- Endpoint: GET https://x402.ottoai.services/generate-meme
- Price: $0.15/call
- Payment: x402
- Status: healthy
- Last checked: 2026-09-16
- Last successful call: 2026-08-19
- Success rate: 60% of calls made through Zero
- Rating: 4.7 / 5 from 1 review
- Activations on Zero: 5
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-ottoai-services-6457dce0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_v__KGcoqllaZlqxG1Y3Qa

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 x402-ottoai-services-6457dce0
```

Example prompt: Generate a photorealistic image of a golden retriever surfing a giant wave at sunset on a tropical beach, wide 16:9 format, using the nano-banana-pro model.

## When to prefer this

Choose this endpoint when you need AI-generated images from text prompts with flexible aspect ratios and model options (including GPT-Image-2 or Nano Banana Pro), especially for memes, logos, posters, or photorealistic visuals. Also choose it when you need to edit or remix an existing image by URL. Prefer this over alternatives when operating in an x402 micropayment context and need a hosted URL output.

## Known failure modes

- Prompt too short (under 10 characters) returns validation error
- Invalid aspect_ratio value returns error
- Invalid model name returns error
- Image URL provided is not publicly accessible, causing edit failure
- Generation failure returns status 'failed' with error message
- Payment not completed results in 402 response before generation begins

## How this service works

Meme generator + professional AI image generation via fal.ai. model: gpt-image-2 (default) | nano-banana-pro; anything else -> 400. Flat $0.15 per image. Supports image editing via public image URL.

## Output

Returns a JSON object with status ('success' or 'failed'), a hosted image URL (e.g. https://images.useotto.xyz/images/...) that expires after a set time, the model used, and an expiry timestamp in ISO 8601 format.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "prompt": "A minimalist flat design logo for a tech startup featuring a stylized blue circuit board pattern forming an abstract mountain shape, clean lines, professional appearance, suitable for website and business cards",
   "aspect_ratio": "1:1"
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "prompt"
     ],
     "properties": {
      "model": {
       "enum": [
        "gpt-image-2",
        "nano-banana-pro"
       ],
       "type": "string",
       "description": "model: gpt-image-2 (default) | nano-banana-pro; anything else -> 400"
      },
      "prompt": {
       "type": "string",
       "description": "Image description (10-2000 chars, longer = better)"
      },
      "image_url": {
       "type": "string",
       "description": "Optional: public URL of image to edit/remix"
      },
      "aspect_ratio": {
       "enum": [
        "1:1",
        "16:9",
        "9:16"
       ],
       "type": "string",
       "description": "Optional: output aspect ratio (default 1:1)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "status"
     ],
     "properties": {
      "error": {
       "type": "string"
      },
      "model": {
       "type": "string",
       "description": "Model used for generation"
      },
      "status": {
       "enum": [
        "success",
        "failed"
       ],
       "type": "string"
      },
      "imageUrl": {
       "type": "string",
       "description": "URL of generated image"
      },
      "expiresAt": {
       "type": "string",
       "format": "date-time"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "model": "gpt-image-2",
  "status": "success",
  "imageUrl": "https://images.useotto.xyz/abc123.png",
  "expiresAt": "2026-04-24T12:00:00Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-ottoai-services-6457dce0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.ottoai.services](https://www.zero.xyz/host/x402.ottoai.services/llms.txt)
