# DATA/AGENT FOUNDRY — Active Product Portfolio

Only ACTIVE and ACTIVE_CONTROL products are listed. VALIDATION_PENDING candidates are intentionally absent.

## Discovery

- Products: https://foundry-api-production-95ae.up.railway.app/v1/products
- Free lifecycle cycle inventory: https://foundry-api-production-95ae.up.railway.app/v1/versions?product_key={product_key} (request parameters only; never guarantees a paid decision).
- Capability manifest: https://foundry-api-production-95ae.up.railway.app/.well-known/data-agent-foundry.json
- x402 manifest: https://foundry-api-production-95ae.up.railway.app/.well-known/x402
- OpenAPI: https://foundry-api-production-95ae.up.railway.app/openapi.yaml
- Sitemap: https://foundry-api-production-95ae.up.railway.app/sitemap.xml

## Human browser interface

- Open the human catalog: https://foundry-api-production-95ae.up.railway.app/buy/
- Agents continue to use the per-product JSON POST resources and live x402 challenges. The human page is not an API or MCP transport.
- These links contain public selection parameters only; they are not purchased results. URL-encode every supplied value.
- Opening a link does not connect, sign or pay. Each action requires a voluntary human click; wallet return requires explicit continuation.
- No price, wallet, secret, challenge or signature parameters are accepted.

- lifecycle selection template: https://foundry-api-production-95ae.up.railway.app/buy/?sku=lifecycle&product={product}&version={version}
- domain selection template: https://foundry-api-production-95ae.up.railway.app/buy/?sku=domain&hostname={hostname}
- Lifecycle accepts nodejs, python, postgresql or kubernetes and a valid version; optional date=YYYY-MM-DD must be a real calendar date.
- Domain accepts a public DNS hostname only, without scheme, path, port or IP address.

## Software Lifecycle Status

- Product ID: mach002.lifecycle.status.v1
- State: ACTIVE_CONTROL
- Resource: https://foundry-api-production-95ae.up.railway.app/v1/software-lifecycle/status
- Method: POST
- Meter: resolved_lifecycle_result
- Price state: CONFIGURED
- Pricing version: pricing-v1
- Contract: https://foundry-api-production-95ae.up.railway.app/openapi.yaml#/components/schemas/LifecycleResponse

## Domain Host Trust Record

- Product ID: foundry.domain-host-trust-record.v1
- State: ACTIVE
- Resource: https://foundry-api-production-95ae.up.railway.app/v1/domain-host-trust
- Method: POST
- Meter: domain_host_trust_record
- Price state: FIXED_X402
- Pricing version: domain-host-trust-v1
- Contract: https://foundry-api-production-95ae.up.railway.app/openapi.yaml#/components/schemas/DomainHostTrustResponse

### Domain Host Trust paid request

POST https://foundry-api-production-95ae.up.railway.app/v1/domain-host-trust
Price per billable Domain Host Trust record: $0.01 USD.

Canonical request:
```json
{
  "schema_version": "1.0",
  "hostname": "example.org"
}
```

Billable Domain Host Trust decisions (decision.state): PASS, WARN, FAIL.
Non-billable Domain Host Trust outcome: UNKNOWN.
Self-observed facts: DNS resolution, TLS certificate validity and HTTPS HEAD response headers.
Scope: Observations at the stated time; no guarantee of domain reputation or overall security.

If POST https://foundry-api-production-95ae.up.railway.app/v1/domain-host-trust returns HTTP 402, use its live PAYMENT-REQUIRED challenge for the exact amount, network, asset and payTo. Then retry the same JSON body with the x402 PAYMENT-SIGNATURE header. Use the Domain Host Trust challenge rather than lifecycle payment terms.

## Control SKU invocation details

# MACH-002 — Software Lifecycle Status

Machine-first paid API for resolving a software product/version/date to a lifecycle decision with provenance, confidence, freshness and rights metadata.

## Discover before paying

- Capability manifest: https://foundry-api-production-95ae.up.railway.app/.well-known/data-agent-foundry.json
- x402 manifest: https://foundry-api-production-95ae.up.railway.app/.well-known/x402
- Coverage: https://foundry-api-production-95ae.up.railway.app/v1/coverage?product_key={product_key}
- Admissible cycle inventory: https://foundry-api-production-95ae.up.railway.app/v1/versions?product_key={product_key} (public request parameters; freshness and decisions remain in the paid result; presence does not guarantee resolution).
- Pricing: https://foundry-api-production-95ae.up.railway.app/v1/pricing
- OpenAPI: https://foundry-api-production-95ae.up.railway.app/openapi.yaml
- MCP tool descriptor: https://foundry-api-production-95ae.up.railway.app/mcp-tool.json (descriptor only; no operational MCP server or transport advertised)

These discovery surfaces are free and do not reveal the purchased lifecycle decision.

## Paid call

POST https://foundry-api-production-95ae.up.railway.app/v1/software-lifecycle/status
Price per resolved lifecycle result: $0.0025 USD (settled in USDC)
Payment: x402 v2 exact on the network/asset/payTo advertised by the live 402 challenge.

Example request:
```json
{
  "schema_version": "1.0",
  "product": {
    "key": "kubernetes",
    "version": "1.35.2"
  },
  "as_of": "2026-09-27"
}
```

Billable lifecycle states: SUPPORTED, MAINTENANCE, SECURITY_ONLY, EOL.
Non-billable DATA GAP states: UNKNOWN, NO_COVERAGE, LOW_CONFIDENCE, STALE, SOURCE_CONFLICT, VERSION_UNRESOLVED, RIGHTS_UNRESOLVED.

Always trust the live PAYMENT-REQUIRED challenge for the exact amount, network, asset and payTo. Reuse the same authorization only for an idempotent replay of the same logical request.