{"openapi":"3.1.0","info":{"title":"EU AI Comply \u2014 Enterprise API","version":"1.0.0","description":"REST API for integrating EU AI Act compliance data with external GRC tools, BPM platforms, and custom dashboards.\n\n**Access:** Enterprise plan only. Generate a token in the platform under *Enterprise Integrations \u2192 API Tokens*.\n\n**Base URL:** `https:\/\/euaicomply.eu\/api\/v1`\n\n**Rate limit:** 60 requests per minute per token. Exceeded requests return `429 Too Many Requests`.\n\n**Webhook support:** Configure outbound webhooks under *Enterprise Integrations \u2192 Webhooks* to receive real-time event notifications.","contact":{"name":"EU AI Comply Support","email":"contact@euaicomply.eu","url":"https:\/\/euaicomply.eu\/contact"}},"servers":[{"url":"https:\/\/euaicomply.eu\/api\/v1","description":"Production"}],"security":[{"bearerAuth":[]}],"paths":{"\/me":{"get":{"summary":"Authenticated user","operationId":"getMe","tags":["Account"],"description":"Returns the authenticated user details and their role within the organization.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"User details","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Me"},"example":{"id":"uuid","name":"Maria Ionescu","email":"maria@example.ro","role":"compliance_officer","tenant_id":42}}}},"401":{"$ref":"#\/components\/responses\/Unauthenticated"},"403":{"$ref":"#\/components\/responses\/NotEnterprise"}}}},"\/ai-systems":{"get":{"summary":"List AI systems","operationId":"listAiSystems","tags":["AI Systems"],"description":"Returns all AI systems registered by your organization, scoped to your tenant. Supports filtering by risk level and lifecycle status.","parameters":[{"name":"risk_category","in":"query","required":false,"schema":{"type":"string","enum":["prohibited","high_risk","limited_transparency","minimal_risk"]},"description":"Filter by risk category"},{"name":"lifecycle_status","in":"query","required":false,"schema":{"type":"string","enum":["active","retired","draft"]},"description":"Filter by lifecycle status"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1}}],"responses":{"200":{"description":"Paginated list of AI systems","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/AiSystem"}},"meta":{"$ref":"#\/components\/schemas\/PaginationMeta"},"links":{"$ref":"#\/components\/schemas\/PaginationLinks"}}}}}},"401":{"$ref":"#\/components\/responses\/Unauthenticated"},"403":{"$ref":"#\/components\/responses\/NotEnterprise"}}}},"\/ai-systems\/{id}":{"get":{"summary":"Get AI system","operationId":"getAiSystem","tags":["AI Systems"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"AI system details","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AiSystem"}}}},"404":{"$ref":"#\/components\/responses\/NotFound"},"401":{"$ref":"#\/components\/responses\/Unauthenticated"},"403":{"$ref":"#\/components\/responses\/NotEnterprise"}}}},"\/obligations":{"get":{"summary":"List obligations with status","operationId":"listObligations","tags":["Compliance"],"description":"Returns all 28 EU AI Act obligations with their current compliance status for your organization.","responses":{"200":{"description":"Obligations with status","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/Obligation"}},"meta":{"type":"object","properties":{"total":{"type":"integer","example":28},"completed":{"type":"integer","example":12}}}}}}}},"401":{"$ref":"#\/components\/responses\/Unauthenticated"},"403":{"$ref":"#\/components\/responses\/NotEnterprise"}}}},"\/incidents":{"get":{"summary":"List incidents","operationId":"listIncidents","tags":["Incidents"],"parameters":[{"name":"severity","in":"query","required":false,"schema":{"type":"string","enum":["minor","serious","critical"]}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["draft","investigating","reported_provider","reported_authority","closed","not_serious"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1}}],"responses":{"200":{"description":"Paginated list of incidents","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/Incident"}},"meta":{"$ref":"#\/components\/schemas\/PaginationMeta"},"links":{"$ref":"#\/components\/schemas\/PaginationLinks"}}}}}},"401":{"$ref":"#\/components\/responses\/Unauthenticated"},"403":{"$ref":"#\/components\/responses\/NotEnterprise"}}},"post":{"summary":"Create incident","operationId":"createIncident","tags":["Incidents"],"description":"Creates a new incident report (Art. 73). On success, fires the `incident.created` webhook to all active endpoints.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/IncidentCreateRequest"},"example":{"title":"Bias detectat \u00een modelul de scoring","description":"Modelul a produs scoruri semnificativ mai mici pentru un grup demografic.","severity":"serious","occurred_at":"2026-05-15T14:30:00Z"}}}},"responses":{"201":{"description":"Incident created","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Incident"}}}},"422":{"$ref":"#\/components\/responses\/ValidationError"},"401":{"$ref":"#\/components\/responses\/Unauthenticated"},"403":{"$ref":"#\/components\/responses\/NotEnterprise"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Sanctum personal access token","description":"Generate a token in the platform under Enterprise Integrations \u2192 API Tokens. Include it as `Authorization: Bearer <token>` in every request."}},"schemas":{"Me":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"email":{"type":"string","format":"email"},"role":{"type":"string","example":"compliance_officer"},"tenant_id":{"type":"integer"}}},"AiSystem":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","example":"Sistem scoring credite"},"internal_code":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"vendor_name":{"type":"string","nullable":true},"intended_purpose":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"risk_category":{"type":"string","enum":["prohibited","high_risk","limited_transparency","minimal_risk"],"nullable":true},"lifecycle_status":{"type":"string","enum":["draft","active","retired"],"nullable":true},"classification_status":{"type":"string","nullable":true},"manual_uploaded":{"type":"boolean"},"fria_completed":{"type":"boolean"},"dpia_completed":{"type":"boolean"},"eu_db_registered":{"type":"boolean"},"first_deployed_at":{"type":"string","format":"date-time","nullable":true},"last_reviewed_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Obligation":{"type":"object","properties":{"code":{"type":"string","example":"O1"},"phase":{"type":"string","example":"P7"},"title":{"type":"string","example":"AI Literacy (Art. 4)"},"summary":{"type":"string"},"legal_anchor":{"type":"string","example":"art-4"},"applicable_when":{"type":"string","enum":["all","high_risk_only","transparency_only","gpai_only"]},"status":{"type":"string","enum":["not_started","in_progress","completed","not_applicable"]}}},"Incident":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"description":{"type":"string"},"severity":{"type":"string","enum":["minor","serious","critical"]},"status":{"type":"string","enum":["draft","investigating","reported_provider","reported_authority","closed","not_serious"]},"ai_system_id":{"type":"string","format":"uuid","nullable":true},"occurred_at":{"type":"string","format":"date-time","nullable":true},"detected_at":{"type":"string","format":"date-time","nullable":true},"reported_to_authority_at":{"type":"string","format":"date-time","nullable":true},"authority_deadline_at":{"type":"string","format":"date-time","nullable":true},"affected_persons_description":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"IncidentCreateRequest":{"type":"object","required":["title","description","severity","ai_system_id"],"properties":{"title":{"type":"string","maxLength":255},"description":{"type":"string"},"severity":{"type":"string","enum":["minor","serious","critical"]},"ai_system_id":{"type":"string","format":"uuid","description":"UUID of the related AI system (required; must belong to your tenant)"},"occurred_at":{"type":"string","format":"date-time","nullable":true},"detected_at":{"type":"string","format":"date-time","nullable":true},"affected_persons_description":{"type":"string","maxLength":1000,"nullable":true}}},"PaginationMeta":{"type":"object","properties":{"current_page":{"type":"integer"},"last_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"}}},"PaginationLinks":{"type":"object","properties":{"first":{"type":"string","format":"uri","nullable":true},"last":{"type":"string","format":"uri","nullable":true},"prev":{"type":"string","format":"uri","nullable":true},"next":{"type":"string","format":"uri","nullable":true}}},"Error":{"type":"object","properties":{"error":{"type":"string"}}},"ValidationErrorDetail":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"example":{"severity":["The severity field is required."]}}},"responses":{"Unauthenticated":{"description":"Missing or invalid Bearer token","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"message":"Unauthenticated."}}}},"NotEnterprise":{"description":"The tenant is not on the Enterprise plan","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"error":"API access requires the Enterprise plan.","upgrade_url":"https:\/\/euaicomply.eu\/pricing"}}}},"NotFound":{"description":"Resource not found or not accessible to this tenant","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"error":"AI system not found."}}}},"ValidationError":{"description":"Validation failed","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errors":{"$ref":"#\/components\/schemas\/ValidationErrorDetail"}}}}}}}},"tags":[{"name":"Account","description":"Authenticated user information"},{"name":"AI Systems","description":"Manage and query registered AI systems"},{"name":"Compliance","description":"EU AI Act obligation status per organization"},{"name":"Incidents","description":"Incident reports (Art. 73 \u2014 serious incidents)"}]}