Sample Code

Here are some popular apps and integrations to check out:

Platforms Language Website
Slack Python
Slack Go
Slack --
Hain JavaScript
Web Clojure
Web & Slack --
Discord JavaScript
Legobot Python

Additional clients can be found by searching for code examples on GitHub. Or create your own!


Unauthenticated API requests are watermarked and may be rate-limited or used as training data. Individuals sponsoring this project at $10/month or higher are welcome to an API key. Please contact support to request one or inquire about pricing for your specific use case.

HTTP Header

Authenticated requests can be made using a header:

$ curl "" \
  --header "X-API-KEY: myapikey42" --output http_header_example.png --location

Query Parameter

If that's not an option, the API key can also be added as a query parameter:

$ curl "" \
  --output query_parameter_example.png --location

Image Previews

If your client is going to show typeahead image previews, please use the /images/preview.jpg endpoint, which accepts URL-encoded parameters and returns smaller images to minimize bandwidth:

var typingTimer

$("#form").keyup(function () {
  typingTimer = setTimeout(updatePreview, 500)

function updatePreview() {
  var template = encodeURIComponent($("#template").val())
  var line_1 = encodeURIComponent($("#line_1").val() || " ")
  var line_2 = encodeURIComponent($("#line_2").val() || " ")

  var api = ""
  var url = `${api}?template=${template}&text[]=${line_1}&text[]=${line_2}`

  $("#preview").attr("src", url)


For example,[]=live+preview&lines[]=while+typing produces:

Live Preview

The template=<str> query parameter can be a template ID or URL:

Mode Example
Template ID /images/preview.jpg?lines[]=first+line&lines[]=second+line&template=fry
Template URL /images/preview.jpg?lines[]=first+line&lines[]=second+line&template=
Custom Background /images/preview.jpg?lines[]=first+line&lines[]=second+line&template=

Custom Watermark

Authenticated requests can also add their own watermark to images using the watermark=<str> query parameter.

For example, produces:

Zapier Integration

Incorporate memes into your workflow automation: