Generate an NFT image
curl --request POST \
--url https://api.neynar.com/v2/farcaster/nft/image/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-wallet-id: <x-wallet-id>' \
--data '
{
"prompt": "<string>",
"format": "png",
"height": 1024,
"high_fidelity": false,
"source_image_urls": [
"<string>"
],
"width": 1024
}
'import requests
url = "https://api.neynar.com/v2/farcaster/nft/image/"
payload = {
"prompt": "<string>",
"format": "png",
"height": 1024,
"high_fidelity": False,
"source_image_urls": ["<string>"],
"width": 1024
}
headers = {
"x-wallet-id": "<x-wallet-id>",
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-wallet-id': '<x-wallet-id>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
prompt: '<string>',
format: 'png',
height: 1024,
high_fidelity: false,
source_image_urls: ['<string>'],
width: 1024
})
};
fetch('https://api.neynar.com/v2/farcaster/nft/image/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.neynar.com/v2/farcaster/nft/image/",
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([
'prompt' => '<string>',
'format' => 'png',
'height' => 1024,
'high_fidelity' => false,
'source_image_urls' => [
'<string>'
],
'width' => 1024
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>",
"x-wallet-id: <x-wallet-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.neynar.com/v2/farcaster/nft/image/"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"format\": \"png\",\n \"height\": 1024,\n \"high_fidelity\": false,\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"width\": 1024\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-wallet-id", "<x-wallet-id>")
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.neynar.com/v2/farcaster/nft/image/")
.header("x-wallet-id", "<x-wallet-id>")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"format\": \"png\",\n \"height\": 1024,\n \"high_fidelity\": false,\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"width\": 1024\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.neynar.com/v2/farcaster/nft/image/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-wallet-id"] = '<x-wallet-id>'
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"<string>\",\n \"format\": \"png\",\n \"height\": 1024,\n \"high_fidelity\": false,\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"width\": 1024\n}"
response = http.request(request)
puts response.read_body{
"image_url": "<string>"
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}NFTs
Generate an NFT image
Generate a new image or edit existing images using AI. Returns a publicly accessible URL to the generated image.
POST
/
v2
/
farcaster
/
nft
/
image
/
Generate an NFT image
curl --request POST \
--url https://api.neynar.com/v2/farcaster/nft/image/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-wallet-id: <x-wallet-id>' \
--data '
{
"prompt": "<string>",
"format": "png",
"height": 1024,
"high_fidelity": false,
"source_image_urls": [
"<string>"
],
"width": 1024
}
'import requests
url = "https://api.neynar.com/v2/farcaster/nft/image/"
payload = {
"prompt": "<string>",
"format": "png",
"height": 1024,
"high_fidelity": False,
"source_image_urls": ["<string>"],
"width": 1024
}
headers = {
"x-wallet-id": "<x-wallet-id>",
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-wallet-id': '<x-wallet-id>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
prompt: '<string>',
format: 'png',
height: 1024,
high_fidelity: false,
source_image_urls: ['<string>'],
width: 1024
})
};
fetch('https://api.neynar.com/v2/farcaster/nft/image/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.neynar.com/v2/farcaster/nft/image/",
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([
'prompt' => '<string>',
'format' => 'png',
'height' => 1024,
'high_fidelity' => false,
'source_image_urls' => [
'<string>'
],
'width' => 1024
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>",
"x-wallet-id: <x-wallet-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.neynar.com/v2/farcaster/nft/image/"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"format\": \"png\",\n \"height\": 1024,\n \"high_fidelity\": false,\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"width\": 1024\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-wallet-id", "<x-wallet-id>")
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.neynar.com/v2/farcaster/nft/image/")
.header("x-wallet-id", "<x-wallet-id>")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"format\": \"png\",\n \"height\": 1024,\n \"high_fidelity\": false,\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"width\": 1024\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.neynar.com/v2/farcaster/nft/image/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-wallet-id"] = '<x-wallet-id>'
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"<string>\",\n \"format\": \"png\",\n \"height\": 1024,\n \"high_fidelity\": false,\n \"source_image_urls\": [\n \"<string>\"\n ],\n \"width\": 1024\n}"
response = http.request(request)
puts response.read_body{
"image_url": "<string>"
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}Related docs: Managing Onchain Wallets
Node.js SDK
🔗 SDK Method: generateImage Use this API endpoint with the Neynar Node.js SDK for typed responses and better developer experience.Authorizations
API key to authorize requests
Headers
Wallet ID to use for transactions
Body
application/json
Text prompt describing the image to generate
Minimum string length:
1Output image format (default: png)
Available options:
png, jpeg, webp Output image height in pixels (default: 1024)
Required range:
1 <= x <= 4096Use the high-fidelity model (slower but more detailed). Default: false.
Optional array of source image URLs to edit or use as reference (max 5)
Maximum array length:
5Output image width in pixels (default: 1024)
Required range:
1 <= x <= 4096Response
Success
Related topics
generateImageUpload NFT token metadataMint NFT(s)How to Build Viral Mini AppsSharing your appWas this page helpful?
⌘I