{"openapi":"3.0.3","info":{"title":"Evertwin Identity Layer – Registry API","version":"1"},"components":{"securitySchemes":{"partnerKey":{"type":"http","scheme":"bearer"}},"schemas":{}},"paths":{"/healthz":{"get":{"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]}},"required":["status"],"additionalProperties":false}}}}}}},"/readyz":{"get":{"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"vault":{"type":"string","enum":["ok","unavailable"]}},"required":["status","vault"],"additionalProperties":false}}}}}}},"/v1/auth/magic-link":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]}}}},"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["accepted"]}},"required":["status"],"additionalProperties":false}}}}}}},"/v1/auth/verify":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","maxLength":200}},"required":["token"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/auth/logout":{"post":{"responses":{"200":{"description":"Default Response"}}}},"/v1/me":{"get":{"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["MEMBER","GUEST"]},"email":{"nullable":true,"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"expires_at":{"nullable":true,"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"records":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["OPT_OUT"]},"status":{"type":"string","enum":["ACTIVE","REVOKED"]},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"revoked_at":{"nullable":true,"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"expires_at":{"nullable":true,"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","kind","status","created_at","revoked_at","expires_at"],"additionalProperties":false}}},"required":["kind","email","expires_at","records"],"additionalProperties":false}}}}}}},"/v1/consent-texts/current":{"get":{"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["OPT_OUT"]},"version":{"type":"string"},"text":{"type":"string"}},"required":["kind","version","text"],"additionalProperties":false}}}}}}},"/v1/enrollments/sessions":{"post":{"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"expires_in":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"challenge":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"text":{"type":"string"}},"required":["code","text"],"additionalProperties":false}}},"required":["session_id","expires_in","challenge"],"additionalProperties":false}}}}}}},"/v1/enrollments":{"post":{"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"record_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["OPT_OUT"]},"status":{"type":"string","enum":["ACTIVE"]},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["record_id","kind","status","created_at"],"additionalProperties":false}}}}}}},"/v1/checks":{"post":{"security":[{"partnerKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"check_id":{"type":"string","pattern":"^chk_[0-9A-HJKMNP-TV-Z]{26}$"},"decision":{"type":"string","enum":["DENY","REVIEW","UNPROCESSABLE","NO_RECORD"]},"reason":{"type":"string","enum":["NO_FACE","TOO_MANY_FACES","LOW_QUALITY"]},"faces":{"type":"array","items":{"type":"object","properties":{"bbox":{"minItems":4,"maxItems":4,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"decision":{"type":"string","enum":["DENY","REVIEW","UNPROCESSABLE","NO_RECORD"]},"reason":{"type":"string","enum":["OPT_OUT","POSSIBLE_OPT_OUT","FACE_TOO_SMALL","LOW_QUALITY"]}},"required":["bbox","decision"],"additionalProperties":false}},"policy_version":{"type":"string"},"checked_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"input_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["check_id","decision","faces","policy_version","checked_at","input_sha256"],"additionalProperties":false}}}}}}},"/v1/consent-texts/guest":{"get":{"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["OPT_OUT"]},"version":{"type":"string"},"text":{"type":"string"}},"required":["kind","version","text"],"additionalProperties":false}}}}}}},"/v1/guest-invites":{"post":{"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"expires_in":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"active_guests":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"max_guests":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","expires_in","active_guests","max_guests"],"additionalProperties":false}}}}}}},"/v1/guest-sessions":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","maxLength":40}},"required":["code"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/records/{id}/revoke-intent":{"post":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"intent_token":{"type":"string"},"expires_in":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["intent_token","expires_in"],"additionalProperties":false}}}}}}},"/v1/records/{id}/revoke":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"intent_token":{"type":"string","maxLength":200}},"required":["intent_token"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"record_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["REVOKED"]},"revoked_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["record_id","status","revoked_at"],"additionalProperties":false}}}}}}}}}