Normalize Honeywell, Johnson Controls, Schneider, Siemens BMS telemetry. Monitor HVAC, energy, occupancy in plain English.
Any OEMΒ·Any machineΒ·Natural languageΒ·Verified on-chain
By continuing, you agree to the Terms of Service and Privacy Policy.
Identify any machine by OEM, model, and serial. Or connect any business system via webhook. The agent works with machines and software.
Send telemetry in any format or trigger evaluations from any source. Set up automations in one sentence. "Alert when coolant exceeds 30" or "notify purchasing when inventory drops below 50."
Triggers fire to any system. Slack, ERP, CMMS, MES, email. Everything logged, auditable, and settled on Solana.
The same AI that writes code from natural language can run your business operations. Update your ERP. Create work orders. Trigger purchase orders. Send shift reports. All from one sentence.
Connect any CNC, robot, or industrial equipment. The agent normalizes telemetry from any OEM, monitors health continuously, and takes action when conditions change. Every reading verified on-chain.
Connect any business system with a webhook. The agent triggers actions across ERP, CMMS, MES, quality, scheduling, email, and any HTTP endpoint. No integration code. No middleware. One sentence.
Same agent. Same billing. Same audit trail. Machines and software, unified through natural language.
Works with Claude Desktop, Cursor, GPT, or any MCP-compatible client. Complements AWS IoT, Azure IoT, Siemens MindSphere, PTC ThingWorx.
No minimums. No contracts. Pay as you go.
Get free API key50 free normalize calls to start. No card required.
30% volume discount. Monthly invoice.
Card required. Discounted pricing from your first call.
Custom SLA. Dedicated MCP endpoint. Annual contract.
Contact us
Identity: free.
Automation setup: free.
Trigger evaluation: free.
Feedback: free.
No subscriptions. No minimums. No contracts.
Add FoundryNet to your integration toolkit. Every machine you connect gets cross-manufacturer normalization, natural-language automations, and on-chain verification. Your customers get smarter machines. You get recurring revenue from every API call.
Become an integrator partnerIntegrator revenue share program coming soon. Earn on every machine you connect.
Drop this into your Claude Desktop config:
{
"mcpServers": {
"foundrynet": {
"command": "npx",
"args": ["mcp-remote",
"https://foundrynet-mcp-production.up.railway.app/sse"]
}
}
}
11 tools. SSE transport. Works with any MCP client.
All /v1/* requests need Authorization: Bearer fnet_β¦ and (where applicable) Content-Type: application/json. Base URL: https://forge.foundrynet.io.
POST /v1/keys/checkout β Stripe Checkout β POST /v1/keys/activate (or use the form at the top of this page)POST /v1/identifyPOST /v1/normalizePOST /v1/toolsPOST /v1/triggers/naturalGET /v1/history/{mint_id}POST /v1/settle/v1/identify
Provision or look up a persistent on-chain identity (mint_id) for one machine. Idempotent on (oem, model, serial).
{
"oem": "fanuc",
"model": "M-20iA",
"serial": "R30iB-12345",
"site": "Line 3"
}
{
"mint_id": "MINT-4de03b",
"internal_id": "fanuc:m-20ia:r30ib-12345",
"created": true,
"machine": { "wallet_address": "EfXdpMDkβ¦", "status": "active" },
"first_seen": "2026-05-04T01:00:00Z"
}
/v1/normalize
Translate raw OEM telemetry to canonical FCS data. Auto-provisions identity from oem/model/serial when no machine_id is given. Returns triggers_fired[] when any active trigger matches. Optional idempotency_key dedups retries within 24h. Optional observed_at (ISO 8601 controller clock) is stored alongside the server ingested_at.
{
"data": { "Spindle_Speed": 2200, "spindle_load": 92 },
"oem": "fanuc",
"model": "M-20iA",
"serial": "R30iB-12345",
"observed_at": "2026-05-05T09:30:15Z",
"idempotency_key": "optional-caller-supplied-key"
}
{
"normalized": { "spindle_speed_rpm": 2200, "spindle_load_pct": 92 },
"field_mappings": { "spindle_load": { "mapping_id": "6c34β¦", "canonical": "spindle_load_pct", "confidence": 0.93 } },
"fields_total": 2, "fields_renamed": 2, "fields_identity": 0, "fields_unknown": 0,
"coverage_pct": 100,
"machine_id": "MINT-4de03b",
"history_id": "c419β¦",
"triggers_fired": [{ "trigger_id": "7f0cβ¦", "trigger_name": "high spindle load", "actual_value": 92 }]
}
/v1/tools
Register a webhook endpoint as a tool. Triggers reference these by tool_id. auth_secret returned ONCE on create; never read back via GET.
{
"name": "slack-maintenance",
"url": "https://hooks.slack.com/services/Tβ¦/Bβ¦/xxx",
"method": "POST",
"payload_template": { "text": "Alert: {{oem}} {{model}} β {{field}} at {{value}}" },
"auth_type": "none"
}
{ "id": "add2β¦", "name": "slack-maintenance", "auth_type": "none", "enabled": true }
/v1/triggers/natural
Parse a natural-language instruction into a structured trigger. NEVER auto-activates; returns parsed_trigger for review and explicit POST to /v1/triggers.
{ "machine_id": "MINT-4de03b", "instruction": "Alert maintenance Slack when spindle load exceeds 90." }
{
"parsed_trigger": {
"machine_id": "MINT-4de03b",
"name": "Spindle Load Alert",
"condition": { "field": "spindle_load_pct", "op": ">", "value": 90 },
"actions": [{ "tool_id": "add2β¦" }]
},
"confirmation_required": true
}
/v1/history/{mint_id}
Per-machine canonical history. Query params: from, to (ISO-8601), fields (csv), limit (β€1000), summary (bool).
GET /v1/history/MINT-4de03b?limit=5&summary=true
{
"mint_id": "MINT-4de03b",
"machine": { "oem": "fanuc", "model": "M-20iA", "site": "Line 3" },
"row_count": 2,
"avg_coverage": 100,
"fields_covered": ["spindle_load_pct", "spindle_speed_rpm", "sensor_readings.coolant_temp"]
}
/v1/settle
Anchor data on Solana mainnet via the MINT relay. Add ?batch=true with body {"mint_id": "β¦"} to Merkle-root all unsettled events for that machine into one transaction.
POST /v1/settle?batch=true
{ "mint_id": "MINT-4de03b" }
{
"mint_id": "MINT-4de03b",
"merkle_root": "413d5ecβ¦",
"event_count": 4,
"tx_signature": "2yiypβ¦",
"verify_url": "https://solscan.io/tx/2yiypβ¦"
}
SSE endpoint: https://foundrynet-mcp-production.up.railway.app/sse
identify_machine β provision/lookup mint_id from (oem, model, serial)normalize_telemetry β raw OEM data β canonical FCS, with auto-provision + trigger evalquery_machine_history β time-series + summary over canonical_datacreate_automation β natural language β parsed_trigger (review-then-activate)activate_automation β arm a parsed_trigger after user confirmationlist_automations β show all triggers configured for a machinedisable_automation β pause a trigger without deleting it (reversible)delete_automation β soft delete (30-day restorable); ?permanent=true for hard deleterestore_automation β undo a soft delete within 30 daysquery_webhook_history β HTTP status, retry counts, latency for a trigger's deliveriesverify_on_chain β anchor data on Solana mainnet (single payload OR batched)DELETE /v1/triggers/{id} defaults to soft delete β sets deleted_at, hides from list/eval, restorable for 30 days via PATCH /v1/triggers/{id}/restore. Add ?permanent=true for irrecoverable hard delete.
/v1/normalize accepts an optional idempotency_key. If absent, server synthesizes sha256(mint_id + canonical(data))[:32]. Repeats within 24h return the original response with deduplicated: true and skip trigger evaluation.
Every /v1/normalize response carries three counters: fields_renamed (source != canonical), fields_identity (source == canonical), fields_unknown (no mapping). coverage_pct = (renamed + identity) / total.
observed_at (ISO 8601 from the controller clock) is optional on /v1/normalize. Stored alongside ingested_at (server). When the difference exceeds 60s, response includes clock_skew_warning. Sustained-condition windows reference observed_at when present.
{
"error": true,
"status": 422,
"field": "body.oem",
"reason": "Field required",
"received_value": {},
"suggestion": "e.g. 'fanuc'",
"additional_errors": [ { "field": "body.model", "reason": "Field required" } ]
}
Metered billing via Stripe. Counts roll up to your subscription's current billing period and settle on Stripe's normal cycle. Query GET /v1/usage for live counts and an estimated bill.
POST /v1/normalize β 1Β’ per callPOST /v1/settle?batch=true β 2Β’ per batch settled (skipped settles are free)GET /v1/history/{mint_id} β 1Β’ per queryPOST /v1/identify β freePOST /v1/triggers/natural β free (setup step; revenue comes from the trigger fires it produces)POST /v1/feedback/{mapping_id}/... β free/v1/normalize) β free; you only pay for fires that successfully deliverGet an API key via the self-serve flow: POST /v1/keys/checkout with {email} returns a Stripe Checkout URL; after the user adds a card, POST /v1/keys/activate with {session_id} returns the fnet_β¦ key (shown once). Admin / CI keys can be minted with an X-Admin-Token header bypass on POST /v1/keys.
Last updated: May 5, 2026
These Terms of Service ("Terms") govern your access to and use of the FoundryNet API, MCP server, and related services ("Services") provided by FoundryNet Labs ("FoundryNet," "we," "us," or "our"). By accessing or using the Services, you agree to be bound by these Terms.
FoundryNet provides an API for industrial machine telemetry normalization, automation trigger management, machine identity provisioning, and on-chain data settlement. The Services are provided "as is" and "as available."
To use the Services, you must register for an API key and provide a valid payment method. You are responsible for maintaining the confidentiality of your API key and for all activities that occur under your account. You must notify us immediately of any unauthorized use.
API keys are non-transferable. We reserve the right to suspend or revoke API keys that violate these Terms or are used in a manner that degrades Service performance for other users.
You agree not to:
- Use the Services for any unlawful purpose or in violation of any applicable laws or regulations.
- Attempt to gain unauthorized access to the Services, other accounts, or systems connected to the Services.
- Reverse engineer, decompile, or disassemble any portion of the Services.
- Use the Services to transmit malicious code or interfere with the integrity of the Services.
- Exceed reasonable rate limits or abuse the API in a manner that degrades service for others.
- Resell or redistribute access to the Services without our prior written consent.
- Use the Services to make safety-critical, life-safety, or autonomous control decisions without independent verification and human oversight.
You retain ownership of all data you submit to the Services ("Your Data"). By submitting data, you grant us a limited license to process, normalize, store, and analyze Your Data solely for the purpose of providing the Services.
We do not sell Your Data to third parties. Normalized and aggregated data may be used to improve the FoundryNet Canonical Schema (FCS) mapping corpus. Individual machine telemetry is not shared across accounts.
See our Privacy Policy below for full details on data handling.
The Services include optional settlement of data hashes on the Solana blockchain via the MINT Protocol. On-chain transactions are irreversible by design. Settlement creates a cryptographic proof of data at a point in time; it does not constitute a warranty, certification, or endorsement of the underlying data's accuracy.
FoundryNet is not responsible for the performance, availability, or security of the Solana blockchain or any third-party blockchain infrastructure.
The Services are billed on a usage-based model via Stripe. You agree to pay all charges incurred under your account at the rates in effect when the usage occurred. Current pricing is published on foundrynet.io and may be updated with 30 days' notice.
All fees are non-refundable except as required by law. Failure to pay may result in suspension of your API key and account.
The Services, including the FoundryNet Canonical Schema (FCS), the MINT Protocol, the normalization engine, and all associated software, are the intellectual property of FoundryNet Labs. These Terms do not grant you any rights to our intellectual property except the limited right to use the Services as described herein.
The FCS canonical field vocabulary and mapping corpus are proprietary. You may not extract, replicate, or create derivative works from the mapping corpus.
THE SERVICES ARE PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
FOUNDRYNET DOES NOT WARRANT THAT THE SERVICES WILL BE UNINTERRUPTED, ERROR-FREE, OR SECURE. FOUNDRYNET DOES NOT WARRANT THE ACCURACY, COMPLETENESS, OR RELIABILITY OF ANY DATA NORMALIZATION, SCORING, OR TRIGGER EVALUATION PERFORMED BY THE SERVICES.
TO THE MAXIMUM EXTENT PERMITTED BY LAW, FOUNDRYNET SHALL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO LOSS OF PROFITS, DATA, PRODUCTION, REVENUE, OR BUSINESS OPPORTUNITIES, WHETHER BASED ON WARRANTY, CONTRACT, TORT, OR ANY OTHER LEGAL THEORY.
FOUNDRYNET'S TOTAL CUMULATIVE LIABILITY SHALL NOT EXCEED THE AMOUNTS PAID BY YOU TO FOUNDRYNET IN THE TWELVE (12) MONTHS PRECEDING THE CLAIM.
The Services provide data normalization, monitoring, and automation tools for industrial equipment. THE SERVICES ARE NOT INTENDED AND SHALL NOT BE USED AS THE SOLE BASIS FOR SAFETY-CRITICAL DECISIONS, MACHINE CONTROL, LIFE-SAFETY SYSTEMS, OR ANY APPLICATION WHERE FAILURE COULD RESULT IN PERSONAL INJURY, DEATH, OR SIGNIFICANT PROPERTY DAMAGE.
You are solely responsible for validating the accuracy of any data, alerts, or automations generated by the Services before acting on them in a production environment. Human oversight is required for all safety-critical operations.
You agree to indemnify, defend, and hold harmless FoundryNet Labs and its officers, directors, employees, and agents from any claims, damages, losses, liabilities, and expenses (including reasonable attorneys' fees) arising from your use of the Services, your violation of these Terms, or your violation of any rights of a third party.
Either party may terminate these Terms at any time. Upon termination, your right to use the Services ceases immediately. We may retain Your Data for a reasonable period to facilitate data export, after which it will be deleted. On-chain settlements are permanent and cannot be deleted.
We may update these Terms from time to time. We will notify you of material changes via the email associated with your account at least 30 days before the changes take effect. Continued use of the Services after changes take effect constitutes acceptance of the updated Terms.
These Terms are governed by the laws of the State of Nevada, without regard to conflict of law principles. Any disputes shall be resolved in the state or federal courts located in Washoe County, Nevada.
FoundryNet Labs
Reno, Nevada
hello@foundrynet.io
Last updated: May 5, 2026
FoundryNet Labs ("FoundryNet," "we," "us") operates the FoundryNet API, MCP server, and related services. This Privacy Policy describes how we collect, use, and protect your information.
When you create an API key, we collect your email address and payment information (processed by Stripe β we do not store card numbers, bank accounts, or payment credentials).
When you use the normalization and monitoring services, we receive and process the machine telemetry data you submit. This may include sensor readings, operational metrics, alarm codes, and machine identifiers (OEM, model, serial number, site location).
We collect information about your use of the Services, including API call counts, endpoints accessed, timestamps, and error rates. This data is used for billing, performance monitoring, and service improvement.
When data is settled on the Solana blockchain, the cryptographic hash of the data and associated transaction metadata become publicly visible and permanent. The raw underlying data is not published on-chain β only the hash.
- To provide, maintain, and improve the Services.
- To process billing and payments via Stripe.
- To normalize and process machine telemetry as requested.
- To improve the FoundryNet Canonical Schema mapping corpus using aggregated, anonymized field mapping patterns. Individual machine data is not shared across accounts.
- To communicate with you about your account, service updates, and changes to these policies.
- To detect and prevent fraud, abuse, and security incidents.
We do not sell your personal information or machine telemetry data. We may share information with:
- Stripe β for payment processing. Subject to Stripe's privacy policy.
- Solana blockchain β cryptographic hashes of settled data are published on the public Solana ledger. No raw telemetry is published on-chain.
- Infrastructure providers β Railway (hosting), Supabase (database). Subject to their respective privacy policies and data processing agreements.
- Law enforcement β if required by law, subpoena, or court order.
Machine telemetry and normalized history are retained for as long as your account is active. Upon account termination, we will retain data for 90 days to facilitate export, then delete it from our systems. On-chain settlement hashes are permanent and cannot be deleted.
Corpus feedback (field mapping corrections) may be retained indefinitely in anonymized form to improve the normalization engine.
We implement reasonable technical and organizational measures to protect your data, including:
- Encryption of webhook authentication secrets at rest (Fernet symmetric encryption).
- HMAC-SHA256 signing on all outbound webhook calls.
- API key authentication on all endpoints.
- Content-hash based idempotency to prevent duplicate processing.
- Supabase Row Level Security for account isolation.
No system is perfectly secure. We cannot guarantee absolute security of your data.
You may:
- Request a copy of your data by contacting hello@foundrynet.io.
- Request deletion of your account and associated data.
- Correct inaccurate information in your account.
- Opt out of non-essential communications.
The Services are hosted in the United States. If you access the Services from outside the US, your data may be transferred to and processed in the US. By using the Services, you consent to this transfer.
The Services are not directed to individuals under 18. We do not knowingly collect information from children.
We may update this Privacy Policy from time to time. We will notify you of material changes via email at least 30 days before they take effect.
For privacy questions or data requests:
FoundryNet Labs
hello@foundrynet.io