Python
from magic_hour import Client
from os import getenv
client = Client(token=getenv("API_TOKEN"))
res = client.v1.ai_gif_generator.generate(
style={"prompt": "Cute dancing cat, pixel art"},
name="Ai Gif gif",
output_format="gif",
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.aiGifGenerator.generate(
{
name: "Ai Gif gif",
style: { prompt: "Cute dancing cat, pixel art" },
},
{
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_gif_generator "github.com/magichourhq/magic-hour-go/resources/v1/ai_gif_generator"
types "github.com/magichourhq/magic-hour-go/types"
)
func main() {
client := sdk.NewClient(
sdk.WithBearerAuth(os.Getenv("API_TOKEN")),
)
res, err := client.V1.AiGifGenerator.Create(ai_gif_generator.CreateRequest{
Name: nullable.NewValue("My Ai Gif gif"),
OutputFormat: nullable.NewValue(types.V1AiGifGeneratorCreateBodyOutputFormatEnumGif),
Style: types.V1AiGifGeneratorCreateBodyStyle{
Prompt: "Cute dancing cat, pixel art",
},
})
}let client = magic_hour::Client::default()
.with_bearer_auth(&std::env::var("API_TOKEN").unwrap());
let res = client
.v1()
.ai_gif_generator()
.create(magic_hour::resources::v1::ai_gif_generator::CreateRequest {
name: Some("My Ai Gif gif".to_string()),
output_format: Some(
magic_hour::models::V1AiGifGeneratorCreateBodyOutputFormatEnum::Gif,
),
style: magic_hour::models::V1AiGifGeneratorCreateBodyStyle {
prompt: "Cute dancing cat, pixel art".to_string(),
},
})
.await;curl --request POST \
--url https://api.magichour.ai/v1/ai-gif-generator \
--header 'accept: application/json' \
--header 'authorization: Bearer <token>' \
--header 'content-type: application/json' \
--data '
{
"name": "My Ai Gif gif",
"style": {
"prompt": "Cute dancing cat, pixel art"
},
"output_format": "gif"
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.magichour.ai/v1/ai-gif-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 Ai Gif gif',
'style' => [
'prompt' => 'Cute dancing cat, pixel art'
],
'output_format' => 'gif'
]),
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-gif-generator")
.header("accept", "application/json")
.header("content-type", "application/json")
.header("authorization", "Bearer <token>")
.body("{\"name\":\"My Ai Gif gif\",\"style\":{\"prompt\":\"Cute dancing cat, pixel art\"},\"output_format\":\"gif\"}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magichour.ai/v1/ai-gif-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 \"prompt\": \"Cute dancing cat, pixel art\"\n },\n \"name\": \"My Ai Gif gif\",\n \"output_format\": \"gif\"\n}"
response = http.request(request)
puts response.read_body{
"id": "cuid-example",
"credits_charged": 50
}{
"message": "Missing request body"
}{
"message": "Unauthorized"
}{
"message": "Payment required"
}{
"message": "Not Found"
}{
"message": "Unable to create GIF"
}Image Projects
AI GIF Generator API Reference - Magic Hour Docs
Create an AI GIF. Each GIF costs 50 credits.
POST
/
v1
/
ai-gif-generator
Python
from magic_hour import Client
from os import getenv
client = Client(token=getenv("API_TOKEN"))
res = client.v1.ai_gif_generator.generate(
style={"prompt": "Cute dancing cat, pixel art"},
name="Ai Gif gif",
output_format="gif",
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.aiGifGenerator.generate(
{
name: "Ai Gif gif",
style: { prompt: "Cute dancing cat, pixel art" },
},
{
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_gif_generator "github.com/magichourhq/magic-hour-go/resources/v1/ai_gif_generator"
types "github.com/magichourhq/magic-hour-go/types"
)
func main() {
client := sdk.NewClient(
sdk.WithBearerAuth(os.Getenv("API_TOKEN")),
)
res, err := client.V1.AiGifGenerator.Create(ai_gif_generator.CreateRequest{
Name: nullable.NewValue("My Ai Gif gif"),
OutputFormat: nullable.NewValue(types.V1AiGifGeneratorCreateBodyOutputFormatEnumGif),
Style: types.V1AiGifGeneratorCreateBodyStyle{
Prompt: "Cute dancing cat, pixel art",
},
})
}let client = magic_hour::Client::default()
.with_bearer_auth(&std::env::var("API_TOKEN").unwrap());
let res = client
.v1()
.ai_gif_generator()
.create(magic_hour::resources::v1::ai_gif_generator::CreateRequest {
name: Some("My Ai Gif gif".to_string()),
output_format: Some(
magic_hour::models::V1AiGifGeneratorCreateBodyOutputFormatEnum::Gif,
),
style: magic_hour::models::V1AiGifGeneratorCreateBodyStyle {
prompt: "Cute dancing cat, pixel art".to_string(),
},
})
.await;curl --request POST \
--url https://api.magichour.ai/v1/ai-gif-generator \
--header 'accept: application/json' \
--header 'authorization: Bearer <token>' \
--header 'content-type: application/json' \
--data '
{
"name": "My Ai Gif gif",
"style": {
"prompt": "Cute dancing cat, pixel art"
},
"output_format": "gif"
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.magichour.ai/v1/ai-gif-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 Ai Gif gif',
'style' => [
'prompt' => 'Cute dancing cat, pixel art'
],
'output_format' => 'gif'
]),
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-gif-generator")
.header("accept", "application/json")
.header("content-type", "application/json")
.header("authorization", "Bearer <token>")
.body("{\"name\":\"My Ai Gif gif\",\"style\":{\"prompt\":\"Cute dancing cat, pixel art\"},\"output_format\":\"gif\"}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magichour.ai/v1/ai-gif-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 \"prompt\": \"Cute dancing cat, pixel art\"\n },\n \"name\": \"My Ai Gif gif\",\n \"output_format\": \"gif\"\n}"
response = http.request(request)
puts response.read_body{
"id": "cuid-example",
"credits_charged": 50
}{
"message": "Missing request body"
}{
"message": "Unauthorized"
}{
"message": "Payment required"
}{
"message": "Not Found"
}{
"message": "Unable to create GIF"
}Authorizations
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
Response
Success
Success
Unique ID of the image. Use it with the Get image Project API to fetch status and downloads.
Example:
"cuid-example"
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:
50
Was this page helpful?
⌘I