🔌 API Documentation

Generate Etsy listings programmatically. Available on the Pro plan.

Authentication

All requests require a Bearer API key in the Authorization header. Generate your key in Settings → API.

Authorization: Bearer lfy_your_api_key_here

POST /api/v1/generate

Generate a complete Etsy listing from a product description.

Request Body

{
  "inputText": "Handmade ceramic coffee mug, rustic style, 12oz, gift for coffee lovers"
}

Response

{
  "title": "Handmade Rustic Ceramic Coffee Mug 12oz | Unique Gift for Coffee Lovers",
  "description": "Discover the charm of our handmade...",
  "tags": ["ceramic mug", "coffee lover", "rustic mug", ...],
  "usage": { "used": 1, "limit": 200, "plan": "pro" }
}

Examples

cURL

curl -X POST https://www.listifyai.net/api/v1/generate \
  -H "Authorization: Bearer lfy_your_key" \
  -H "Content-Type: application/json" \
  -d '{"inputText": "Handmade silver ring with turquoise stone"}'

Python

import requests

response = requests.post(
    "https://www.listifyai.net/api/v1/generate",
    headers={"Authorization": "Bearer lfy_your_key"},
    json={"inputText": "Handmade silver ring with turquoise stone"}
)
listing = response.json()
print(listing["title"])

Node.js

const res = await fetch("https://www.listifyai.net/api/v1/generate", {
  method: "POST",
  headers: {
    "Authorization": "Bearer lfy_your_key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ inputText: "Handmade silver ring with turquoise stone" })
});
const listing = await res.json();
console.log(listing.title);

Rate Limits & Errors

200Success — listing generated
400inputText missing or too short (min 10 chars)
401Missing, invalid, or revoked API key
429Monthly limit reached — upgrade or wait for reset
500Server error — try again