JSON sobre HTTPS
Un endpoint para enviar productos y etiquetas, y unos pocos para leer el estado, los límites y los productos etiquetados. No hace falta SDK.
Desarrolladores
Cuando tus sistemas son los que mejor saben cómo es el catálogo, envía los productos directamente a FeedManager en lugar de exportar un archivo para que lo descarguemos. Disponible en Pro o superior.
Un endpoint para enviar productos y etiquetas, y unos pocos para leer el estado, los límites y los productos etiquetados. No hace falta SDK.
Los lotes se validan, se ponen en cola y un proceso los aplica en orden.
Con una clave de idempotencia, una solicitud repetida devuelve el mismo lote en lugar de duplicar el trabajo.
Un producto erróneo no hace fallar el lote — se informa con su id y el motivo.
Las claves solo se aceptan por HTTPS y nunca en una cadena de consulta. El host de la API no instala cookies y solo responde en JSON.
Descripción OpenAPIcurl -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": "74.90 EUR", "availability": "in_stock",
"link": "https://store.example/p/1042"}
]
}'import os, httpx
key = os.environ["FEEDMANAGER_KEY"]
products = [{"id": "SKU-1042", "title": "Trail Runner GTX",
"price": "74.90 EUR", "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: "74.90 EUR", availability: "in_stock" }],
}),
},
);
const batch = await response.json();
console.log(batch.batch_id, batch.status);Referencia
Dirección base https://api.feedmanager.org/v1. Todas las respuestas son JSON y
nunca se almacenan en caché.
| Endpoint | Qué hace |
|---|---|
POST
/sources/{id}/products/batch |
Envía hasta 1.000 productos. operation es upsert o delete. Responde 202 con un id de lote; un Idempotency-Key repetido devuelve el primer lote con 200. |
POST
/sources/{id}/products/batch |
Con operation tag: añade, quita o fija etiquetas estáticas por nombre en hasta 1.000 productos de cualquier origen — tienda, archivo o API. create_missing crea etiquetas nuevas dentro del límite de tu plan. |
GET
/batches |
Lista los lotes recientes, del más nuevo al más antiguo. Filtra por origen, estado o fecha; pagina con un cursor, hasta 100 por página. |
GET
/batches/{batch_id} |
Un lote: recuentos, estado y los errores por producto. |
GET
/sources/{id}/products/{product_id} |
Lee un producto tal como FeedManager lo guardó después del mapeo. |
GET
/tags |
Tus etiquetas con su número de productos; ?kind=static o dynamic. |
GET
/tags/{tag_id} |
Una etiqueta: nombre, tipo, color, descripción y cuántos productos la llevan. |
GET
/tags/{tag_id}/products |
Los productos de una etiqueta — para el bloque de más vendidos de una tienda online o para tu ERP. Hasta 1.000 por página, con los campos que pidas. |
GET
/limits |
Los límites de tu plan y lo que has usado: productos, solicitudes que quedan en este minuto, lotes en cola. |
GET
/openapi.json |
La descripción de la API para Postman, Insomnia y generadores de código. Pública, no requiere clave. |
Agentes de IA
FeedManager es un servidor MCP: Claude, Cursor y otros agentes de IA que hablan el Model Context Protocol pueden leer tu catálogo, tus feeds y sus generaciones, averiguar por qué un producto está rechazado o falta en un feed, iniciar una sincronización, una generación o una revisión de página, y etiquetar productos.
POST https://api.feedmanager.org/mcp — Streamable HTTP, una
respuesta JSON por solicitud, con una clave de API como token Bearer. Habla la revisión
2026-07-28 del protocolo y las tres anteriores (2025-11-25,
2025-06-18, 2025-03-26).mcp más los alcances de lo que el agente puede hacer; un agente solo ve las
herramientas que su clave permite. Pro o superior; cada llamada cuenta para tus solicitudes a la
API por minuto y queda registrada.ai:read para ver ejecuciones y sugerencias, ai:write para preguntar a la
IA sobre un producto y ai:approve para aceptar una sugerencia. Preguntar gasta tus
créditos de IA, hasta un límite diario que fijas por clave (500 créditos si no lo cambias); aceptar
cambia lo que envían tus feeds. Con ai:write solo, el agente propone y una persona
decide.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"
}
}
}
}Herramientas MCP
Cada fila necesita el alcance mcp más el alcance indicado. Una herramienta de un módulo que tu
plan no incluye lo indica en lugar de devolver datos.
| Herramientas | Alcance de la clave | Lo que obtiene el agente |
|---|---|---|
Lectura
catalog_overview search_products get_product catalog_health |
products:read |
Recuentos de productos, búsqueda por texto y filtros (también por estado y problema de Merchant Center), todos los campos de un producto y la puntuación de salud del catálogo con sus campos incompletos. |
Lectura
list_sources get_source |
sources:read |
Tus orígenes con su programación, estado y número de productos, y las cinco últimas sincronizaciones de un origen. |
Lectura
merchant_center |
sources:read |
Los estados de producto de Google, hoy y a lo largo de 14 días, los problemas de producto más comunes con una explicación, y los problemas de la cuenta con una lista de comprobación. |
Lectura
list_feeds get_feed list_feed_runs get_channel list_promotions |
feeds:read |
Los feeds y sus generaciones: productos rechazados con los motivos, lo que hizo cada regla y grupo de filtros, la preparación para el canal y para la IA, la especificación de campos de un canal y las promociones. |
Lectura
explain_product_in_feed |
products:read + feeds:read |
Por qué un producto está o no en cada feed: el grupo de filtros que lo dejó fuera, los campos que el canal rechaza o la fila que recibe el canal. |
Lectura
page_checks_overview list_page_checks |
feeds:read |
Page Checks: la pasada diaria por feed y, por página, lo que envía el feed, lo que muestra la página, la causa probable y lo que respondió la tienda. |
Lectura
list_alerts |
sources:read + feeds:read |
Las alertas abiertas ahora, con sus cifras y su texto; las resueltas recientemente, si se piden. |
Lectura
list_tags |
tags:read |
Etiquetas estáticas y dinámicas con su número de productos. |
Lectura
list_reports get_report |
reports:read |
Informes semanales y mensuales con las cifras de cada sección. |
Lectura
list_activity |
activity:read |
Quién cambió qué, de lo más reciente a lo más antiguo. Las personas aparecen por su nombre; sin correos electrónicos ni direcciones IP. |
Lectura
list_ai_runs get_ai_run get_product_ai |
ai:read |
Las ejecuciones de IA y sus sugerencias; para un producto, qué acciones de IA harían algo y cuántos créditos cuesta cada una. |
Lectura
list_creative_sets |
creatives:read |
Los conjuntos de creatividades de Creative Studio con su plantilla, sus tamaños y su último renderizado. |
Acción
sync_source build_feed check_page check_issue_pages evaluate_tag render_creative_set |
runs:write |
Inicia una sincronización, una generación, una revisión de la página de un producto o de las páginas detrás de un problema de Merchant Center, la regla de una etiqueta dinámica o el renderizado de un conjunto de creatividades. |
Acción
tag_products |
tags:write |
Añade o quita una etiqueta estática en hasta 1.000 productos por llamada. |
Acción
improve_product |
ai:write |
Pregunta a la IA de FeedManager sobre un producto: categoría de Google, atributos que faltan, título, descripción o revisión de imagen. Gasta créditos de IA; la respuesta es una sugerencia. |
Acción
decide_suggestion |
ai:approve |
Acepta o descarta una sugerencia. Un valor aceptado es lo que envían tus feeds a partir de su siguiente generación. |
429 con Retry-After.Configura tus feeds y reglas gratis y pasa a Pro cuando quieras enviar productos por la API.
Beta privada — cuentas por invitación.