HTTPS üzerinden JSON
Ürün ve etiket göndermek için tek uç nokta; durum, limitler ve etiketli ürünleri okumak için birkaç tane. SDK gerekmez.
Geliştiriciler
Kataloğun nasıl göründüğünü en iyi sizin sistemleriniz biliyorsa, bizim çekmemiz için dosya üretmek yerine ürünleri doğrudan FeedManager'a gönderin. Pro ve üzeri paketlerde.
Ürün ve etiket göndermek için tek uç nokta; durum, limitler ve etiketli ürünleri okumak için birkaç tane. SDK gerekmez.
Partiler denetlenir, kuyruğa alınır ve bir iş parçacığı tarafından sırayla uygulanır.
Idempotency anahtarı, tekrarlanan isteğin işi ikiye katlamak yerine aynı partiyi döndürmesini sağlar.
Tek bir hatalı ürün partiyi düşürmez; id'si ve gerekçesiyle raporlanır.
Anahtarlar yalnızca HTTPS üzerinden kabul edilir, adres satırında asla taşınmaz. API sunucusu çerez kullanmaz ve yalnızca JSON döner.
OpenAPI tanımıcurl -X POST https://api.feedmanager.org/v1/sources/42/products/batch \
-H "Authorization: Bearer $FEEDMANAGER_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 2026-09-20-0001" \
-d '{
"operation": "upsert",
"products": [
{"id": "SKU-1042", "title": "Trail Runner GTX",
"price": "2999.90 TRY", "availability": "in_stock",
"link": "https://magaza.example/u/1042"}
]
}'import os, httpx
key = os.environ["FEEDMANAGER_KEY"]
products = [{"id": "SKU-1042", "title": "Trail Runner GTX",
"price": "2999.90 TRY", "availability": "in_stock"}]
response = httpx.post(
"https://api.feedmanager.org/v1/sources/42/products/batch",
headers={"Authorization": f"Bearer {key}",
"Idempotency-Key": "2026-09-20-0001"},
json={"operation": "upsert", "products": products},
timeout=30,
)
batch = response.json()
print(batch["batch_id"], batch["status"])const response = await fetch(
"https://api.feedmanager.org/v1/sources/42/products/batch",
{
method: "POST",
headers: {
Authorization: `Bearer ${process.env.FEEDMANAGER_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": "2026-09-20-0001",
},
body: JSON.stringify({
operation: "upsert",
products: [{ id: "SKU-1042", title: "Trail Runner GTX",
price: "2999.90 TRY", availability: "in_stock" }],
}),
},
);
const batch = await response.json();
console.log(batch.batch_id, batch.status);Referans
Temel adres https://api.feedmanager.org/v1. Bütün yanıtlar JSON'dur ve hiç
önbelleğe alınmaz.
| Uç nokta | Ne yapar |
|---|---|
POST
/sources/{id}/products/batch |
1.000 ürüne kadar gönderin. operation değeri upsert veya delete. 202 ve bir parti id'si döner; aynı Idempotency-Key tekrar gelirse ilk parti 200 ile döner. |
POST
/sources/{id}/products/batch |
operation değeri tag ise: her kaynaktaki — mağaza, dosya veya API — 1.000 ürüne kadar statik etiketleri adıyla ekleyin, kaldırın veya belirleyin. create_missing, yeni etiketleri paketinizin sınırı içinde oluşturur. |
GET
/batches |
Son partileri yeniden eskiye listeler. Kaynağa, duruma veya tarihe göre süzün; imleçle sayfalayın, sayfa başına 100'e kadar. |
GET
/batches/{batch_id} |
Tek bir parti: sayılar, durum ve ürün bazlı hatalar. |
GET
/sources/{id}/products/{product_id} |
Bir ürünü, FeedManager eşlemeden sonra nasıl sakladıysa öyle geri okuyun. |
GET
/tags |
Ürün sayılarıyla etiketleriniz; ?kind=static veya dynamic. |
GET
/tags/{tag_id} |
Tek bir etiket: ad, tür, renk, açıklama ve kaç ürünün taşıdığı. |
GET
/tags/{tag_id}/products |
Bir etiketin ürünleri — vitrindeki çok satanlar bloğu ya da ERP'niz için. Sayfa başına 1.000'e kadar, istediğiniz alanlarla. |
GET
/limits |
Paketinizin limitleri ve kullanımınız: ürün sayısı, bu dakika kalan istek, kuyruktaki parti sayısı. |
GET
/openapi.json |
Postman, Insomnia ve kod üreticileri için API tanımı. Herkese açık, anahtar gerekmez. |
Yapay zekâ ajanları
FeedManager bir MCP sunucusudur: Model Context Protocol konuşan Claude, Cursor ve diğer yapay zekâ ajanları kataloğunuzu, feed'lerinizi ve derlemelerinizi okuyabilir, bir ürünün neden reddedildiğini ya da feed'de neden olmadığını bulabilir, senkronizasyon, derleme ya da sayfa kontrolü başlatabilir ve ürünleri etiketleyebilir.
POST https://api.feedmanager.org/mcp — Streamable HTTP, istek başına
tek bir JSON yanıtı; bearer token olarak bir API anahtarıyla. Protokolün 2026-07-28
sürümünü ve ondan önceki üçünü (2025-11-25, 2025-06-18,
2025-03-26) konuşur.mcp
kapsamına ve ajanın yapacaklarının kapsamlarına sahip olması gerekir; ajan yalnızca anahtarının
izin verdiği araçları görür. Pro ve üzeri; her çağrı dakikalık API istek sınırınızdan düşer ve
kaydedilir.ai:read, tek bir ürün için yapay zekâya
sormak için ai:write, bir öneriyi kabul etmek için ai:approve. Sormak
yapay zekâ kredilerinizi harcar; her anahtar için belirlediğiniz günlük sınıra kadar (siz
değiştirmedikçe 500 kredi). Kabul etmek feed'lerinizin gönderdiğini değiştirir. Yalnızca
ai:write verirseniz ajan önerir, kararı bir insan verir.claude mcp add --transport http feedmanager \
https://api.feedmanager.org/mcp \
--header "Authorization: Bearer YOUR_API_KEY"{
"mcpServers": {
"feedmanager": {
"url": "https://api.feedmanager.org/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}MCP araçları
Her satır mcp kapsamını ve gösterilen kapsamı ister. Paketinizde olmayan bir modülün aracı
veri döndürmek yerine bunu söyler.
| Araçlar | Anahtar kapsamı | Ajan ne alır |
|---|---|---|
Okuma
catalog_overview search_products get_product catalog_health |
products:read |
Ürün sayıları, metin ve filtrelerle arama (Merchant Center durumu ve sorununa göre de), tek bir ürünün bütün alanları ve alan eksikleriyle katalog sağlığı puanı. |
Okuma
list_sources get_source |
sources:read |
Zamanlaması, durumu ve ürün sayısıyla kaynaklarınız ve bir kaynağın son beş senkronizasyonu. |
Okuma
merchant_center |
sources:read |
Google'ın kendi ürün durumları (bugün ve son 14 gün), açıklamasıyla en sık görülen ürün sorunları ve kontrol listesiyle hesap sorunları. |
Okuma
list_feeds get_feed list_feed_runs get_channel list_promotions |
feeds:read |
Feed'ler ve derlemeleri: gerekçeleriyle reddedilen ürünler, her kuralın ve filtre grubunun ne yaptığı, kanal ve yapay zekâ hazırlığı, bir kanalın alan tanımı ve promosyonlar. |
Okuma
explain_product_in_feed |
products:read + feeds:read |
Bir ürünün her feed'de neden olduğu ya da olmadığı: onu dışarıda bırakan filtre grubu, kanalın reddettiği alanlar ya da kanala giden satır. |
Okuma
page_checks_overview list_page_checks |
feeds:read |
Sayfa Kontrolleri: feed başına günlük tarama ve sayfa başına feed'in gönderdiği, sayfanın gösterdiği, olası neden ve mağazanın verdiği yanıt. |
Okuma
list_alerts |
sources:read + feeds:read |
Şu an açık olan uyarılar, sayıları ve metinleriyle; istenirse yakın zamanda çözülenler de. |
Okuma
list_tags |
tags:read |
Ürün sayılarıyla statik ve dinamik etiketler. |
Okuma
list_reports get_report |
reports:read |
Her bölümünün ardındaki sayılarla haftalık ve aylık raporlar. |
Okuma
list_activity |
activity:read |
Kim neyi değiştirdi, yeniden eskiye. Kişiler adlarıyla görünür; e-posta ya da IP adresi yoktur. |
Okuma
list_ai_runs get_ai_run get_product_ai |
ai:read |
Yapay zekâ çalıştırmaları ve önerileri; tek bir ürün için hangi yapay zekâ işlemlerinin işe yarayacağı ve her birinin kaç kredi tuttuğu. |
Okuma
list_creative_sets |
creatives:read |
Creative Studio'nun kreatif setleri: şablonu, boyutları ve son üretimi. |
İşlem
sync_source build_feed check_page check_issue_pages evaluate_tag render_creative_set |
runs:write |
Senkronizasyon, derleme, tek bir ürünün sayfasının ya da bir Merchant Center sorununun ardındaki sayfaların kontrolü, bir dinamik etiketin kuralı ya da bir kreatif setin üretimini başlatır. |
İşlem
tag_products |
tags:write |
Çağrı başına 1.000 ürüne kadar statik etiket ekler ya da kaldırır. |
İşlem
improve_product |
ai:write |
FeedManager'ın yapay zekâsına tek bir ürün için sorar: Google kategorisi, eksik özellikler, başlık, açıklama ya da görsel kontrolü. Yapay zekâ kredisi harcar; yanıt bir öneridir. |
İşlem
decide_suggestion |
ai:approve |
Bir öneriyi kabul eder ya da atar. Kabul edilen değer, feed'lerinizin bir sonraki derlemeden itibaren gönderdiği değerdir. |
Retry-After ile 429 alırsınız.Feed'lerinizi ve kurallarınızı ücretsiz kurun, ürünleri API ile göndermek istediğinizde Pro'ya geçin.
Kapalı beta — hesaplar davetle açılıyor.