{"openapi":"3.1.0","info":{"title":"Entity Intelligence API","description":"Resolve and enrich entities, query evidence-backed graph relationships, monitor evidence-backed changes, and deliver actionable alerts.","version":"2.7.0"},"paths":{"/entity-resolution/resolve":{"post":{"summary":"Resolve one entity","description":"Resolve an organization or person into a canonical entity. The response always exposes ranked candidates, the applied confidence policy, evidence, and an explicit resolved, review_required, or unmatched outcome.","operationId":"resolveEntity","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResolutionInput"},"examples":{"organization":{"value":{"confidence_policy":"balanced","record":{"id":"crm_1842","entity_type":"Organization","fields":{"company_name":"Northstar Logistics Oy","country":"FI","domain":"northstar.example"}}}},"person":{"value":{"confidence_policy":"strict","record":{"id":"contact_42","entity_type":"Person","fields":{"full_name":"Emilia Laine","email":"emilia@northstar.example","country":"FI"}}}}}}}},"responses":{"200":{"description":"Resolution decision","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResolutionResult"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Unsupported entity type or invalid record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/entity-resolution/evaluations":{"post":{"summary":"Evaluate resolution policies","description":"Run labeled fixture records through one or more confidence policies and return precision, recall, and review-rate metrics without modifying canonical data.","operationId":"evaluateEntityResolution","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResolutionEvaluationInput"}}}},"responses":{"200":{"description":"Policy evaluation metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResolutionEvaluationResult"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Invalid labeled evaluation set"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/entity-resolution/duplicates/detect":{"post":{"summary":"Detect possible duplicate workspace entities","description":"Create release-scoped duplicate proposals with an explainable score. Detection never merges entities automatically.","operationId":"detectWorkspaceEntityDuplicates","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DuplicateDetectionInput"}}}},"responses":{"200":{"description":"Ranked duplicate proposals","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/IdentityDuplicateProposal"}}}}}}},"401":{"description":"Authentication failed"},"422":{"description":"Invalid detection request"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/entity-resolution/duplicates/{proposal_id}/decisions":{"post":{"summary":"Accept or reject a duplicate proposal","description":"Publish an explicit, optimistic-concurrency-checked identity decision. Conflicting properties must be resolved before an accepted merge.","operationId":"decideWorkspaceEntityDuplicate","parameters":[{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityDecisionInput"}}}},"responses":{"201":{"description":"Identity decision","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication failed"},"404":{"description":"Proposal not found"},"409":{"description":"Stale graph release or unresolved property conflict"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"409":["idempotency_conflict"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/entity-resolution/clusters/{cluster_id}/split":{"post":{"summary":"Split an identity cluster","description":"Restore the exact pre-merge graph snapshot while the merge release is still active.","operationId":"splitWorkspaceEntityIdentity","parameters":[{"name":"cluster_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentitySplitInput"}}}},"responses":{"201":{"description":"Split identity cluster","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication failed"},"404":{"description":"Cluster not found"},"409":{"description":"Cluster version or graph release changed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"409":["idempotency_conflict"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/entity-resolution/entities/{entity_id}/history":{"get":{"summary":"List identity history","description":"Return append-only merge, rejection, and split decisions that involved the entity.","operationId":"listWorkspaceEntityIdentityHistory","parameters":[{"name":"entity_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Identity history","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/enrichment-jobs":{"post":{"summary":"Submit","operationId":"submitEnrichmentJob","parameters":[{"name":"idempotency-key","in":"header","required":false,"schema":{"type":"string","default":"","title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichmentJobInput"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichmentJob"}}}},"401":{"description":"Authentication failed"},"409":{"description":"Idempotency-Key was reused with a different request body"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"409":["idempotency_conflict"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"get":{"summary":"Jobs","operationId":"listEnrichmentJobs","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichmentJobList"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/enrichment-jobs/{job_id}":{"get":{"summary":"Job","operationId":"getEnrichmentJob","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichmentJob"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/enrichment-jobs/{job_id}/trace":{"get":{"summary":"Job Trace","operationId":"getEnrichmentJobTrace","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Getenrichmentjobtrace"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/enrichment-jobs/{job_id}/records":{"get":{"summary":"Records","operationId":"listEnrichmentRecords","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichmentRecordList"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/enrichment-jobs/{job_id}/records/{record_id}/evidence":{"get":{"summary":"Evidence","operationId":"getRecordEvidence","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Getrecordevidence"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/enrichment-jobs/{job_id}/artifacts/{version}":{"get":{"summary":"Artifact","operationId":"downloadEnrichmentArtifact","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Authentication failed"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/publications":{"post":{"summary":"Publish workspace graph claims","description":"Atomically publish an idempotent batch of evidence-backed claims as one immutable workspace graph release.","operationId":"publishKnowledgeGraphClaims","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphPublicationInput"}}}},"responses":{"200":{"description":"Idempotent replay of an existing publication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceGraphRelease"}}}},"201":{"description":"Immutable graph release published","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceGraphRelease"}}}},"401":{"description":"Authentication failed"},"409":{"description":"Expected parent release is stale"},"422":{"description":"Invalid graph claims"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"409":["idempotency_conflict"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/releases":{"get":{"summary":"List workspace graph releases","operationId":"listKnowledgeGraphReleases","tags":["Knowledge Graph"],"responses":{"200":{"description":"Workspace graph release history","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceGraphRelease"}}}}}}},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/releases/{release_id}":{"get":{"summary":"Get a workspace graph release","operationId":"getKnowledgeGraphRelease","tags":["Knowledge Graph"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workspace graph release","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceGraphRelease"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Release not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/releases/{release_id}/diff":{"get":{"summary":"Diff workspace graph releases","operationId":"diffKnowledgeGraphRelease","tags":["Knowledge Graph"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"base_release_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Entity, relationship, and evidence changes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceGraphReleaseDiff"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Release not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/releases/{release_id}/activate":{"post":{"summary":"Activate a workspace graph release","description":"Atomically move the workspace channel to an existing immutable release with optimistic concurrency and audit history.","operationId":"activateKnowledgeGraphRelease","tags":["Knowledge Graph"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphActivationInput"}}}},"responses":{"200":{"description":"Activated graph release","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceGraphRelease"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Release not found"},"409":{"description":"Current release changed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"409":["idempotency_conflict"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/ingestion/sources":{"post":{"summary":"Create a graph ingestion source","operationId":"createGraphIngestionSource","tags":["Graph Ingestion"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestionSourceInput"}}}},"responses":{"201":{"description":"Ingestion source created"},"401":{"description":"Authentication failed"},"422":{"description":"Invalid source mapping"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"get":{"summary":"List graph ingestion sources","operationId":"listGraphIngestionSources","tags":["Graph Ingestion"],"responses":{"200":{"description":"Ingestion sources"},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/ingestion/sources/{source_id}/runs":{"post":{"summary":"Run an idempotent graph ingestion source","operationId":"runGraphIngestionSource","tags":["Graph Ingestion"],"parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestionRunInput"}}}},"responses":{"200":{"description":"Idempotent replay"},"201":{"description":"Inline ingestion run completed"},"202":{"description":"Durable ingestion run queued"},"401":{"description":"Authentication failed"},"404":{"description":"Source not found"},"422":{"description":"Invalid records"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/ingestion/runs":{"get":{"summary":"List graph ingestion runs","operationId":"listGraphIngestionRuns","tags":["Graph Ingestion"],"responses":{"200":{"description":"Ingestion runs"},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/ingestion/dead-letters":{"get":{"summary":"List graph ingestion dead letters","operationId":"listGraphIngestionDeadLetters","tags":["Graph Ingestion"],"responses":{"200":{"description":"Dead letters"},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/ingestion/dead-letters/{dead_letter_id}/retry":{"post":{"summary":"Retry a graph ingestion dead letter","operationId":"retryGraphIngestionDeadLetter","tags":["Graph Ingestion"],"parameters":[{"name":"dead_letter_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["record"],"properties":{"record":{"type":"object","additionalProperties":true}}}}}},"responses":{"201":{"description":"Dead letter retried"},"401":{"description":"Authentication failed"},"404":{"description":"Dead letter not found"},"422":{"description":"Record still invalid"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/ontologies":{"post":{"summary":"Publish and activate a graph ontology release","operationId":"publishKnowledgeGraphOntology","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OntologyPublicationInput"}}}},"responses":{"201":{"description":"Ontology release published"},"401":{"description":"Authentication failed"},"409":{"description":"Parent or compatibility conflict"},"422":{"description":"Invalid ontology"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"409":["idempotency_conflict"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"get":{"summary":"List graph ontology releases","operationId":"listKnowledgeGraphOntologies","tags":["Knowledge Graph"],"responses":{"200":{"description":"Ontology releases"},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/ontology-drafts":{"post":{"summary":"Create an inactive ontology draft","operationId":"createKnowledgeGraphOntologyDraft","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OntologyPublicationInput"}}}},"responses":{"201":{"description":"Ontology draft created"},"401":{"description":"Authentication failed"},"409":{"description":"Parent conflict"},"422":{"description":"Invalid ontology"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"409":["idempotency_conflict"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/ontologies/{ontology_id}/validate":{"post":{"summary":"Validate an ontology draft and analyze live-data impact","operationId":"validateKnowledgeGraphOntology","tags":["Knowledge Graph"],"parameters":[{"name":"ontology_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Validation and impact report"},"401":{"description":"Authentication failed"},"404":{"description":"Ontology not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/ontologies/{ontology_id}/activate":{"post":{"summary":"Activate a validated ontology","operationId":"activateKnowledgeGraphOntology","tags":["Knowledge Graph"],"parameters":[{"name":"ontology_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"allow_breaking":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Ontology activated"},"401":{"description":"Authentication failed"},"404":{"description":"Ontology not found"},"409":{"description":"Compatibility or impact conflict"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"409":["idempotency_conflict"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/ontologies/{ontology_id}/export":{"get":{"summary":"Export a portable ontology document","operationId":"exportKnowledgeGraphOntology","tags":["Knowledge Graph"],"parameters":[{"name":"ontology_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Portable ontology document"},"401":{"description":"Authentication failed"},"404":{"description":"Ontology not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/ontology-imports":{"post":{"summary":"Import a portable ontology as a draft","operationId":"importKnowledgeGraphOntology","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["format","name","entity_types"],"properties":{"format":{"type":"string","enum":["entity-intelligence-ontology/1"]},"name":{"type":"string"},"entity_types":{"type":"object"}}}}}},"responses":{"201":{"description":"Imported ontology draft"},"401":{"description":"Authentication failed"},"422":{"description":"Invalid ontology document"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/ontologies/{ontology_id}/migrations":{"post":{"summary":"Apply a controlled ontology graph migration","operationId":"migrateKnowledgeGraphOntology","tags":["Knowledge Graph"],"parameters":[{"name":"ontology_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["operations"],"properties":{"operations":{"type":"array","minItems":1,"items":{"type":"object","required":["op","entity_type","from","to"]}}}}}}},"responses":{"201":{"description":"Graph migration release created"},"401":{"description":"Authentication failed"},"404":{"description":"Ontology or graph not found"},"422":{"description":"Invalid migration"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/ontologies/active":{"get":{"summary":"Get the active graph ontology","operationId":"getActiveKnowledgeGraphOntology","tags":["Knowledge Graph"],"responses":{"200":{"description":"Active ontology"},"401":{"description":"Authentication failed"},"404":{"description":"No active ontology"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/events":{"get":{"summary":"List cursor-based graph events","operationId":"listKnowledgeGraphEvents","tags":["Graph Events"],"responses":{"200":{"description":"Graph events"},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/events/stream":{"get":{"summary":"Stream graph events as server-sent events","operationId":"streamKnowledgeGraphEvents","tags":["Graph Events"],"parameters":[{"name":"after","in":"query","schema":{"type":"string","default":""}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"name":"follow","in":"query","description":"Keep the SSE connection open and poll for later events.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"SSE graph event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/event-subscriptions":{"post":{"summary":"Create a graph event webhook subscription","operationId":"createKnowledgeGraphEventSubscription","tags":["Graph Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphEventSubscriptionInput"}}}},"responses":{"201":{"description":"Event subscription created"},"401":{"description":"Authentication failed"},"422":{"description":"Invalid subscription"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/event-deliveries":{"get":{"summary":"List graph webhook outbox deliveries","operationId":"listKnowledgeGraphEventDeliveries","tags":["Graph Events"],"responses":{"200":{"description":"Graph event deliveries"},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/event-deliveries/{delivery_id}/retry":{"post":{"summary":"Retry a graph webhook delivery","operationId":"retryKnowledgeGraphEventDelivery","tags":["Graph Events"],"parameters":[{"name":"delivery_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Delivery requeued"},"401":{"description":"Authentication failed"},"404":{"description":"Delivery not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/releases/{release_id}/export":{"get":{"summary":"Export an NDJSON graph delta between releases","operationId":"exportKnowledgeGraphReleaseDelta","tags":["Graph Events"],"parameters":[{"name":"release_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"base_release_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","schema":{"type":"string","enum":["ndjson"],"default":"ndjson"}}],"responses":{"200":{"description":"NDJSON graph delta","content":{"application/x-ndjson":{"schema":{"type":"string"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Release not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query":{"post":{"summary":"Query the knowledge graph","description":"Run a bounded Graph Query gq/1.3 expression with Boolean and correlated scoped predicates, full-text search, graph traversal, facets, projections, and cursor pagination.","operationId":"queryKnowledgeGraph","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryInput"},"example":{"query":"type:Organization location.country:$country AND (industry:\"Logistics\" OR employees>=500) facet:industry select:businessId,employees,industry sort:-employees,+label return:entities,evidence limit:25","parameters":{"country":"FI"}}}}},"responses":{"200":{"description":"Graph query results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryResult"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Invalid Graph Query gq/1.3 expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-sdk-test":{"role":"primary-read"},"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query-jobs":{"post":{"summary":"Submit a durable graph query","description":"Persist a costed graph query for horizontally scalable query-only workers.","operationId":"submitKnowledgeGraphQueryJob","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryInput"}}}},"responses":{"202":{"description":"Queued query job","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryJob"}}}},"400":{"description":"Query exceeds maximum batch cost"},"401":{"description":"Authentication failed"},"422":{"description":"Invalid query"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"400":["validation_error"],"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query-jobs/{job_id}":{"get":{"summary":"Get a durable graph query job","operationId":"getKnowledgeGraphQueryJob","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Query job status and optional result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryJob"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Query job not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query-job-dead-letters":{"get":{"summary":"List dead-letter graph queries","operationId":"listKnowledgeGraphQueryJobDeadLetters","responses":{"200":{"description":"Dead-letter query jobs","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GraphQueryJob"}}}}}}},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query-jobs/{job_id}/cancel":{"post":{"summary":"Cancel a durable graph query","operationId":"cancelKnowledgeGraphQueryJob","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryJobActionInput"}}}},"responses":{"200":{"description":"Cancelled query job","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryJob"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Query job not found"},"409":{"description":"Query job is already terminal"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"409":["idempotency_conflict"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query-jobs/{job_id}/retry":{"post":{"summary":"Retry a dead-letter graph query","operationId":"retryKnowledgeGraphQueryJob","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryJobActionInput"}}}},"responses":{"200":{"description":"Requeued query job","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryJob"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Query job not found"},"409":{"description":"Query job is not dead-lettered"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"409":["idempotency_conflict"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query/validate":{"post":{"summary":"Validate a graph query","description":"Parse and validate Graph Query v1 without executing it or consuming graph-query credits.","operationId":"validateKnowledgeGraphQuery","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryInput"}}}},"responses":{"200":{"description":"Validation result and canonical query plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryValidation"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Request body validation failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query/translate":{"post":{"summary":"Translate an external query into Graph Query","description":"Translate supported Diffbot DQL, Elasticsearch/OpenSearch Query DSL, KQL, Lucene query string, PPL, SQL SELECT, Cypher, or legacy filter JSON into Graph Query gq/1.3. Strict mode rejects semantic loss.","operationId":"translateKnowledgeGraphQuery","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryTranslationInput"},"example":{"dialect":"diffbot-dql","query":"type:Organization locations.country.name:\"FI\" nbEmployees>=100 sortBy:nbEmployees facet:industries","mode":"strict"}}}},"responses":{"200":{"description":"Translated query, field mappings, validation, and diagnostics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryTranslationResult"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Unsupported dialect or malformed translation request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-sdk-test":{"role":"primary-read"},"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query/translate/verify":{"post":{"summary":"Verify a translated graph query","description":"Translate and execute a query against the representative product fixture, then compare entity identity, ordering, facets, and pagination with an optional expected result.","operationId":"verifyKnowledgeGraphTranslation","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryVerificationInput"},"example":{"dialect":"diffbot-dql","query":"type:Organization locations.{country.name:\"FI\" city.name:\"Helsinki\"}","mode":"strict","expected_entity_ids":["org_fi_2841842_1"]}}}},"responses":{"200":{"description":"Translation, equivalence score, checks, differences, and fixture result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryVerificationResult"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Malformed verification request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-sdk-test":{"role":"primary-read"},"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query/migrations":{"post":{"summary":"Migrate a batch of external graph queries","description":"Translate and optionally fixture-verify up to 100 external queries, classifying each as auto_approved, review_needed, or impossible.","operationId":"migrateKnowledgeGraphQueries","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryMigrationInput"},"example":{"dialect":"diffbot-dql","mode":"strict","verify":true,"items":[{"id":"finnish-hq","query":"type:Organization locations.{country.name:\"FI\" city.name:\"Helsinki\"}"}]}}}},"responses":{"200":{"description":"Batch migration report","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryMigrationResult"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Malformed migration batch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-sdk-test":{"role":"primary-read"},"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query/explain":{"post":{"summary":"Explain a graph query","description":"Validate Graph Query gq/1.3 and return its execution plan, index use, warnings, result estimate, and credit estimate without executing it.","operationId":"explainKnowledgeGraphQuery","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryInput"}}}},"responses":{"200":{"description":"Canonical execution and cost plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryExplain"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Invalid Graph Query gq/1.3 expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-sdk-test":{"role":"primary-read"},"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/review-cases":{"get":{"summary":"Reviews","operationId":"listReviewCases","parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"pending","title":"State"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewCaseList"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/review-cases/{case_id}/decisions":{"post":{"summary":"Decide","operationId":"decideReviewCase","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","title":"Case Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewCase"}}}},"401":{"description":"Authentication failed"},"409":{"description":"expected_version does not match the current review-case version"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"409":["idempotency_conflict"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/webhooks":{"post":{"summary":"Create Webhook","operationId":"createEnrichmentWebhook","parameters":[{"name":"x-webhook-secret","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Webhook-Secret"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookInput"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichmentWebhook"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/webhooks/{webhook_id}":{"delete":{"summary":"Delete Webhook","operationId":"deleteEnrichmentWebhook","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","title":"Webhook Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Deleteenrichmentwebhook"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/webhook-deliveries":{"get":{"summary":"Deliveries","operationId":"listWebhookDeliveries","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-workspace-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Workspace-Id"}},{"name":"x-actor-id","in":"header","required":false,"schema":{"type":"string","default":"runtime-client","title":"X-Actor-Id"}},{"name":"x-request-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Request-Id"}},{"name":"x-credential-id","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Credential-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryList"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query/format":{"post":{"summary":"Format a graph query canonically","description":"Parse Graph Query gq/1.3, emit its deterministic canonical representation, and prove formatter idempotence by reparsing it.","operationId":"formatKnowledgeGraphQuery","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryInput"}}}},"responses":{"200":{"description":"Canonical query and round-trip result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryFormatResult"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Invalid Graph Query"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query/migration-runs":{"get":{"summary":"List graph query migration runs","operationId":"listKnowledgeGraphMigrationRuns","tags":["Knowledge Graph"],"responses":{"200":{"description":"Migration runs","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GraphQueryMigrationRun"}}}}}}},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"post":{"summary":"Create a persistent graph query migration run","description":"Persist queued, running, and terminal states plus an append-only audit history for a batch migration.","operationId":"createKnowledgeGraphMigrationRun","tags":["Knowledge Graph"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryMigrationInput"}}}},"responses":{"200":{"description":"Persistent migration run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryMigrationRun"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Migration run not found"},"422":{"description":"Invalid migration request"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query/migration-runs/{run_id}":{"get":{"summary":"Get a graph query migration run","operationId":"getKnowledgeGraphMigrationRun","tags":["Knowledge Graph"],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Persistent migration run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryMigrationRun"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Migration run not found"},"422":{"description":"Invalid migration request"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query/migration-runs/{run_id}/retry":{"post":{"summary":"Retry a graph query migration run","operationId":"retryKnowledgeGraphMigrationRun","tags":["Knowledge Graph"],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Persistent migration run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryMigrationRun"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Migration run not found"},"422":{"description":"Invalid migration request"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query/migration-runs/{run_id}/cancel":{"post":{"summary":"Cancel a graph query migration run","operationId":"cancelKnowledgeGraphMigrationRun","tags":["Knowledge Graph"],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Persistent migration run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphQueryMigrationRun"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Migration run not found"},"422":{"description":"Invalid migration request"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/graph/query/migration-runs/{run_id}/export":{"get":{"summary":"Export a graph query migration run","operationId":"exportKnowledgeGraphMigrationRun","tags":["Knowledge Graph"],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json"],"default":"json"}}],"responses":{"200":{"description":"Portable migration run export","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Authentication failed"},"404":{"description":"Migration run not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"security":[{"bearerAuth":[]}],"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/change-subscriptions":{"post":{"summary":"Create a change subscription","operationId":"createChangeSubscription","tags":["Alerts & Changes"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeSubscriptionInput"}}}},"responses":{"201":{"description":"Change subscription created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeSubscription"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Invalid subscription"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"get":{"summary":"List change subscriptions","operationId":"listChangeSubscriptions","tags":["Alerts & Changes"],"parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"description":"Change subscriptions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeSubscriptionList"}}}},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/change-subscriptions/{subscription_id}":{"get":{"summary":"Get a change subscription","operationId":"getChangeSubscription","tags":["Alerts & Changes"],"responses":{"200":{"description":"Change subscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeSubscription"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Change subscription not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"patch":{"summary":"Update a change subscription","operationId":"updateChangeSubscription","tags":["Alerts & Changes"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeSubscriptionPatch"}}}},"responses":{"200":{"description":"Updated change subscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeSubscription"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Change subscription not found"},"422":{"description":"Invalid subscription update"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"delete":{"summary":"Delete a change subscription","operationId":"deleteChangeSubscription","tags":["Alerts & Changes"],"responses":{"204":{"description":"Change subscription deleted"},"401":{"description":"Authentication failed"},"404":{"description":"Change subscription not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string"}}]},"/change-subscriptions/{subscription_id}/scan":{"post":{"summary":"Scan a change subscription now","description":"Compare the latest accepted entity snapshot against the previous accepted snapshot and evaluate enabled alert rules.","operationId":"scanChangeSubscription","tags":["Alerts & Changes"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"202":{"description":"Scan completed or accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeScan"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Change subscription not found"},"409":{"description":"Change subscription is disabled"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"409":["idempotency_conflict"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string"}}]},"/changes":{"get":{"summary":"List observed changes","operationId":"listObservedChanges","tags":["Alerts & Changes"],"parameters":[{"name":"subscription_id","in":"query","schema":{"type":"string"}},{"name":"entity_id","in":"query","schema":{"type":"string"}},{"name":"severity","in":"query","schema":{"$ref":"#/components/schemas/ChangeSeverity"}},{"name":"change_type","in":"query","schema":{"$ref":"#/components/schemas/ChangeType"}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"description":"Observed changes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObservedChangeList"}}}},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/changes/{change_id}":{"get":{"summary":"Get an observed change","operationId":"getObservedChange","tags":["Alerts & Changes"],"responses":{"200":{"description":"Observed change with evidence","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObservedChange"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Observed change not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"change_id","in":"path","required":true,"schema":{"type":"string"}}]},"/alert-rules":{"post":{"summary":"Create an alert rule","operationId":"createAlertRule","tags":["Alerts & Changes"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRuleInput"}}}},"responses":{"201":{"description":"Alert rule created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRule"}}}},"401":{"description":"Authentication failed"},"422":{"description":"Invalid alert rule"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"get":{"summary":"List alert rules","operationId":"listAlertRules","tags":["Alerts & Changes"],"parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"description":"Alert rules","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRuleList"}}}},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/alert-rules/{rule_id}":{"get":{"summary":"Get an alert rule","operationId":"getAlertRule","tags":["Alerts & Changes"],"responses":{"200":{"description":"Alert rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRule"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Alert rule not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"patch":{"summary":"Update an alert rule","operationId":"updateAlertRule","tags":["Alerts & Changes"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRulePatch"}}}},"responses":{"200":{"description":"Updated alert rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRule"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Alert rule not found"},"422":{"description":"Invalid alert rule update"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"delete":{"summary":"Delete an alert rule","operationId":"deleteAlertRule","tags":["Alerts & Changes"],"responses":{"204":{"description":"Alert rule deleted"},"401":{"description":"Authentication failed"},"404":{"description":"Alert rule not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"rule_id","in":"path","required":true,"schema":{"type":"string"}}]},"/alerts":{"get":{"summary":"List alerts","operationId":"listAlerts","tags":["Alerts & Changes"],"parameters":[{"name":"state","in":"query","schema":{"type":"string","enum":["open","acknowledged"]}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"description":"Alerts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertList"}}}},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/alerts/{alert_id}":{"get":{"summary":"Get an alert","operationId":"getAlert","tags":["Alerts & Changes"],"responses":{"200":{"description":"Alert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alert"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Alert not found"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"alert_id","in":"path","required":true,"schema":{"type":"string"}}]},"/alerts/{alert_id}/acknowledge":{"post":{"summary":"Acknowledge an alert","operationId":"acknowledgeAlert","tags":["Alerts & Changes"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertAcknowledgementInput"}}}},"responses":{"200":{"description":"Acknowledged alert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alert"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Alert not found"},"409":{"description":"Alert already acknowledged"},"422":{"description":"Invalid acknowledgement"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"409":["idempotency_conflict"],"422":["validation_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"alert_id","in":"path","required":true,"schema":{"type":"string"}}]},"/alert-deliveries":{"get":{"summary":"List alert deliveries","operationId":"listAlertDeliveries","tags":["Alerts & Changes"],"parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"description":"Alert delivery attempts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertDeliveryList"}}}},"401":{"description":"Authentication failed"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]},"/alert-deliveries/{delivery_id}/retry":{"post":{"summary":"Retry an alert delivery","operationId":"retryAlertDelivery","tags":["Alerts & Changes"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"202":{"description":"Alert delivery queued for retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertDelivery"}}}},"401":{"description":"Authentication failed"},"404":{"description":"Alert delivery not found"},"409":{"description":"Delivery cannot be retried or idempotency key conflicts"},"429":{"description":"Workspace rate or plan limit exceeded"},"500":{"description":"Temporary runtime failure"}},"x-error-codes":{"401":["authentication_error"],"404":["not_found"],"409":["idempotency_conflict"],"429":["rate_limited"],"500":["server_error"]}},"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"delivery_id","in":"path","required":true,"schema":{"type":"string"}}]}},"components":{"schemas":{"ChangeSeverity":{"type":"string","enum":["low","medium","high","critical"]},"ChangeType":{"type":"string","enum":["field_added","field_changed","field_removed","relationship_added","relationship_removed"]},"AlertChannel":{"type":"string","enum":["webhook","email"]},"ChangeSubscriptionInput":{"type":"object","additionalProperties":false,"required":["name","entity_ids","cadence"],"properties":{"name":{"type":"string","minLength":1,"maxLength":160},"entity_ids":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"string"}},"fields":{"type":"array","maxItems":100,"items":{"type":"string"},"default":[]},"relationship_types":{"type":"array","maxItems":100,"items":{"type":"string"},"default":[]},"cadence":{"type":"string","enum":["manual","hourly","daily","weekly"]},"enabled":{"type":"boolean","default":true}}},"ChangeSubscriptionPatch":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"name":{"type":"string","minLength":1,"maxLength":160},"entity_ids":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"string"}},"fields":{"type":"array","maxItems":100,"items":{"type":"string"}},"relationship_types":{"type":"array","maxItems":100,"items":{"type":"string"}},"cadence":{"type":"string","enum":["manual","hourly","daily","weekly"]},"enabled":{"type":"boolean"}}},"ChangeSubscription":{"allOf":[{"$ref":"#/components/schemas/ChangeSubscriptionInput"},{"type":"object","required":["kind","id","created_at","updated_at"],"properties":{"kind":{"type":"string","enum":["change-subscription"]},"id":{"type":"string"},"last_scanned_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}]},"ObservedChange":{"type":"object","additionalProperties":false,"required":["kind","id","subscription_id","entity_id","change_type","severity","evidence_refs","observed_at"],"properties":{"kind":{"type":"string","enum":["observed-change"]},"id":{"type":"string"},"subscription_id":{"type":"string"},"entity_id":{"type":"string"},"change_type":{"$ref":"#/components/schemas/ChangeType"},"field":{"type":["string","null"]},"before":{},"after":{},"severity":{"$ref":"#/components/schemas/ChangeSeverity"},"evidence_refs":{"type":"array","minItems":1,"items":{"type":"string"}},"observed_at":{"type":"string","format":"date-time"}}},"AlertRuleInput":{"type":"object","additionalProperties":false,"required":["name","severities","change_types","channels"],"properties":{"name":{"type":"string","minLength":1,"maxLength":160},"severities":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/ChangeSeverity"}},"change_types":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/ChangeType"}},"entity_ids":{"type":"array","items":{"type":"string"},"default":[]},"fields":{"type":"array","items":{"type":"string"},"default":[]},"channels":{"type":"array","minItems":1,"uniqueItems":true,"items":{"$ref":"#/components/schemas/AlertChannel"}},"enabled":{"type":"boolean","default":true}}},"AlertRulePatch":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"name":{"type":"string","minLength":1,"maxLength":160},"severities":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/ChangeSeverity"}},"change_types":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/ChangeType"}},"entity_ids":{"type":"array","items":{"type":"string"}},"fields":{"type":"array","items":{"type":"string"}},"channels":{"type":"array","minItems":1,"uniqueItems":true,"items":{"$ref":"#/components/schemas/AlertChannel"}},"enabled":{"type":"boolean"}}},"AlertRule":{"allOf":[{"$ref":"#/components/schemas/AlertRuleInput"},{"type":"object","required":["kind","id","created_at","updated_at"],"properties":{"kind":{"type":"string","enum":["alert-rule"]},"id":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}]},"Alert":{"type":"object","additionalProperties":false,"required":["kind","id","rule_id","change_id","state","severity","title","created_at"],"properties":{"kind":{"type":"string","enum":["alert"]},"id":{"type":"string"},"rule_id":{"type":"string"},"change_id":{"type":"string"},"state":{"type":"string","enum":["open","acknowledged"]},"severity":{"$ref":"#/components/schemas/ChangeSeverity"},"title":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"acknowledged_at":{"type":["string","null"],"format":"date-time"},"acknowledged_by":{"type":["string","null"]},"acknowledgement_note":{"type":"string"}}},"AlertAcknowledgementInput":{"type":"object","additionalProperties":false,"required":["acknowledged_by"],"properties":{"acknowledged_by":{"type":"string","minLength":1,"maxLength":160},"note":{"type":"string","maxLength":1000}}},"AlertDelivery":{"type":"object","additionalProperties":false,"required":["kind","id","alert_id","channel","status","attempts","last_attempt_at"],"properties":{"kind":{"type":"string","enum":["alert-delivery"]},"id":{"type":"string"},"alert_id":{"type":"string"},"channel":{"$ref":"#/components/schemas/AlertChannel"},"status":{"type":"string","enum":["pending","delivered","failed"]},"attempts":{"type":"integer","minimum":0},"last_attempt_at":{"type":"string","format":"date-time"},"next_retry_at":{"type":["string","null"],"format":"date-time"}}},"ChangeScan":{"type":"object","additionalProperties":false,"required":["scan_id","subscription_id","status","changes","alerts","completed_at"],"properties":{"scan_id":{"type":"string"},"subscription_id":{"type":"string"},"status":{"type":"string","enum":["completed"]},"changes":{"type":"array","items":{"$ref":"#/components/schemas/ObservedChange"}},"alerts":{"type":"array","items":{"$ref":"#/components/schemas/Alert"}},"completed_at":{"type":"string","format":"date-time"}}},"ChangeSubscriptionList":{"type":"object","required":["data","next_cursor"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ChangeSubscription"}},"next_cursor":{"type":["string","null"]}}},"ObservedChangeList":{"type":"object","required":["data","next_cursor"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ObservedChange"}},"next_cursor":{"type":["string","null"]}}},"AlertRuleList":{"type":"object","required":["data","next_cursor"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AlertRule"}},"next_cursor":{"type":["string","null"]}}},"AlertList":{"type":"object","required":["data","next_cursor"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Alert"}},"next_cursor":{"type":["string","null"]}}},"AlertDeliveryList":{"type":"object","required":["data","next_cursor"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AlertDelivery"}},"next_cursor":{"type":["string","null"]}}},"IngestionSourceInput":{"type":"object","additionalProperties":false,"required":["name","connector","entity_type","id_field","label_field","field_mappings"],"properties":{"name":{"type":"string","minLength":3,"maxLength":160},"connector":{"type":"string","enum":["webhook","csv","postgres","crm","erp"]},"entity_type":{"type":"string","minLength":1,"maxLength":80},"id_field":{"type":"string","minLength":1,"maxLength":160},"label_field":{"type":"string","minLength":1,"maxLength":160},"field_mappings":{"type":"object","minProperties":1,"maxProperties":100,"additionalProperties":{"type":"string"}},"schedule":{"type":"string","maxLength":120,"default":""}}},"IngestionRunInput":{"type":"object","additionalProperties":false,"required":["source_event_id"],"properties":{"source_event_id":{"type":"string","minLength":3,"maxLength":240},"mode":{"type":"string","enum":["inline","queued"],"default":"inline"},"records":{"type":"array","maxItems":10000,"items":{"type":"object","additionalProperties":true},"default":[]},"csv":{"type":"string","maxLength":10000000,"default":""}}},"OntologyAttributeInput":{"type":"object","additionalProperties":false,"required":["value_type"],"properties":{"value_type":{"type":"string","enum":["any","string","integer","number","boolean","object","array","entity_reference"]},"required":{"type":"boolean","default":false},"cardinality":{"type":"string","enum":["one","many"],"default":"one"}}},"OntologyRelationshipInput":{"type":"object","additionalProperties":false,"properties":{"target_types":{"type":"array","maxItems":100,"items":{"type":"string"}},"cardinality":{"type":"string","enum":["one","many"],"default":"many"}}},"OntologyEntityTypeInput":{"type":"object","additionalProperties":false,"properties":{"attributes":{"type":"object","maxProperties":500,"additionalProperties":{"$ref":"#/components/schemas/OntologyAttributeInput"}},"relationships":{"type":"object","maxProperties":500,"additionalProperties":{"$ref":"#/components/schemas/OntologyRelationshipInput"}}}},"OntologyPublicationInput":{"type":"object","additionalProperties":false,"required":["name","entity_types"],"properties":{"name":{"type":"string","minLength":3,"maxLength":160},"expected_parent_ontology_id":{"type":["string","null"],"maxLength":160},"allow_breaking":{"type":"boolean","default":false},"entity_types":{"type":"object","minProperties":1,"maxProperties":500,"additionalProperties":{"$ref":"#/components/schemas/OntologyEntityTypeInput"}}}},"GraphEventSubscriptionInput":{"type":"object","additionalProperties":false,"required":["name","url","event_types"],"properties":{"name":{"type":"string","minLength":3,"maxLength":160},"url":{"type":"string","format":"uri"},"secret_ref":{"type":"string","pattern":"^env:[A-Za-z_][A-Za-z0-9_]*$","default":"env:ENTITY_INTELLIGENCE_WEBHOOK_SECRET"},"event_types":{"type":"array","minItems":1,"maxItems":100,"uniqueItems":true,"items":{"type":"string"}}}},"DuplicateDetectionInput":{"type":"object","additionalProperties":false,"properties":{"entity_type":{"type":"string","maxLength":80,"default":""},"minimum_score":{"type":"number","minimum":0,"maximum":1,"default":0.7},"maximum_entities":{"type":"integer","minimum":2,"maximum":10000,"default":2000}}},"IdentityDuplicateProposal":{"type":"object","required":["id","graph_release_id","left_entity_id","right_entity_id","score","classification","explanation","status"],"properties":{"id":{"type":"string"},"graph_release_id":{"type":"string"},"left_entity_id":{"type":"string"},"right_entity_id":{"type":"string"},"score":{"type":"number","minimum":0,"maximum":1},"classification":{"type":"string","enum":["safe","review_required","unsafe"]},"explanation":{"type":"array","items":{"type":"object","additionalProperties":true}},"status":{"type":"string","enum":["pending","accepted","rejected"]}}},"IdentityDecisionInput":{"type":"object","additionalProperties":false,"required":["decision","expected_graph_release_id","reason"],"properties":{"decision":{"type":"string","enum":["accepted","rejected"]},"canonical_entity_id":{"type":"string","maxLength":240,"default":""},"property_resolutions":{"type":"object","maxProperties":500,"additionalProperties":true},"expected_graph_release_id":{"type":"string","minLength":1,"maxLength":160},"reason":{"type":"string","minLength":3,"maxLength":500}}},"IdentitySplitInput":{"type":"object","additionalProperties":false,"required":["expected_graph_release_id","expected_version","reason"],"properties":{"expected_graph_release_id":{"type":"string","minLength":1,"maxLength":160},"expected_version":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":3,"maxLength":500}}},"QueryJobActionInput":{"type":"object","additionalProperties":false,"required":["reason"],"properties":{"reason":{"type":"string","minLength":3,"maxLength":500}}},"GraphQueryJob":{"type":"object","required":["id","workspace_id","shard_id","request","plan","status","attempts","attempt_history","manual_retries","heartbeat_count","created_at","updated_at"],"properties":{"id":{"type":"string"},"workspace_id":{"type":"string"},"shard_id":{"type":"string","pattern":"^shard-[0-9]{4}$"},"request":{"$ref":"#/components/schemas/GraphQueryInput"},"plan":{"type":"object","additionalProperties":true},"status":{"type":"string","enum":["queued","running","retrying","cancellation_requested","cancelled","completed","dead_letter"]},"result":{"type":["object","null"],"additionalProperties":true},"error":{"type":["string","null"]},"attempts":{"type":"integer","minimum":0},"attempt_history":{"type":"array","items":{"type":"object","additionalProperties":true}},"next_attempt_at":{"type":["string","null"],"format":"date-time"},"cancellation":{"type":["object","null"],"additionalProperties":true},"manual_retries":{"type":"integer","minimum":0},"last_retry":{"type":["object","null"],"additionalProperties":true},"heartbeat_count":{"type":"integer","minimum":0},"last_heartbeat_at":{"type":["string","null"],"format":"date-time"},"worker_id":{"type":["string","null"]},"lease_expires_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"GraphQueryPlan":{"type":"object","additionalProperties":false,"required":["indexes","candidate_count","evaluated_count","cache_hit","fallback_filters","estimated_cost","estimated_relationship_reads","estimated_fanout","estimated_working_set_bytes","statistics","selectivity","execution_class","elapsed_ms"],"properties":{"indexes":{"type":"array","items":{"type":"string"}},"candidate_count":{"type":"integer","minimum":0},"evaluated_count":{"type":"integer","minimum":0},"cache_hit":{"type":"boolean"},"fallback_filters":{"type":"integer","minimum":0},"estimated_cost":{"type":"integer","minimum":1},"estimated_relationship_reads":{"type":"integer","minimum":0},"estimated_fanout":{"type":"number","minimum":0},"estimated_working_set_bytes":{"type":"integer","minimum":0},"statistics":{"type":"object","additionalProperties":true},"selectivity":{"type":"number","minimum":0,"maximum":1},"execution_class":{"type":"string","enum":["interactive","batch","rejected"]},"elapsed_ms":{"type":"number","minimum":0},"workspace_projection":{"type":["object","null"],"additionalProperties":true}}},"GraphClaimInput":{"type":"object","additionalProperties":false,"required":["entity_id","entity_type","label","attribute","value"],"properties":{"entity_id":{"type":"string","minLength":3,"maxLength":240,"pattern":"^[A-Za-z0-9_.:-]+$"},"entity_type":{"type":"string","minLength":1,"maxLength":80},"label":{"type":"string","minLength":1,"maxLength":500},"attribute":{"type":"string","minLength":1,"maxLength":240},"value":{},"confidence":{"type":"number","minimum":0,"maximum":1,"default":1},"provider":{"type":["string","null"],"maxLength":160},"evidence":{"type":"object","additionalProperties":true}}},"GraphPublicationInput":{"type":"object","additionalProperties":false,"required":["source_id","claims"],"properties":{"source_id":{"type":"string","minLength":3,"maxLength":240},"expected_parent_release_id":{"type":["string","null"],"maxLength":160},"claims":{"type":"array","minItems":1,"maxItems":500,"items":{"$ref":"#/components/schemas/GraphClaimInput"}}}},"GraphActivationInput":{"type":"object","additionalProperties":false,"required":["expected_current_release_id"],"properties":{"expected_current_release_id":{"type":"string","minLength":1,"maxLength":160},"reason":{"type":"string","minLength":3,"maxLength":500,"default":"operator rollback"}}},"WorkspaceGraphRelease":{"type":"object","required":["release_id","workspace_id","shard_id","catalog_release_id","parent_release_id","source_id","created_at","counts"],"properties":{"release_id":{"type":"string"},"workspace_id":{"type":"string"},"shard_id":{"type":"string","pattern":"^shard-[0-9]{4}$"},"catalog_release_id":{"type":"string"},"parent_release_id":{"type":["string","null"]},"source_id":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"active":{"type":"boolean"},"counts":{"type":"object","required":["entities","relationships","evidence"],"properties":{"entities":{"type":"integer","minimum":0},"relationships":{"type":"integer","minimum":0},"evidence":{"type":"integer","minimum":0}}}}},"WorkspaceGraphCollectionDiff":{"type":"object","required":["added","removed","changed"],"properties":{"added":{"type":"array","items":{"type":"string"}},"removed":{"type":"array","items":{"type":"string"}},"changed":{"type":"array","items":{"type":"string"}}}},"WorkspaceGraphReleaseDiff":{"type":"object","required":["base_release_id","target_release_id","entities","relationships","evidence"],"properties":{"base_release_id":{"type":"string"},"target_release_id":{"type":"string"},"entities":{"$ref":"#/components/schemas/WorkspaceGraphCollectionDiff"},"relationships":{"$ref":"#/components/schemas/WorkspaceGraphCollectionDiff"},"evidence":{"$ref":"#/components/schemas/WorkspaceGraphCollectionDiff"}}},"GraphQueryInput":{"type":"object","additionalProperties":false,"required":["query"],"properties":{"query":{"type":"string","minLength":1,"maxLength":2000,"description":"A Graph Query gq/1.3 expression beginning with type:EntityType. Supports AND/OR/NOT groups, correlated field.{...} scopes, parameters, full-text, arrays, existence, comparisons, traversal, facets, projections, multi-sort, cursor pagination, return, and limit."},"parameters":{"type":"object","description":"Named values referenced as $name in the query. Use parameters instead of interpolating untrusted input.","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","maxItems":100,"items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}}]},"default":{}},"cursor":{"type":["string","null"],"pattern":"^gqc_[0-9]+$","maxLength":500,"default":null}},"example":{"query":"type:Organization location.country:$country AND (industry:\"Logistics\" OR employees>=500) sort:-employees,+label select:businessId,employees,industry facet:industry return:entities,evidence limit:25","parameters":{"country":"FI"}}},"GraphQueryTranslationInput":{"type":"object","additionalProperties":false,"required":["dialect","query"],"properties":{"dialect":{"type":"string","description":"Source dialect id or alias: diffbot-dql/dql, elasticsearch-query-dsl/opensearch, kibana-kql/kql, lucene-query-string/lucene, opensearch-ppl/ppl, sql-select/sql, cypher, or legacy-filter-json/legacy-json."},"query":{"oneOf":[{"type":"string","minLength":1,"maxLength":10000},{"type":"object","additionalProperties":true}]},"entity_type":{"type":["string","null"],"pattern":"^[A-Z][A-Za-z0-9_]{0,63}$","description":"Required for Elasticsearch/OpenSearch because an index does not declare the Graph Query root type."},"mode":{"type":"string","enum":["strict","best_effort"],"default":"strict"},"parameters":{"type":"object","additionalProperties":true,"default":{}}},"example":{"dialect":"diffbot-dql","query":"type:Organization locations.country.name:\"FI\" nbEmployees>=100 sortBy:nbEmployees","mode":"strict"}},"GraphQueryTranslationDiagnostic":{"type":"object","additionalProperties":false,"required":["severity","code","message","path","suggestion"],"properties":{"severity":{"type":"string","enum":["warning","error"]},"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"string"},"suggestion":{"type":["string","null"]}}},"GraphQueryFieldMapping":{"type":"object","additionalProperties":false,"required":["source","target","lossless"],"properties":{"source":{"type":"string"},"target":{"type":"string"},"lossless":{"type":"boolean"}}},"GraphQueryTranslationResult":{"type":"object","additionalProperties":false,"required":["source_dialect","target_dialect","valid","lossless","query","diagnostics","mappings","validation"],"properties":{"source_dialect":{"type":"string"},"target_dialect":{"type":"string","enum":["graph-query-gq-1.3"]},"valid":{"type":"boolean"},"lossless":{"type":"boolean"},"query":{"type":["string","null"]},"diagnostics":{"type":"array","items":{"$ref":"#/components/schemas/GraphQueryTranslationDiagnostic"}},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/GraphQueryFieldMapping"}},"validation":{"oneOf":[{"$ref":"#/components/schemas/GraphQueryValidation"},{"type":"null"}]}}},"GraphQueryVerificationInput":{"type":"object","additionalProperties":false,"required":["dialect","query"],"properties":{"dialect":{"type":"string"},"query":{"oneOf":[{"type":"string","minLength":1,"maxLength":10000},{"type":"object","additionalProperties":true}]},"entity_type":{"type":["string","null"],"pattern":"^[A-Z][A-Za-z0-9_]{0,63}$"},"mode":{"type":"string","enum":["strict","best_effort"],"default":"strict"},"parameters":{"type":"object","additionalProperties":true,"default":{}},"expected_entity_ids":{"type":"array","items":{"type":"string"},"maxItems":100},"expected_facets":{"type":"array","items":{"type":"object","additionalProperties":true}},"source_result":{"type":"object","additionalProperties":true,"description":"Captured or live source-system result. entity_ids, facets, and page.has_more are compared with the translated target execution."}},"example":{"dialect":"diffbot-dql","query":"type:Organization locations.{country.name:\"FI\" city.name:\"Helsinki\"}","mode":"strict","expected_entity_ids":["org_fi_2841842_1"]}},"GraphQueryVerificationResult":{"type":"object","additionalProperties":false,"required":["verified","equivalence_score","baseline","translation","checks","differences"],"properties":{"verified":{"type":"boolean"},"equivalence_score":{"type":"number","minimum":0,"maximum":100},"baseline":{"type":"string","enum":["unavailable","translated_fixture_replay","expected_fixture_result","captured_source_result","source_adapter"]},"translation":{"$ref":"#/components/schemas/GraphQueryTranslationResult"},"checks":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","passed","weight"],"properties":{"id":{"type":"string"},"passed":{"type":"boolean"},"weight":{"type":"number"}}}},"differences":{"type":"array","items":{"type":"object","additionalProperties":true}},"result":{"$ref":"#/components/schemas/GraphQueryResult"},"source_execution":{"oneOf":[{"type":"object","additionalProperties":true},{"type":"null"}]}}},"GraphQueryMigrationInput":{"type":"object","additionalProperties":false,"required":["dialect","items"],"properties":{"dialect":{"type":"string"},"mode":{"type":"string","enum":["strict","best_effort"],"default":"strict"},"verify":{"type":"boolean","default":true},"entity_type":{"type":["string","null"],"pattern":"^[A-Z][A-Za-z0-9_]{0,63}$"},"items":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":true,"required":["query"],"properties":{"id":{"type":"string"},"query":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":true}]}}}}},"example":{"dialect":"diffbot-dql","mode":"strict","verify":true,"items":[{"id":"finnish-hq","query":"type:Organization locations.{country.name:\"FI\" city.name:\"Helsinki\"}"}]}},"GraphQueryMigrationResult":{"type":"object","additionalProperties":false,"required":["source_dialect","target_dialect","summary","results"],"properties":{"source_dialect":{"type":["string","null"]},"target_dialect":{"type":"string","enum":["graph-query-gq-1.3"]},"summary":{"type":"object","additionalProperties":false,"required":["total","auto_approved","review_needed","impossible"],"properties":{"total":{"type":"integer"},"auto_approved":{"type":"integer"},"review_needed":{"type":"integer"},"impossible":{"type":"integer"}}},"results":{"type":"array","items":{"type":"object","additionalProperties":true}}}},"GraphEntity":{"type":"object","additionalProperties":false,"required":["id","type","label","properties","evidence_ids"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"label":{"type":"string"},"properties":{"type":"object","additionalProperties":true},"evidence_ids":{"type":"array","items":{"type":"string"}}}},"GraphRelationship":{"type":"object","additionalProperties":false,"required":["id","type","from","to","confidence","evidence_ids"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"confidence":{"type":"number","minimum":0,"maximum":1},"evidence_ids":{"type":"array","items":{"type":"string"}}}},"GraphEvidence":{"type":"object","additionalProperties":false,"required":["id","source","observed_at","url"],"properties":{"id":{"type":"string"},"source":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"url":{"type":"string","format":"uri"}}},"GraphQueryResult":{"type":"object","additionalProperties":false,"required":["syntax_version","query","total","entities","relationships","evidence","facets","page","query_plan"],"properties":{"syntax_version":{"type":"string","enum":["gq/1.3"]},"query":{"type":"string"},"total":{"type":"integer","minimum":0},"entities":{"type":"array","items":{"$ref":"#/components/schemas/GraphEntity"}},"relationships":{"type":"array","items":{"$ref":"#/components/schemas/GraphRelationship"}},"evidence":{"type":"array","items":{"$ref":"#/components/schemas/GraphEvidence"}},"facets":{"type":"array","items":{"$ref":"#/components/schemas/GraphFacet"}},"page":{"type":"object","additionalProperties":false,"required":["limit","next_cursor"],"properties":{"limit":{"type":"integer"},"next_cursor":{"type":["string","null"]}}},"query_plan":{"$ref":"#/components/schemas/GraphQueryPlan"}}},"GraphFacetBucket":{"type":"object","additionalProperties":false,"required":["value","count"],"properties":{"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"count":{"type":"integer","minimum":1}}},"GraphFacet":{"type":"object","additionalProperties":false,"required":["field","buckets"],"properties":{"field":{"type":"string"},"buckets":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/GraphFacetBucket"}}}},"GraphQueryValidation":{"type":"object","additionalProperties":false,"required":["valid","query","errors"],"properties":{"valid":{"type":"boolean"},"query":{"type":["object","null"],"additionalProperties":true},"errors":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","message","position"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"position":{"type":"integer"}}}}}},"GraphQueryExplain":{"type":"object","additionalProperties":false,"required":["syntax_version","adapter","safe_to_execute","estimate","indexes","warnings","steps"],"properties":{"syntax_version":{"type":"string","enum":["gq/1.3"]},"adapter":{"type":"string"},"safe_to_execute":{"type":"boolean"},"estimate":{"type":"object","additionalProperties":false,"required":["entities_min","entities_max","credits","depth"],"properties":{"entities_min":{"type":"integer","minimum":0},"entities_max":{"type":"integer","minimum":0},"credits":{"type":"integer","minimum":0},"depth":{"type":"integer","minimum":0,"maximum":4}}},"indexes":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"}},"steps":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","operation","detail"],"properties":{"id":{"type":"string"},"operation":{"type":"string"},"detail":{"type":"string"}}}}}},"EnrichmentContextInput":{"properties":{"entity_context":{"type":"string","maxLength":80,"title":"Entity Context","default":""},"market":{"type":"string","maxLength":16,"title":"Market","default":""},"language":{"type":"string","maxLength":35,"title":"Language","default":""},"jurisdiction":{"type":"string","maxLength":40,"title":"Jurisdiction","default":""},"at":{"type":"string","maxLength":40,"title":"At","default":""},"known_at":{"type":"string","maxLength":40,"title":"Known At","default":""}},"additionalProperties":false,"type":"object","title":"EnrichmentContextInput"},"EnrichmentJobInput":{"properties":{"profile":{"type":"string","title":"Profile","default":"verified-company@1"},"confidence_policy":{"type":"string","enum":["strict","balanced","broad"],"title":"Confidence Policy","default":"balanced"},"output_format":{"type":"string","enum":["json","jsonl","csv"],"title":"Output Format","default":"jsonl"},"records":{"items":{"$ref":"#/components/schemas/EnrichmentRecordInput"},"type":"array","minItems":1,"title":"Records"},"webhook_url":{"type":"string","title":"Webhook Url","default":""},"usage_reservation_id":{"type":"string","maxLength":160,"title":"Usage Reservation Id","default":""},"context":{"$ref":"#/components/schemas/EnrichmentContextInput"},"source_policy":{"$ref":"#/components/schemas/SourcePolicyInput"}},"additionalProperties":false,"type":"object","required":["records"],"title":"EnrichmentJobInput"},"EnrichmentJob":{"type":"object","additionalProperties":false,"required":["id","status","profile","result_count","resolved_count","review_required_count","failed_count","created_at","started_at","completed_at"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","processing","completed","completed_with_errors","failed","canceled"]},"profile":{"type":"string"},"result_count":{"type":"integer","minimum":0},"resolved_count":{"type":"integer","minimum":0},"review_required_count":{"type":"integer","minimum":0},"failed_count":{"type":"integer","minimum":0},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"}}},"EnrichmentJobList":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EnrichmentJob"}}}},"EnrichmentRecord":{"type":"object","additionalProperties":true,"required":["id","client_record_id","profile","status","entity_id","resolution","facts","confidence","review_required","evidence","claims"],"properties":{"id":{"type":"string"},"client_record_id":{"type":"string"},"profile":{"type":"string"},"status":{"type":"string","enum":["enriched","review_required","unmatched","failed"]},"entity_id":{"type":["string","null"]},"resolution":{"$ref":"#/components/schemas/EntityResolutionResult"},"facts":{"type":"object","additionalProperties":true},"confidence":{"type":"number","minimum":0,"maximum":1},"review_required":{"type":"boolean"},"evidence":{"type":"array","items":{"$ref":"#/components/schemas/GraphEvidence"}},"claims":{"type":"array","items":{"type":"object","additionalProperties":true}},"error":{"type":"object","additionalProperties":true}}},"EnrichmentRecordList":{"type":"object","additionalProperties":false,"required":["data","job_status"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EnrichmentRecord"}},"job_status":{"type":"string"}}},"ReviewCase":{"type":"object","additionalProperties":false,"required":["id","job_id","record_id","client_record_id","state","version","candidate_entity_ids","created_at","updated_at"],"properties":{"id":{"type":"string"},"job_id":{"type":"string"},"record_id":{"type":"string"},"client_record_id":{"type":"string"},"state":{"type":"string","enum":["pending","accepted","rejected"]},"version":{"type":"integer","minimum":1},"candidate_entity_ids":{"type":"array","items":{"type":"string"}},"selected_entity_id":{"type":["string","null"]},"reason":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"ReviewCaseList":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReviewCase"}}}},"EnrichmentWebhook":{"type":"object","additionalProperties":false,"required":["id","name","url","events","status","created_at"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["active","deleted"]},"created_at":{"type":"string","format":"date-time"}}},"WebhookDelivery":{"type":"object","additionalProperties":false,"required":["id","webhook_id","event_id","event","resource_id","status","attempts","response_status","next_retry_at","created_at","last_attempt_at"],"properties":{"id":{"type":"string"},"webhook_id":{"type":"string"},"event_id":{"type":"string"},"event":{"type":"string","enum":["enrichment.completed","enrichment.review_required","enrichment.failed"]},"resource_id":{"type":"string"},"status":{"type":"string","enum":["delivered","retrying","failed"]},"attempts":{"type":"integer","minimum":1},"response_status":{"type":"integer"},"next_retry_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"last_attempt_at":{"type":"string","format":"date-time"}}},"WebhookDeliveryList":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDelivery"}}}},"EntityResolutionRecordInput":{"type":"object","additionalProperties":false,"required":["id","entity_type","fields"],"properties":{"id":{"type":"string","minLength":1,"maxLength":120,"description":"Stable client-side record identifier."},"entity_type":{"type":"string","enum":["Organization","Person"],"description":"Entity class to resolve."},"fields":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"},"description":"Known identity signals such as name, business_id, domain, email, and country."}}},"EntityResolutionInput":{"type":"object","additionalProperties":false,"required":["record"],"properties":{"confidence_policy":{"type":"string","enum":["strict","balanced","broad"],"default":"balanced"},"record":{"$ref":"#/components/schemas/EntityResolutionRecordInput"}}},"EntityResolutionEvaluationInput":{"type":"object","additionalProperties":false,"required":["cases"],"properties":{"policies":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["strict","balanced","broad"]},"default":["strict","balanced","broad"]},"cases":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"object","additionalProperties":false,"required":["record","expected_entity_id"],"properties":{"record":{"$ref":"#/components/schemas/EntityResolutionRecordInput"},"expected_entity_id":{"type":["string","null"]}}}}}},"EntityResolutionEvaluationResult":{"type":"object","additionalProperties":false,"required":["total_cases","metrics"],"properties":{"total_cases":{"type":"integer","minimum":1},"metrics":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["policy","auto_resolved","review_required","unmatched","true_positives","false_positives","false_negatives","precision","recall","review_rate"],"properties":{"policy":{"type":"string","enum":["strict","balanced","broad"]},"auto_resolved":{"type":"integer","minimum":0},"review_required":{"type":"integer","minimum":0},"unmatched":{"type":"integer","minimum":0},"true_positives":{"type":"integer","minimum":0},"false_positives":{"type":"integer","minimum":0},"false_negatives":{"type":"integer","minimum":0},"precision":{"type":"number","minimum":0,"maximum":1},"recall":{"type":"number","minimum":0,"maximum":1},"review_rate":{"type":"number","minimum":0,"maximum":1}}}}}},"ResolvedEntity":{"type":"object","additionalProperties":false,"required":["id","type","label","properties","confidence","evidence_ids"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["Organization","Person"]},"label":{"type":"string"},"properties":{"type":"object","additionalProperties":true},"confidence":{"type":"number","minimum":0,"maximum":1},"evidence_ids":{"type":"array","items":{"type":"string"}}}},"EntityResolutionCandidate":{"type":"object","additionalProperties":false,"required":["rank","score","reasons","entity"],"properties":{"rank":{"type":"integer","minimum":1},"score":{"type":"number","minimum":0,"maximum":1},"reasons":{"type":"array","items":{"type":"string","enum":["exact_business_id","exact_domain","exact_email","exact_phone","exact_address","name_match","fuzzy_name_match","partial_name_match","country_match","country_conflict","business_id_conflict"]}},"entity":{"$ref":"#/components/schemas/ResolvedEntity"}}},"EntityResolutionResult":{"type":"object","additionalProperties":false,"required":["client_record_id","status","entity_type","canonical_entity","candidates","decision","evidence","review_case_id","resolved_at"],"properties":{"client_record_id":{"type":"string"},"status":{"type":"string","enum":["resolved","review_required","unmatched"]},"entity_type":{"type":"string","enum":["Organization","Person"]},"canonical_entity":{"oneOf":[{"$ref":"#/components/schemas/ResolvedEntity"},{"type":"null"}]},"candidates":{"type":"array","maxItems":5,"items":{"$ref":"#/components/schemas/EntityResolutionCandidate"}},"decision":{"type":"object","additionalProperties":false,"required":["policy","threshold","required_margin","top_score","margin","outcome","reason"],"properties":{"policy":{"type":"string","enum":["strict","balanced","broad"]},"threshold":{"type":"number"},"required_margin":{"type":"number"},"top_score":{"type":"number"},"margin":{"type":"number"},"outcome":{"type":"string","enum":["resolved","review_required","unmatched"]},"reason":{"type":"string","enum":["strong_identifier_match","score_and_margin_accepted","candidate_requires_review","no_candidate_found","human_review_accepted","human_review_rejected"]}}},"evidence":{"type":"array","items":{"$ref":"#/components/schemas/GraphEvidence"}},"review_case_id":{"type":["string","null"]},"resolved_at":{"type":"string","format":"date-time"}}},"EnrichmentRecordInput":{"properties":{"id":{"type":"string","maxLength":120,"minLength":1,"title":"Id"},"fields":{"additionalProperties":{"type":"string"},"type":"object","title":"Fields"}},"additionalProperties":false,"type":"object","required":["id","fields"],"title":"EnrichmentRecordInput"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ReviewDecisionInput":{"properties":{"decision":{"type":"string","enum":["accepted","rejected","unresolved"],"title":"Decision"},"reason":{"type":"string","maxLength":500,"minLength":3,"title":"Reason"},"expected_version":{"type":"integer","minimum":1,"title":"Expected Version"}},"additionalProperties":false,"type":"object","required":["decision","reason","expected_version"],"title":"ReviewDecisionInput"},"SourcePolicyInput":{"properties":{"remote_enabled":{"type":"boolean","title":"Remote Enabled","default":false},"allowed_provider_ids":{"items":{"type":"string"},"type":"array","maxItems":50,"title":"Allowed Provider Ids"},"blocked_provider_ids":{"items":{"type":"string"},"type":"array","maxItems":50,"title":"Blocked Provider Ids"},"allowed_cost_tiers":{"items":{"type":"string","enum":["free","metered","paid"]},"type":"array","title":"Allowed Cost Tiers"},"allowed_licenses":{"items":{"type":"string"},"type":"array","maxItems":50,"title":"Allowed Licenses"},"blocked_licenses":{"items":{"type":"string"},"type":"array","maxItems":50,"title":"Blocked Licenses"},"minimum_trust_tier":{"type":"string","enum":["authoritative","curated","community","unknown"],"title":"Minimum Trust Tier","default":"unknown"},"maximum_total_references":{"type":"integer","maximum":1000,"minimum":1,"title":"Maximum Total References","default":50},"maximum_references_per_provider":{"type":"integer","maximum":500,"minimum":1,"title":"Maximum References Per Provider","default":10},"maximum_calls_per_provider":{"type":"integer","maximum":200,"minimum":1,"title":"Maximum Calls Per Provider","default":10},"maximum_attempts":{"type":"integer","maximum":10,"minimum":1,"title":"Maximum Attempts","default":3}},"additionalProperties":false,"type":"object","title":"SourcePolicyInput"},"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"},"WebhookInput":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"url":{"type":"string","title":"Url"},"events":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Events"}},"additionalProperties":false,"type":"object","required":["name","url","events"],"title":"WebhookInput"},"GraphQueryFormatResult":{"type":"object","additionalProperties":false,"required":["stable","canonical","query"],"properties":{"stable":{"type":"boolean"},"canonical":{"type":"string"},"query":{"type":"object","additionalProperties":true}}},"GraphQueryMigrationRun":{"type":"object","additionalProperties":false,"required":["id","status","attempts","request","events","created_at","updated_at"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","running","completed","failed","cancelled"]},"attempts":{"type":"integer","minimum":0},"request":{"$ref":"#/components/schemas/GraphQueryMigrationInput"},"result":{"oneOf":[{"$ref":"#/components/schemas/GraphQueryMigrationResult"},{"type":"null"}]},"error":{"oneOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"events":{"type":"array","items":{"type":"object","additionalProperties":true}},"created_by":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"workspace service key"}},"parameters":{"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Stable mutation key. Replays return the original response; reuse with another payload returns 409."},"Limit":{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"description":"Maximum number of resources returned."},"Cursor":{"name":"cursor","in":"query","required":false,"schema":{"type":"string","pattern":"^[0-9]+$"},"description":"Opaque cursor returned by the previous page."},"ApiVersion":{"name":"Api-Version","in":"header","required":false,"schema":{"type":"string","default":"2026-08-13"},"description":"Pinned contract date. Omit to use the current compatible v1 contract."}}},"servers":[{"url":"https://api.enrich.nordicdevhouse.com","description":"Production"},{"url":"https://sandbox.enrich.nordicdevhouse.com","description":"Sandbox"}],"security":[{"bearerAuth":[]}]}