import os
import time
import requests
API_KEY = os.environ["KWI_API_KEY"]
BASE_URL = "https://api.keywordinsights.ai"
HEADERS = {"X-API-Key": API_KEY}
def create_article(keyword, language="en", location="United States", **kwargs):
"""Create a writer agent order."""
payload = {
"keyword": keyword,
"language_code": language,
"location_name": location,
"folder_id": "<your_folder_id>",
**kwargs,
}
response = requests.post(
f"{BASE_URL}/api/writer-agent/order/",
headers=HEADERS,
json=payload,
)
response.raise_for_status()
return response.json()["result"]["payload"]
def wait_for_article(order_id):
"""Poll until the article is generated."""
while True:
response = requests.get(
f"{BASE_URL}/api/writer-agent/order/",
headers=HEADERS,
params={"id": order_id},
)
data = response.json()["result"]["payload"]
if data.get("generated_article"):
return data
print(f"Processing... status: {data.get('status', 'unknown')}")
time.sleep(30)
# --- Run ---
result = create_article(
keyword="best project management tools for startups",
point_of_view="Second Person (You)",
content_type="article",
additional_insights="Include comparisons and pricing information",
)
order_id = result["id"]
print(f"Order created: {order_id}")
article = wait_for_article(order_id)
# Save the article
with open("article.md", "w") as f:
f.write(article["generated_article"])
print(f"Article saved ({len(article['generated_article'])} characters)")