{"openapi":"3.1.0","info":{"title":"Arkvos API","version":"1.0.0","description":"Organization-scoped API for Arkvos sites, workers, safety briefings, acknowledgments and verified check-ins.","contact":{"email":"support@arkvos.com"}},"servers":[{"url":"https://arkvos.com/api/v1","description":"Production"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Arkvos API key"},"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":["string","null"]}}}}}}},"security":[{"bearerAuth":[]}],"paths":{"/":{"get":{"summary":"API discovery","responses":{"200":{"description":"API metadata"}}}},"/me":{"get":{"summary":"Retrieve the authenticated organization","responses":{"200":{"description":"Organization"},"401":{"description":"Invalid API key"}}}},"/stats":{"get":{"summary":"Organization operational summary","responses":{"200":{"description":"Statistics"}}}},"/sites":{"get":{"summary":"List sites","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Site list"}}}},"/sites/{id}":{"get":{"summary":"Retrieve a site","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Site"},"404":{"description":"Not found"}}}},"/workers":{"get":{"summary":"List workers","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"site_id","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"}},{"name":"updated_after","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Worker list"}}}},"/workers/{id}":{"get":{"summary":"Retrieve a worker","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Worker"},"404":{"description":"Not found"}}}},"/briefings":{"get":{"summary":"List briefings","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"site_id","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string","enum":["draft","active","ended"]}}],"responses":{"200":{"description":"Briefing list"}}},"post":{"summary":"Create or publish a briefing","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title","content"],"properties":{"title":{"type":"string"},"content":{"type":"string"},"type":{"type":"string","enum":["safety","general","compliance","training"]},"site_id":{"type":"string"},"target_site_ids":{"oneOf":[{"const":"all"},{"type":"array","items":{"type":"string"}}]},"mandatory":{"type":"boolean"},"due_at":{"type":["string","null"],"format":"date-time"},"publish":{"type":"boolean","default":true}}}}}},"responses":{"201":{"description":"Briefing created"},"400":{"description":"Invalid request"}}}},"/briefings/{id}":{"get":{"summary":"Retrieve a briefing","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Briefing"},"404":{"description":"Not found"}}}},"/briefing-acknowledgments":{"get":{"summary":"List acknowledgments for a briefing","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"briefing_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Acknowledgment list"}}}},"/checkins":{"get":{"summary":"List verified or manual check-ins","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"site_id","in":"query","schema":{"type":"string"}},{"name":"worker_id","in":"query","schema":{"type":"string"}},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"verification_method","in":"query","schema":{"type":"string","enum":["verified","manual"]}}],"responses":{"200":{"description":"Check-in list"}}}},"/checkins/{id}":{"get":{"summary":"Retrieve a check-in","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Check-in"},"404":{"description":"Not found"}}}}}}