Saltar al contenido

Agentplace :: vista para agentes

# Lo que lee un agente en esta URL: markdown, sin diseño, con precio, stock y el grafo de cada producto. Los links te llevan a la vista para agentes de cada página.

GET /developers.md · Accept: text/markdown

200≈ 3.069 tokensver crudo

title
Agentplace para desarrolladores y agentes
description
API pública, servidor MCP y agente A2A de Agentplace: buscá productos de 14 tiendas argentinas y leé su grafo de producto. Sin registro ni claves.
canonical
https://agentplace.crossup.ai/developers
updated
2026-10-01

# Agentplace para desarrolladores y agentes

-**API:** `https://agentplace.crossup.ai/api/v1`

-**OpenAPI:** [/openapi.json](https://agentplace.crossup.ai/openapi.json) (3.1)

-**MCP:** `https://agentplace.crossup.ai/mcp` (Streamable HTTP)

-**A2A:** `https://agentplace.crossup.ai/a2a` · [agent card](https://agentplace.crossup.ai/.well-known/agent-card.json)

-**Auth:** No hace falta ([auth.md](https://agentplace.crossup.ai/auth.md))

-**Contacto:** [hola@crossup.ai](mailto:hola@crossup.ai)

Todo Agentplace se lee por máquina: una API pública, un servidor MCP, un agente A2A y el Storegraph abierto. Catálogos de catorce tiendas argentinas con precio, stock y el vecindario de cada producto, listos para que tu agente busque, compare y recomiende como un buen vendedor. Sin registro y sin claves.

Empezá en 30 segundos

Tres pedidos alcanzan para entender el modelo: buscar en todas las tiendas, abrir un producto con su vecindario en el grafo y listar las tiendas. Las respuestas son JSON; los precios están en la moneda de cada tienda (`ARS` hoy).

```bash

# Buscar en todas las tiendas, sólo con stock

curl -s "https://agentplace.crossup.ai/api/v1/products?q=aceite%20de%20limpieza&in_stock=true"

# Un producto con su vecindario: complementos, sets, un paso más, alternativas

curl -s "https://agentplace.crossup.ai/api/v1/products/kosmos/196162638"

# Las tiendas, con su cobertura del grafo

curl -s "https://agentplace.crossup.ai/api/v1/stores"

```

¿Preferís MCP? Sumá Agentplace a Claude Code con `claude mcp add --transport http agentplace https://agentplace.crossup.ai/mcp` y preguntale por un producto.

API REST

Base `https://agentplace.crossup.ai/api/v1`. Sólo lectura (`GET` y `HEAD`), JSON, CORS abierto (`Access-Control-Allow-Origin: *`) y sin autenticación. La descripción completa, con cada campo, está en [OpenAPI 3.1](https://agentplace.crossup.ai/openapi.json); el catálogo de APIs del dominio, en [/.well-known/api-catalog](https://agentplace.crossup.ai/.well-known/api-catalog) (RFC 9727).

| Pedido | Qué devuelve |

| --- | --- |

| `GET /api/v1/stores` | Las tiendas: nombre, rubro, país, moneda, sitio, cantidad de productos y cobertura del grafo. |

| `GET /api/v1/stores/{store}` | Una tienda con sus categorías. |

| `GET /api/v1/products` | Búsqueda y listado en todas las tiendas, con filtros y paginación (ver abajo). |

| `GET /api/v1/products/{store}/{id}` | Un producto (por id numérico de Tiendanube o por handle) con variantes, imágenes y su vecindario en el grafo. |

| `GET /api/v1/graph` | El manifiesto del Storegraph: tiendas, archivos y cuántos nodos, relaciones y sets tiene cada una. |

| `GET /api/v1/graph/{store}` | El grafo de una tienda en JSON: nodos, relaciones y sets. |

| `GET /api/v1/status` | Estado del servicio y fecha de los datos. |

Buscar y filtrar productos

| Parámetro | Qué hace |

| --- | --- |

| `q` | Texto libre; no distingue mayúsculas ni tildes (`colchon` encuentra *colchón*). |

| `store` | Id de tienda (`kosmos`, `ganga-home`, …). |

| `department` | Departamento del marketplace (`belleza`, `hogar-y-deco`, `descanso`, …). |

| `category` | Slug de categoría de la tienda (va con `store`). |

| `min_price` · `max_price` | Rango de precio, en la moneda de la tienda. |

| `on_sale` · `in_stock` · `free_shipping` | `true` para quedarte sólo con ofertas, con stock o con envío gratis. |

| `sort` | `relevance` (por defecto), `price_asc`, `price_desc` o `discount`. |

| `page` · `per_page` | Paginación; la respuesta trae el total y los links a la página siguiente y anterior. |

El vecindario de un producto

`GET /api/v1/products/{store}/{id}` devuelve el producto y lo que lo rodea en el grafo. Cada vecino trae su `relation` y el `reason` en lenguaje natural, el mismo que muestra la página. Sólo aparecen relaciones que pasaron los umbrales de calidad: un bloque vacío significa que no hay una recomendación confiable, no que falten datos.

| Bloque | Qué significa |

| --- | --- |

| `complements` | Se usan juntos: lo que conviene sumar. |

| `sets` | Kits y rutinas que la tienda vende o que el grafo arma con productos que van juntos. |

| `step_up` | Un paso más: la versión superior o el mismo producto en pack. |

| `alternatives` | Otra opción para la misma necesidad; con el producto sin stock, primero las que sí tienen. |

| `other_versions` | El mismo producto en otro color, talle o presentación. |

Cada producto trae además `url` (su página en Agentplace), `markdown_url` (la misma página en markdown) y `buy_url`, el link para comprar.

Para comprar: buy_url

`buy_url` apunta a `/go/<tienda>/<id>` y redirige a la página del producto en la tienda, con atribución `utm` (y `?via=api`, `mcp`, `a2a`, `webmcp` o `ucp` según desde dónde lo pediste). La compra, el pago y el envío los hace la tienda en su propio checkout: la API no crea carritos ni cobra.

Servidor MCP

`https://agentplace.crossup.ai/mcp` es un servidor [Model Context Protocol](https://modelcontextprotocol.io) remoto: Streamable HTTP, sin estado y sin autenticación. Su tarjeta está en [/.well-known/mcp/server-card.json](https://agentplace.crossup.ai/.well-known/mcp/server-card.json).

| Tool | Para qué |

| --- | --- |

| `search_products` | Buscar en todas las tiendas con texto y filtros (tienda, departamento, precio, ofertas, stock). |

| `get_product` | Un producto con variantes, stock y su vecindario en el grafo, con el motivo de cada relación. |

| `list_stores` | Las tiendas, su rubro y cuántos productos tienen. |

| `get_storegraph` | El grafo de una tienda: tamaño, sets y el archivo completo; o las relaciones de un producto. |

| `get_buy_link` | El link para comprar un producto en su tienda (no arma carritos). |

```bash

# Claude Code

claude mcp add --transport http agentplace https://agentplace.crossup.ai/mcp

# Probarlo con el inspector oficial (elegí "Streamable HTTP" y pegá la URL)

npx @modelcontextprotocol/inspector

```

```jsonc

// Cursor: ~/.cursor/mcp.json

{

"mcpServers": {

"agentplace": { "url": "https://agentplace.crossup.ai/mcp" }

}

}

```

En claude.ai: *Settings → Connectors → Add custom connector* y pegá `https://agentplace.crossup.ai/mcp`.

Agente A2A

Agentplace también es un agente [A2A](https://a2a-protocol.org): otros agentes le hablan por JSON-RPC en `https://agentplace.crossup.ai/a2a` y les responde qué productos convienen, con su vecindario y el link de compra. Responde con datos del catálogo y del grafo, nunca crea carritos ni pagos. Su [agent card](https://agentplace.crossup.ai/.well-known/agent-card.json) describe las skills y la versión del protocolo.

```bash

curl -s https://agentplace.crossup.ai/a2a \

-H 'Content-Type: application/json' \

-d '{"jsonrpc":"2.0","id":1,"method":"message/send","params":{"message":{"role":"user","messageId":"m1","parts":[{"kind":"text","text":"aceite de limpieza facial con stock"}]}}}'

```

Universal Commerce Protocol (UCP)

Para plataformas que hablan [UCP](https://ucp.dev) (2026-08-25): el [perfil](https://agentplace.crossup.ai/.well-known/ucp) declara la capacidad de catálogo (`dev.ucp.shopping.catalog.search` y `.lookup`) sobre REST en `https://agentplace.crossup.ai/ucp/v1`. Cada variante trae su `seller` (la tienda que vende), precio en unidades menores (centavos de ARS) y un `url` que la abre en la tienda. No hay checkout UCP: la compra es en la tienda de cada marca.

```bash

curl -s -X POST https://agentplace.crossup.ai/ucp/v1/catalog/search \

-H 'Content-Type: application/json' \

-H 'UCP-Agent: profile="https://tu-plataforma.example/.well-known/ucp"' \

-d '{"query":"sábanas 2 plazas","filters":{"price":{"max":6000000}},"pagination":{"limit":5}}'

```

En el navegador: WebMCP

Cada página de Agentplace registra sus tools en `navigator.modelContext` cuando el navegador lo soporta: un agente que navega el sitio puede buscar productos, leer el producto que está viendo y pedir el link de compra sin tocar el DOM.

Descubrimiento

| Archivo | Qué es |

| --- | --- |

| [/llms.txt](https://agentplace.crossup.ai/llms.txt) | Índice para modelos: cuándo usar Agentplace, tiendas y links. |

| [/openapi.json](https://agentplace.crossup.ai/openapi.json) | OpenAPI 3.1 de la API. |

| [/.well-known/api-catalog](https://agentplace.crossup.ai/.well-known/api-catalog) | Catálogo de APIs (RFC 9727). |

| [/.well-known/mcp/server-card.json](https://agentplace.crossup.ai/.well-known/mcp/server-card.json) | Tarjeta del servidor MCP. |

| [/.well-known/agent-card.json](https://agentplace.crossup.ai/.well-known/agent-card.json) | Agent card A2A. |

| [/.well-known/agent-skills/index.json](https://agentplace.crossup.ai/.well-known/agent-skills/index.json) | Agent Skills con su digest. |

| [/.well-known/ai-catalog.json](https://agentplace.crossup.ai/.well-known/ai-catalog.json) | Catálogo de recursos para agentes (ARD). |

| [/.well-known/storegraph](https://agentplace.crossup.ai/.well-known/storegraph) | Manifiesto del Storegraph 0.1; los grafos por tienda están en `/storegraph/<tienda>.jsonl` y se exploran en `/grafo/<tienda>`. |

| [/.well-known/ucp](https://agentplace.crossup.ai/.well-known/ucp) | Perfil UCP: catálogo (búsqueda y lookup), sin checkout. |

| [/auth.md](https://agentplace.crossup.ai/auth.md) | Cómo autenticarse: no hace falta. |

| [/sitemap.xml](https://agentplace.crossup.ai/sitemap.xml) | Sitemap de todas las páginas. |

Toda página tiene su versión markdown: agregá `.md` a la URL (la home es `/index.md`) o pedila con `Accept: text/markdown`.

Límites, caché y versiones

-**Límites.** `/api/v1/products` acepta 120 pedidos por minuto por IP (por instancia del servidor). Cada respuesta trae `RateLimit-Policy` y `RateLimit` (IETF); un `429` suma `Retry-After`. Tiendas y grafo salen de la caché del CDN y no tienen límite.

-**Caché.** Cada respuesta dice cuánto se puede cachear en `Cache-Control`. Los datos se actualizan una vez por día; `GET /api/v1/status` dice de cuándo son.

-**Versiones.** La ruta lleva la versión mayor (`/api/v1`). Un cambio incompatible sale en `/api/v2`; antes de retirar algo lo anunciamos con los encabezados `Deprecation` y `Sunset` y en esta página.

-**Descripción en cada respuesta.** Toda respuesta de la API trae `Link` a la descripción (`rel="service-desc"`, `/openapi.json`) y a esta documentación (`rel="service-doc"`).

Errores

Los errores de la API, del servidor MCP y del agente A2A usan RFC 9457 (`application/problem+json`): `type` apunta a la sección de abajo, y el cuerpo trae `title`, `status`, `detail`, `code` (por ejemplo `rate_limited`), `hint` con qué hacer y `instance` con la ruta del pedido.

invalid-parameter · 400

Un parámetro no tiene el formato esperado (por ejemplo `min_price=barato`). `detail` dice cuál; corregilo y repetí el pedido.

store-not-found · 404

No hay una tienda con ese id. La lista completa está en `GET /api/v1/stores`.

product-not-found · 404

La tienda existe pero no tiene ese producto publicado hoy. Buscalo de nuevo con `GET /api/v1/products?q=…&store=…`.

not-found · 404

La ruta no existe en la API. Revisá la ruta contra `/openapi.json`.

method-not-allowed · 405

La API es de lectura: usá `GET` (o `HEAD`). El encabezado `Allow` dice qué métodos acepta la ruta.

rate-limited · 429

Pasaste el límite de pedidos por minuto. Esperá los segundos que indica `Retry-After` y seguí.

not-acceptable · 406

El encabezado `Accept` excluye JSON. Pedí `application/json` (o `*/*`).

internal-error · 500

Algo falló de nuestro lado. Reintentá en unos segundos; si se repite, escribinos con el `instance` de la respuesta.

Uso y atribución

Todo es gratis y de lectura. Pedimos citar a Agentplace y a la tienda cuando muestres sus datos, y mandar a comprar con `buy_url`. Detalle en los [términos de uso](https://agentplace.crossup.ai/terminos); qué medimos, en la [política de privacidad](https://agentplace.crossup.ai/privacidad). Para dudas, ideas o más volumen: [hola@crossup.ai](mailto:hola@crossup.ai).