---
title: "Generate meme template and caption suggestions"
method: POST
path: "/memes/suggestions"
tags: ["Media"]
---

# Generate meme template and caption suggestions

`POST /memes/suggestions`

## Request

- Base URL: `https://app.openpo.st/api/v1`
- URL: `https://app.openpo.st/api/v1/memes/suggestions`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `openpost_session`

## Request body

- GenerateMemeSuggestionsInputBody
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `count` integer: Number of distinct suggestions
  - `idea` string, required: Topic or situation for the meme
  - `language` string: BCP 47 language tag; defaults to English
  - `tone` 'witty' | 'balanced' | 'dry' | 'sarcastic' | 'playful': Requested humor tone; defaults to witty
  - `workspace_id` string, required: Workspace ID

## Response `200`

OK

- GenerateMemeSuggestionsOutputBody
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `candidates` MemeSuggestionCandidate[], nullable, required
    - `alt_text` string, required
    - `caption_lines` string[], nullable, required
    - `rationale` string, required
    - `template` Template, required
      - `animated` boolean, required
      - `blank_url` string, required
      - `example` TemplateExample, required
        - `text` string[], nullable, required
        - `url` string, required
      - `id` string, required
      - `keywords` string[], nullable, required
      - `lines` integer, required
      - `name` string, required
      - `overlays` integer, required
      - `search_terms` string[], nullable, required
      - `semantic` TemplateSemantic, required
        - `caption_roles` string[], nullable, required
        - `meaning` string, required
        - `mechanism` string, required
        - `tags` string[], nullable, required
        - `visual` string, required
      - `source_url` string, required
      - `styles` string[], nullable, required
    - `template_id` string, required
  - `catalog_revision` string, required
  - `model` string, required

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `413`: Request Entity Too Large
- `422`: Unprocessable Entity
- `429`: Too Many Requests
- `500`: Internal Server Error
- `502`: Bad Gateway
- `503`: Service Unavailable

---

[API](https://skmtc.dev/openpo/apis/openpost-api.md) · [All operations](https://skmtc.dev/openpo/apis/openpost-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openpo/apis/openpost-api/revisions/67d3964458a7?raw)
