An API to programmatically generate memes based solely on requested URLs.

Build Status Coverage Status Swagger Validator License GitHub Sponsors

Buy me a coffee to help keep this site running!


The API is stateless so URLs contain all the information necessary to generate meme images. For example, produces:

Example Image

Available Formats

Clients can request .jpg instead of .png for smaller files:

Format Example
PNG /images/ds/small_file/high_quality.png
JPEG /images/ds/high_quality/small_file.jpg

Custom Dimensions

Images can be scaled to a specific width via ?width=<int> or a specific height via ?height=<int>. If both parameters are provided (?width=<int>&height=<int>), the image will be padded to the exact dimensions.

For example, produces:

Custom Size

Special Characters

In URLs, spaces can be inserted using underscores or dashes:

  • underscore (_) → space ()
  • dash (-) → space ()
  • 2 underscores (__) → underscore (_)
  • 2 dashes (--) → dash (-)
  • tilde + N (~n) → newline character

Reserved URL characters can be included using escape patterns:

  • tilde + Q (~q) → question mark (?)
  • tilde + A (~a) → ampersand (&)
  • tilde + P (~p) → percentage (%)
  • tilde + H (~h) → hashtag/pound (#)
  • tilde + S (~s) → slash (/)
  • tilde + B (~b) → backslash (\)
  • 2 single quotes ('') → double quote (")

For example, produces:

Escaped Characters

All of the POST endpoints will return image URLs with speical characters replaced with these alternatives.


The list of predefined meme templates is available here:

Alternate Styles

Some memes come in multiple forms, which can be selected via ?style=<style>.

For example, the template provides these styles:

/images/ds.png /images/ds.png?style=maga
Default Style Alternate Style

Custom Backgrounds

You can also use your own image URL as the background. For example, produces:

Custom Background