# AI End Card Maker

> Agent skill on puras — published by puras. An AI end card maker for mobile game ads. Drop in your game's logo, a few reference images, and a call-to-action and it pulls the characters, colors, and mood from your art into a polished, install-driving end card creative — in the placement size UA networks need (9:16 by default, or 1:1 / 16:9).

- **Skill path:** `puras/game-ad-studio/end-card-generator`
- **Skillpack:** Game Ad Studio (`game-ad-studio`)
- **Skillpack ID:** `0dac04f5-5e73-44d7-8c47-adc9977250e5`
- **Deployment version:** v76
- **Human page:** https://puras.co/skills/puras/game-ad-studio/end-card-generator
- **API base:** `https://api.puras.co`

## Description

An AI end card maker for mobile game ads. Drop in your game's logo, a few reference images, and a call-to-action and it pulls the characters, colors, and mood from your art into a polished, install-driving end card creative — in the placement size UA networks need (9:16 by default, or 1:1 / 16:9).

## Try it free

AI End Card Maker has a free in-browser playground on its page (https://puras.co/skills/puras/game-ad-studio/end-card-generator) — load an example or bring your own inputs and run it with a Google sign-in. No credit card, no subscription; runs are usage-based after the free try.

## Input schema

```json
{
  "type": "object",
  "required": [
    "logo",
    "references",
    "cta_text"
  ],
  "properties": {
    "logo": {
      "type": "image",
      "description": "The game's logo (transparent PNG preferred)."
    },
    "style": {
      "enum": [
        "auto",
        "bold",
        "playful",
        "minimal",
        "premium"
      ],
      "type": "string",
      "description": "Visual tone. `auto` decides based on the game's genre."
    },
    "cta_text": {
      "type": "string",
      "maxLength": 24,
      "minLength": 2,
      "description": "Button text, e.g. \"Play Now\", \"Install\"."
    },
    "headline": {
      "type": "string",
      "maxLength": 40,
      "description": "Short hook (2–5 words). Auto-written if empty."
    },
    "references": {
      "type": "array",
      "items": {
        "type": "image"
      },
      "maxItems": 5,
      "minItems": 1,
      "description": "Game reference images — key art, screenshots, characters, icons."
    },
    "brand_color": {
      "type": "color",
      "description": "Accent color for the CTA button. Derived from logo if empty."
    },
    "aspect_ratio": {
      "enum": [
        "9:16",
        "1:1",
        "16:9"
      ],
      "type": "string",
      "default": "9:16",
      "description": "Which placement to render. Defaults to vertical 9:16."
    },
    "social_proof": {
      "type": "string",
      "maxLength": 40,
      "description": "Optional social proof, e.g. \"4.8★ · 10M+ players\". Never fabricated."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "properties": {
    "end_card": {
      "type": "image",
      "description": "The finished end-card image."
    }
  }
}
```

## Examples

### Clash of Clans

Inputs:

```json
{
  "logo": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_logo.webp",
  "style": "playful",
  "cta_text": "Play Free",
  "headline": "Build a village!",
  "references": [
    "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_ss1.webp",
    "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_ss2.webp",
    "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_ss3.webp"
  ],
  "aspect_ratio": "9:16"
}
```

Outputs:

```json
{
  "end_card": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_output_9x16.webp"
}
```

### 1010!

Inputs:

```json
{
  "logo": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/1010_logo.webp",
  "style": "premium",
  "cta_text": "Play Now",
  "headline": "Fill the grid!",
  "references": [
    "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/1010_screenshot.webp"
  ],
  "aspect_ratio": "1:1"
}
```

Outputs:

```json
{
  "end_card": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/1010_output_1x1.webp"
}
```

### Merge Dragons

Inputs:

```json
{
  "logo": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/mergedragons_logo.webp",
  "style": "playful",
  "cta_text": "Install",
  "headline": "Merge. Hatch. Heal.",
  "references": [
    "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/mergedragons_screenshot.webp"
  ],
  "brand_color": "#7B3FF2",
  "aspect_ratio": "9:16",
  "social_proof": "4.7★ · 100M+ players"
}
```

Outputs:

```json
{
  "end_card": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/md_output_9x16.webp"
}
```

## Use this skill

puras runs this skill on its own backend — you send inputs and get the result back. Three ways to call, fastest first:

### 1. MCP server — recommended for coding agents, no API key

Connect the puras MCP server; auth is OAuth in the browser on first call, so there is nothing to paste.

```bash
claude mcp add --transport http puras https://mcp.puras.co/mcp
```

Any MCP client works — point it at `https://mcp.puras.co/mcp` (HTTP transport). Then ask the agent to run `end-card-generator` from skillpack `puras/game-ad-studio` with your inputs.

### 2. CLI / Python SDK — `pip install puras`

```bash
pip install puras
puras login            # or set PURAS_API_KEY
puras run puras/game-ad-studio/end-card-generator -i key=value
```

From Python:

```python
import puras

client = puras.Client()   # PURAS_API_KEY from env
result = client.run("puras/game-ad-studio/end-card-generator", {"logo":"https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_logo.webp","style":"playful","cta_text":"Play Free","headline":"Build a village!","references":["https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_ss1.webp","https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_ss2.webp","https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_ss3.webp"],"aspect_ratio":"9:16"})
```

### 3. HTTP API

`wait=true` blocks until the run reaches a terminal status and returns the result inline.

```bash
curl -X POST "https://api.puras.co/v1/jobs?skillpack=puras/game-ad-studio&wait=true" \
  -H "Authorization: Bearer $PURAS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"skill":"end-card-generator","inputs":{"logo":"https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_logo.webp","style":"playful","cta_text":"Play Free","headline":"Build a village!","references":["https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_ss1.webp","https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_ss2.webp","https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/coc_ss3.webp"],"aspect_ratio":"9:16"}}'
```

Mint an API key (for CLI / SDK / API) from https://puras.co/api-keys.

## Pricing

Runs are billed usage-based from your workspace credit balance — the cost of a job is the sum of the model token (and any media) usage it incurs. There is no per-call platform fee. The playground and the job result report the exact cost of each run.

- Pricing page: https://puras.co/pricing
- Machine-readable model price registry: `https://api.puras.co/v1/pricing`
