Generate E-Commerce Product Descriptions with AI (API Tutorial)
Writing product descriptions is one of the most tedious parts of running an online store. You need SEO-friendly titles, compelling descriptions, and relevant hashtags — for every single product.
In this tutorial, I'll show you how to automate this with the Product Description Generator API, which uses Claude AI to generate professional product copy in seconds.
What You Get
For each product, the API generates:
- 3 title options (SEO-optimized, under 60 characters)
- 3 description options (100-200 words, ready for Shopify/Etsy/Amazon)
- 15 hashtags (for Instagram/TikTok social selling)
Quick Start
cURL
curl -X POST https://description-api-omega.vercel.app/api/generate \
-H "Content-Type: application/json" \
-d '{
"product_name": "Handmade Ceramic Coffee Mug",
"category": "Kitchen",
"features": "Hand-thrown stoneware, 12oz capacity, microwave safe, unique glaze",
"appeal": "Perfect morning coffee ritual, each piece is one-of-a-kind",
"tone": "handmade",
"language": "en"
}'
Response
{
"titles": [
"Hand-Thrown Stoneware Coffee Mug – One of a Kind",
"Artisan Ceramic Mug – Unique Glaze, 12oz",
"Handcrafted Coffee Mug – Microwave Safe Stoneware"
],
"descriptions": [
"Start your morning ritual with a mug that tells a story. Each hand-thrown stoneware coffee mug is crafted with care, featuring a unique glaze pattern that ensures no two pieces are exactly alike...",
"There's something special about wrapping your hands around a mug that was shaped by human hands...",
"Elevate your daily coffee experience with this beautifully crafted 12oz stoneware mug..."
],
"hashtags": "#HandmadeCeramics #CoffeeMug #Stoneware #PotteryLove #ArtisanMade #UniqueGlaze #MorningCoffee #HandThrown #CeramicArt #KitchenDecor #CoffeeLover #OneOfAKind #ShopHandmade #PotteryMug #CraftedWithLove"
}
Supported Tones
| Tone | Style | Best For |
|---|---|---|
professional |
Polished, trustworthy | B2B, electronics, professional gear |
casual |
Friendly, approachable | Everyday items, food, casual wear |
luxury |
Elegant, sophisticated | Jewelry, fashion, premium goods |
playful |
Fun, energetic | Kids products, novelty items, games |
handmade |
Warm, artisanal | Crafts, handmade goods, Etsy shops |
Supported Languages
en (English), ja (Japanese), es (Spanish), fr (French), de (German)
Japanese Example
curl -X POST https://description-api-omega.vercel.app/api/generate \
-H "Content-Type: application/json" \
-d '{
"product_name": "手編みウールマフラー",
"category": "ファッション",
"features": "メリノウール100%, 手編み, 180cm",
"tone": "handmade",
"language": "ja"
}'
Python Example
import requests
response = requests.post(
"https://description-api-omega.vercel.app/api/generate",
json={
"product_name": "Leather Laptop Sleeve",
"category": "Accessories",
"features": "Full grain leather, fits 13-14 inch laptops, felt lining",
"appeal": "Professional look for remote workers and digital nomads",
"tone": "professional",
"language": "en",
},
)
data = response.json()
print("=== Titles ===")
for title in data["titles"]:
print(f" {title}")
print("\n=== Best Description ===")
print(data["descriptions"][0])
print(f"\n=== Hashtags ===")
print(data["hashtags"])
Node.js Example
const response = await fetch(
"https://description-api-omega.vercel.app/api/generate",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
product_name: "Wireless Bluetooth Speaker",
category: "Electronics",
features: "IPX7 waterproof, 24hr battery, 360 sound",
appeal: "Take your music anywhere",
tone: "casual",
language: "en",
}),
}
);
const { titles, descriptions, hashtags } = await response.json();
console.log(titles[0]); // Best title
console.log(descriptions[0]); // Best description
Batch Processing (Multiple Products)
import requests
products = [
{"product_name": "Silver Earrings", "category": "Jewelry", "tone": "luxury"},
{"product_name": "Organic Soap", "category": "Beauty", "tone": "natural"},
{"product_name": "Kids T-Shirt", "category": "Clothing", "tone": "playful"},
]
for product in products:
product["language"] = "en"
resp = requests.post(
"https://description-api-omega.vercel.app/api/generate",
json=product,
)
data = resp.json()
print(f"\n--- {product['product_name']} ---")
print(f"Title: {data['titles'][0]}")
print(f"Description: {data['descriptions'][0][:100]}...")
Use Cases
- Shopify/Etsy sellers: Generate descriptions for new listings in seconds
- Dropshipping: Create unique descriptions instead of copying supplier text
- Social media: Get ready-made hashtags for Instagram/TikTok product posts
- Multilingual stores: Generate descriptions in 5 languages from one input
- A/B testing: Get 3 variations to test which converts best
Try It
Available on RapidAPI with a free tier (50 requests/month).
Built by @ShotaTanikawa. Feedback and feature requests welcome!
Top comments (0)