Skip to main content
POST
/
v1
/
ai-meme-generator
Python
from magic_hour import Client
from os import getenv

client = Client(token=getenv("API_TOKEN"))
res = client.v1.ai_meme_generator.generate(
    style={
        "search_web": False,
        "template": "Drake Hotline Bling",
        "topic": "When the code finally works",
    },
    name="My Funny Meme",
    wait_for_completion=True,
    download_outputs=True,
    download_directory="."
)
import { Client } from "magic-hour";

const client = new Client({ token: process.env["API_TOKEN"]!! });
const res = await client.v1.aiMemeGenerator.generate(
{
name: "My Funny Meme",
style: {
searchWeb: false,
template: "Drake Hotline Bling",
topic: "When the code finally works",
},
},
{
waitForCompletion: true,
downloadOutputs: true,
downloadDirectory: ".",
},
);
package main

import (
os "os"

sdk "github.com/magichourhq/magic-hour-go/client"
nullable "github.com/magichourhq/magic-hour-go/nullable"
ai_meme_generator "github.com/magichourhq/magic-hour-go/resources/v1/ai_meme_generator"
types "github.com/magichourhq/magic-hour-go/types"
)

func main() {
client := sdk.NewClient(
sdk.WithBearerAuth(os.Getenv("API_TOKEN")),
)
res, err := client.V1.AiMemeGenerator.Create(ai_meme_generator.CreateRequest{
Name: nullable.NewValue("My Funny Meme"),
Style: types.V1AiMemeGeneratorCreateBodyStyle{
SearchWeb: nullable.NewValue(false),
Template: types.V1AiMemeGeneratorCreateBodyStyleTemplateEnumDrakeHotlineBling,
Topic: "When the code finally works",
},
})
}
let client = magic_hour::Client::default()
.with_bearer_auth(&std::env::var("API_TOKEN").unwrap());
let res = client
.v1()
.ai_meme_generator()
.create(magic_hour::resources::v1::ai_meme_generator::CreateRequest {
name: Some("My Funny Meme".to_string()),
style: magic_hour::models::V1AiMemeGeneratorCreateBodyStyle {
search_web: Some(false),
template: magic_hour::models::V1AiMemeGeneratorCreateBodyStyleTemplateEnum::DrakeHotlineBling,
topic: "When the code finally works".to_string(),
},
})
.await;
curl --request POST \
--url https://api.magichour.ai/v1/ai-meme-generator \
--header 'accept: application/json' \
--header 'authorization: Bearer <token>' \
--header 'content-type: application/json' \
--data '
{
"name": "My Funny Meme",
"style": {
"topic": "When the code finally works",
"template": "Drake Hotline Bling",
"searchWeb": false
}
}
'
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.magichour.ai/v1/ai-meme-generator",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My Funny Meme',
'style' => [
'topic' => 'When the code finally works',
'template' => 'Drake Hotline Bling',
'searchWeb' => false
]
]),
CURLOPT_HTTPHEADER => [
"accept: application/json",
"authorization: Bearer <token>",
"content-type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.post("https://api.magichour.ai/v1/ai-meme-generator")
.header("accept", "application/json")
.header("content-type", "application/json")
.header("authorization", "Bearer <token>")
.body("{\"name\":\"My Funny Meme\",\"style\":{\"topic\":\"When the code finally works\",\"template\":\"Drake Hotline Bling\",\"searchWeb\":false}}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.magichour.ai/v1/ai-meme-generator")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"style\": {\n \"topic\": \"When the code finally works\",\n \"template\": \"Drake Hotline Bling\",\n \"searchWeb\": false\n },\n \"name\": \"My Funny Meme\"\n}"

response = http.request(request)
puts response.read_body
{
  "id": "cuid-example",
  "credits_charged": 10
}
{
"message": "Missing request body"
}
{
"message": "Unauthorized"
}
{
"message": "Payment required"
}
{
"message": "Not Found"
}
{
"message": "Unable to create meme"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <api_key>, where <api_key> is your API key. To get your API key, go to Developer Hub and click "Create new API Key".

Body

application/json

Body

style
object
required
name
string

The name of the meme.

Example:

"My Funny Meme"

Response

Success

Success

id
string
required

Unique ID of the image. Use it with the Get image Project API to fetch status and downloads.

Example:

"cuid-example"

credits_charged
integer
required

The amount of credits deducted from your account to generate the image. We charge credits right when the request is made.

If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

Example:

10