{"openapi":"3.0.3","info":{"title":"Code Black Ancestral API","version":"1.0.0","description":"Record search, lineage trace, bridge runs and GEDCOM export over the Code Black genealogy engine (DAJAI)."},"servers":[{"url":"https://codeblack-api.dajai.io"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/v1/health":{"get":{"summary":"Health","responses":{"200":{"description":"OK"}}}},"/v1/me":{"get":{"summary":"Plan + usage","security":[{"bearer":[]}],"parameters":[],"responses":{"200":{"description":"OK"}}}},"/v1/persons":{"get":{"summary":"Search persons (1 units)","security":[{"bearer":[]}],"parameters":[{"name":"q","in":"query","schema":{"type":"string"}},{"name":"lineage","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/persons/{id}":{"get":{"summary":"Person with sourced claims (1 units)","security":[{"bearer":[]}],"parameters":[],"responses":{"200":{"description":"OK"}}}},"/v1/lineage/{id}":{"get":{"summary":"Ancestor walk (5 units)","security":[{"bearer":[]}],"parameters":[{"name":"max_gen","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/records/search":{"get":{"summary":"Record search over ds_* tables (3 units)","security":[{"bearer":[]}],"parameters":[{"name":"q","in":"query","schema":{"type":"string"}},{"name":"tables","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/text/search":{"get":{"summary":"Text corpus search (2 units)","security":[{"bearer":[]}],"parameters":[{"name":"q","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/gaps":{"get":{"summary":"Gap report (2 units)","security":[{"bearer":[]}],"parameters":[],"responses":{"200":{"description":"OK"}}}},"/v1/export/gedcom":{"get":{"summary":"GEDCOM export (25 units)","security":[{"bearer":[]}],"parameters":[{"name":"subject","in":"query","schema":{"type":"string"}},{"name":"lineage","in":"query","schema":{"type":"string"}},{"name":"raw","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/semantic":{"post":{"summary":"Semantic search (10 units)","security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string"},"k":{"type":"integer"},"pools":{"type":"array","items":{"type":"string"}}},"required":["q"]}}}},"responses":{"200":{"description":"OK"}}}},"/v1/bridge/run":{"post":{"summary":"Bridge run for an ancestor (10 units)","security":[{"bearer":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"birth_year":{"type":"integer"},"place":{"type":"string"},"holder":{"type":"string"},"k":{"type":"integer"}},"required":["name"]}}}},"responses":{"200":{"description":"OK"}}}},"/v1/billing/checkout":{"post":{"summary":"Create a Stripe Checkout session","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"string"},"email":{"type":"string"}},"required":["plan"]}}}},"responses":{"200":{"description":"{url}"}}}},"/mcp":{"post":{"summary":"MCP Streamable HTTP endpoint (JSON-RPC 2.0)","security":[{"bearer":[]}],"responses":{"200":{"description":"JSON-RPC response"}}}}}}