ETAR · Información pública

ETAR: guía de integración para componentes industriales

Consultá información publicada sobre resortes y componentes metálicos bajo plano, capacidades de fabricación y documentación de proveedor. Usá estas fuentes para preparar una consulta; las cotizaciones, los plazos y las aprobaciones técnicas requieren la evaluación de tu especificación por ETAR.

Inicio rápido: elegí una representación

  1. Consultá el directorio público para descubrir URLs de páginas publicadas y metadatos de documentos vigentes y validados. Agregá ?lang=es o ?lang=en; omití el parámetro para ambos idiomas.
  2. Seguí una URL de página devuelta para leer su contenido completo: HTML es la opción predeterminada. Pedí Accept: text/markdown en esa misma URL para obtener Markdown, incluida esta guía. Las respuestas declaran Vary: Accept y Content-Language.
  3. Conservá la URL de origen junto al resumen. Revisá el alcance y las condiciones publicadas antes de preparar una consulta mediante el formulario HTML de contacto.

Leer el directorio

curl -sS --fail-with-body 'https://www.etar.com.ar/api/v1/content?lang=es'

Leer una página en Markdown

curl -sS --fail-with-body -H 'Accept: text/markdown' 'https://www.etar.com.ar/'

La URL de una página determina su idioma; lang solo filtra el directorio JSON. JSON es un índice, no una especificación técnica completa. Un arreglo documents vacío indica que ningún documento cumple los filtros actuales de publicación, validación, vigencia e idioma; no constituye una afirmación de certificación.

API de contenido público

GET /api/v1/content?lang=es · HEAD /api/v1/content

Ambos métodos son operaciones de lectura. GET devuelve application/json; HEAD devuelve cabeceras sin cuerpo y también consume el límite de solicitudes. El parámetro opcional lang acepta exactamente es o en. Un valor vacío u otro valor devuelve 400.

curl -sS --head 'https://www.etar.com.ar/api/v1/content?lang=es'

Campos de respuesta

name / access
Publicador y permisos: ETAR, public_read_only, authentication_required: false, writes_supported: false.
pages[]
Registros de páginas publicadas: key, language, title, description y url canónica. Los títulos y las rutas pueden cambiar mediante edición; seguí la URL devuelta.
documents[]
Metadatos de documentos vigentes, publicados y validados: title, language, version, scope, url de descarga, valid_from y valid_until. Las fechas usan ISO 8601 YYYY-MM-DD o null. Una fecha nula no establece vigencia ilimitada. La descarga vuelve a comprobar disponibilidad y permisos de publicación.
links
URLs canónicas de descubrimiento, incluidas documentation, openapi, directory y sitemap. Las integraciones deben aceptar campos adicionales.

Fragmento de respuesta JSON

Este fragmento muestra el registro actual de inicio. La respuesta completa también contiene otras páginas publicadas, registros de documentos cuando están disponibles y links. El esquema, no este fragmento, define el contrato completo.

{
  "name": "ETAR",
  "access": {
    "mode": "public_read_only",
    "authentication_required": false,
    "writes_supported": false
  },
  "pages": [{
    "key": "home",
    "language": "es",
    "title": "Resortes y componentes metálicos bajo plano.",
    "description": "Fabricación bajo plano de resortes y componentes metálicos. Ingeniería de proceso, muestras, validación y suministro. Consultá tu próximo proyecto con ETAR.",
    "url": "https://www.etar.com.ar/"
  }]
}

Descargá el contrato OpenAPI 3.1.1 para consultar esquemas completos, parámetros y respuestas. Sus identificadores de operación son getEtarPublishedContent y headEtarPublishedContent. La especificación también admite GET y HEAD.

curl -sS --fail-with-body 'https://www.etar.com.ar/openapi.json'

Autenticación y permisos

La lectura pública no requiere claves API, tokens, cuenta ni scopes OAuth. No adjuntes credenciales. La API de contenido no ofrece operaciones de escritura, registros de visitantes, nombres de adjuntos privados ni URLs firmadas de almacenamiento. ETAR no opera un servidor de autorización OAuth ni una API GraphQL. Los despliegues de vista previa pueden requerir acceso de Vercel antes de llegar a esta web.

La administración usa sesiones de personal autorizado. Los adjuntos comerciales requieren permiso de descarga de consultas; los CV requieren un permiso separado de descarga de postulaciones. Esos recursos quedan fuera de la API pública.

Las consultas y postulaciones son recorridos HTML para personas, con sesión, consentimiento y protección CSRF. Una persona debe revisar y enviar el formulario correspondiente; ni una solicitud JSON ni una herramienta MCP permiten enviarlo. No envíes planos, datos personales ni adjuntos como parámetros de lectura. Revisá el aviso de privacidad antes de adjuntarlos mediante el formulario.

Errores y límites de solicitudes

Los errores de API devuelven un estado HTTP de error real y un cuerpo RFC 9457 application/problem+json. Comprobá el estado y code; usá detail y resolution para explicar cómo recuperarse. El texto de error está en inglés para ambos filtros de idioma.

  • 400 invalid_parameter: corregí lang antes de volver a intentar.
  • 404 api_route_not_found: la ruta API no existe; consultá OpenAPI.
  • 405 method_not_allowed: usá Allow: GET, HEAD en el endpoint de contenido; POST, PUT, PATCH y DELETE no realizan escrituras.
  • 429 rate_limit_exceeded: esperá el intervalo de Retry-After antes de volver a intentar.
  • 500 service_error / 503 service_unavailable: reintentá más tarde con pausas crecientes; evitá solicitudes inmediatas repetidas. Contactá a ETAR si el error persiste.

Ejemplo de idioma inválido

curl -sS -i 'https://www.etar.com.ar/api/v1/content?lang=fr'

HTTP 400 · Content-Type: application/problem+json

{
  "type": "about:blank",
  "title": "Bad Request",
  "status": 400,
  "detail": "The lang parameter must be es or en, or omitted for both languages.",
  "code": "invalid_parameter",
  "resolution": "Use the parameters documented in /openapi.json."
}

Cómo leer la cuota

El endpoint JSON de contenido admite 120 solicitudes por cliente en una ventana fija de 60 segundos. Son límites orientativos de la caché configurada: pueden reiniciarse entre instancias o despliegues y no representan una cuota global contractual. Leé las cabeceras recibidas en lugar de suponer el momento de reinicio.

RateLimit-Policy: "public-read";q=120;w=60
RateLimit: "public-read";r=119;t=60
Cache-Control: private, no-store

En esta respuesta ilustrativa, q es la cuota de solicitudes, w la ventana en segundos, r las solicitudes restantes y t los segundos hasta reinicio. Un 429 agrega Retry-After en segundos. GET y HEAD comparten esta cuota. La API pública no establece un intervalo de consulta ni un acuerdo de nivel de servicio.

Conexión mediante MCP

El endpoint MCP público es https://www.etar.com.ar/mcp, con transporte Streamable HTTP y respuestas JSON. No requiere autenticación y ofrece únicamente list_public_content, con un argumento opcional lang (es o en). La herramienta devuelve el mismo directorio publicado que la API de contenido; no permite enviar consultas ni acceder a registros privados.

Configurá la URL del servidor HTTP remoto en tu cliente MCP con la dirección anterior; las claves de configuración varían según el cliente. Enviá solicitudes JSON-RPC por POST con Content-Type: application/json y Accept: application/json, text/event-stream. GET, HEAD y DELETE devuelven 405. Los cuerpos de solicitud tienen un límite de 64 KiB y MCP comparte la cuota de la API. Los clientes entre servidores pueden omitir Origin; cuando está presente, debe coincidir con el origen configurado del sitio.

Descubrimiento del protocolo

Para el protocolo 2026-07-28, usá server/discover sin intercambio de inicialización. Cada solicitud incluye metadatos del protocolo en params._meta y cabeceras MCP-Protocol-Version y MCP-Method coincidentes; una llamada a herramienta también requiere MCP-Name. El documento de descubrimiento MCP de ETAR en /.well-known/mcp aporta metadatos específicos de ETAR; no es un estándar de descubrimiento del núcleo de MCP.

curl -sS 'https://www.etar.com.ar/mcp' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2026-07-28' \
  -H 'MCP-Method: server/discover' \
  --data '{"jsonrpc":"2.0","id":1,"method":"server/discover","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}}'

Compatibilidad con el protocolo 2025-11-25

Los clientes que usan 2025-11-25 primero inicializan y luego envían notifications/initialized. Después usan tools/list para consultar el esquema de la herramienta y tools/call para leer el directorio. Usá la versión de protocolo negociada en las solicitudes posteriores.

curl -sS 'https://www.etar.com.ar/mcp' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"etar-guide","version":"1.0.0"}}}'
curl -sS 'https://www.etar.com.ar/mcp' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  --data '{"jsonrpc":"2.0","method":"notifications/initialized"}'
curl -sS 'https://www.etar.com.ar/mcp' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  --data '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_public_content","arguments":{"lang":"es"}}}'

Acceso desde la línea de comandos

El paquete @etar-srl/cli, versión 0.1.0, está disponible mediante descarga directa del paquete. No está publicado en el registro npm. Instalá el paquete desde su URL; los ejemplos de curl de esta guía también funcionan sin la CLI.

npm install --global 'https://www.etar.com.ar/downloads/etar-cli-0.1.0.tgz'

Requiere Node.js 22 o posterior. El comando es etar; lee recursos públicos sin credenciales y no permite enviar información. Elegí una ruta de página de content para read, o usá una de las rutas de la guía de integración.

etar --version
etar content --lang es
etar openapi
etar read /developers --format markdown

content y openapi imprimen JSON. read imprime un objeto JSON con url, content_type y markdown; --format markdown selecciona Markdown sin envoltorio. Los resultados van a stdout y los errores JSON a stderr. Los códigos de salida son 0 para éxito, 1 para errores de red o respuesta y 2 para argumentos inválidos. La CLI conserva el estado de error HTTP y Retry-After cuando existen, sin reintentos automáticos.

Versiones, fuentes y próximos pasos

El contrato actual de contenido usa /api/v1. La versión 1 está activa y no tiene retiro programado. Pueden agregarse metadatos en v1; ignorá los campos desconocidos. Los cambios incompatibles requieren una nueva URL de versión mayor. Antes de un retiro planificado, ETAR publicará un aviso y documentación de migración e indicará la obsolescencia mediante cabeceras de respuesta.

Política de versiones y obsolescencia

  • ETAR llms.txt: puntos de acceso al contenido industrial publicado.
  • ETAR sitemap.xml: URLs publicadas y alternativas de idioma.
  • Acerca de ETAR: contexto de la empresa y experiencia publicada.
  • Contactar a ETAR: presentá una especificación para evaluar, un plano definido para cotizar o requisitos de alta de proveedor.

Usá las URLs canónicas de páginas y descargas en lugar de conservar enlaces de almacenamiento de un despliegue. Citá el certificado original y su alcance exacto cuando un documento respalde una afirmación; el acceso público no establece por sí solo aptitud para una pieza o aplicación concreta.