---
title: "Generate memes"
method: POST
path: "/api/v1/snacks/memes"
tags: ["Snacks"]
---

# Generate memes

`POST /api/v1/snacks/memes`

## Request

- Base URL: `https://www.vidguy.ai`
- URL: `https://www.vidguy.ai/api/v1/snacks/memes`
- Auth: HTTP bearer

Async, prompt-first meme generation. Rendering is included. Requests 1–5 variations of one type and returns a jobId immediately; poll GET /api/v1/jobs/{id}. Brand context is optional.

## Request body

- CreateMemeRequest
  - `memeType` 'meme-edit' | 'meme-greenscreen' | 'meme-comic', required: Meme format: reaction-clip caption rewrite, keyed greenscreen reaction, or illustrated comic strip.
  - `prompt` string, required: Plain-language subject or moment to turn into a meme; the caller does not need to write the joke.
  - `count` integer: Number of variations of the selected type (default 1).
  - `brandId` string: Optional tenant brand UUID. Omit for brandless prompt-only generation.

## Response `201`

Meme job accepted.

- CreateMemeResponse
  - `jobId` string, required
  - `offeringId` 'meme_snack_pack', required
  - `status` 'queued' | 'processing' | 'awaiting_selection' | 'completed' | 'failed' | 'cancelled', required
  - `pollUrl` string, required
  - `creditsReserved` integer, required
  - `count` integer, required
  - `memeType` 'meme-edit' | 'meme-greenscreen' | 'meme-comic', required

## Other responses

- `400`: Invalid request.
- `401`: Missing or invalid API key.
- `402`: Insufficient credits.
- `404`: Brand not found.
- `429`: Rate limit exceeded.
- `502`: Failed to dispatch the worker.

---

[API](https://skmtc.dev/vidguy/apis/vidguy-snacks-api.md) · [All operations](https://skmtc.dev/vidguy/apis/vidguy-snacks-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vidguy/apis/vidguy-snacks-api/revisions/ad6855539a1a?raw)
