'use client' import { DevPortalLayout, ApiEndpoint, CodeBlock, ParameterTable, InfoBox } from '@/components/DevPortalLayout' export default function IACEApiPage() { return (

Uebersicht

Die IACE (Industrial AI Compliance Engine) API ermoeglicht die vollstaendige CE-Risikobewertung fuer Maschinen und Industrieprodukte. Sie deckt den gesamten Compliance-Lebenszyklus ab:

Alle Endpoints verwenden den Basis-Pfad /sdk/v1/iace. Authentifizierung erfolgt ueber Bearer Token im Authorization-Header. {/* ============================================================ */} {/* PROJECT MANAGEMENT */} {/* ============================================================ */}

Project Management

Erstellen und verwalten Sie IACE-Projekte fuer einzelne Maschinen oder Produkte.

Request Body

{`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -H "Content-Type: application/json" \\ -d '{ "machine_name": "RoboArm X500", "machine_type": "Industrieroboter", "manufacturer": "TechCorp GmbH", "description": "6-Achsen-Industrieroboter fuer Montagearbeiten" }'`}

Response (201 Created)

{`{ "success": true, "data": { "id": "proj_a1b2c3d4-e5f6-7890-abcd-ef1234567890", "machine_name": "RoboArm X500", "machine_type": "Industrieroboter", "manufacturer": "TechCorp GmbH", "description": "6-Achsen-Industrieroboter fuer Montagearbeiten", "status": "draft", "completeness_score": 0, "created_at": "2026-03-16T10:00:00Z" } }`} {`curl -X GET "https://api.breakpilot.io/sdk/v1/iace/projects" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": [ { "id": "proj_a1b2c3d4-e5f6-7890-abcd-ef1234567890", "machine_name": "RoboArm X500", "machine_type": "Industrieroboter", "status": "in_progress", "completeness_score": 72, "hazard_count": 14, "created_at": "2026-03-16T10:00:00Z" } ] }`} {`curl -X GET "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4" \\ -H "Authorization: Bearer YOUR_API_KEY"`} {/* ============================================================ */} {/* ONBOARDING */} {/* ============================================================ */}

Onboarding

Initialisierung aus Firmenprofil und Vollstaendigkeitspruefung.

{`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/init-from-profile" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": { "initialized_fields": ["manufacturer", "description", "machine_type"], "suggested_regulations": ["machinery_regulation", "low_voltage", "emc"], "message": "Projekt aus Firmenprofil initialisiert. 3 Felder uebernommen." } }`} {`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/completeness-check" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": { "score": 72, "total_gates": 25, "passed_gates": 18, "gates": [ { "id": "G01", "name": "Maschinenidentifikation", "status": "passed" }, { "id": "G02", "name": "Komponentenliste", "status": "passed" }, { "id": "G03", "name": "Regulatorische Klassifizierung", "status": "passed" }, { "id": "G04", "name": "Gefahrenanalyse", "status": "warning", "message": "3 Gefahren ohne Massnahmen" }, { "id": "G05", "name": "Risikobewertung", "status": "failed", "message": "5 Gefahren nicht bewertet" } ] } }`} {/* ============================================================ */} {/* COMPONENTS */} {/* ============================================================ */}

Components

Verwalten Sie die Komponenten einer Maschine oder eines Produkts.

Request Body

{`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/components" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -H "Content-Type: application/json" \\ -d '{ "name": "Servo-Antrieb Achse 1", "component_type": "actuator", "is_safety_relevant": true }'`}

Response (201 Created)

{`{ "success": true, "data": { "id": "comp_1234abcd", "name": "Servo-Antrieb Achse 1", "component_type": "actuator", "is_safety_relevant": true, "created_at": "2026-03-16T10:05:00Z" } }`} {/* ============================================================ */} {/* REGULATORY CLASSIFICATION */} {/* ============================================================ */}

Regulatory Classification

Automatische Klassifizierung nach anwendbaren Regulierungen (Maschinenverordnung, Niederspannung, EMV, etc.).

{`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/classify" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": { "classifications": [ { "regulation": "machinery_regulation", "title": "Maschinenverordnung (EU) 2023/1230", "applicable": true, "confidence": 0.95, "reason": "Industrieroboter faellt unter Annex I der Maschinenverordnung" }, { "regulation": "low_voltage", "title": "Niederspannungsrichtlinie 2014/35/EU", "applicable": true, "confidence": 0.88, "reason": "Betriebsspannung 400V AC" }, { "regulation": "ai_act", "title": "AI Act (EU) 2024/1689", "applicable": false, "confidence": 0.72, "reason": "Keine KI-Komponente identifiziert" } ] } }`} {/* ============================================================ */} {/* HAZARDS & PATTERN MATCHING */} {/* ============================================================ */}

Hazards & Pattern Matching

Gefahrenanalyse nach ISO 12100 mit 102 Hazard-Patterns. Die Pattern-Matching-Engine erkennt automatisch Gefahren basierend auf Maschinentyp, Komponenten und Energiequellen.

Die Engine enthaelt 102 vordefinierte Gefahrenmuster (HP001-HP102), die nach ISO 12100 Anhang A kategorisiert sind: mechanisch, elektrisch, thermisch, Laerm, Vibration, Strahlung, Materialien/Substanzen und ergonomisch. {`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/hazards/suggest" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": { "suggestions": [ { "hazard_type": "mechanical", "title": "Quetschgefahr durch bewegliche Roboterarme", "description": "Unkontrollierte Bewegung der Achsen kann zu Quetschungen fuehren", "iso_reference": "ISO 12100 Anhang A.1", "severity": "high", "confidence": 0.91 }, { "hazard_type": "electrical", "title": "Stromschlaggefahr bei Wartungsarbeiten", "description": "Zugang zu spannungsfuehrenden Teilen bei geoeffnetem Schaltschrank", "iso_reference": "ISO 12100 Anhang A.2", "severity": "critical", "confidence": 0.87 } ] } }`} {`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/match-patterns" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": { "total_patterns_checked": 102, "matches": 14, "results": [ { "pattern_id": "HP003", "title": "Crushing hazard from linear actuator", "category": "mechanical", "match_score": 0.94, "matched_components": ["Servo-Antrieb Achse 1", "Linearfuehrung"], "matched_energy_sources": ["EN03"], "suggested_hazard": { "title": "Quetschgefahr durch Linearantrieb", "severity": "high" } } ] } }`} {/* ============================================================ */} {/* RISK ASSESSMENT */} {/* ============================================================ */}

Risk Assessment

4-Faktor-Risikobewertung nach ISO 12100 mit den Parametern Schwere (S), Exposition (E), Eintrittswahrscheinlichkeit (P) und Vermeidbarkeit (A).

Request Body

{`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/hazards/haz_5678/assess" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -H "Content-Type: application/json" \\ -d '{ "severity": 4, "exposure": 3, "probability": 2, "avoidance": 3 }'`}

Response (200 OK)

{`{ "success": true, "data": { "hazard_id": "haz_5678", "severity": 4, "exposure": 3, "probability": 2, "avoidance": 3, "inherent_risk": 12, "risk_level": "high", "c_eff": 0.65, "residual_risk": 4.2, "residual_risk_level": "medium", "risk_acceptable": false, "recommendation": "Zusaetzliche Schutzmassnahmen erforderlich. 3-Stufen-Hierarchie anwenden." } }`} {`curl -X GET "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/risk-summary" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": { "total_hazards": 14, "assessed": 12, "unassessed": 2, "risk_distribution": { "critical": 1, "high": 4, "medium": 5, "low": 2 }, "residual_risk_distribution": { "critical": 0, "high": 1, "medium": 3, "low": 8 }, "average_c_eff": 0.71, "overall_risk_acceptable": false } }`} {/* ============================================================ */} {/* MITIGATIONS */} {/* ============================================================ */}

Mitigations

Massnahmenverwaltung nach der 3-Stufen-Hierarchie gemaess ISO 12100:

  1. Design — Inherent Safe Design (Gefahrenbeseitigung durch Konstruktion)
  2. Protective — Schutzeinrichtungen und technische Schutzmassnahmen
  3. Information — Benutzerinformation (Warnhinweise, Anleitungen, Schulungen)

Request Body

{`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/hazards/haz_5678/mitigations" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -H "Content-Type: application/json" \\ -d '{ "title": "Schutzgitter mit Sicherheitsschalter", "description": "Installation eines trennenden Schutzgitters mit Verriegelung nach ISO 14120", "hierarchy_level": "protective", "responsible": "Sicherheitsingenieur", "deadline": "2026-04-30T00:00:00Z" }'`}

Response (201 Created)

{`{ "success": true, "data": { "id": "mit_abcd1234", "hazard_id": "haz_5678", "title": "Schutzgitter mit Sicherheitsschalter", "hierarchy_level": "protective", "status": "planned", "verified": false, "created_at": "2026-03-16T11:00:00Z" } }`} {`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/validate-mitigation-hierarchy" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": { "valid": false, "violations": [ { "hazard_id": "haz_5678", "hazard_title": "Quetschgefahr durch Linearantrieb", "issue": "Nur Information-Massnahmen vorhanden. Design- oder Schutzmassnahmen muessen vorrangig angewendet werden.", "missing_levels": ["design", "protective"] } ], "summary": { "total_hazards_with_mitigations": 12, "hierarchy_compliant": 9, "hierarchy_violations": 3 } } }`} {/* ============================================================ */} {/* EVIDENCE */} {/* ============================================================ */}

Evidence

Evidenz-Dateien hochladen und verwalten (Pruefberichte, Zertifikate, Fotos, etc.).

{`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/evidence" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -F "file=@pruefbericht_schutzgitter.pdf" \\ -F "title=Pruefbericht Schutzgitter ISO 14120" \\ -F "evidence_type=test_report" \\ -F "linked_mitigation_id=mit_abcd1234"`}

Response (201 Created)

{`{ "success": true, "data": { "id": "evi_xyz789", "title": "Pruefbericht Schutzgitter ISO 14120", "evidence_type": "test_report", "file_name": "pruefbericht_schutzgitter.pdf", "file_size": 245760, "linked_mitigation_id": "mit_abcd1234", "created_at": "2026-03-16T12:00:00Z" } }`} {/* ============================================================ */} {/* VERIFICATION PLANS */} {/* ============================================================ */}

Verification Plans

Verifizierungsplaene erstellen und abarbeiten.

{`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/verification-plan" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -H "Content-Type: application/json" \\ -d '{ "title": "Schutzgitter-Verifizierung", "description": "Pruefung der Schutzgitter nach ISO 14120", "method": "inspection", "linked_mitigation_id": "mit_abcd1234", "planned_date": "2026-04-15T00:00:00Z" }'`}

Response (201 Created)

{`{ "success": true, "data": { "id": "vp_plan001", "title": "Schutzgitter-Verifizierung", "method": "inspection", "status": "planned", "linked_mitigation_id": "mit_abcd1234", "planned_date": "2026-04-15T00:00:00Z", "created_at": "2026-03-16T12:30:00Z" } }`} {/* ============================================================ */} {/* CE TECHNICAL FILE */} {/* ============================================================ */}

CE Technical File

LLM-gestuetzte Generierung der Technischen Dokumentation (CE Technical File). Die API generiert alle erforderlichen Abschnitte basierend auf den Projektdaten.

Die Generierung verwendet einen LLM-Service (qwen3:30b-a3b oder claude-sonnet-4-5) fuer kontextbasierte Texterstellung. Alle generierten Abschnitte muessen vor der Freigabe manuell geprueft werden (Human Oversight). {`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/tech-file/generate" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": { "sections_generated": 8, "sections": [ { "section": "general_description", "title": "Allgemeine Beschreibung", "status": "generated", "word_count": 450 }, { "section": "risk_assessment", "title": "Risikobeurteilung", "status": "generated", "word_count": 1200 }, { "section": "safety_requirements", "title": "Sicherheitsanforderungen", "status": "generated", "word_count": 800 }, { "section": "verification_results", "title": "Verifizierungsergebnisse", "status": "generated", "word_count": 600 } ], "total_word_count": 4850, "generation_time_ms": 12500 } }`}

Export-Formate

{`# PDF Export curl -X GET "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/tech-file/export?format=pdf" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -o technical-file.pdf # Markdown Export curl -X GET "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/tech-file/export?format=md" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -o technical-file.md`} {/* ============================================================ */} {/* MONITORING */} {/* ============================================================ */}

Monitoring

Post-Market-Surveillance: Monitoring-Ereignisse erfassen und verfolgen.

{`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/monitoring" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -H "Content-Type: application/json" \\ -d '{ "event_type": "incident", "title": "Schutzgitter-Sensor Fehlausloesung", "description": "Sicherheitssensor hat ohne erkennbaren Grund ausgeloest", "severity": "medium", "occurred_at": "2026-03-15T14:30:00Z" }'`}

Response (201 Created)

{`{ "success": true, "data": { "id": "mon_evt001", "event_type": "incident", "title": "Schutzgitter-Sensor Fehlausloesung", "severity": "medium", "status": "open", "occurred_at": "2026-03-15T14:30:00Z", "created_at": "2026-03-16T08:00:00Z" } }`} {/* ============================================================ */} {/* LIBRARIES (PROJECT-INDEPENDENT) */} {/* ============================================================ */}

Libraries (projektunabhaengig)

Stammdaten-Bibliotheken fuer die Gefahrenanalyse. Diese Endpoints sind projektunabhaengig und liefern die Referenzdaten fuer die gesamte IACE-Engine.

{`curl -X GET "https://api.breakpilot.io/sdk/v1/iace/hazard-library" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": [ { "id": "HP001", "title": "Crushing hazard from closing mechanisms", "category": "mechanical", "iso_reference": "ISO 12100 Anhang A.1", "typical_components": ["actuator", "press", "clamp"], "severity_range": "medium-critical" }, { "id": "HP045", "title": "Electric shock from exposed conductors", "category": "electrical", "iso_reference": "ISO 12100 Anhang A.2", "typical_components": ["power_supply", "motor", "controller"], "severity_range": "high-critical" } ], "meta": { "total": 102, "categories": { "mechanical": 28, "electrical": 15, "thermal": 10, "noise": 8, "vibration": 7, "radiation": 9, "materials": 12, "ergonomic": 13 } } }`} {/* ============================================================ */} {/* AUDIT TRAIL */} {/* ============================================================ */}

Audit Trail

Lueckenloser Audit-Trail aller Projektaenderungen fuer Compliance-Nachweise.

{`curl -X GET "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/audit-trail" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": [ { "id": "aud_001", "action": "hazard_created", "entity_type": "hazard", "entity_id": "haz_5678", "user_id": "user_abc", "changes": { "title": "Quetschgefahr durch Linearantrieb", "severity": "high" }, "timestamp": "2026-03-16T10:15:00Z" }, { "id": "aud_002", "action": "risk_assessed", "entity_type": "hazard", "entity_id": "haz_5678", "user_id": "user_abc", "changes": { "inherent_risk": 12, "risk_level": "high" }, "timestamp": "2026-03-16T10:20:00Z" }, { "id": "aud_003", "action": "tech_file_section_approved", "entity_type": "tech_file", "entity_id": "risk_assessment", "user_id": "user_def", "changes": { "status": "approved", "approved_by": "Dr. Mueller" }, "timestamp": "2026-03-16T15:00:00Z" } ] }`} {/* ============================================================ */} {/* RAG LIBRARY SEARCH */} {/* ============================================================ */}

RAG Library Search

Semantische Suche in der Compliance-Bibliothek via RAG (Retrieval-Augmented Generation). Ermoeglicht kontextbasierte Anreicherung von Tech-File-Abschnitten.

{`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/library-search" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -H "Content-Type: application/json" \\ -d '{ "query": "Schutzeinrichtungen fuer Industrieroboter Maschinenverordnung", "top_k": 5 }'`}

Response (200 OK)

{`{ "success": true, "data": { "query": "Schutzeinrichtungen fuer Industrieroboter Maschinenverordnung", "results": [ { "id": "mr-annex-iii-1.1.4", "title": "Maschinenverordnung Anhang III 1.1.4 — Schutzmassnahmen", "content": "Trennende Schutzeinrichtungen muessen fest angebracht oder verriegelt sein...", "source": "machinery_regulation", "score": 0.93 } ], "total_results": 5, "search_time_ms": 38 } }`} {`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/tech-file/safety_requirements/enrich" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": { "section": "safety_requirements", "enriched_content": "... (aktualisierter Abschnitt mit Regulierungsreferenzen) ...", "citations_added": 4, "sources": [ { "id": "mr-annex-iii-1.1.4", "title": "Maschinenverordnung Anhang III 1.1.4", "relevance_score": 0.93 } ] } }`} {/* ============================================================ */} {/* SDK INTEGRATION */} {/* ============================================================ */}

SDK Integration

Beispiel fuer die Integration der IACE-API in eine Anwendung:

{`import { getSDKBackendClient } from '@breakpilot/compliance-sdk' const client = getSDKBackendClient() // 1. Projekt erstellen const project = await client.post('/iace/projects', { machine_name: 'RoboArm X500', machine_type: 'Industrieroboter', manufacturer: 'TechCorp GmbH' }) // 2. Aus Firmenprofil initialisieren await client.post(\`/iace/projects/\${project.id}/init-from-profile\`) // 3. Komponenten hinzufuegen await client.post(\`/iace/projects/\${project.id}/components\`, { name: 'Servo-Antrieb Achse 1', component_type: 'actuator', is_safety_relevant: true }) // 4. Regulierungen klassifizieren const classifications = await client.post( \`/iace/projects/\${project.id}/classify\` ) // 5. Pattern-Matching ausfuehren const patterns = await client.post( \`/iace/projects/\${project.id}/match-patterns\` ) console.log(\`\${patterns.matches} Gefahren erkannt von \${patterns.total_patterns_checked} Patterns\`) // 6. Erkannte Patterns als Gefahren uebernehmen await client.post(\`/iace/projects/\${project.id}/apply-patterns\`) // 7. Risiken bewerten for (const hazard of await client.get(\`/iace/projects/\${project.id}/hazards\`)) { await client.post(\`/iace/projects/\${project.id}/hazards/\${hazard.id}/assess\`, { severity: 3, exposure: 2, probability: 2, avoidance: 2 }) } // 8. Tech File generieren const techFile = await client.post( \`/iace/projects/\${project.id}/tech-file/generate\` ) console.log(\`\${techFile.sections_generated} Abschnitte generiert\`) // 9. PDF exportieren const pdf = await client.get( \`/iace/projects/\${project.id}/tech-file/export?format=pdf\` ) `} LLM-basierte Endpoints (Tech-File-Generierung, Hazard-Suggest, RAG-Enrichment) verbrauchen LLM-Tokens. Professional-Plan: 50 Generierungen/Tag. Enterprise-Plan: unbegrenzt. Implementieren Sie Caching fuer wiederholte Anfragen. Alle LLM-generierten Inhalte muessen vor der Freigabe manuell geprueft werden. Die API erzwingt dies ueber den Approve-Workflow: generierte Abschnitte haben den Status "generated" und muessen explizit auf "approved" gesetzt werden.
) }