{"openapi":"3.1.0","info":{"title":"QENEX Pulse API","description":"Customer-facing REST API for QENEX Pulse. Authentication: Bearer pls_<key>. Rate limit: 100 req/min/token. See https://qenex.ai/api/ for endpoint catalogue and examples.","version":"1.0"},"paths":{"/health":{"get":{"tags":["Monitoring & Health"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"tags":["Monitoring & Health"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/signup":{"post":{"tags":["Signup"],"summary":"Signup","operationId":"signup_api_v1_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_SignupBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/tenants/":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Create Tenant","operationId":"create_tenant_api_v1_pulse_tenants__post","parameters":[{"name":"x-pulse-admin-token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pulse-Admin-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTenant"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Tenant Api V1 Pulse Tenants  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/tenants/{slug}/keys":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Mint Api Key","operationId":"mint_api_key_api_v1_pulse_tenants__slug__keys_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"label","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},{"name":"x-pulse-admin-token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pulse-Admin-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mint Api Key Api V1 Pulse Tenants  Slug  Keys Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/me":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Me","operationId":"me_api_v1_pulse_me_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Me Api V1 Pulse Me Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Add Vendor","operationId":"add_vendor_api_v1_pulse_vendors_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVendor"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Add Vendor Api V1 Pulse Vendors Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"List Vendors","operationId":"list_vendors_api_v1_pulse_vendors_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Vendors Api V1 Pulse Vendors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}":{"delete":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Remove Vendor","operationId":"remove_vendor_api_v1_pulse_vendors__domain__delete","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Remove Vendor Api V1 Pulse Vendors  Domain  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}/scan":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Force Scan","operationId":"force_scan_api_v1_pulse_vendors__domain__scan_post","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Force Scan Api V1 Pulse Vendors  Domain  Scan Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}/history":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Vendor History","operationId":"vendor_history_api_v1_pulse_vendors__domain__history_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Vendor History Api V1 Pulse Vendors  Domain  History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/alerts":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Alerts","operationId":"alerts_api_v1_pulse_alerts_get","parameters":[{"name":"unresolved","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Unresolved"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Alerts Api V1 Pulse Alerts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/summary":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Summary","operationId":"summary_api_v1_pulse_summary_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Summary Api V1 Pulse Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/dora/overview":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Dora Overview","description":"Aggregate DORA register + incident posture for the authenticated tenant.","operationId":"dora_overview_api_v1_pulse_dora_overview_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dora Overview Api V1 Pulse Dora Overview Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/ai-act/overview":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Ai Act Overview","description":"Aggregate EU AI Act posture for the authenticated tenant.","operationId":"ai_act_overview_api_v1_pulse_ai_act_overview_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ai Act Overview Api V1 Pulse Ai Act Overview Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/coverage":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Coverage All","description":"Return coverage report for every regulator in scope for the tenant's tier.","operationId":"coverage_all_api_v1_pulse_coverage_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Coverage All Api V1 Pulse Coverage Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/coverage.pdf":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Coverage Pdf","description":"Render the signed coverage report as a PDF (Ed25519 footer included).\n\nP13 F23: optional period_start / period_end / period_label parameters\nstamp the cover page so the export aligns with regulator audit cycles\n(DORA annual review, FCA thematic, ISO 27001 surveillance, SOC 2 Type II).\nThe cryptographic evidence underneath is current-state; the period label\ndocuments the audit cycle the export is being submitted against.","operationId":"coverage_pdf_api_v1_pulse_coverage_pdf_get","parameters":[{"name":"period_start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cycle start ISO date, e.g. 2025-01-17. Stamps the cover page; data remains current-state.","title":"Period Start"},"description":"Cycle start ISO date, e.g. 2025-01-17. Stamps the cover page; data remains current-state."},{"name":"period_end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cycle end ISO date, e.g. 2026-01-16. Stamps the cover page.","title":"Period End"},"description":"Cycle end ISO date, e.g. 2026-01-16. Stamps the cover page."},{"name":"period_label","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable label, e.g. 'DORA annual review 2025'.","title":"Period Label"},"description":"Human-readable label, e.g. 'DORA annual review 2025'."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/anchors/resources":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Anchor Resource Catalogue","description":"Public catalogue of every resource type the platform can anchor.\nAuditors compare this against the source release to verify nothing was\nsilently removed.","operationId":"anchor_resource_catalogue_api_v1_pulse_anchors_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Anchor Resource Catalogue Api V1 Pulse Anchors Resources Get"}}}}}}},"/api/v1/pulse/anchor/{slug}":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Anchor Tenant Index","description":"Per-tenant index: latest anchor + status for every registered resource.","operationId":"anchor_tenant_index_api_v1_pulse_anchor__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Anchor Tenant Index Api V1 Pulse Anchor  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/anchor/{slug}/{resource}":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Anchor Resource Json","description":"JSON: status + latest anchor + anchor history for one resource.","operationId":"anchor_resource_json_api_v1_pulse_anchor__slug___resource__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"resource","in":"path","required":true,"schema":{"type":"string","title":"Resource"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Anchor Resource Json Api V1 Pulse Anchor  Slug   Resource  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/anchor/{slug}/{resource}/tsr/{anchor_id}":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Anchor Resource Tsr","description":"Raw RFC 3161 TimeStampResp bytes for offline verification. Public.","operationId":"anchor_resource_tsr_api_v1_pulse_anchor__slug___resource__tsr__anchor_id__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"resource","in":"path","required":true,"schema":{"type":"string","title":"Resource"}},{"name":"anchor_id","in":"path","required":true,"schema":{"type":"integer","title":"Anchor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/anchor/{slug}/{resource}/rekor/{anchor_id}":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Anchor Resource Rekor","description":"JSON: the Rekor entry pointer (log_index + uuid + url) for an anchor.\nThe full entry is retrievable directly from the Rekor URL with a non-secret GET.","operationId":"anchor_resource_rekor_api_v1_pulse_anchor__slug___resource__rekor__anchor_id__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"resource","in":"path","required":true,"schema":{"type":"string","title":"Resource"}},{"name":"anchor_id","in":"path","required":true,"schema":{"type":"integer","title":"Anchor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Anchor Resource Rekor Api V1 Pulse Anchor  Slug   Resource  Rekor  Anchor Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/anchor/{slug}/{resource}/ots/{anchor_id}":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Anchor Resource Ots","description":"Raw OpenTimestamps proof bytes (.ots) for offline verification with `ots verify`.\n\nPublic. The proof auto-upgrades from calendar-server signature to a full Bitcoin\nMerkle proof after ~6 block confirmations (1-2 hours typical); both states are\nindependently verifiable.","operationId":"anchor_resource_ots_api_v1_pulse_anchor__slug___resource__ots__anchor_id__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"resource","in":"path","required":true,"schema":{"type":"string","title":"Resource"}},{"name":"anchor_id","in":"path","required":true,"schema":{"type":"integer","title":"Anchor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/coverage/signed":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Coverage Signed","description":"Ed25519-signed coverage report. The same payload as GET /coverage but\nwith a `_signature` block an auditor can verify against the published key.","operationId":"coverage_signed_api_v1_pulse_coverage_signed_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Coverage Signed Api V1 Pulse Coverage Signed Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/coverage/regulators":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Coverage Regulators","description":"List regulators and which the tenant's tier is allowed to see.","operationId":"coverage_regulators_api_v1_pulse_coverage_regulators_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Coverage Regulators Api V1 Pulse Coverage Regulators Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/coverage/next-actions":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Coverage Next Actions","description":"Top-N most urgent client actions across the tenant's in-scope regulators,\nsorted by priority (critical → low). Use ?top=N&regulator=dora to filter.","operationId":"coverage_next_actions_api_v1_pulse_coverage_next_actions_get","parameters":[{"name":"top","in":"query","required":false,"schema":{"type":"integer","default":5,"title":"Top"}},{"name":"regulator","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regulator"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Coverage Next Actions Api V1 Pulse Coverage Next Actions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/coverage/{regulator}":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Coverage One","description":"Per-regulator coverage report. 403 if tenant's tier does not include it.","operationId":"coverage_one_api_v1_pulse_coverage__regulator__get","parameters":[{"name":"regulator","in":"path","required":true,"schema":{"type":"string","title":"Regulator"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Coverage One Api V1 Pulse Coverage  Regulator  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/coverage/{regulator}/{req_id}/evidence":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Coverage Upload Evidence","description":"Upload an evidence document, push to git.qenex.ai, anchor its SHA-256\nthrough TSR + OTS + Rekor. Returns evidence_uri + evidence_sha256 ready\nto attach as a signoff. Bearer auth, tier-gated.","operationId":"coverage_upload_evidence_api_v1_pulse_coverage__regulator___req_id__evidence_post","parameters":[{"name":"regulator","in":"path","required":true,"schema":{"type":"string","title":"Regulator"}},{"name":"req_id","in":"path","required":true,"schema":{"type":"string","title":"Req Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_coverage_upload_evidence_api_v1_pulse_coverage__regulator___req_id__evidence_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Coverage Upload Evidence Api V1 Pulse Coverage  Regulator   Req Id  Evidence Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/coverage/{regulator}/{req_id}/signoff":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Coverage Signoff","description":"Record a client signoff for one requirement. Flips status partial → met\n(for declared-evidence reqs) or pending → met (for purely client-action reqs).","operationId":"coverage_signoff_api_v1_pulse_coverage__regulator___req_id__signoff_post","parameters":[{"name":"regulator","in":"path","required":true,"schema":{"type":"string","title":"Regulator"}},{"name":"req_id","in":"path","required":true,"schema":{"type":"string","title":"Req Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Coverage Signoff Api V1 Pulse Coverage  Regulator   Req Id  Signoff Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Coverage Revoke Signoff","description":"Revoke a client signoff. Returns {removed: bool}.","operationId":"coverage_revoke_signoff_api_v1_pulse_coverage__regulator___req_id__signoff_delete","parameters":[{"name":"regulator","in":"path","required":true,"schema":{"type":"string","title":"Regulator"}},{"name":"req_id","in":"path","required":true,"schema":{"type":"string","title":"Req Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Coverage Revoke Signoff Api V1 Pulse Coverage  Regulator   Req Id  Signoff Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/coverage/signoffs":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Coverage List Signoffs","description":"List all client signoffs for this tenant.","operationId":"coverage_list_signoffs_api_v1_pulse_coverage_signoffs_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Coverage List Signoffs Api V1 Pulse Coverage Signoffs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/coverage/{regulator}/pending":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Coverage Pending","description":"Client runbook — only requirements that still need tenant action.","operationId":"coverage_pending_api_v1_pulse_coverage__regulator__pending_get","parameters":[{"name":"regulator","in":"path","required":true,"schema":{"type":"string","title":"Regulator"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Coverage Pending Api V1 Pulse Coverage  Regulator  Pending Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/business-risks":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Business Risks List","description":"Per-tenant coverage view across all 5 business risks.","operationId":"business_risks_list_api_v1_pulse_business_risks_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Business Risks List Api V1 Pulse Business Risks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/business-risks/registry":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Business Risks Registry","description":"Registry metadata (no per-tenant data) — what risks Pulse covers.","operationId":"business_risks_registry_api_v1_pulse_business_risks_registry_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Business Risks Registry Api V1 Pulse Business Risks Registry Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/business-risks/{risk_id}":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Business Risks One","description":"Coverage view for one risk.","operationId":"business_risks_one_api_v1_pulse_business_risks__risk_id__get","parameters":[{"name":"risk_id","in":"path","required":true,"schema":{"type":"string","title":"Risk Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Business Risks One Api V1 Pulse Business Risks  Risk Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/bulk":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Bulk Import Vendors","description":"Ingest vendors from a CSV file uploaded as multipart/form-data.\n\nRequired column: domain\nOptional columns: label, criticality (low|standard|high|tier_one)\n\nBehaviour:\n  - Header row required; case-insensitive column names\n  - Rows that fail validation are reported but do not abort the import\n  - Duplicates (already tracked by this tenant) are skipped silently\n  - Vendor-quota enforced — once reached, remaining rows are rejected\n  - Returns a per-row outcome list + summary counts","operationId":"bulk_import_vendors_api_v1_pulse_vendors_bulk_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Import Vendors Api V1 Pulse Vendors Bulk Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}/compliance-export":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Compliance Export","description":"Download a cryptographically signed evidence manifest for a vendor.\n\nDefault fiscal period: trailing 365 days. Override with ?days=N (max 730).","operationId":"compliance_export_api_v1_pulse_vendors__domain__compliance_export_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":365,"title":"Days"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}/share":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Generate Share Link","description":"Mint a 30-day HMAC-signed URL the analyst can send to the vendor.\nThe vendor opens it and sees ONLY that vendor's report — no tenant identity,\nno nav, no auth required.","operationId":"generate_share_link_api_v1_pulse_vendors__domain__share_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Generate Share Link Api V1 Pulse Vendors  Domain  Share Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/users":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"List Users","operationId":"list_users_api_v1_pulse_users_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Users Api V1 Pulse Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Invite User","operationId":"invite_user_api_v1_pulse_users_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Invite User Api V1 Pulse Users Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/users/{user_id}":{"delete":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Revoke User","operationId":"revoke_user_api_v1_pulse_users__user_id__delete","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Revoke User Api V1 Pulse Users  User Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/alerts/{alert_id}":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Get Alert","operationId":"get_alert_api_v1_pulse_alerts__alert_id__get","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Alert Api V1 Pulse Alerts  Alert Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/alerts/{alert_id}/assign":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Assign Alert","operationId":"assign_alert_api_v1_pulse_alerts__alert_id__assign_post","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Assign Alert Api V1 Pulse Alerts  Alert Id  Assign Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/alerts/{alert_id}/snooze":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Snooze Alert","operationId":"snooze_alert_api_v1_pulse_alerts__alert_id__snooze_post","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnoozeBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Snooze Alert Api V1 Pulse Alerts  Alert Id  Snooze Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/alerts/{alert_id}/unsnooze":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Unsnooze Alert","operationId":"unsnooze_alert_api_v1_pulse_alerts__alert_id__unsnooze_post","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_UserScopedBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Unsnooze Alert Api V1 Pulse Alerts  Alert Id  Unsnooze Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/alerts/{alert_id}/resolve":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Resolve Alert","operationId":"resolve_alert_api_v1_pulse_alerts__alert_id__resolve_post","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Resolve Alert Api V1 Pulse Alerts  Alert Id  Resolve Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/alerts/{alert_id}/reopen":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Reopen Alert","operationId":"reopen_alert_api_v1_pulse_alerts__alert_id__reopen_post","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_UserScopedBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reopen Alert Api V1 Pulse Alerts  Alert Id  Reopen Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/alerts/{alert_id}/comments":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Add Comment","operationId":"add_comment_api_v1_pulse_alerts__alert_id__comments_post","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Add Comment Api V1 Pulse Alerts  Alert Id  Comments Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"List Comments","operationId":"list_comments_api_v1_pulse_alerts__alert_id__comments_get","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Comments Api V1 Pulse Alerts  Alert Id  Comments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/sla":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Get Sla","operationId":"get_sla_api_v1_pulse_sla_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Sla Api V1 Pulse Sla Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Set Sla","operationId":"set_sla_api_v1_pulse_sla_put","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlaPolicyEntry"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Set Sla Api V1 Pulse Sla Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/alerts-with-sla":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"List Alerts With Sla","operationId":"list_alerts_with_sla_api_v1_pulse_alerts_with_sla_get","parameters":[{"name":"unresolved","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Unresolved"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Alerts With Sla Api V1 Pulse Alerts With Sla Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/exports/alerts.csv":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Export Alerts Csv","operationId":"export_alerts_csv_api_v1_pulse_exports_alerts_csv_get","parameters":[{"name":"unresolved","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Unresolved"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/exports/vendors.csv":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Export Vendors Csv","operationId":"export_vendors_csv_api_v1_pulse_exports_vendors_csv_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/exports/vendors.xlsx":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Export Vendors Xlsx","operationId":"export_vendors_xlsx_api_v1_pulse_exports_vendors_xlsx_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/exports/portfolio.pdf":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Export Portfolio Pdf","operationId":"export_portfolio_pdf_api_v1_pulse_exports_portfolio_pdf_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/digest":{"put":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Set Digest","operationId":"set_digest_api_v1_pulse_digest_put","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigestPrefsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Set Digest Api V1 Pulse Digest Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/digest/send-now":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Send Digest Now","description":"Admin trigger for manual digest send (also useful for QA / Gartner demos).","operationId":"send_digest_now_api_v1_pulse_digest_send_now_post","parameters":[{"name":"slug","in":"query","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"x-pulse-admin-token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pulse-Admin-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Send Digest Now Api V1 Pulse Digest Send Now Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}/fourth-parties":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"List Fourth Parties","operationId":"list_fourth_parties_api_v1_pulse_vendors__domain__fourth_parties_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"include_stale","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Stale"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Fourth Parties Api V1 Pulse Vendors  Domain  Fourth Parties Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}/fourth-parties/refresh":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Refresh Fourth Parties","operationId":"refresh_fourth_parties_api_v1_pulse_vendors__domain__fourth_parties_refresh_post","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Refresh Fourth Parties Api V1 Pulse Vendors  Domain  Fourth Parties Refresh Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/portfolio/fourth-parties":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Portfolio Fourth Parties","operationId":"portfolio_fourth_parties_api_v1_pulse_portfolio_fourth_parties_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Portfolio Fourth Parties Api V1 Pulse Portfolio Fourth Parties Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/portfolio/risk-map.svg":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Portfolio Risk Map","operationId":"portfolio_risk_map_api_v1_pulse_portfolio_risk_map_svg_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}/classification":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Get Vendor Classification","operationId":"get_vendor_classification_api_v1_pulse_vendors__domain__classification_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Vendor Classification Api V1 Pulse Vendors  Domain  Classification Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}/classification/refresh":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Refresh Vendor Classification","operationId":"refresh_vendor_classification_api_v1_pulse_vendors__domain__classification_refresh_post","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Refresh Vendor Classification Api V1 Pulse Vendors  Domain  Classification Refresh Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/control-map":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Get Control Map","description":"NIST CSF + ISO 27001:2022 mapping of Pulse's nine subchecks. Public —\nno auth required so a Gartner reviewer can fetch the map directly. JSON.\nFor a human-readable version see /control-map.html (and qenex.ai/control-map/).","operationId":"get_control_map_api_v1_pulse_control_map_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Control Map Api V1 Pulse Control Map Get"}}}}}},"head":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Get Control Map","description":"NIST CSF + ISO 27001:2022 mapping of Pulse's nine subchecks. Public —\nno auth required so a Gartner reviewer can fetch the map directly. JSON.\nFor a human-readable version see /control-map.html (and qenex.ai/control-map/).","operationId":"get_control_map_api_v1_pulse_control_map_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Control Map Api V1 Pulse Control Map Get"}}}}}}},"/api/v1/pulse/vendors/{domain}/external-signals":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Get External Signals","operationId":"get_external_signals_api_v1_pulse_vendors__domain__external_signals_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get External Signals Api V1 Pulse Vendors  Domain  External Signals Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/external-signals/refresh":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Refresh External Signals","operationId":"refresh_external_signals_api_v1_pulse_external_signals_refresh_post","parameters":[{"name":"x-pulse-admin-token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pulse-Admin-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Refresh External Signals Api V1 Pulse External Signals Refresh Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/fair/vendor/{domain}":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Fair Vendor","description":"FAIR financial quantification for a single vendor.\nBody: {exposure_usd: <data value at risk for THIS vendor>}.","operationId":"fair_vendor_api_v1_pulse_fair_vendor__domain__post","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FairBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Fair Vendor Api V1 Pulse Fair Vendor  Domain  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/fair/portfolio":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Fair Portfolio","description":"FAIR ALE across the whole portfolio. exposure_usd is per-vendor.","operationId":"fair_portfolio_api_v1_pulse_fair_portfolio_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FairBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Fair Portfolio Api V1 Pulse Fair Portfolio Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}/percentile":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Vendor Percentile","operationId":"vendor_percentile_api_v1_pulse_vendors__domain__percentile_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Vendor Percentile Api V1 Pulse Vendors  Domain  Percentile Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}/shared-intelligence":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Vendor Shared Intelligence","operationId":"vendor_shared_intelligence_api_v1_pulse_vendors__domain__shared_intelligence_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Vendor Shared Intelligence Api V1 Pulse Vendors  Domain  Shared Intelligence Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/dashboard/executive.html":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Executive Dashboard","operationId":"executive_dashboard_api_v1_pulse_dashboard_executive_html_get","parameters":[{"name":"exposure_per_vendor_usd","in":"query","required":false,"schema":{"type":"number","exclusiveMinimum":0,"default":250000.0,"title":"Exposure Per Vendor Usd"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/regulatory-frameworks":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"List Regulatory Frameworks","description":"Public catalogue of regulatory frameworks Pulse can emit evidence for.\nNo auth; useful to a Gartner reviewer or prospect verifying coverage.","operationId":"list_regulatory_frameworks_api_v1_pulse_regulatory_frameworks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Regulatory Frameworks Api V1 Pulse Regulatory Frameworks Get"}}}}}},"head":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"List Regulatory Frameworks","description":"Public catalogue of regulatory frameworks Pulse can emit evidence for.\nNo auth; useful to a Gartner reviewer or prospect verifying coverage.","operationId":"list_regulatory_frameworks_api_v1_pulse_regulatory_frameworks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Regulatory Frameworks Api V1 Pulse Regulatory Frameworks Get"}}}}}}},"/api/v1/pulse/regulatory-frameworks/{key}":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Get Regulatory Framework","operationId":"get_regulatory_framework_api_v1_pulse_regulatory_frameworks__key__get","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Regulatory Framework Api V1 Pulse Regulatory Frameworks  Key  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Get Regulatory Framework","operationId":"get_regulatory_framework_api_v1_pulse_regulatory_frameworks__key__get","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Regulatory Framework Api V1 Pulse Regulatory Frameworks  Key  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/regulatory-frameworks/primary":{"put":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Set Primary Regulator","operationId":"set_primary_regulator_api_v1_pulse_regulatory_frameworks_primary_put","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRegulatorBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Set Primary Regulator Api V1 Pulse Regulatory Frameworks Primary Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/exports/regulatory/{key}.json":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Export Regulatory Json","operationId":"export_regulatory_json_api_v1_pulse_exports_regulatory__key__json_get","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Export Regulatory Json Api V1 Pulse Exports Regulatory  Key  Json Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Export Regulatory Json","operationId":"export_regulatory_json_api_v1_pulse_exports_regulatory__key__json_get","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Export Regulatory Json Api V1 Pulse Exports Regulatory  Key  Json Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/vendors/{domain}/regulatory-tags":{"put":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Set Vendor Regulatory Tags","description":"Tag a vendor with an Important Business Service (FCA SS2/21, APRA CPS 230,\nHKMA OR-2 all use this concept) and/or mark as a Material Service Provider\n(DORA Art. 28 \"critical or important function\", OCC, MAS).","operationId":"set_vendor_regulatory_tags_api_v1_pulse_vendors__domain__regulatory_tags_put","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IbsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Set Vendor Regulatory Tags Api V1 Pulse Vendors  Domain  Regulatory Tags Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/scope-artifacts":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Create Scope Artifact","description":"Capture an operator-attested artifact. The body is hashed (SHA-256 of\ncanonical JSON) and timestamped; the artifact then counts as evidence\nfor the regulator section it covers.","operationId":"create_scope_artifact_api_v1_pulse_scope_artifacts_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScopeArtifactBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Scope Artifact Api V1 Pulse Scope Artifacts Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"List Scope Artifacts","operationId":"list_scope_artifacts_api_v1_pulse_scope_artifacts_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"vendor_domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Domain"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Scope Artifacts Api V1 Pulse Scope Artifacts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/scope-artifacts/{artifact_id}":{"delete":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Archive Scope Artifact","operationId":"archive_scope_artifact_api_v1_pulse_scope_artifacts__artifact_id__delete","parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"integer","title":"Artifact Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Archive Scope Artifact Api V1 Pulse Scope Artifacts  Artifact Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/scope-artifacts/financial-health/refresh":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Refresh Financial Health","description":"Trigger a Companies House lookup for one vendor. Inserts a financial_health\nartifact if a UK-registered match is found. Returns {\"matched\": false} if\nno UK match (most non-UK vendors) — that's recorded honestly, no invention.","operationId":"refresh_financial_health_api_v1_pulse_scope_artifacts_financial_health_refresh_post","parameters":[{"name":"vendor_domain","in":"query","required":true,"schema":{"type":"string","description":"Vendor domain already tracked by this tenant","title":"Vendor Domain"},"description":"Vendor domain already tracked by this tenant"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Refresh Financial Health Api V1 Pulse Scope Artifacts Financial Health Refresh Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/legal/version-record/{slug}":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Legal Version Record","description":"Current cryptographic provenance for one legal document, plus the\nfull version history. Public — no auth — the entire point is auditable\ntransparency.","operationId":"legal_version_record_api_v1_pulse_legal_version_record__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Legal Version Record Api V1 Pulse Legal Version Record  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/legal/version-record":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Legal Version Record List","description":"Catalog of every recorded version across all legal documents.","operationId":"legal_version_record_list_api_v1_pulse_legal_version_record_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Legal Version Record List Api V1 Pulse Legal Version Record Get"}}}}}}},"/api/v1/pulse/legal/register-version":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Legal Register Version","description":"Maintenance: hash + sign the current on-disk document and upsert into\nlegal.document_versions. Callable only from 127.0.0.1. After calling this,\nrun qenex-legal-provenance-anchor to anchor via IPFS + OTS.","operationId":"legal_register_version_api_v1_pulse_legal_register_version_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_RegisterVersionBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Legal Register Version Api V1 Pulse Legal Register Version Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/dns-attestations/issue":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Dns Attestation Issue","description":"Issue a DNS attestation challenge. Returns the TXT record value the\nvendor must publish at  _qenex-pulse.<vendor-domain>  — verbatim.\nPulse signs the canonical pre-signature body with its Ed25519 key, so\nthe vendor needs no keys of their own.","operationId":"dns_attestation_issue_api_v1_pulse_dns_attestations_issue_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsAttestationIssueBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dns Attestation Issue Api V1 Pulse Dns Attestations Issue Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/dns-attestations/verify":{"post":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Dns Attestation Verify","description":"Resolve _qenex-pulse.<vendor> and verify the signature + nonce. On\nsuccess, stamps verified_at on the challenge and writes a scope_artifact\n(kind=dns_attestation) so the result enters the daily IPFS+OTS evidence\nchain.","operationId":"dns_attestation_verify_api_v1_pulse_dns_attestations_verify_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsAttestationVerifyBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dns Attestation Verify Api V1 Pulse Dns Attestations Verify Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/dns-attestations":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Dns Attestation List","operationId":"dns_attestation_list_api_v1_pulse_dns_attestations_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dns Attestation List Api V1 Pulse Dns Attestations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Dns Attestation Revoke","operationId":"dns_attestation_revoke_api_v1_pulse_dns_attestations_delete","parameters":[{"name":"vendor_domain","in":"query","required":true,"schema":{"type":"string","description":"Vendor domain to revoke","title":"Vendor Domain"},"description":"Vendor domain to revoke"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dns Attestation Revoke Api V1 Pulse Dns Attestations Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/dns-attestations/public-key":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Dns Attestation Pubkey","description":"Pulse's Ed25519 public key (raw, base64). Vendors can cross-verify\nthe signature on the TXT record they're about to publish.","operationId":"dns_attestation_pubkey_api_v1_pulse_dns_attestations_public_key_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Dns Attestation Pubkey Api V1 Pulse Dns Attestations Public Key Get"}}}}}},"head":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Dns Attestation Pubkey","description":"Pulse's Ed25519 public key (raw, base64). Vendors can cross-verify\nthe signature on the TXT record they're about to publish.","operationId":"dns_attestation_pubkey_api_v1_pulse_dns_attestations_public_key_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Dns Attestation Pubkey Api V1 Pulse Dns Attestations Public Key Get"}}}}}}},"/api/v1/pulse/scope-artifacts/coverage/{regulator_key}":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Scope Artifact Coverage","description":"How much of this regulator's previously-out-of-scope list is now\ncovered by operator-attested artifacts for this tenant. Drives the UI's\n'fill in the gaps' coaching surface.","operationId":"scope_artifact_coverage_api_v1_pulse_scope_artifacts_coverage__regulator_key__get","parameters":[{"name":"regulator_key","in":"path","required":true,"schema":{"type":"string","title":"Regulator Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Scope Artifact Coverage Api V1 Pulse Scope Artifacts Coverage  Regulator Key  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/pulse/plans":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"List Pulse Plans","description":"Public — drives both the /pulse/ HTML and any external pricing widget.","operationId":"list_pulse_plans_api_v1_pulse_pulse_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Pulse Plans Api V1 Pulse Pulse Plans Get"}}}}}}},"/api/v1/pulse/evidence-ledger":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Evidence Ledger","description":"The customer-facing moat: distinct days of cryptographically-anchored\nevidence accumulated under this tenant. A 3-year-old account has 1000+\ndays of IPFS+OpenTimestamps-chained history that cannot be retroactively\nreproduced elsewhere.\n\nReturns the raw counts; the UI translates into the switching-cost story.","operationId":"evidence_ledger_api_v1_pulse_evidence_ledger_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Evidence Ledger Api V1 Pulse Evidence Ledger Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/regulator-citation":{"get":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Regulator Citation Search","description":"Plain-language search over regulator framework text — returns\nverbatim clauses ranked by BM25. Example:\n\n  GET /api/v1/pulse/regulator-citation?q=tolerance%20setting&regulator=fca\n\nThe endpoint never paraphrases — it cites the exact text from the\n`regulatory_frameworks.py` REGULATORS dict (which itself cites the\npublic regulator documents linked via `url`).","operationId":"regulator_citation_search_api_v1_pulse_regulator_citation_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":300,"description":"search query","title":"Q"},"description":"search query"},{"name":"regulator","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"filter to one regulator key (e.g. fca, dora, occ)","title":"Regulator"},"description":"filter to one regulator key (e.g. fca, dora, occ)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Regulator Citation Search Api V1 Pulse Regulator Citation Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"tags":["Pulse (Third-Party Risk Monitoring)"],"summary":"Regulator Citation Search","description":"Plain-language search over regulator framework text — returns\nverbatim clauses ranked by BM25. Example:\n\n  GET /api/v1/pulse/regulator-citation?q=tolerance%20setting&regulator=fca\n\nThe endpoint never paraphrases — it cites the exact text from the\n`regulatory_frameworks.py` REGULATORS dict (which itself cites the\npublic regulator documents linked via `url`).","operationId":"regulator_citation_search_api_v1_pulse_regulator_citation_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":300,"description":"search query","title":"Q"},"description":"search query"},{"name":"regulator","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"filter to one regulator key (e.g. fca, dora, occ)","title":"Regulator"},"description":"filter to one regulator key (e.g. fca, dora, occ)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Regulator Citation Search Api V1 Pulse Regulator Citation Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pulse/vendors-share":{"get":{"tags":["Pulse Dashboard"],"summary":"Vendors Share Form","description":"Cookie-auth wrapper for the dashboard UI button. Doesn't require the user\nto paste a Bearer key into JS.","operationId":"vendors_share_form_pulse_vendors_share_get","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}},{"name":"qenex_pulse_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qenex Pulse Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pulse/vendors-compliance-export":{"get":{"tags":["Pulse Dashboard"],"summary":"Vendors Compliance Export Form","description":"Cookie-auth wrapper around build_compliance_bundle for the dashboard\ndownload button. Mirrors the Bearer-auth /api/v1/pulse/vendors/{domain}/compliance-export.","operationId":"vendors_compliance_export_form_pulse_vendors_compliance_export_get","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":365,"title":"Days"}},{"name":"qenex_pulse_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qenex Pulse Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/plans":{"get":{"tags":["Pulse Billing"],"summary":"List Plans","description":"Public JSON catalogue of Pulse plans, used by the marketing site.\n\nNo auth. Caches the Stripe lookup for 5 min. Top-level wait_for(6s)\ncap so a sick Stripe + cache-lock contention can NEVER wedge requests\nbeyond 6s — if the compute path exceeds it, we serve the previous\ncached payload (stale) rather than 504-ing the public catalogue.","operationId":"list_plans_api_v1_pulse_plans_get","parameters":[{"name":"response_format","in":"query","required":false,"schema":{"type":"string","default":"v1","title":"Response Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Plans Api V1 Pulse Plans Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/checkout/{plan}":{"post":{"tags":["Pulse Billing"],"summary":"Create Checkout","description":"Create a Stripe Checkout Session for the chosen plan.","operationId":"create_checkout_api_v1_pulse_checkout__plan__post","parameters":[{"name":"plan","in":"path","required":true,"schema":{"type":"string","title":"Plan"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Checkout Api V1 Pulse Checkout  Plan  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pulse/webhook/stripe":{"post":{"tags":["Pulse Billing"],"summary":"Stripe Webhook","description":"Stripe webhook — process subscription lifecycle events.","operationId":"stripe_webhook_api_v1_pulse_webhook_stripe_post","parameters":[{"name":"stripe-signature","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Stripe Webhook Api V1 Pulse Webhook Stripe Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/watchdog/status":{"get":{"tags":["Watchdog"],"summary":"Status","description":"Real-time daemon state, check results, active incidents. Public read-only.","operationId":"status_api_v1_watchdog_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Status Api V1 Watchdog Status Get"}}}}}}},"/api/v1/watchdog/incidents":{"get":{"tags":["Watchdog"],"summary":"List Incidents","description":"List recent incidents (most recent first).","operationId":"list_incidents_api_v1_watchdog_incidents_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Incidents Api V1 Watchdog Incidents Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/watchdog/incidents/{incident_id}":{"get":{"tags":["Watchdog"],"summary":"Get Incident","operationId":"get_incident_api_v1_watchdog_incidents__incident_id__get","parameters":[{"name":"incident_id","in":"path","required":true,"schema":{"type":"string","title":"Incident Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Incident Api V1 Watchdog Incidents  Incident Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/watchdog/incidents/{incident_id}/approve/{rec_id}":{"post":{"tags":["Watchdog"],"summary":"Approve Recommendation","description":"Operator approves a specific recommendation. Records who/when.\nDoes NOT auto-apply - that's a separate, deliberate step.","operationId":"approve_recommendation_api_v1_watchdog_incidents__incident_id__approve__rec_id__post","parameters":[{"name":"incident_id","in":"path","required":true,"schema":{"type":"string","title":"Incident Id"}},{"name":"rec_id","in":"path","required":true,"schema":{"type":"string","title":"Rec Id"}},{"name":"x-pulse-admin-token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pulse-Admin-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_approve_recommendation_api_v1_watchdog_incidents__incident_id__approve__rec_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Approve Recommendation Api V1 Watchdog Incidents  Incident Id  Approve  Rec Id  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/watchdog/incidents/{incident_id}/close":{"post":{"tags":["Watchdog"],"summary":"Close Incident","description":"Operator-initiated closure with a reason.","operationId":"close_incident_api_v1_watchdog_incidents__incident_id__close_post","parameters":[{"name":"incident_id","in":"path","required":true,"schema":{"type":"string","title":"Incident Id"}},{"name":"x-pulse-admin-token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Pulse-Admin-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_close_incident_api_v1_watchdog_incidents__incident_id__close_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Close Incident Api V1 Watchdog Incidents  Incident Id  Close Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AddVendor":{"properties":{"domain":{"type":"string","pattern":"^[a-z0-9]([a-z0-9\\-]{0,61}[a-z0-9])?(\\.[a-z0-9]([a-z0-9\\-]{0,61}[a-z0-9])?)+$","title":"Domain"},"label":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Label"},"criticality":{"type":"string","pattern":"^(low|standard|high|tier_one)$","title":"Criticality","default":"standard"}},"type":"object","required":["domain"],"title":"AddVendor"},"AssignBody":{"properties":{"user_id":{"type":"integer","exclusiveMinimum":0.0,"title":"User Id","description":"Tenant user taking this action"},"assignee_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assignee User Id","description":"None = unassign"}},"type":"object","required":["user_id"],"title":"AssignBody"},"Body_approve_recommendation_api_v1_watchdog_incidents__incident_id__approve__rec_id__post":{"properties":{"approver":{"type":"string","title":"Approver"}},"type":"object","required":["approver"],"title":"Body_approve_recommendation_api_v1_watchdog_incidents__incident_id__approve__rec_id__post"},"Body_close_incident_api_v1_watchdog_incidents__incident_id__close_post":{"properties":{"reason":{"type":"string","title":"Reason"}},"type":"object","required":["reason"],"title":"Body_close_incident_api_v1_watchdog_incidents__incident_id__close_post"},"Body_coverage_upload_evidence_api_v1_pulse_coverage__regulator___req_id__evidence_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_coverage_upload_evidence_api_v1_pulse_coverage__regulator___req_id__evidence_post"},"CommentBody":{"properties":{"user_id":{"type":"integer","exclusiveMinimum":0.0,"title":"User Id","description":"Tenant user taking this action"},"body":{"type":"string","maxLength":4000,"minLength":1,"title":"Body"}},"type":"object","required":["user_id","body"],"title":"CommentBody"},"CreateTenant":{"properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{1,48}[a-z0-9]$","title":"Slug"},"display_name":{"type":"string","maxLength":200,"minLength":1,"title":"Display Name"},"contact_email":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$","title":"Contact Email"},"plan":{"type":"string","title":"Plan","default":"free"}},"type":"object","required":["slug","display_name","contact_email"],"title":"CreateTenant"},"DigestPrefsBody":{"properties":{"frequency":{"type":"string","pattern":"^(off|daily|weekly)$","title":"Frequency"}},"type":"object","required":["frequency"],"title":"DigestPrefsBody"},"DnsAttestationIssueBody":{"properties":{"vendor_domain":{"type":"string","maxLength":253,"minLength":3,"title":"Vendor Domain"},"coverage":{"items":{"type":"string"},"type":"array","title":"Coverage"},"validity_days":{"type":"integer","maximum":730.0,"minimum":7.0,"title":"Validity Days","default":365}},"type":"object","required":["vendor_domain"],"title":"DnsAttestationIssueBody"},"DnsAttestationVerifyBody":{"properties":{"vendor_domain":{"type":"string","maxLength":253,"minLength":3,"title":"Vendor Domain"}},"type":"object","required":["vendor_domain"],"title":"DnsAttestationVerifyBody"},"FairBody":{"properties":{"exposure_usd":{"type":"number","maximum":1000000000.0,"exclusiveMinimum":0.0,"title":"Exposure Usd"}},"type":"object","required":["exposure_usd"],"title":"FairBody"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IbsBody":{"properties":{"important_business_service":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Important Business Service"},"material_service_provider":{"type":"boolean","title":"Material Service Provider","default":false}},"type":"object","title":"IbsBody"},"InviteBody":{"properties":{"email":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$","title":"Email"},"role":{"type":"string","pattern":"^(owner|analyst|viewer)$","title":"Role","default":"analyst"},"display_name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Display Name"},"invited_by_user_id":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Invited By User Id"}},"type":"object","required":["email"],"title":"InviteBody"},"ResolveBody":{"properties":{"user_id":{"type":"integer","exclusiveMinimum":0.0,"title":"User Id","description":"Tenant user taking this action"},"note":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Note"}},"type":"object","required":["user_id"],"title":"ResolveBody"},"ScopeArtifactBody":{"properties":{"kind":{"type":"string","title":"Kind","description":"tolerances|narrative|scenario|contract|subprocessors"},"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"body":{"additionalProperties":true,"type":"object","title":"Body"},"vendor_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Domain","description":"for contract/subprocessors/financial_health"},"ibs_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ibs Name","description":"for tolerances"},"regulator_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regulator Key","description":"for narrative"},"review_after_days":{"type":"integer","maximum":3650.0,"minimum":1.0,"title":"Review After Days","default":365}},"type":"object","required":["kind","title"],"title":"ScopeArtifactBody"},"SlaPolicyEntry":{"properties":{"criticality":{"type":"string","pattern":"^(low|standard|high|tier_one)$","title":"Criticality"},"response_hours":{"type":"integer","maximum":8760.0,"minimum":1.0,"title":"Response Hours"},"resolve_hours":{"type":"integer","maximum":8760.0,"minimum":1.0,"title":"Resolve Hours"}},"type":"object","required":["criticality","response_hours","resolve_hours"],"title":"SlaPolicyEntry"},"SnoozeBody":{"properties":{"user_id":{"type":"integer","exclusiveMinimum":0.0,"title":"User Id","description":"Tenant user taking this action"},"until":{"type":"string","format":"date-time","title":"Until","description":"UTC ISO-8601 datetime to snooze until"}},"type":"object","required":["user_id","until"],"title":"SnoozeBody"},"TenantRegulatorBody":{"properties":{"regulator":{"type":"string","pattern":"^(fca|dora|occ|apra|hkma|mas|nist_csf|iso_27001)$","title":"Regulator"}},"type":"object","required":["regulator"],"title":"TenantRegulatorBody"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"_RegisterVersionBody":{"properties":{"slug":{"type":"string","title":"Slug","description":"Document slug (terms, privacy, dpa, …)"},"version":{"type":"string","pattern":"^\\d+\\.\\d+$","title":"Version","description":"Version label e.g. 1.5"},"effective_at":{"type":"string","title":"Effective At","description":"ISO-8601 date e.g. 2026-05-21"},"notes":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Notes"},"force_reanchor":{"type":"boolean","title":"Force Reanchor","description":"Clear IPFS/OTS proofs so anchor service re-runs","default":false}},"type":"object","required":["slug","version","effective_at"],"title":"_RegisterVersionBody"},"_SignupBody":{"properties":{"email":{"type":"string","title":"Email"},"phone":{"type":"string","title":"Phone"},"plan":{"type":"string","title":"Plan"}},"type":"object","required":["email","phone","plan"],"title":"_SignupBody"},"_UserScopedBody":{"properties":{"user_id":{"type":"integer","exclusiveMinimum":0.0,"title":"User Id","description":"Tenant user taking this action"}},"type":"object","required":["user_id"],"title":"_UserScopedBody"}}},"servers":[{"url":"https://pulse.qenex.ai","description":"Production"}]}