ETAR · Public information

ETAR industrial components integration guide

Find published information about springs and metal components made to drawing, manufacturing capabilities and supplier documentation. Use these sources to prepare an inquiry; quotations, lead times and technical approvals require ETAR's assessment of your specification.

Quickstart: choose a representation

  1. Get the public directory below to discover published page URLs and current validated document metadata. Add ?lang=en or ?lang=es; omit the parameter for both languages.
  2. Follow a returned page URL for its complete content: HTML is the default. Request Accept: text/markdown at that same URL for Markdown, including this guide. Responses declare Vary: Accept and Content-Language.
  3. Keep the source URL with your summary. Confirm the published scope and conditions before preparing an inquiry through the HTML contact form.

Read the directory

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

Read a page in Markdown

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

A page URL selects its language; lang filters the JSON directory only. JSON is an index, not a complete technical specification. An empty documents array means no document meets the current publication, validation, validity and language filters; it is not a certification claim.

Public content API

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

Both methods are safe retrieval operations. GET returns application/json; HEAD returns response headers without a body and also counts toward the request limit. The optional lang query parameter accepts exactly es or en. An empty or other value returns 400.

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

Response fields

name / access
Publisher and permissions: ETAR, public_read_only, authentication_required: false, writes_supported: false.
pages[]
Published page records: key, language, title, description and canonical url. Titles and paths can change through editorial updates; follow the returned URL.
documents[]
Current, published and validated document metadata: title, language, version, scope, download url, valid_from and valid_until. Dates are ISO 8601 YYYY-MM-DD or null. A null date does not establish unlimited validity. The download rechecks availability and publication permissions.
links
Canonical discovery URLs, including documentation, openapi, directory and sitemap. Integrations should accept additional fields.

JSON response excerpt

This excerpt shows the current homepage record. The complete response also contains other published pages, document records when available, and links. The schema, not this excerpt, defines the complete contract.

{
  "name": "ETAR",
  "access": {
    "mode": "public_read_only",
    "authentication_required": false,
    "writes_supported": false
  },
  "pages": [{
    "key": "home",
    "language": "en",
    "title": "Springs and metal components made to drawing.",
    "description": "Springs and metal components made to drawing. Process engineering, samples, validation and supply. Discuss your next manufacturing project with ETAR.",
    "url": "https://www.etar.com.ar/en"
  }]
}

Download the OpenAPI 3.1.1 contract for complete schemas, parameter definitions and responses. Its operation IDs are getEtarPublishedContent and headEtarPublishedContent. The specification itself supports GET and HEAD.

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

Authentication and permissions

Public retrieval requires no API key, access token, account or OAuth scope. Do not attach credentials. The content API exposes no write operations, visitor records, private attachment names or signed storage URLs. ETAR does not operate an OAuth authorization server or a GraphQL API. Preview deployments may separately require Vercel access before reaching this website.

Administration uses authorized staff sessions. Private inquiry attachments require inquiry-download permission; application CVs require a separate application-download permission. These resources are outside the public API.

Inquiries and job applications are human HTML flows with session, consent and CSRF protection. A person must review and submit the appropriate form; neither a JSON request nor an MCP tool can submit it. Do not send drawings, personal information or attachments as retrieval query parameters. Read the privacy notice before submitting them through the form.

Errors and rate limits

API errors return a real HTTP error status and an RFC 9457 application/problem+json body. Check the status and code; use detail and resolution to explain recovery. Error text is in English in both language filters.

  • 400 invalid_parameter: fix lang before retrying.
  • 404 api_route_not_found: the API route does not exist; check OpenAPI.
  • 405 method_not_allowed: use Allow: GET, HEAD on the content endpoint; POST, PUT, PATCH and DELETE do not perform writes.
  • 429 rate_limit_exceeded: wait for the Retry-After interval before retrying.
  • 500 service_error / 503 service_unavailable: retry later with increasing delays; avoid repeated immediate requests. Contact ETAR if the error persists.

Invalid language example

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."
}

Reading the quota

The JSON content endpoint permits 120 requests per client in a 60-second fixed window. These are best-effort limits from the configured cache: they can reset across instances or deployments and are not a contractual global quota. Read the actual headers rather than assuming the reset time.

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

In this illustrative response, q is the request quota, w the window in seconds, r the remaining requests and t the seconds until reset. A 429 adds Retry-After in seconds. GET and HEAD share this quota. The public API does not promise a polling interval or a service-level agreement.

Connect through MCP

The public MCP endpoint is https://www.etar.com.ar/mcp, using Streamable HTTP with JSON responses. It requires no authentication and offers only list_public_content, with an optional lang argument (es or en). The tool returns the same published directory as the content API; it cannot submit inquiries or access private records.

Configure your MCP client's remote HTTP server URL as above; client configuration keys vary. Send JSON-RPC requests by POST with Content-Type: application/json and Accept: application/json, text/event-stream. GET, HEAD and DELETE return 405. Request bodies are limited to 64 KiB, and MCP shares the API's request quota. Server-to-server clients may omit Origin; when present, it must match the configured site origin.

Protocol discovery

For protocol 2026-07-28, use server/discover without an initialization handshake. Every request includes protocol metadata in params._meta and matching MCP-Protocol-Version and MCP-Method headers; a tool call also requires MCP-Name. The ETAR MCP discovery document at /.well-known/mcp provides ETAR-specific metadata; it is not a core MCP discovery standard.

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":{}}}}'

Compatibility with protocol 2025-11-25

Clients using 2025-11-25 initialize first, then send notifications/initialized. After that, use tools/list to inspect the tool schema and tools/call to read the directory. Use the negotiated protocol version on subsequent requests.

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":"en"}}}'

Command-line access

The @etar-srl/cli package, version 0.1.0, is available as a direct package download. It is not published in the npm registry. Install the downloaded package from its URL; the curl examples above also work without the CLI.

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

Requires Node.js 22 or later. The command is etar; it reads public resources without credentials and cannot submit information. Choose a page path from content for read, or use one of the integration-guide paths.

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

content and openapi print JSON. read prints a JSON object with url, content_type and markdown; --format markdown selects raw Markdown. Results go to stdout and JSON errors to stderr. Exit codes are 0 for success, 1 for network or response errors, and 2 for invalid arguments. The CLI preserves HTTP error status and Retry-After when present, without automatic retries.

Versions, sources and next steps

The current content contract uses /api/v1. Version 1 is active with no scheduled retirement. Additive metadata may appear within v1; ignore unknown fields. Breaking changes require a new major URL. Before a planned retirement, ETAR will publish a notice and migration documentation and signal deprecation through response headers.

Versioning and deprecation policy

  • ETAR llms.txt: entry points to published industrial source material.
  • ETAR sitemap.xml: published URLs and language alternatives.
  • About ETAR: company context and published experience.
  • Contact ETAR: hand off a specification for evaluation, a defined drawing for quotation, or supplier onboarding requirements.

Use canonical page and download URLs rather than keeping deployment-specific storage links. Cite the original certificate and its exact scope where a document supports a claim; public access alone does not establish suitability for a specific part or application.