{"components":{"schemas":{"DevotionalImportResults":{"properties":{"items":{"items":{"properties":{"detail":{"type":"string"},"key":{"type":"string"},"outcome":{"enum":["created","updated","unchanged","skipped"]}},"required":["key","outcome","detail"],"type":"object"},"type":"array"},"summary":{"properties":{"created":{"type":"integer"},"skipped":{"type":"integer"},"unchanged":{"type":"integer"},"updated":{"type":"integer"}},"required":["created","updated","unchanged","skipped"],"type":"object"}},"required":["summary","items"],"type":"object"},"LooseDate":{"oneOf":[{"properties":{"precision":{"const":"day"},"value":{"format":"date","type":"string"}}},{"properties":{"precision":{"const":"month"},"value":{"pattern":"^[0-9]{4}-[0-9]{2}$","type":"string"}}},{"properties":{"precision":{"const":"year"},"value":{"type":"integer"}}},{"properties":{"precision":{"const":"century"},"value":{"type":"integer"}}}],"required":["precision","value"],"type":"object"},"Problem":{"properties":{"detail":{"type":"string"},"instance":{"type":"string"},"status":{"type":"integer"},"title":{"type":"string"},"type":{"format":"uri","type":"string"}},"required":["type","title","status"],"type":"object"},"RelicImportItem":{"description":"A relic keyed by its stable UUID. All editable fields are replaced together: omitted optional fields are cleared, and omitted description becomes empty. Identity, authorship and moderation are retained. Curators may edit relics; contributors may add unreviewed relics and edit their own until reviewed. Sources are added without removing existing citations.","properties":{"access_notes":{"type":["string","null"]},"church_id":{"format":"uuid","type":["string","null"]},"description":{"type":["string","null"]},"id":{"format":"uuid","type":"string"},"kind":{"enum":["first_class","second_class","third_class","eucharistic_miracle","apparition"],"type":"string"},"latitude":{"maximum":90,"minimum":-90,"type":"number"},"longitude":{"maximum":180,"minimum":-180,"type":"number"},"name":{"type":"string"},"origin_date":{"oneOf":[{"$ref":"#/components/schemas/LooseDate"},{"type":"null"}]},"place_name":{"type":["string","null"]},"recognition":{"enum":["approved","under_study","not_approved","not_assessed",null]},"reviewed":{"description":"Curator-only import choice; defaults to true for curators. False keeps a new record unreviewed but does not undo an existing review. Ignored for contributors.","type":["boolean","null"]},"saint_person_id":{"description":"Exact Common Person UUID with a devotional record. If saint_slug is also supplied, both must identify the same person.","format":"uuid","type":["string","null"]},"saint_slug":{"type":["string","null"]},"sources":{"items":{"$ref":"#/components/schemas/Source"},"type":"array"}},"required":["id","name","kind","latitude","longitude"],"type":"object"},"SaintImportDate":{"description":"A typed LooseDate, integer year, or recorded date such as 1897, 1897-09-30 or 13c. In merge mode, an empty string clears the date; omission or null retains it. fill_missing retains an existing date.","oneOf":[{"$ref":"#/components/schemas/LooseDate"},{"type":"integer"},{"type":"string"},{"type":"null"}]},"SaintImportItem":{"description":"A devotional record keyed by its stable slug. In the default merge mode, supplied fields replace the corresponding devotional fields; omitted or null fields are retained. fill_missing preserves existing Saint facts and requires an exact person_id. An unknown slug needs a name unless person_id supplies an existing person. Sources are added without removing existing citations.","properties":{"biography":{"maxLength":20000,"type":["string","null"]},"birth_date":{"$ref":"#/components/schemas/SaintImportDate"},"birth_place":{"properties":{"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"name":{"type":"string"}},"required":["name"],"type":["object","null"]},"canonisation_date":{"$ref":"#/components/schemas/SaintImportDate"},"death_date":{"$ref":"#/components/schemas/SaintImportDate"},"death_place":{"properties":{"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"name":{"type":"string"}},"required":["name"],"type":["object","null"]},"feast_day":{"maximum":31,"minimum":1,"type":["integer","null"]},"feast_month":{"description":"Supply month and day together, forming a valid calendar date.","maximum":12,"minimum":1,"type":["integer","null"]},"gender":{"enum":["male","female",null]},"legal_name":{"maxLength":300,"type":["string","null"]},"name":{"maxLength":200,"type":["string","null"]},"patronages":{"items":{"type":"string"},"maxItems":60,"type":["array","null"]},"person_id":{"description":"Existing Common Person UUID. Reuse this ID to attach the devotional record without allocating another person or changing that person's common fields. A slug owned by a different person is skipped.","format":"uuid","type":["string","null"]},"religious_order":{"maxLength":200,"type":["string","null"]},"slug":{"description":"Stable lower-case record key; do not derive identity from a display name.","maxLength":120,"type":"string"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"type":"array"},"titles":{"items":{"type":"string"},"maxItems":20,"type":["array","null"]},"veneration_status":{"description":"Recorded cause or veneration status, independent of clergy and office roles.","enum":["servant_of_god","venerable","blessed","saint"],"type":"string"}},"required":["slug"],"type":"object"},"SaintsAndRelicsImport":{"if":{"properties":{"mode":{"const":"fill_missing"}},"required":["mode"]},"properties":{"dry_run":{"default":false,"description":"Report intended per-item outcomes without changing records.","type":"boolean"},"mode":{"default":"merge","description":"merge uses the existing per-field import rules. fill_missing preserves existing Saint facts, requires an exact person_id on every Saint item, and rejects relics. The response echoes the mode actually applied.","enum":["merge","fill_missing"],"type":"string"},"relics":{"default":[],"items":{"$ref":"#/components/schemas/RelicImportItem"},"maxItems":2000,"type":"array"},"saints":{"default":[],"items":{"$ref":"#/components/schemas/SaintImportItem"},"maxItems":500,"type":"array"}},"then":{"properties":{"relics":{"maxItems":0},"saints":{"items":{"properties":{"person_id":{"format":"uuid","type":"string"}},"required":["person_id"]}}}},"type":"object"},"SaintsAndRelicsImportResponse":{"properties":{"dry_run":{"type":"boolean"},"mode":{"description":"The import mode actually applied, including during dry_run.","enum":["merge","fill_missing"],"type":"string"},"relics":{"$ref":"#/components/schemas/DevotionalImportResults"},"saints":{"$ref":"#/components/schemas/DevotionalImportResults"}},"required":["dry_run","mode","saints","relics"],"type":"object"},"Source":{"additionalProperties":false,"properties":{"citation":{"maxLength":1000,"type":"string"},"url":{"format":"uri","type":["string","null"]}},"required":["citation"],"type":"object"},"Verification":{"properties":{"checked_at":{"format":"date-time","type":["string","null"]},"found_at":{"type":["string","null"]},"primary_quote":{"maxLength":1000,"type":["string","null"]},"primary_source":{"type":["string","null"]},"status":{"enum":["unverified","verified","disputed"]}},"required":["status"],"type":"object"},"appointments":{"additionalProperties":false,"properties":{"end_event":{"enum":["appointed","selected","confirmed","installed","consecrated","elected","succeeded","resigned","retired","died","transferred","jurisdiction_transition","successor_recorded",null],"type":["string","null"]},"ended":{"oneOf":[{"$ref":"#/components/schemas/LooseDate"},{"type":"null"}]},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"historical":{"default":false,"description":"Source-attested concluded tenure, even when its end date is unknown.","type":"boolean"},"id":{"format":"uuid","type":"string"},"office_key":{"type":["string","null"]},"person_id":{"format":"uuid","type":["string","null"]},"person_name":{"type":"string"},"reference_person_id":{"format":"uuid","type":["string","null"]},"role":{"enum":["pope","archbishop","bishop","bishop_elect","eparch","ordinary","vicar_apostolic","apostolic_prefect","coadjutor","auxiliary","apostolic_administrator","diocesan_administrator","emeritus","prefect","president","secretary","superior_general","provincial","member","patriarch","major_archbishop","exarch","prelate","nuncio","permanent_observer","titular_bishop","titular_archbishop","patriarchal_administrator","patriarchal_vicar","protosyncellus","apostolic_visitor","curial_bishop","abbot","superior","apostolic_delegate"],"type":"string"},"see_slug":{"type":"string"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"start_event":{"enum":["appointed","selected","confirmed","installed","consecrated","elected","succeeded","resigned","retired","died","transferred","jurisdiction_transition","successor_recorded",null],"type":["string","null"]},"started":{"oneOf":[{"$ref":"#/components/schemas/LooseDate"},{"type":"null"}]},"tenure_note":{"description":"Source-reported uncertainty or tenure qualifiers.","type":"string"},"verification":{"$ref":"#/components/schemas/Verification"}},"type":"object"},"consecrations":{"additionalProperties":false,"properties":{"co_consecrator_ids":{"items":{"format":"uuid","type":"string"},"maxItems":32,"type":"array"},"consecrated_on":{"oneOf":[{"$ref":"#/components/schemas/LooseDate"},{"type":"null"}]},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"notes":{"type":"string"},"ordinand_id":{"format":"uuid","type":"string"},"place":{"type":["string","null"]},"principal_consecrator_id":{"format":"uuid","type":["string","null"]},"rite":{"enum":["latin","byzantine","old_catholic","orthodox","coptic","armenian","syriac","chaldean","other",null],"type":["string","null"]},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"}},"type":"object"},"group_memberships":{"additionalProperties":false,"properties":{"description":{"type":"string"},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"group_person_id":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"member_person_id":{"format":"uuid","type":"string"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"verification":{"$ref":"#/components/schemas/Verification"}},"type":"object"},"lineage_people":{"additionalProperties":false,"properties":{"aliases":{"items":{"type":"string"},"maxItems":30,"type":"array"},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"notes":{"type":"string"},"reference_person_id":{"format":"uuid","type":["string","null"]},"saint_slug":{"type":["string","null"]},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"title":{"type":["string","null"]}},"type":"object"},"offices":{"additionalProperties":false,"properties":{"description":{"type":"string"},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"key":{"type":"string"},"name":{"type":"string"},"parent_office_id":{"type":["string","null"]},"role":{"enum":["pope","archbishop","bishop","bishop_elect","eparch","ordinary","vicar_apostolic","apostolic_prefect","coadjutor","auxiliary","apostolic_administrator","diocesan_administrator","emeritus","prefect","president","secretary","superior_general","provincial","member","patriarch","major_archbishop","exarch","prelate","nuncio","permanent_observer","titular_bishop","titular_archbishop","patriarchal_administrator","patriarchal_vicar","protosyncellus","apostolic_visitor","curial_bishop","abbot","superior","apostolic_delegate"],"type":"string"},"see_slug":{"type":"string"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"title":{"type":["string","null"]},"verification":{"$ref":"#/components/schemas/Verification"}},"type":"object"},"people":{"additionalProperties":false,"properties":{"biography":{"maxLength":20000,"type":"string"},"birth_date":{"oneOf":[{"$ref":"#/components/schemas/LooseDate"},{"type":"null"}]},"birth_place":{"properties":{"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"name":{"type":"string"}},"required":["name"],"type":["object","null"]},"death_date":{"oneOf":[{"$ref":"#/components/schemas/LooseDate"},{"type":"null"}]},"death_place":{"properties":{"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"name":{"type":"string"}},"required":["name"],"type":["object","null"]},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"gender":{"enum":["male","female",null]},"id":{"format":"uuid","type":"string"},"kind":{"enum":["individual","group"]},"legal_name":{"type":["string","null"]},"links":{"items":{"properties":{"kind":{"enum":["saint","lineage","appointment"]},"person_id":{"format":"uuid","type":"string"},"record_key":{"type":"string"}},"required":["person_id","kind","record_key"],"type":"object"},"maxItems":20,"type":"array"},"name":{"maxLength":200,"type":"string"},"religious_order":{"type":["string","null"]},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"titles":{"items":{"type":"string"},"type":"array"}},"type":"object"},"person_novenas":{"additionalProperties":false,"properties":{"description":{"type":"string"},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"novena_slug":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"verification":{"$ref":"#/components/schemas/Verification"}},"type":"object"},"person_observances":{"additionalProperties":false,"description":"A sourced fixed date belonging to an exact person. Multiple dates per calendar are supported. A null calendar preserves an unscoped legacy date; Martyrology remembrances require roman_martyrology and no liturgical rank. These records do not alter annual transfers or precedence.","properties":{"calendar_id":{"enum":["ordinary","traditional","dominican","roman_martyrology",null]},"day":{"maximum":31,"minimum":1,"type":"integer"},"description":{"type":"string"},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["calendar_observance","martyrology_remembrance"]},"month":{"maximum":12,"minimum":1,"type":"integer"},"person_id":{"format":"uuid","type":"string"},"rank_label":{"type":["string","null"]},"source_record_key":{"type":["string","null"]},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"title":{"type":"string"},"verification":{"$ref":"#/components/schemas/Verification"}},"type":"object"},"place_dedications":{"additionalProperties":false,"properties":{"description":{"type":"string"},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"person_id":{"format":"uuid","type":"string"},"place_id":{"format":"uuid","type":"string"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"verification":{"$ref":"#/components/schemas/Verification"}},"type":"object"},"places":{"additionalProperties":false,"properties":{"address":{"type":["string","null"]},"also_known_as":{"items":{"type":"string"},"maxItems":30,"type":"array"},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["church","cathedral","basilica","chapel","oratory","shrine","monastery","cemetery","other"],"type":"string"},"latitude":{"maximum":90,"minimum":-90,"type":"number"},"longitude":{"maximum":180,"minimum":-180,"type":"number"},"name":{"type":"string"},"notes":{"type":["string","null"]},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"website":{"type":["string","null"]}},"type":"object"},"relic_people":{"additionalProperties":false,"properties":{"description":{"type":"string"},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"person_id":{"format":"uuid","type":"string"},"relic_id":{"format":"uuid","type":"string"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"verification":{"$ref":"#/components/schemas/Verification"}},"type":"object"},"sees":{"additionalProperties":false,"properties":{"country":{"description":"Two-letter country code; empty for transnational institutions.","type":"string"},"ended":{"oneOf":[{"$ref":"#/components/schemas/LooseDate"},{"type":"null"}]},"established":{"oneOf":[{"$ref":"#/components/schemas/LooseDate"},{"type":"null"}]},"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"historical":{"default":false,"description":"The institution is recorded as concluded; its end date may be unknown.","type":"boolean"},"kind":{"enum":["archdiocese","diocese","eparchy","exarchate","ordinariate","military_ordinariate","apostolic_vicariate","apostolic_prefecture","military_vicariate","dicastery","institute","chaplaincy","tribunal","institution","archeparchy","major_archiepiscopal_church","patriarchate","territorial_prelature","territorial_abbey","apostolic_administration","mission_sui_iuris","personal_prelature","patriarchal_dependent_territory","patriarchal_vicariate","diplomatic_mission","titular_see"]},"metropolitan":{"type":["string","null"]},"name":{"maxLength":200,"type":"string"},"organisation_id":{"format":"uuid","type":["string","null"]},"parent_slug":{"type":["string","null"]},"rite":{"type":"string"},"slug":{"type":"string"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"verification":{"$ref":"#/components/schemas/Verification"},"website":{"type":["string","null"]}},"type":"object"},"transitions":{"additionalProperties":false,"properties":{"expected_updated_at":{"description":"Required to edit an existing record. Use the value from its latest GET; stale edits return 409.","format":"date-time","type":"string"},"from_see_slug":{"type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["renamed","elevated","restored","split","merged","territory_transfer","suppressed"]},"occurred":{"oneOf":[{"$ref":"#/components/schemas/LooseDate"},{"type":"null"}]},"sources":{"items":{"$ref":"#/components/schemas/Source"},"maxItems":50,"type":"array"},"summary":{"type":"string"},"to_see_slug":{"type":"string"},"verification":{"$ref":"#/components/schemas/Verification"}},"type":"object"}},"securitySchemes":{"bearerAuth":{"description":"A Gianna API key (`gianna_...`) from Settings, Developer access. Every plan includes one.","scheme":"bearer","type":"http"},"oauth2":{"description":"OAuth 2.1 authorization code with PKCE (S256). The token is a scoped API key.","flows":{"authorizationCode":{"authorizationUrl":"/oauth/authorize","scopes":{"directory:read":"Look up churches and their Mass and Confession times","household:read":"Read your tasks, reminders, routines, intentions, novena, and memory","household:write":"Add and change your tasks, reminders, intentions, and novena","liturgy:read":"Read the liturgical calendar, Mass readings, Office, saints, and novenas","reference:read":"Read Catholic reference data: the liturgy, Scripture, prayers, teaching, churches and their times, saints, relics, lineage, groups and jobs"},"tokenUrl":"/oauth/token"}},"type":"oauth2"}}},"info":{"description":"People, institutions, offices, recorded appointments and episcopal lineage. Reads need reference:read. Resource writes need an account-bound bearer token with household:write and the account's current curator or administrator authority; the older /import also accepts relic contributions from other accounts. No paid plan is required. Names never merge identities. Resource edits retain omitted fields; explicit null clears optional fields. Resource idempotency keys survive 24 hours in process memory; restarts forget them. Resource batch imports report partial database failures explicitly. The older /import has separate field and outcome rules described by its operation.","title":"Gianna Catholic Registry API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/":{"get":{"operationId":"getRegistryIndex","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Links"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[],"summary":"Service index"}},"/appointments":{"get":{"operationId":"listRegistryappointments","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistryappointments","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/appointments"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/appointments/{key}":{"get":{"operationId":"getRegistryappointments","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistryappointments","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/appointments"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/consecrations":{"get":{"operationId":"listRegistryconsecrations","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistryconsecrations","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/consecrations"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/consecrations/{key}":{"get":{"operationId":"getRegistryconsecrations","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistryconsecrations","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/consecrations"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/group_memberships":{"get":{"operationId":"listRegistrygroup_memberships","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistrygroup_memberships","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/group_memberships"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/group_memberships/{key}":{"get":{"operationId":"getRegistrygroup_memberships","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistrygroup_memberships","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/group_memberships"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/import":{"post":{"description":"No paid plan is required. Saints and causes require curator or administrator authority; other accounts may contribute unreviewed relics and edit their own until reviewed. For a devotional record belonging to an existing person, supply that person's exact person_id rather than creating a second identity. mode defaults to merge. fill_missing preserves existing Saint facts, requires an exact person_id on every Saint item, and rejects relics. The response echoes the mode actually applied. Items are processed sequentially, and rejected items are reported as skipped. This route does not promise a transaction across the batch or support Idempotency-Key replay; an unexpected failure may follow earlier applied items. Use dry_run first and inspect every outcome.","operationId":"importSaintsAndRelics","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaintsAndRelicsImport"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaintsAndRelicsImportResponse"}}},"description":"Per-item outcomes and counts; inspect skipped items and their details"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Batch limits exceeded, or fill_missing has relics or lacks exact person IDs"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Account-bound household:write token required; saints also require curator or administrator authority"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Preview or import devotional records and relic contributions"}},"/lineage_people":{"get":{"operationId":"listRegistrylineage_people","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistrylineage_people","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lineage_people"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/lineage_people/{key}":{"get":{"operationId":"getRegistrylineage_people","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistrylineage_people","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lineage_people"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/offices":{"get":{"operationId":"listRegistryoffices","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistryoffices","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/offices"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/offices/{see}/{office}":{"get":{"operationId":"getRegistryoffices","parameters":[{"in":"path","name":"see","required":true,"schema":{"type":"string"}},{"in":"path","name":"office","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistryoffices","parameters":[{"in":"path","name":"see","required":true,"schema":{"type":"string"}},{"in":"path","name":"office","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/offices"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/people":{"get":{"operationId":"listRegistrypeople","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistrypeople","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/people"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/people/{key}":{"get":{"operationId":"getRegistrypeople","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistrypeople","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/people"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/person_novenas":{"get":{"operationId":"listRegistryperson_novenas","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistryperson_novenas","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/person_novenas"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/person_novenas/{key}":{"get":{"operationId":"getRegistryperson_novenas","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistryperson_novenas","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/person_novenas"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/person_observances":{"get":{"operationId":"listRegistryperson_observances","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistryperson_observances","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/person_observances"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/person_observances/{key}":{"get":{"operationId":"getRegistryperson_observances","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistryperson_observances","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/person_observances"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/place_dedications":{"get":{"operationId":"listRegistryplace_dedications","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistryplace_dedications","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/place_dedications"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/place_dedications/{key}":{"get":{"operationId":"getRegistryplace_dedications","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistryplace_dedications","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/place_dedications"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/places":{"get":{"operationId":"listRegistryplaces","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistryplaces","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/places"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/places/{key}":{"get":{"operationId":"getRegistryplaces","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistryplaces","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/places"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/relic_people":{"get":{"operationId":"listRegistryrelic_people","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistryrelic_people","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/relic_people"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/relic_people/{key}":{"get":{"operationId":"getRegistryrelic_people","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistryrelic_people","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/relic_people"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/resources/import":{"post":{"operationId":"importRegistryResources","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"dry_run":{"default":false,"type":"boolean"},"mode":{"default":"fill_missing","description":"fill_missing preserves existing substantive values; replace requires expected_updated_at for existing records.","enum":["fill_missing","replace"]},"resources":{"items":{"additionalProperties":false,"properties":{"data":{"description":"Fields from the schema for kind.","type":"object"},"key":{"type":"string"},"kind":{"enum":["people","places","sees","offices","appointments","lineage_people","consecrations","transitions","group_memberships","relic_people","place_dedications","person_novenas","person_observances"]}},"required":["kind","key","data"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"}},"required":["resources"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"One typed outcome per resource; complete indicates success"},"207":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Partial application; inspect results and failed_index"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected resource"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid batch"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Preflight or import a bounded batch as a curator"}},"/sees":{"get":{"operationId":"listRegistrysees","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistrysees","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/sees"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/sees/{key}":{"get":{"operationId":"getRegistrysees","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistrysees","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/sees"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}},"/transitions":{"get":{"operationId":"listRegistrytransitions","parameters":[{"in":"query","name":"q","schema":{"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Collection: resources,total,offset,limit"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"List reference records"},"post":{"operationId":"createRegistrytransitions","parameters":[{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/transitions"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Created; Location names the resource"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Already exists"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add a reference record as a curator"}},"/transitions/{key}":{"get":{"operationId":"getRegistrytransitions","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resource with updated_at"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found or unavailable"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["reference:read"]}],"summary":"Read one reference record"},"put":{"operationId":"putRegistrytransitions","parameters":[{"description":"A jurisdiction slug for sees; a UUID for other resources.","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Retry safely: the same key and body replays the first response for 24 hours.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/transitions"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Edited"},"201":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Created"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid credential"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Lacking scope, lapsed plan, or anonymous visitor"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Stale or protected record"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid resource"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Rate-limited; see Retry-After"}},"security":[{"bearerAuth":[]},{"oauth2":["household:write"]}],"summary":"Add or edit a reference record as a curator"}}},"servers":[{"url":"/registry/v1"}]}