{ "components": { "schemas": { "ActorQualityInfo": { "description": "Specificity signals showing whether a record is a concrete actor lead.", "properties": { "level": { "default": "thin_record", "description": "specific_actor | partial_actor | thin_record.", "title": "Level", "type": "string" }, "missing": { "description": "missing for this actor quality info.", "items": { "type": "string" }, "title": "Missing", "type": "array" }, "present": { "description": "present for this actor quality info.", "items": { "type": "string" }, "title": "Present", "type": "array" }, "score": { "default": 0, "description": "score for this actor quality info.", "minimum": 0.0, "title": "Score", "type": "integer" }, "total": { "default": 5, "description": "total for this actor quality info.", "minimum": 1.0, "title": "Total", "type": "integer" } }, "title": "ActorQualityInfo", "type": "object" }, "Address": { "description": "Canonical address and place metadata.", "properties": { "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "city for this address.", "title": "City" }, "display": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "display for this address.", "title": "Display" }, "full_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "full address for this address.", "title": "Full Address" }, "geo_specificity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "geo specificity for this address.", "title": "Geo Specificity" }, "region": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "region for this address.", "title": "Region" }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "state for this address.", "title": "State" } }, "title": "Address", "type": "object" }, "AnnotationCreateRequest": { "description": "Request to create an annotation.", "properties": { "content": { "description": "Annotation content", "minLength": 1, "title": "Content", "type": "string" }, "entry_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the shared entry to annotate", "title": "Entry Id" }, "source_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the source packet to annotate", "title": "Source Id" } }, "required": [ "content" ], "title": "AnnotationCreateRequest", "type": "object" }, "AnnotationResponse": { "description": "Annotation response model.", "properties": { "author_id": { "description": "Author user ID", "title": "Author Id", "type": "string" }, "content": { "description": "Annotation content", "title": "Content", "type": "string" }, "created_at": { "description": "Creation timestamp", "title": "Created At", "type": "string" }, "entry_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Annotated entry ID", "title": "Entry Id" }, "id": { "description": "Annotation ID", "title": "Id", "type": "string" }, "org_id": { "description": "Owning organization ID", "title": "Org Id", "type": "string" }, "source_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Annotated source ID", "title": "Source Id" }, "target_id": { "description": "Annotated entry or source ID", "title": "Target Id", "type": "string" }, "target_type": { "description": "entry | source", "title": "Target Type", "type": "string" }, "updated_at": { "description": "Last update timestamp", "title": "Updated At", "type": "string" } }, "required": [ "id", "org_id", "target_type", "target_id", "content", "author_id", "created_at", "updated_at" ], "title": "AnnotationResponse", "type": "object" }, "AnnotationUpdateRequest": { "description": "Request to update an annotation.", "properties": { "content": { "description": "Updated annotation content", "minLength": 1, "title": "Content", "type": "string" } }, "required": [ "content" ], "title": "AnnotationUpdateRequest", "type": "object" }, "AtprotoIdentityDelegationRequest": { "description": "Grant one member authority to administer an organization identity.", "properties": { "delegate_user_id": { "description": "delegate user id for this atproto identity delegation.", "title": "Delegate User Id", "type": "string" } }, "required": [ "delegate_user_id" ], "title": "AtprotoIdentityDelegationRequest", "type": "object" }, "AtprotoIdentityDelegationResponse": { "description": "Workspace-scoped, revocable administration delegation.", "properties": { "controller_user_id": { "description": "controller user id for this atproto identity delegation.", "title": "Controller User Id", "type": "string" }, "delegate_user_id": { "description": "delegate user id for this atproto identity delegation.", "title": "Delegate User Id", "type": "string" }, "granted_at": { "description": "granted at for this atproto identity delegation.", "title": "Granted At", "type": "string" }, "granted_by": { "description": "granted by for this atproto identity delegation.", "title": "Granted By", "type": "string" }, "id": { "description": "id for this atproto identity delegation.", "title": "Id", "type": "string" }, "identity_id": { "description": "identity id for this atproto identity delegation.", "title": "Identity Id", "type": "string" }, "organization_id": { "description": "organization id for this atproto identity delegation.", "title": "Organization Id", "type": "string" }, "revoked_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "revoked at for this atproto identity delegation.", "title": "Revoked At" }, "revoked_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "revoked by for this atproto identity delegation.", "title": "Revoked By" }, "status": { "description": "status for this atproto identity delegation.", "enum": [ "active", "revoked" ], "title": "Status", "type": "string" } }, "required": [ "id", "organization_id", "identity_id", "controller_user_id", "delegate_user_id", "status", "granted_by", "granted_at" ], "title": "AtprotoIdentityDelegationResponse", "type": "object" }, "AtprotoIdentityLinkRequest": { "description": "Persist a DID-backed ATProto identity linked by the authenticated user.", "properties": { "current_handle": { "description": "current handle for this atproto identity link.", "title": "Current Handle", "type": "string" }, "did": { "description": "did for this atproto identity link.", "title": "Did", "type": "string" }, "pds_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "pds url for this atproto identity link.", "title": "Pds Url" } }, "required": [ "did", "current_handle" ], "title": "AtprotoIdentityLinkRequest", "type": "object" }, "AtprotoIdentityProfileSummary": { "description": "Profile currently represented by an account identity.", "properties": { "id": { "description": "id for this atproto identity profile summary.", "title": "Id", "type": "string" }, "name": { "description": "name for this atproto identity profile summary.", "title": "Name", "type": "string" }, "slug": { "description": "slug for this atproto identity profile summary.", "title": "Slug", "type": "string" }, "type": { "description": "type for this atproto identity profile summary.", "title": "Type", "type": "string" } }, "required": [ "id", "name", "slug", "type" ], "title": "AtprotoIdentityProfileSummary", "type": "object" }, "AtprotoIdentityResponse": { "description": "Account-visible state for one controlled ATProto identity.", "properties": { "connected_at": { "description": "connected at for this atproto identity.", "title": "Connected At", "type": "string" }, "control_status": { "description": "control status for this atproto identity.", "enum": [ "active", "conflict" ], "title": "Control Status", "type": "string" }, "current_handle": { "description": "current handle for this atproto identity.", "title": "Current Handle", "type": "string" }, "did": { "description": "did for this atproto identity.", "title": "Did", "type": "string" }, "id": { "description": "id for this atproto identity.", "title": "Id", "type": "string" }, "last_checked_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last checked at for this atproto identity.", "title": "Last Checked At" }, "last_resolution_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last resolution error for this atproto identity.", "title": "Last Resolution Error" }, "pds_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "pds url for this atproto identity.", "title": "Pds Url" }, "profiles": { "description": "profiles for this atproto identity.", "items": { "$ref": "#/components/schemas/AtprotoIdentityProfileSummary" }, "title": "Profiles", "type": "array" }, "resolution_status": { "description": "resolution status for this atproto identity.", "enum": [ "verified", "needs_attention" ], "title": "Resolution Status", "type": "string" }, "verified_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "verified at for this atproto identity.", "title": "Verified At" } }, "required": [ "id", "did", "current_handle", "resolution_status", "control_status", "connected_at" ], "title": "AtprotoIdentityResponse", "type": "object" }, "AuditEntryResponse": { "description": "One decision, allowed or refused.", "properties": { "action": { "description": "The action attempted, such as instance.claims.review", "title": "Action", "type": "string" }, "actor_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The actor's email, when they have one", "title": "Actor Email" }, "actor_id": { "description": "Who acted", "title": "Actor Id", "type": "string" }, "allowed": { "description": "Whether it was allowed", "title": "Allowed", "type": "boolean" }, "id": { "description": "Entry ID", "title": "Id", "type": "string" }, "method": { "description": "HTTP method", "title": "Method", "type": "string" }, "occurred_at": { "description": "When it was decided", "title": "Occurred At", "type": "string" }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Why it was refused", "title": "Reason" }, "route": { "description": "Route template", "title": "Route", "type": "string" }, "status_code": { "description": "The status the decision produced", "title": "Status Code", "type": "integer" }, "target": { "additionalProperties": { "type": "string" }, "description": "Route parameters naming what was acted on", "title": "Target", "type": "object" } }, "required": [ "id", "occurred_at", "actor_id", "action", "allowed", "status_code", "method", "route", "target" ], "title": "AuditEntryResponse", "type": "object" }, "AuditPageResponse": { "description": "A page of decisions, newest first.", "properties": { "items": { "description": "Decisions on this page", "items": { "$ref": "#/components/schemas/AuditEntryResponse" }, "title": "Items", "type": "array" }, "next_before": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Pass as `before` for the next, older page; null on the last page", "title": "Next Before" } }, "required": [ "items" ], "title": "AuditPageResponse", "type": "object" }, "ClaimEvidence": { "description": "Reviewed evidence metadata for one visible profile claim.", "properties": { "as_of": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Most recent date supporting this claim.", "title": "As Of" }, "confidence": { "default": "unverified", "description": "Claim support: corroborated | partial | unverified. Identity verification is separate.", "title": "Confidence", "type": "string" }, "source_count": { "default": 0, "description": "source count for this claim evidence.", "minimum": 0.0, "title": "Source Count", "type": "integer" }, "source_ids": { "description": "source ids for this claim evidence.", "items": { "type": "string" }, "title": "Source Ids", "type": "array" }, "verification_level": { "default": "source-derived", "description": "Profile identity verification: source-derived, atlas-verified, subject-verified.", "title": "Verification Level", "type": "string" } }, "title": "ClaimEvidence", "type": "object" }, "ClaimEvidenceSet": { "description": "Evidence metadata grouped by the visible facts on a profile.", "properties": { "contact": { "$ref": "#/components/schemas/ClaimEvidence", "description": "Contact evidence used to support the profile claim." }, "issues": { "$ref": "#/components/schemas/ClaimEvidence", "description": "Issue-area evidence associated with the claimed profile." }, "place": { "$ref": "#/components/schemas/ClaimEvidence", "description": "Place evidence associated with the claimed profile." }, "summary": { "$ref": "#/components/schemas/ClaimEvidence", "description": "Short evidence summary reviewers can inspect." } }, "required": [ "summary", "place", "issues", "contact" ], "title": "ClaimEvidenceSet", "type": "object" }, "ClaimStatusInfo": { "description": "Claim ownership state for a profile.", "properties": { "claim_verified_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "claim verified at for this claim status info.", "title": "Claim Verified At" }, "claimed_by_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "claimed by user id for this claim status info.", "title": "Claimed By User Id" }, "linked_atproto_did": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Stable ATProto DID behind the verified linked handle.", "title": "Linked Atproto Did" }, "linked_atproto_handle": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Verified ATProto handle linked to the profile.", "title": "Linked Atproto Handle" }, "linked_atproto_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "verified when the DID relation is healthy; needs_attention otherwise.", "title": "Linked Atproto Status" }, "linked_atproto_verified_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "linked atproto verified at for this claim status info.", "title": "Linked Atproto Verified At" }, "status": { "default": "unclaimed", "description": "Lifecycle of subject ownership: unclaimed, pending, verified, revoked.", "title": "Status", "type": "string" }, "verification_level": { "default": "source-derived", "description": "Trust tier: source-derived, atlas-verified, subject-verified.", "title": "Verification Level", "type": "string" } }, "title": "ClaimStatusInfo", "type": "object" }, "ConnectedActorResponse": { "description": "A ranked connected actor on an entity's civic map.", "properties": { "description_snippet": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "description snippet for this connected actor.", "title": "Description Snippet" }, "evidence": { "description": "The single strongest reason, for compact display.", "title": "Evidence", "type": "string" }, "id": { "description": "id for this connected actor.", "title": "Id", "type": "string" }, "name": { "description": "name for this connected actor.", "title": "Name", "type": "string" }, "reasons": { "description": "reasons for this connected actor.", "items": { "$ref": "#/components/schemas/ConnectionReasonResponse" }, "title": "Reasons", "type": "array" }, "score": { "description": "Raw weighted connection score.", "title": "Score", "type": "number" }, "slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "slug for this connected actor.", "title": "Slug" }, "strength": { "description": "Connection strength 0-100, relative to the strongest link.", "title": "Strength", "type": "integer" }, "tier": { "description": "strong | moderate | weak.", "title": "Tier", "type": "string" }, "type": { "description": "type for this connected actor.", "title": "Type", "type": "string" } }, "required": [ "id", "name", "type", "score", "strength", "tier", "evidence" ], "title": "ConnectedActorResponse", "type": "object" }, "ConnectionReasonResponse": { "description": "One explainable reason two actors are connected.", "properties": { "count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "count for this connection reason.", "title": "Count" }, "kind": { "description": "same_organization | sourced_edge | co_mentioned | same_issue_area | same_geography.", "title": "Kind", "type": "string" }, "label": { "description": "label for this connection reason.", "title": "Label", "type": "string" }, "relationship_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Semantic relationship type for sourced edges, such as staff or coalition_partner.", "title": "Relationship Type" }, "source_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Source supporting this reason when the connection is persisted as evidence.", "title": "Source Id" } }, "required": [ "kind", "label" ], "title": "ConnectionReasonResponse", "type": "object" }, "ContactInfo": { "description": "Canonical public contact surface.", "properties": { "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "email for this contact info.", "title": "Email" }, "phone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "phone for this contact info.", "title": "Phone" }, "social_media": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "description": "social media for this contact info.", "title": "Social Media" }, "website": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "website for this contact info.", "title": "Website" } }, "title": "ContactInfo", "type": "object" }, "CorrectionInboxItemResponse": { "description": "Private profile report with the profile identity an editor needs.", "properties": { "created_at": { "description": "created at for this correction inbox item.", "title": "Created At", "type": "string" }, "entity_id": { "description": "entity id for this correction inbox item.", "title": "Entity Id", "type": "string" }, "entity_name": { "description": "entity name for this correction inbox item.", "title": "Entity Name", "type": "string" }, "entity_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entity slug for this correction inbox item.", "title": "Entity Slug" }, "entity_type": { "description": "entity type for this correction inbox item.", "title": "Entity Type", "type": "string" }, "id": { "description": "id for this correction inbox item.", "title": "Id", "type": "string" }, "note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "note for this correction inbox item.", "title": "Note" }, "reason": { "description": "reason for this correction inbox item.", "title": "Reason", "type": "string" } }, "required": [ "id", "entity_id", "entity_name", "entity_slug", "entity_type", "reason", "note", "created_at" ], "title": "CorrectionInboxItemResponse", "type": "object" }, "CorrectionInboxResponse": { "description": "Paginated open reports; never exposed to anonymous callers.", "properties": { "items": { "description": "items for this correction inbox.", "items": { "$ref": "#/components/schemas/CorrectionInboxItemResponse" }, "title": "Items", "type": "array" }, "total": { "description": "total for this correction inbox.", "title": "Total", "type": "integer" } }, "required": [ "items", "total" ], "title": "CorrectionInboxResponse", "type": "object" }, "CoverageCount": { "description": "Issue coverage count.", "properties": { "count": { "description": "count for this coverage count.", "title": "Count", "type": "integer" }, "issue_area_id": { "description": "issue area id for this coverage count.", "title": "Issue Area Id", "type": "string" } }, "required": [ "issue_area_id", "count" ], "title": "CoverageCount", "type": "object" }, "CoverageReportDataBoundary": { "description": "Boundary between public civic records and private workspace material.", "properties": { "exclusive_public_data_access": { "description": "exclusive public data access for this coverage report data boundary.", "title": "Exclusive Public Data Access", "type": "boolean" }, "private_workspace_notes_included": { "description": "private workspace notes included for this coverage report data boundary.", "title": "Private Workspace Notes Included", "type": "boolean" }, "statement": { "description": "statement for this coverage report data boundary.", "title": "Statement", "type": "string" } }, "required": [ "exclusive_public_data_access", "private_workspace_notes_included", "statement" ], "title": "CoverageReportDataBoundary", "type": "object" }, "CoverageReportPublicImpact": { "description": "Public-good impact counts from coverage work and usage signals.", "properties": { "coverage_gaps_closed": { "description": "coverage gaps closed for this coverage report public impact.", "minimum": 0.0, "title": "Coverage Gaps Closed", "type": "integer" }, "public_records_improved": { "description": "public records improved for this coverage report public impact.", "minimum": 0.0, "title": "Public Records Improved", "type": "integer" }, "records_found": { "description": "records found for this coverage report public impact.", "minimum": 0.0, "title": "Records Found", "type": "integer" }, "sources_reviewed": { "description": "sources reviewed for this coverage report public impact.", "minimum": 0.0, "title": "Sources Reviewed", "type": "integer" } }, "required": [ "coverage_gaps_closed", "public_records_improved", "records_found", "sources_reviewed" ], "title": "CoverageReportPublicImpact", "type": "object" }, "CoverageReportResponse": { "description": "Exportable coverage report for one workspace.", "properties": { "format": { "const": "json", "description": "format for this coverage report.", "title": "Format", "type": "string" }, "generated_at": { "description": "generated at for this coverage report.", "title": "Generated At", "type": "string" }, "org_id": { "description": "org id for this coverage report.", "title": "Org Id", "type": "string" }, "summary": { "$ref": "#/components/schemas/CoverageReportSummary", "description": "Top-level coverage report metrics and context." }, "targets": { "description": "targets for this coverage report.", "items": { "$ref": "#/components/schemas/CoverageReportTarget" }, "title": "Targets", "type": "array" } }, "required": [ "format", "generated_at", "org_id", "summary", "targets" ], "title": "CoverageReportResponse", "type": "object" }, "CoverageReportSummary": { "description": "Workspace coverage report rollup.", "properties": { "blocked": { "description": "blocked for this coverage report summary.", "title": "Blocked", "type": "integer" }, "covered": { "description": "covered for this coverage report summary.", "title": "Covered", "type": "integer" }, "needs_work": { "description": "needs work for this coverage report summary.", "title": "Needs Work", "type": "integer" }, "next_actions": { "description": "next actions for this coverage report summary.", "title": "Next Actions", "type": "integer" }, "open_gaps": { "description": "open gaps for this coverage report summary.", "title": "Open Gaps", "type": "integer" }, "records_found": { "description": "records found for this coverage report summary.", "title": "Records Found", "type": "integer" }, "sources_reviewed": { "description": "sources reviewed for this coverage report summary.", "title": "Sources Reviewed", "type": "integer" }, "stale": { "description": "stale for this coverage report summary.", "title": "Stale", "type": "integer" }, "thin": { "description": "thin for this coverage report summary.", "title": "Thin", "type": "integer" }, "total_targets": { "description": "total targets for this coverage report summary.", "title": "Total Targets", "type": "integer" }, "unknown": { "description": "unknown for this coverage report summary.", "title": "Unknown", "type": "integer" } }, "required": [ "total_targets", "covered", "thin", "unknown", "stale", "blocked", "needs_work", "records_found", "sources_reviewed", "open_gaps", "next_actions" ], "title": "CoverageReportSummary", "type": "object" }, "CoverageReportTarget": { "description": "Coverage target row suitable for customer-facing report exports.", "properties": { "actor_types": { "description": "actor types for this coverage report target.", "items": { "type": "string" }, "title": "Actor Types", "type": "array" }, "gaps": { "description": "gaps for this coverage report target.", "items": { "$ref": "#/components/schemas/CoverageTargetGap" }, "title": "Gaps", "type": "array" }, "geography": { "description": "geography for this coverage report target.", "title": "Geography", "type": "string" }, "id": { "description": "id for this coverage report target.", "title": "Id", "type": "string" }, "issue_areas": { "description": "issue areas for this coverage report target.", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "last_reviewed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last reviewed at for this coverage report target.", "title": "Last Reviewed At" }, "last_run_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last run at for this coverage report target.", "title": "Last Run At" }, "linked_discovery_run_ids": { "description": "linked discovery run ids for this coverage report target.", "items": { "type": "string" }, "title": "Linked Discovery Run Ids", "type": "array" }, "linked_entry_ids": { "description": "linked entry ids for this coverage report target.", "items": { "type": "string" }, "title": "Linked Entry Ids", "type": "array" }, "name": { "description": "name for this coverage report target.", "title": "Name", "type": "string" }, "next_actions": { "description": "next actions for this coverage report target.", "items": { "type": "string" }, "title": "Next Actions", "type": "array" }, "records_found": { "description": "records found for this coverage report target.", "minimum": 0.0, "title": "Records Found", "type": "integer" }, "review_state": { "description": "review state for this coverage report target.", "enum": [ "needs_research", "in_review", "ready_for_delivery" ], "title": "Review State", "type": "string" }, "source_types": { "description": "source types for this coverage report target.", "items": { "type": "string" }, "title": "Source Types", "type": "array" }, "sources_reviewed": { "description": "sources reviewed for this coverage report target.", "minimum": 0.0, "title": "Sources Reviewed", "type": "integer" }, "status": { "description": "status for this coverage report target.", "enum": [ "covered", "thin", "unknown", "stale", "blocked" ], "title": "Status", "type": "string" }, "status_explanation": { "description": "status explanation for this coverage report target.", "title": "Status Explanation", "type": "string" }, "updated_at": { "description": "updated at for this coverage report target.", "title": "Updated At", "type": "string" } }, "required": [ "id", "name", "geography", "issue_areas", "actor_types", "source_types", "status", "status_explanation", "review_state", "gaps", "next_actions", "records_found", "sources_reviewed", "linked_discovery_run_ids", "linked_entry_ids", "last_run_at", "last_reviewed_at", "updated_at" ], "title": "CoverageReportTarget", "type": "object" }, "CoverageTargetCollectionResponse": { "description": "Collection response for workspace coverage targets.", "properties": { "items": { "description": "items for this coverage target collection.", "items": { "$ref": "#/components/schemas/CoverageTargetResponse" }, "title": "Items", "type": "array" }, "total": { "description": "total for this coverage target collection.", "title": "Total", "type": "integer" } }, "required": [ "items", "total" ], "title": "CoverageTargetCollectionResponse", "type": "object" }, "CoverageTargetCreateRequest": { "description": "Request to create a workspace coverage target.", "properties": { "actor_types": { "description": "actor types for this coverage target.", "items": { "type": "string" }, "minItems": 1, "title": "Actor Types", "type": "array" }, "gaps": { "description": "gaps for this coverage target.", "items": { "$ref": "#/components/schemas/CoverageTargetGap" }, "title": "Gaps", "type": "array" }, "geography": { "description": "geography for this coverage target.", "minLength": 1, "title": "Geography", "type": "string" }, "issue_areas": { "description": "issue areas for this coverage target.", "items": { "type": "string" }, "minItems": 1, "title": "Issue Areas", "type": "array" }, "last_reviewed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last reviewed at for this coverage target.", "title": "Last Reviewed At" }, "linked_discovery_run_ids": { "description": "linked discovery run ids for this coverage target.", "items": { "type": "string" }, "title": "Linked Discovery Run Ids", "type": "array" }, "linked_entry_ids": { "description": "linked entry ids for this coverage target.", "items": { "type": "string" }, "title": "Linked Entry Ids", "type": "array" }, "name": { "description": "name for this coverage target.", "minLength": 1, "title": "Name", "type": "string" }, "next_actions": { "description": "next actions for this coverage target.", "items": { "type": "string" }, "title": "Next Actions", "type": "array" }, "review_state": { "default": "needs_research", "description": "review state for this coverage target.", "enum": [ "needs_research", "in_review", "ready_for_delivery" ], "title": "Review State", "type": "string" }, "source_types": { "description": "source types for this coverage target.", "items": { "type": "string" }, "minItems": 1, "title": "Source Types", "type": "array" } }, "required": [ "name", "geography", "issue_areas", "actor_types", "source_types" ], "title": "CoverageTargetCreateRequest", "type": "object" }, "CoverageTargetDetailDiscoveryRun": { "description": "Compact linked research row for coverage target review.", "properties": { "completed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "completed at for this coverage target detail discovery run.", "title": "Completed At" }, "entries_confirmed": { "description": "entries confirmed for this coverage target detail discovery run.", "minimum": 0.0, "title": "Entries Confirmed", "type": "integer" }, "id": { "description": "id for this coverage target detail discovery run.", "title": "Id", "type": "string" }, "issue_areas": { "description": "issue areas for this coverage target detail discovery run.", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "location_query": { "description": "location query for this coverage target detail discovery run.", "title": "Location Query", "type": "string" }, "research_goal": { "description": "research goal for this coverage target detail discovery run.", "title": "Research Goal", "type": "string" }, "sources_processed": { "description": "sources processed for this coverage target detail discovery run.", "minimum": 0.0, "title": "Sources Processed", "type": "integer" }, "started_at": { "description": "started at for this coverage target detail discovery run.", "title": "Started At", "type": "string" }, "state": { "description": "state for this coverage target detail discovery run.", "title": "State", "type": "string" }, "status": { "description": "status for this coverage target detail discovery run.", "title": "Status", "type": "string" } }, "required": [ "id", "location_query", "state", "research_goal", "issue_areas", "status", "entries_confirmed", "sources_processed", "started_at", "completed_at" ], "title": "CoverageTargetDetailDiscoveryRun", "type": "object" }, "CoverageTargetDetailEntry": { "description": "Compact linked actor row for coverage target review.", "properties": { "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "city for this coverage target detail entry.", "title": "City" }, "id": { "description": "id for this coverage target detail entry.", "title": "Id", "type": "string" }, "name": { "description": "name for this coverage target detail entry.", "title": "Name", "type": "string" }, "slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "slug for this coverage target detail entry.", "title": "Slug" }, "source_count": { "description": "source count for this coverage target detail entry.", "minimum": 0.0, "title": "Source Count", "type": "integer" }, "sources": { "description": "sources for this coverage target detail entry.", "items": { "$ref": "#/components/schemas/CoverageTargetDetailSource" }, "title": "Sources", "type": "array" }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "state for this coverage target detail entry.", "title": "State" }, "type": { "description": "type for this coverage target detail entry.", "title": "Type", "type": "string" } }, "required": [ "id", "name", "type", "city", "state", "slug", "source_count", "sources" ], "title": "CoverageTargetDetailEntry", "type": "object" }, "CoverageTargetDetailResponse": { "description": "Coverage target detail with the linked evidence needed for action.", "properties": { "discovery_runs": { "description": "discovery runs for this coverage target detail.", "items": { "$ref": "#/components/schemas/CoverageTargetDetailDiscoveryRun" }, "title": "Discovery Runs", "type": "array" }, "entries": { "description": "entries for this coverage target detail.", "items": { "$ref": "#/components/schemas/CoverageTargetDetailEntry" }, "title": "Entries", "type": "array" }, "target": { "$ref": "#/components/schemas/CoverageTargetResponse", "description": "Coverage target being reviewed or updated." } }, "required": [ "target", "discovery_runs", "entries" ], "title": "CoverageTargetDetailResponse", "type": "object" }, "CoverageTargetDetailSource": { "description": "Source receipt linked to a coverage target entry.", "properties": { "id": { "description": "id for this coverage target detail source.", "title": "Id", "type": "string" }, "publication": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "publication for this coverage target detail source.", "title": "Publication" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "title for this coverage target detail source.", "title": "Title" }, "type": { "description": "type for this coverage target detail source.", "title": "Type", "type": "string" }, "url": { "description": "url for this coverage target detail source.", "title": "Url", "type": "string" } }, "required": [ "id", "url", "title", "publication", "type" ], "title": "CoverageTargetDetailSource", "type": "object" }, "CoverageTargetGap": { "description": "Coverage gap or unknown that should drive a next action.", "properties": { "detail": { "description": "detail for this coverage target gap.", "minLength": 1, "title": "Detail", "type": "string" }, "label": { "description": "label for this coverage target gap.", "minLength": 1, "title": "Label", "type": "string" } }, "required": [ "label", "detail" ], "title": "CoverageTargetGap", "type": "object" }, "CoverageTargetImportRequest": { "description": "CSV payload for onboarding coverage targets.", "properties": { "csv_text": { "description": "csv text for this coverage target import.", "minLength": 1, "title": "Csv Text", "type": "string" } }, "required": [ "csv_text" ], "title": "CoverageTargetImportRequest", "type": "object" }, "CoverageTargetImportResponse": { "description": "Coverage targets created by an onboarding import.", "properties": { "created": { "description": "created for this coverage target import.", "items": { "$ref": "#/components/schemas/CoverageTargetResponse" }, "title": "Created", "type": "array" }, "imported": { "description": "imported for this coverage target import.", "minimum": 0.0, "title": "Imported", "type": "integer" } }, "required": [ "imported", "created" ], "title": "CoverageTargetImportResponse", "type": "object" }, "CoverageTargetResponse": { "description": "Workspace coverage target with derived status.", "properties": { "actor_types": { "description": "actor types for this coverage target.", "items": { "type": "string" }, "title": "Actor Types", "type": "array" }, "created_at": { "description": "created at for this coverage target.", "title": "Created At", "type": "string" }, "created_by": { "description": "created by for this coverage target.", "title": "Created By", "type": "string" }, "gaps": { "description": "gaps for this coverage target.", "items": { "$ref": "#/components/schemas/CoverageTargetGap" }, "title": "Gaps", "type": "array" }, "geography": { "description": "geography for this coverage target.", "title": "Geography", "type": "string" }, "id": { "description": "id for this coverage target.", "title": "Id", "type": "string" }, "issue_areas": { "description": "issue areas for this coverage target.", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "last_reviewed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last reviewed at for this coverage target.", "title": "Last Reviewed At" }, "last_run_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last run at for this coverage target.", "title": "Last Run At" }, "linked_discovery_run_ids": { "description": "linked discovery run ids for this coverage target.", "items": { "type": "string" }, "title": "Linked Discovery Run Ids", "type": "array" }, "linked_entry_ids": { "description": "linked entry ids for this coverage target.", "items": { "type": "string" }, "title": "Linked Entry Ids", "type": "array" }, "name": { "description": "name for this coverage target.", "title": "Name", "type": "string" }, "next_actions": { "description": "next actions for this coverage target.", "items": { "type": "string" }, "title": "Next Actions", "type": "array" }, "org_id": { "description": "org id for this coverage target.", "title": "Org Id", "type": "string" }, "records_found": { "description": "records found for this coverage target.", "minimum": 0.0, "title": "Records Found", "type": "integer" }, "review_state": { "description": "review state for this coverage target.", "enum": [ "needs_research", "in_review", "ready_for_delivery" ], "title": "Review State", "type": "string" }, "source_types": { "description": "source types for this coverage target.", "items": { "type": "string" }, "title": "Source Types", "type": "array" }, "sources_reviewed": { "description": "sources reviewed for this coverage target.", "minimum": 0.0, "title": "Sources Reviewed", "type": "integer" }, "status": { "description": "status for this coverage target.", "enum": [ "covered", "thin", "unknown", "stale", "blocked" ], "title": "Status", "type": "string" }, "status_reason": { "description": "status reason for this coverage target.", "title": "Status Reason", "type": "string" }, "updated_at": { "description": "updated at for this coverage target.", "title": "Updated At", "type": "string" } }, "required": [ "id", "org_id", "name", "geography", "issue_areas", "actor_types", "source_types", "status", "status_reason", "review_state", "gaps", "next_actions", "records_found", "sources_reviewed", "linked_discovery_run_ids", "linked_entry_ids", "last_run_at", "last_reviewed_at", "created_by", "created_at", "updated_at" ], "title": "CoverageTargetResponse", "type": "object" }, "CoverageTargetUpdateRequest": { "description": "Request to update a workspace coverage target.", "properties": { "actor_types": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "description": "actor types for this coverage target.", "title": "Actor Types" }, "gaps": { "anyOf": [ { "items": { "$ref": "#/components/schemas/CoverageTargetGap" }, "type": "array" }, { "type": "null" } ], "description": "gaps for this coverage target.", "title": "Gaps" }, "geography": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "geography for this coverage target.", "title": "Geography" }, "issue_areas": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "description": "issue areas for this coverage target.", "title": "Issue Areas" }, "last_reviewed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last reviewed at for this coverage target.", "title": "Last Reviewed At" }, "linked_discovery_run_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "linked discovery run ids for this coverage target.", "title": "Linked Discovery Run Ids" }, "linked_entry_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "linked entry ids for this coverage target.", "title": "Linked Entry Ids" }, "name": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "name for this coverage target.", "title": "Name" }, "next_actions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "next actions for this coverage target.", "title": "Next Actions" }, "review_state": { "anyOf": [ { "enum": [ "needs_research", "in_review", "ready_for_delivery" ], "type": "string" }, { "type": "null" } ], "description": "review state for this coverage target.", "title": "Review State" }, "source_types": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "description": "source types for this coverage target.", "title": "Source Types" } }, "title": "CoverageTargetUpdateRequest", "type": "object" }, "CoverageUnderwritingReportResponse": { "description": "Underwriting report showing public coverage outcomes without private notes.", "properties": { "data_boundary": { "$ref": "#/components/schemas/CoverageReportDataBoundary", "description": "Limits on what the report proves." }, "generated_at": { "description": "generated at for this coverage underwriting report.", "title": "Generated At", "type": "string" }, "org_id": { "description": "org id for this coverage underwriting report.", "title": "Org Id", "type": "string" }, "public_impact": { "$ref": "#/components/schemas/CoverageReportPublicImpact", "description": "Public coverage outcomes for the report." }, "summary": { "$ref": "#/components/schemas/CoverageReportSummary", "description": "Funder-facing coverage report summary." }, "targets": { "description": "targets for this coverage underwriting report.", "items": { "$ref": "#/components/schemas/CoverageReportTarget" }, "title": "Targets", "type": "array" } }, "required": [ "generated_at", "org_id", "summary", "public_impact", "data_boundary", "targets" ], "title": "CoverageUnderwritingReportResponse", "type": "object" }, "CurrentVerificationRecordResponse": { "description": "Requester-safe discount verification status for one workspace.", "properties": { "id": { "description": "Verification record ID", "title": "Id", "type": "string" }, "organization_id": { "description": "Workspace receiving the discount", "title": "Organization Id", "type": "string" }, "segment": { "description": "segment for this current verification record.", "enum": [ "student", "independent_journalist", "grassroots_nonprofit", "civic_tech_worker" ], "title": "Segment", "type": "string" }, "status": { "description": "Verification status", "enum": [ "pending", "verified", "rejected", "expired" ], "title": "Status", "type": "string" }, "submitted_at": { "description": "ISO timestamp of submission", "title": "Submitted At", "type": "string" }, "verified_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO timestamp of verification", "title": "Verified At" } }, "required": [ "id", "organization_id", "segment", "status", "submitted_at" ], "title": "CurrentVerificationRecordResponse", "type": "object" }, "CurrentVerificationStatusResponse": { "description": "Current requester's latest discount verification status.", "properties": { "record": { "anyOf": [ { "$ref": "#/components/schemas/CurrentVerificationRecordResponse" }, { "type": "null" } ], "description": "record for this current verification status." } }, "title": "CurrentVerificationStatusResponse", "type": "object" }, "DeduplicatedEntry": { "description": "An entry that has been deduplicated across multiple sources.", "properties": { "affiliated_org": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Name of affiliated organization.", "title": "Affiliated Org" }, "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "City where the entity is based.", "title": "City" }, "description": { "default": "", "description": "Best available description.", "title": "Description", "type": "string" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Contact email address.", "title": "Email" }, "entry_type": { "$ref": "#/components/schemas/EntityType", "description": "Entity type." }, "geo_specificity": { "$ref": "#/components/schemas/GeoSpecificity", "default": "local", "description": "Geographic scope of the entity." }, "issue_areas": { "description": "Issue area slugs this entry relates to.", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "last_seen": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Most recent date this entity was observed.", "title": "Last Seen" }, "name": { "description": "Canonical name of the entity.", "title": "Name", "type": "string" }, "region": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Free-form region description.", "title": "Region" }, "social_media": { "additionalProperties": { "type": "string" }, "description": "Social media handles keyed by platform name.", "title": "Social Media", "type": "object" }, "source_contexts": { "additionalProperties": { "type": "string" }, "description": "Extraction context snippets keyed by source URL.", "title": "Source Contexts", "type": "object" }, "source_dates": { "description": "Publication dates corresponding to each source URL.", "items": { "format": "date", "type": "string" }, "title": "Source Dates", "type": "array" }, "source_urls": { "description": "All source URLs where this entity was mentioned.", "items": { "type": "string" }, "title": "Source Urls", "type": "array" }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "2-letter state code.", "title": "State" }, "website": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Primary website URL.", "title": "Website" } }, "required": [ "name", "entry_type" ], "title": "DeduplicatedEntry", "type": "object" }, "DirectoryConfigRequest": { "description": "Editable public metadata for a workspace directory.", "properties": { "methodology": { "anyOf": [ { "$ref": "#/components/schemas/PublicDirectoryMethodology" }, { "type": "null" } ], "description": "Public methodology text for the workspace directory." }, "scope": { "anyOf": [ { "$ref": "#/components/schemas/PublicDirectoryScope" }, { "type": "null" } ], "description": "Public scope text for the workspace directory." }, "sponsor_label": { "anyOf": [ { "maxLength": 180, "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "sponsor label for this directory config.", "title": "Sponsor Label" }, "title": { "anyOf": [ { "maxLength": 140, "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "title for this directory config.", "title": "Title" } }, "title": "DirectoryConfigRequest", "type": "object" }, "DirectoryConfigResponse": { "description": "Public directory configuration returned to workspace admins.", "properties": { "methodology": { "$ref": "#/components/schemas/PublicDirectoryMethodology", "description": "Saved public methodology text." }, "org_id": { "description": "org id for this directory config.", "title": "Org Id", "type": "string" }, "scope": { "$ref": "#/components/schemas/PublicDirectoryScope", "description": "Saved public scope text." }, "sponsor_label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "sponsor label for this directory config.", "title": "Sponsor Label" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "title for this directory config.", "title": "Title" }, "updated_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "updated at for this directory config.", "title": "Updated At" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "updated by for this directory config.", "title": "Updated By" } }, "required": [ "org_id" ], "title": "DirectoryConfigResponse", "type": "object" }, "DirectoryDomainRequest": { "description": "Custom domain a workspace wants to bind to its public directory.", "properties": { "domain": { "description": "domain for this directory domain.", "maxLength": 253, "minLength": 3, "title": "Domain", "type": "string" } }, "required": [ "domain" ], "title": "DirectoryDomainRequest", "type": "object" }, "DirectoryDomainResponse": { "description": "Custom domain verification state returned to workspace admins.", "properties": { "domain": { "description": "domain for this directory domain.", "title": "Domain", "type": "string" }, "status": { "description": "status for this directory domain.", "title": "Status", "type": "string" }, "verification_host": { "description": "verification host for this directory domain.", "title": "Verification Host", "type": "string" }, "verification_token": { "description": "verification token for this directory domain.", "title": "Verification Token", "type": "string" } }, "required": [ "domain", "status", "verification_host", "verification_token" ], "title": "DirectoryDomainResponse", "type": "object" }, "DirectoryTemplatePlaceScope": { "description": "Place defaults seeded by a directory template.", "properties": { "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "city for this directory template place scope.", "title": "City" }, "geo_specificity": { "description": "geo specificity for this directory template place scope.", "title": "Geo Specificity", "type": "string" }, "region": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "region for this directory template place scope.", "title": "Region" }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "state for this directory template place scope.", "title": "State" } }, "required": [ "geo_specificity" ], "title": "DirectoryTemplatePlaceScope", "type": "object" }, "DirectoryTemplateResponse": { "description": "Template for starting a focused tenant directory.", "properties": { "description": { "description": "description for this directory template.", "title": "Description", "type": "string" }, "entry_types": { "description": "entry types for this directory template.", "items": { "type": "string" }, "title": "Entry Types", "type": "array" }, "id": { "description": "id for this directory template.", "title": "Id", "type": "string" }, "issue_area_ids": { "description": "issue area ids for this directory template.", "items": { "type": "string" }, "title": "Issue Area Ids", "type": "array" }, "label": { "description": "label for this directory template.", "title": "Label", "type": "string" }, "place_scope": { "$ref": "#/components/schemas/DirectoryTemplatePlaceScope", "description": "Place scope seeded by this directory template." } }, "required": [ "id", "label", "description", "issue_area_ids", "entry_types", "place_scope" ], "title": "DirectoryTemplateResponse", "type": "object" }, "DirectoryTemplatesResponse": { "description": "Collection of workspace directory templates.", "properties": { "templates": { "description": "templates for this directory templates.", "items": { "$ref": "#/components/schemas/DirectoryTemplateResponse" }, "title": "Templates", "type": "array" } }, "required": [ "templates" ], "title": "DirectoryTemplatesResponse", "type": "object" }, "DiscoveryContributionRequest": { "description": "Canonical service-ingestion payload for external discovery runners.", "properties": { "ranked_entries": { "description": "Ranked, provenance-bearing entries to ingest into Atlas.", "items": { "$ref": "#/components/schemas/RankedEntry" }, "title": "Ranked Entries", "type": "array" }, "run": { "$ref": "#/components/schemas/DiscoveryRunInput", "description": "Run identity and targeting inputs." }, "sources": { "description": "Fetched source pages that support the contributed entries.", "items": { "$ref": "#/components/schemas/PageContent" }, "title": "Sources", "type": "array" }, "stats": { "$ref": "#/components/schemas/DiscoveryRunStats", "description": "Execution summary from the contributing runner." } }, "required": [ "run" ], "title": "DiscoveryContributionRequest", "type": "object" }, "DiscoveryContributionResponse": { "description": "Atlas response after ingesting a contributed discovery payload.", "properties": { "entries_persisted": { "description": "Entries persisted or updated.", "minimum": 0.0, "title": "Entries Persisted", "type": "integer" }, "run_id": { "description": "Atlas discovery run ID.", "title": "Run Id", "type": "string" }, "sources_persisted": { "description": "Distinct sources persisted or linked.", "minimum": 0.0, "title": "Sources Persisted", "type": "integer" }, "status": { "$ref": "#/components/schemas/DiscoveryRunStatus", "description": "Final Atlas run status." } }, "required": [ "run_id", "status", "entries_persisted", "sources_persisted" ], "title": "DiscoveryContributionResponse", "type": "object" }, "DiscoveryJobQueueItemResponse": { "description": "A discovery pipeline job with research target context.", "properties": { "claimed_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Worker that claimed the job", "title": "Claimed By" }, "claimed_until": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Current worker lease expiration", "title": "Claimed Until" }, "completed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Completion timestamp", "title": "Completed At" }, "created_at": { "description": "Creation timestamp", "title": "Created At", "type": "string" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Error message if failed", "title": "Error Message" }, "execution_mode": { "default": "search", "description": "How a Scout worker should execute this job", "enum": [ "search", "direct_url" ], "title": "Execution Mode", "type": "string" }, "id": { "description": "Job ID", "title": "Id", "type": "string" }, "input_payload": { "additionalProperties": true, "description": "Mode-specific worker input payload", "title": "Input Payload", "type": "object" }, "issue_areas": { "description": "Run issue area slugs", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "location_query": { "description": "Run location query", "title": "Location Query", "type": "string" }, "max_retries": { "default": 2, "description": "Maximum retry attempts before permanent failure", "title": "Max Retries", "type": "integer" }, "next_attempt_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Earliest retry claim timestamp", "title": "Next Attempt At" }, "progress": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Current step and metrics", "title": "Progress" }, "retry_count": { "default": 0, "description": "Number of retry attempts so far", "title": "Retry Count", "type": "integer" }, "run_id": { "description": "Associated discovery run ID", "title": "Run Id", "type": "string" }, "started_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Execution start timestamp", "title": "Started At" }, "state": { "description": "Run state", "title": "State", "type": "string" }, "status": { "description": "Job status (queued, claimed, running, completed, failed)", "title": "Status", "type": "string" } }, "required": [ "id", "run_id", "status", "created_at", "location_query", "state", "issue_areas" ], "title": "DiscoveryJobQueueItemResponse", "type": "object" }, "DiscoveryJobQueueResponse": { "description": "Research-operations queue view for discovery jobs.", "properties": { "items": { "description": "Recent active jobs", "items": { "$ref": "#/components/schemas/DiscoveryJobQueueItemResponse" }, "title": "Items", "type": "array" }, "status_counts": { "additionalProperties": { "type": "integer" }, "description": "Queued, claimed, running, and failed job counts", "title": "Status Counts", "type": "object" }, "total": { "description": "Total queued, claimed, running, and failed jobs", "minimum": 0.0, "title": "Total", "type": "integer" } }, "required": [ "items", "total", "status_counts" ], "title": "DiscoveryJobQueueResponse", "type": "object" }, "DiscoveryJobResponse": { "description": "A discovery pipeline job.", "properties": { "completed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Completion timestamp", "title": "Completed At" }, "created_at": { "description": "Creation timestamp", "title": "Created At", "type": "string" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Error message if failed", "title": "Error Message" }, "execution_mode": { "default": "search", "description": "How a Scout worker should execute this job", "enum": [ "search", "direct_url" ], "title": "Execution Mode", "type": "string" }, "id": { "description": "Job ID", "title": "Id", "type": "string" }, "input_payload": { "additionalProperties": true, "description": "Mode-specific worker input payload", "title": "Input Payload", "type": "object" }, "max_retries": { "default": 2, "description": "Maximum retry attempts before permanent failure", "title": "Max Retries", "type": "integer" }, "progress": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Current step and metrics", "title": "Progress" }, "retry_count": { "default": 0, "description": "Number of retry attempts so far", "title": "Retry Count", "type": "integer" }, "run_id": { "description": "Associated discovery run ID", "title": "Run Id", "type": "string" }, "started_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Execution start timestamp", "title": "Started At" }, "status": { "description": "Job status (queued, claimed, running, completed, failed)", "title": "Status", "type": "string" } }, "required": [ "id", "run_id", "status", "created_at" ], "title": "DiscoveryJobResponse", "type": "object" }, "DiscoveryPipelineSummaryResponse": { "description": "Aggregate pipeline health summary.", "properties": { "completed_runs_total": { "default": 0, "description": "Total completed discovery runs", "title": "Completed Runs Total", "type": "integer" }, "enabled_schedules": { "default": 0, "description": "Number of enabled schedule targets", "title": "Enabled Schedules", "type": "integer" }, "failed_jobs": { "default": 0, "description": "Jobs that failed permanently", "title": "Failed Jobs", "type": "integer" }, "last_completed_run_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Timestamp of the most recently completed run", "title": "Last Completed Run At" }, "queued_jobs": { "default": 0, "description": "Jobs waiting to be claimed", "title": "Queued Jobs", "type": "integer" }, "running_jobs": { "default": 0, "description": "Jobs currently executing", "title": "Running Jobs", "type": "integer" }, "total_entries_confirmed": { "default": 0, "description": "Sum of confirmed entries across all runs", "title": "Total Entries Confirmed", "type": "integer" } }, "title": "DiscoveryPipelineSummaryResponse", "type": "object" }, "DiscoveryResearchGap": { "description": "A research gap found during a discovery run.", "properties": { "detail": { "description": "Plain-language gap detail", "title": "Detail", "type": "string" }, "label": { "description": "Gap label", "title": "Label", "type": "string" } }, "required": [ "label", "detail" ], "title": "DiscoveryResearchGap", "type": "object" }, "DiscoveryResearchLead": { "description": "A ranked actor lead from a discovery run.", "properties": { "confidence": { "default": "unverified", "description": "Conservative confidence state derived from visible supporting evidence.", "enum": [ "corroborated", "partial", "unverified" ], "title": "Confidence", "type": "string" }, "entry_id": { "description": "Entry ID for the lead", "title": "Entry Id", "type": "string" }, "latest_source_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Most recent source date", "title": "Latest Source Date" }, "name": { "description": "Lead name", "title": "Name", "type": "string" }, "source_count": { "description": "Number of supporting sources", "minimum": 0.0, "title": "Source Count", "type": "integer" }, "type": { "description": "Lead entry type", "title": "Type", "type": "string" }, "why_it_matters": { "description": "Source-backed reason this lead is relevant", "title": "Why It Matters", "type": "string" } }, "required": [ "entry_id", "name", "type", "why_it_matters", "source_count" ], "title": "DiscoveryResearchLead", "type": "object" }, "DiscoveryResearchSource": { "description": "A source that strongly shaped a discovery run's output.", "properties": { "publication": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Publication or source publisher", "title": "Publication" }, "published_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Published date", "title": "Published Date" }, "source_id": { "description": "Source ID", "title": "Source Id", "type": "string" }, "title": { "description": "Source title", "title": "Title", "type": "string" }, "url": { "description": "Source URL", "title": "Url", "type": "string" }, "why_it_matters": { "description": "Why this source matters to the brief", "title": "Why It Matters", "type": "string" } }, "required": [ "source_id", "title", "url", "why_it_matters" ], "title": "DiscoveryResearchSource", "type": "object" }, "DiscoveryResearchSummary": { "description": "Structured, source-linked research output from a discovery run.", "properties": { "brief": { "description": "Concise source-linked research brief", "title": "Brief", "type": "string" }, "gaps": { "description": "gaps for this discovery research summary.", "items": { "$ref": "#/components/schemas/DiscoveryResearchGap" }, "title": "Gaps", "type": "array" }, "key_sources": { "description": "key sources for this discovery research summary.", "items": { "$ref": "#/components/schemas/DiscoveryResearchSource" }, "title": "Key Sources", "type": "array" }, "ranked_leads": { "description": "ranked leads for this discovery research summary.", "items": { "$ref": "#/components/schemas/DiscoveryResearchLead" }, "title": "Ranked Leads", "type": "array" }, "reasoning_signals": { "description": "reasoning signals for this discovery research summary.", "items": { "type": "string" }, "title": "Reasoning Signals", "type": "array" } }, "required": [ "brief" ], "title": "DiscoveryResearchSummary", "type": "object" }, "DiscoveryRunArtifacts": { "description": "Portable result bundle for an in-progress or completed discovery run.", "properties": { "checkpoints": { "description": "Recorded engine checkpoints for the run.", "items": { "$ref": "#/components/schemas/RunCheckpoint" }, "title": "Checkpoints", "type": "array" }, "gap_report": { "anyOf": [ { "$ref": "#/components/schemas/GapReport" }, { "type": "null" } ], "description": "Optional coverage report for the run." }, "manifest": { "$ref": "#/components/schemas/DiscoveryRunManifest", "description": "Run identity and lifecycle metadata." }, "page_tasks": { "description": "Canonical page-task outcomes.", "items": { "$ref": "#/components/schemas/PageTaskOutcome" }, "title": "Page Tasks", "type": "array" }, "ranked_entries": { "description": "Final ranked entries for persistence or sync.", "items": { "$ref": "#/components/schemas/RankedEntry" }, "title": "Ranked Entries", "type": "array" }, "raw_entries": { "description": "Raw extracted entries prior to deduplication.", "items": { "$ref": "#/components/schemas/RawEntry" }, "title": "Raw Entries", "type": "array" }, "sources": { "description": "Fetched pages that form the source bundle.", "items": { "$ref": "#/components/schemas/PageContent" }, "title": "Sources", "type": "array" }, "stats": { "$ref": "#/components/schemas/DiscoveryRunStats", "description": "Canonical run statistics." } }, "required": [ "manifest" ], "title": "DiscoveryRunArtifacts", "type": "object" }, "DiscoveryRunCancelResponse": { "description": "Result of cancelling a discovery run's jobs.", "properties": { "jobs_cancelled": { "description": "Number of non-terminal jobs moved to cancelled", "title": "Jobs Cancelled", "type": "integer" }, "run_id": { "description": "The discovery run whose jobs were cancelled", "title": "Run Id", "type": "string" } }, "required": [ "run_id", "jobs_cancelled" ], "title": "DiscoveryRunCancelResponse", "type": "object" }, "DiscoveryRunCollectionResponse": { "description": "Collection response for discovery runs.", "properties": { "items": { "description": "items for this discovery run collection.", "items": { "additionalProperties": true, "type": "object" }, "title": "Items", "type": "array" }, "next_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "next cursor for this discovery run collection.", "title": "Next Cursor" }, "total": { "description": "total for this discovery run collection.", "title": "Total", "type": "integer" } }, "required": [ "total" ], "title": "DiscoveryRunCollectionResponse", "type": "object" }, "DiscoveryRunInput": { "description": "Canonical input definition for a discovery run.", "properties": { "issue_areas": { "description": "Issue area slugs that define the run.", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "location_query": { "description": "Location query (for example, 'Kansas City, MO').", "title": "Location Query", "type": "string" }, "research_goal": { "default": "landscape_scan", "description": "The research job this run is meant to support.", "enum": [ "landscape_scan", "interview_leads", "partner_scan", "ecosystem_map" ], "title": "Research Goal", "type": "string" }, "search_depth": { "default": "standard", "description": "Discovery depth hint used by the runner.", "title": "Search Depth", "type": "string" }, "state": { "description": "2-letter state code.", "maxLength": 2, "title": "State", "type": "string" } }, "required": [ "location_query", "state", "issue_areas" ], "title": "DiscoveryRunInput", "type": "object" }, "DiscoveryRunManifest": { "description": "Canonical manifest describing one discovery execution.", "properties": { "completed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Run completion time.", "title": "Completed At" }, "run": { "$ref": "#/components/schemas/DiscoveryRunInput", "description": "Run targeting inputs." }, "runner": { "description": "Runner identity, for example 'atlas-api' or 'atlas-scout'.", "title": "Runner", "type": "string" }, "started_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Run start time.", "title": "Started At" }, "status": { "$ref": "#/components/schemas/DiscoveryRunStatus", "description": "Current overall run status." }, "sync": { "anyOf": [ { "$ref": "#/components/schemas/DiscoverySyncInfo" }, { "type": "null" } ], "description": "Optional remote-sync metadata." } }, "required": [ "runner", "run", "status" ], "title": "DiscoveryRunManifest", "type": "object" }, "DiscoveryRunResponse": { "description": "Discovery run response model.", "example": { "completed_at": "2026-01-15T12:30:00+00:00", "created_at": "2026-01-15T10:00:00+00:00", "entries_after_dedup": 35, "entries_confirmed": 30, "entries_extracted": 38, "id": "550e8400-e29b-41d4-a716-446655440002", "issue_areas": [ "worker_cooperatives", "housing_affordability" ], "location_query": "Kansas City, MO", "queries_generated": 150, "research_goal": "landscape_scan", "research_summary": { "brief": "Three source-backed housing leads in Kansas City.", "gaps": [], "key_sources": [], "ranked_leads": [], "reasoning_signals": [] }, "sources_fetched": 45, "sources_processed": 42, "started_at": "2026-01-15T10:00:00+00:00", "state": "MO", "status": "completed" }, "properties": { "completed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Completion timestamp", "title": "Completed At" }, "created_at": { "description": "Creation timestamp", "title": "Created At", "type": "string" }, "entries_after_dedup": { "description": "Entries after deduplication", "title": "Entries After Dedup", "type": "integer" }, "entries_confirmed": { "description": "Entries confirmed", "title": "Entries Confirmed", "type": "integer" }, "entries_extracted": { "description": "Entries extracted", "title": "Entries Extracted", "type": "integer" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Error message if failed", "title": "Error Message" }, "id": { "description": "Discovery run ID", "title": "Id", "type": "string" }, "issue_areas": { "description": "Issue areas queried", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "location_query": { "description": "Location query", "title": "Location Query", "type": "string" }, "queries_generated": { "description": "Search queries generated", "title": "Queries Generated", "type": "integer" }, "research_goal": { "description": "Research job this run supports", "enum": [ "landscape_scan", "interview_leads", "partner_scan", "ecosystem_map" ], "title": "Research Goal", "type": "string" }, "research_summary": { "anyOf": [ { "$ref": "#/components/schemas/DiscoveryResearchSummary" }, { "type": "null" } ], "description": "Structured research output with leads, sources, gaps, and reasoning signals" }, "sources_fetched": { "description": "Sources fetched", "title": "Sources Fetched", "type": "integer" }, "sources_processed": { "description": "Sources processed", "title": "Sources Processed", "type": "integer" }, "started_at": { "description": "Start timestamp", "title": "Started At", "type": "string" }, "state": { "description": "State code", "title": "State", "type": "string" }, "status": { "description": "Status (running, completed, failed)", "title": "Status", "type": "string" } }, "required": [ "id", "location_query", "state", "research_goal", "issue_areas", "queries_generated", "sources_fetched", "sources_processed", "entries_extracted", "entries_after_dedup", "entries_confirmed", "started_at", "status", "created_at" ], "title": "DiscoveryRunResponse", "type": "object" }, "DiscoveryRunStartRequest": { "description": "Request to start a discovery run.", "example": { "execution_mode": "search", "issue_areas": [ "worker_cooperatives", "housing_affordability", "local_government_and_civic_engagement" ], "location_query": "Kansas City, MO", "research_goal": "landscape_scan", "search_depth": "standard", "state": "MO" }, "properties": { "direct_urls": { "description": "Seed URLs for direct-URL worker runs that do not require search credentials.", "items": { "type": "string" }, "title": "Direct Urls", "type": "array" }, "execution_mode": { "default": "search", "description": "How queued Scout workers should execute the discovery run.", "enum": [ "search", "direct_url" ], "title": "Execution Mode", "type": "string" }, "issue_areas": { "description": "Issue area slugs that define the run.", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "location_query": { "description": "Location query (for example, 'Kansas City, MO').", "title": "Location Query", "type": "string" }, "research_goal": { "default": "landscape_scan", "description": "The research job this run is meant to support.", "enum": [ "landscape_scan", "interview_leads", "partner_scan", "ecosystem_map" ], "title": "Research Goal", "type": "string" }, "search_depth": { "default": "standard", "description": "Discovery depth hint used by the runner.", "title": "Search Depth", "type": "string" }, "state": { "description": "2-letter state code.", "maxLength": 2, "title": "State", "type": "string" } }, "required": [ "location_query", "state", "issue_areas" ], "title": "DiscoveryRunStartRequest", "type": "object" }, "DiscoveryRunStats": { "description": "Canonical run statistics captured by local runners and Atlas service.", "properties": { "entries_after_dedup": { "default": 0, "description": "entries after dedup for this discovery run stats.", "minimum": 0.0, "title": "Entries After Dedup", "type": "integer" }, "entries_confirmed": { "default": 0, "description": "entries confirmed for this discovery run stats.", "minimum": 0.0, "title": "Entries Confirmed", "type": "integer" }, "entries_extracted": { "default": 0, "description": "entries extracted for this discovery run stats.", "minimum": 0.0, "title": "Entries Extracted", "type": "integer" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Failure reason when the run did not complete.", "title": "Error Message" }, "queries_generated": { "default": 0, "description": "queries generated for this discovery run stats.", "minimum": 0.0, "title": "Queries Generated", "type": "integer" }, "sources_fetched": { "default": 0, "description": "sources fetched for this discovery run stats.", "minimum": 0.0, "title": "Sources Fetched", "type": "integer" }, "sources_processed": { "default": 0, "description": "sources processed for this discovery run stats.", "minimum": 0.0, "title": "Sources Processed", "type": "integer" }, "status": { "$ref": "#/components/schemas/DiscoveryRunStatus", "default": "completed", "description": "Final status reported for the run payload." } }, "title": "DiscoveryRunStats", "type": "object" }, "DiscoveryRunStatus": { "description": "Lifecycle status for a discovery run tracked by Atlas.", "enum": [ "pending", "running", "completed", "failed", "cancelled" ], "title": "DiscoveryRunStatus", "type": "string" }, "DiscoveryRunSyncRequest": { "description": "Authenticated sync payload for replaying a local run into Atlas.", "properties": { "artifacts": { "$ref": "#/components/schemas/DiscoveryRunArtifacts", "description": "Portable run bundle emitted by Atlas Scout or another compatible runner." } }, "required": [ "artifacts" ], "title": "DiscoveryRunSyncRequest", "type": "object" }, "DiscoveryRunSyncResponse": { "description": "Atlas response describing the result of syncing a run bundle.", "properties": { "duplicate": { "default": false, "description": "Whether this sync was treated as an idempotent replay of an existing bundle.", "title": "Duplicate", "type": "boolean" }, "entries_persisted": { "description": "Number of entries persisted into Atlas.", "minimum": 0.0, "title": "Entries Persisted", "type": "integer" }, "entry_links": { "description": "Developer-visible entry receipts with visibility and profile links.", "items": { "$ref": "#/components/schemas/SyncedEntryLink" }, "title": "Entry Links", "type": "array" }, "run_id": { "description": "Atlas discovery run identifier.", "title": "Run Id", "type": "string" }, "sources_persisted": { "description": "Number of sources persisted into Atlas.", "minimum": 0.0, "title": "Sources Persisted", "type": "integer" }, "status": { "$ref": "#/components/schemas/DiscoveryRunStatus", "description": "Final Atlas run status after sync." }, "sync_status": { "description": "Outcome of the sync attempt.", "title": "Sync Status", "type": "string" } }, "required": [ "run_id", "status", "sync_status", "entries_persisted", "sources_persisted" ], "title": "DiscoveryRunSyncResponse", "type": "object" }, "DiscoveryScheduleCollectionResponse": { "description": "Collection of discovery schedule targets.", "properties": { "items": { "description": "Schedule targets", "items": { "$ref": "#/components/schemas/DiscoveryScheduleResponse" }, "title": "Items", "type": "array" }, "total": { "description": "Total number of schedules", "title": "Total", "type": "integer" } }, "required": [ "items", "total" ], "title": "DiscoveryScheduleCollectionResponse", "type": "object" }, "DiscoveryScheduleCreateRequest": { "description": "Request to create a discovery schedule target.", "properties": { "issue_areas": { "description": "Issue area slugs to discover", "items": { "type": "string" }, "minItems": 1, "title": "Issue Areas", "type": "array" }, "location_query": { "description": "Location query (e.g. 'Austin, TX')", "title": "Location Query", "type": "string" }, "search_depth": { "default": "standard", "description": "Search depth for query generation", "enum": [ "standard", "deep" ], "title": "Search Depth", "type": "string" }, "state": { "description": "2-letter state code", "maxLength": 2, "minLength": 2, "title": "State", "type": "string" } }, "required": [ "location_query", "state", "issue_areas" ], "title": "DiscoveryScheduleCreateRequest", "type": "object" }, "DiscoveryScheduleResponse": { "description": "A discovery schedule target.", "properties": { "created_at": { "description": "Creation timestamp", "title": "Created At", "type": "string" }, "enabled": { "description": "Whether this schedule is active", "title": "Enabled", "type": "boolean" }, "id": { "description": "Schedule ID", "title": "Id", "type": "string" }, "issue_areas": { "description": "Issue area slugs", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "last_run_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Timestamp of the most recent run", "title": "Last Run At" }, "last_run_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the most recent run", "title": "Last Run Id" }, "location_query": { "description": "Location query", "title": "Location Query", "type": "string" }, "search_depth": { "description": "Search depth (standard or deep)", "title": "Search Depth", "type": "string" }, "state": { "description": "2-letter state code", "title": "State", "type": "string" }, "updated_at": { "description": "Last update timestamp", "title": "Updated At", "type": "string" } }, "required": [ "id", "location_query", "state", "issue_areas", "search_depth", "enabled", "created_at", "updated_at" ], "title": "DiscoveryScheduleResponse", "type": "object" }, "DiscoveryScheduleUpdateRequest": { "description": "Partial update for a discovery schedule target.", "properties": { "enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Whether this schedule is active", "title": "Enabled" }, "issue_areas": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "Issue area slugs to discover", "title": "Issue Areas" }, "location_query": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Location query (e.g. 'Austin, TX')", "title": "Location Query" }, "search_depth": { "anyOf": [ { "enum": [ "standard", "deep" ], "type": "string" }, { "type": "null" } ], "description": "Search depth for query generation", "title": "Search Depth" }, "state": { "anyOf": [ { "maxLength": 2, "minLength": 2, "type": "string" }, { "type": "null" } ], "description": "2-letter state code", "title": "State" } }, "title": "DiscoveryScheduleUpdateRequest", "type": "object" }, "DiscoverySyncInfo": { "description": "Sync and reconciliation metadata for a local or remotely replayed run.", "properties": { "artifact_hash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Checksum or hash for the run bundle.", "title": "Artifact Hash" }, "last_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Most recent sync failure message.", "title": "Last Error" }, "local_run_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Runner-local run identifier.", "title": "Local Run Id" }, "remote_run_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Atlas run identifier created during sync.", "title": "Remote Run Id" }, "sync_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Current sync status for the run bundle.", "title": "Sync Status" }, "synced_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Most recent successful sync time.", "title": "Synced At" } }, "title": "DiscoverySyncInfo", "type": "object" }, "DiscoveryWorkerClaimRequest": { "description": "Request for a Scout host to claim the next queued discovery job.", "properties": { "lease_seconds": { "default": 900, "description": "Claim lease duration", "maximum": 3600.0, "minimum": 30.0, "title": "Lease Seconds", "type": "integer" }, "search_key_configured": { "default": true, "description": "Whether this Scout host can perform search-backed discovery jobs", "title": "Search Key Configured", "type": "boolean" }, "worker_id": { "description": "Enrolled Scout device id", "minLength": 1, "title": "Worker Id", "type": "string" } }, "required": [ "worker_id" ], "title": "DiscoveryWorkerClaimRequest", "type": "object" }, "DiscoveryWorkerClaimResponse": { "description": "A claimed discovery job, or null when no work is ready.", "properties": { "job": { "anyOf": [ { "$ref": "#/components/schemas/DiscoveryWorkerJobResponse" }, { "type": "null" } ], "description": "Claimed job and run target context" } }, "title": "DiscoveryWorkerClaimResponse", "type": "object" }, "DiscoveryWorkerCompleteRequest": { "description": "Completion notice from the Scout host currently holding a job lease.", "properties": { "worker_id": { "description": "Enrolled Scout device id", "minLength": 1, "title": "Worker Id", "type": "string" } }, "required": [ "worker_id" ], "title": "DiscoveryWorkerCompleteRequest", "type": "object" }, "DiscoveryWorkerFailRequest": { "description": "Failure notice from the Scout host currently holding a job lease.", "properties": { "error_message": { "description": "Failure reason", "maxLength": 2000, "minLength": 1, "title": "Error Message", "type": "string" }, "retryable": { "default": true, "description": "Whether Atlas should retry this job later", "title": "Retryable", "type": "boolean" }, "worker_id": { "description": "Enrolled Scout device id", "minLength": 1, "title": "Worker Id", "type": "string" } }, "required": [ "worker_id", "error_message" ], "title": "DiscoveryWorkerFailRequest", "type": "object" }, "DiscoveryWorkerHeartbeatRequest": { "description": "Progress update from the Scout host currently holding a job lease.", "properties": { "lease_seconds": { "default": 900, "description": "Renewed lease duration", "maximum": 3600.0, "minimum": 30.0, "title": "Lease Seconds", "type": "integer" }, "progress": { "additionalProperties": true, "description": "Worker progress", "title": "Progress", "type": "object" }, "worker_id": { "description": "Enrolled Scout device id", "minLength": 1, "title": "Worker Id", "type": "string" } }, "required": [ "worker_id" ], "title": "DiscoveryWorkerHeartbeatRequest", "type": "object" }, "DiscoveryWorkerJobResponse": { "description": "A job lease returned to a Scout host worker.", "properties": { "claimed_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Worker that claimed the job", "title": "Claimed By" }, "claimed_until": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Current worker lease expiration", "title": "Claimed Until" }, "completed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Completion timestamp", "title": "Completed At" }, "created_at": { "description": "Creation timestamp", "title": "Created At", "type": "string" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Error message if failed", "title": "Error Message" }, "execution_mode": { "default": "search", "description": "How a Scout worker should execute this job", "enum": [ "search", "direct_url" ], "title": "Execution Mode", "type": "string" }, "id": { "description": "Job ID", "title": "Id", "type": "string" }, "input_payload": { "additionalProperties": true, "description": "Mode-specific worker input payload", "title": "Input Payload", "type": "object" }, "issue_areas": { "description": "Run issue area slugs", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "location_query": { "description": "Run location query", "title": "Location Query", "type": "string" }, "max_retries": { "default": 2, "description": "Maximum retry attempts before permanent failure", "title": "Max Retries", "type": "integer" }, "next_attempt_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Earliest retry claim timestamp", "title": "Next Attempt At" }, "progress": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Current step and metrics", "title": "Progress" }, "research_goal": { "description": "Research job this run supports", "title": "Research Goal", "type": "string" }, "retry_count": { "default": 0, "description": "Number of retry attempts so far", "title": "Retry Count", "type": "integer" }, "run_id": { "description": "Associated discovery run ID", "title": "Run Id", "type": "string" }, "started_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Execution start timestamp", "title": "Started At" }, "state": { "description": "Run state", "title": "State", "type": "string" }, "status": { "description": "Job status (queued, claimed, running, completed, failed)", "title": "Status", "type": "string" } }, "required": [ "id", "run_id", "status", "created_at", "location_query", "state", "issue_areas", "research_goal" ], "title": "DiscoveryWorkerJobResponse", "type": "object" }, "DiscoveryWorkerReleaseResponse": { "description": "Result of releasing active leases for one Scout worker.", "properties": { "jobs_released": { "description": "Number of active job leases released", "minimum": 0.0, "title": "Jobs Released", "type": "integer" }, "worker_id": { "description": "Enrolled Scout device id", "title": "Worker Id", "type": "string" } }, "required": [ "worker_id", "jobs_released" ], "title": "DiscoveryWorkerReleaseResponse", "type": "object" }, "DomainDetailResponse": { "description": "Domain detail resource.", "properties": { "issue_areas": { "description": "issue areas for this domain detail.", "items": {}, "title": "Issue Areas", "type": "array" }, "name": { "description": "name for this domain detail.", "title": "Name", "type": "string" }, "slug": { "description": "slug for this domain detail.", "title": "Slug", "type": "string" } }, "required": [ "slug", "name" ], "title": "DomainDetailResponse", "type": "object" }, "DomainListResponse": { "description": "Collection response for domains.", "properties": { "items": { "description": "items for this domain list.", "items": { "$ref": "#/components/schemas/DomainResponse" }, "title": "Items", "type": "array" }, "next_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "next cursor for this domain list.", "title": "Next Cursor" }, "total": { "description": "total for this domain list.", "title": "Total", "type": "integer" } }, "required": [ "total" ], "title": "DomainListResponse", "type": "object" }, "DomainResponse": { "description": "Domain summary resource.", "properties": { "issue_area_count": { "description": "issue area count for this domain.", "title": "Issue Area Count", "type": "integer" }, "name": { "description": "name for this domain.", "title": "Name", "type": "string" }, "slug": { "description": "slug for this domain.", "title": "Slug", "type": "string" } }, "required": [ "slug", "name", "issue_area_count" ], "title": "DomainResponse", "type": "object" }, "EditorialCandidateCreateRequest": { "description": "One organization's claim source and official next step for human review.", "properties": { "action_url": { "description": "action url for this editorial candidate.", "title": "Action Url", "type": "string" }, "city": { "anyOf": [ { "maxLength": 100, "type": "string" }, { "type": "null" } ], "description": "city for this editorial candidate.", "title": "City" }, "description": { "description": "description for this editorial candidate.", "maxLength": 500, "minLength": 10, "title": "Description", "type": "string" }, "geo_specificity": { "description": "geo specificity for this editorial candidate.", "enum": [ "local", "regional", "statewide", "national" ], "title": "Geo Specificity", "type": "string" }, "issue_areas": { "description": "issue areas for this editorial candidate.", "items": { "type": "string" }, "maxItems": 8, "minItems": 1, "title": "Issue Areas", "type": "array" }, "name": { "description": "name for this editorial candidate.", "maxLength": 160, "minLength": 3, "title": "Name", "type": "string" }, "region": { "anyOf": [ { "maxLength": 200, "type": "string" }, { "type": "null" } ], "description": "region for this editorial candidate.", "title": "Region" }, "source_context": { "description": "source context for this editorial candidate.", "maxLength": 500, "minLength": 10, "title": "Source Context", "type": "string" }, "source_url": { "description": "source url for this editorial candidate.", "title": "Source Url", "type": "string" }, "sources_checked": { "const": true, "description": "sources checked for this editorial candidate.", "title": "Sources Checked", "type": "boolean" }, "state": { "description": "state for this editorial candidate.", "maxLength": 2, "minLength": 2, "title": "State", "type": "string" } }, "required": [ "name", "description", "state", "geo_specificity", "issue_areas", "source_url", "source_context", "action_url", "sources_checked" ], "title": "EditorialCandidateCreateRequest", "type": "object" }, "EditorialCandidateCreateResponse": { "description": "A held profile and the queue item an editor must decide.", "properties": { "entity_id": { "description": "entity id for this editorial candidate.", "title": "Entity Id", "type": "string" }, "review_item_id": { "description": "review item id for this editorial candidate.", "title": "Review Item Id", "type": "string" }, "status": { "const": "pending", "default": "pending", "description": "status for this editorial candidate.", "title": "Status", "type": "string" } }, "required": [ "entity_id", "review_item_id" ], "title": "EditorialCandidateCreateResponse", "type": "object" }, "EditorialDecisionRequest": { "description": "Why an editor approved, rejected, resolved, or dismissed something.\n\nThe audit log records the reason with the decision, so the route itself\ndoes not store it.", "properties": { "reason": { "anyOf": [ { "maxLength": 2000, "type": "string" }, { "type": "null" } ], "description": "Why the editor decided; shown in editorial activity", "title": "Reason" } }, "title": "EditorialDecisionRequest", "type": "object" }, "EntityCollectionResponse": { "description": "Collection response for entities.", "properties": { "facets": { "anyOf": [ { "additionalProperties": { "items": { "$ref": "#/components/schemas/FacetOption" }, "type": "array" }, "type": "object" }, { "type": "null" } ], "description": "facets for this entity collection.", "title": "Facets" }, "items": { "description": "items for this entity collection.", "items": { "$ref": "#/components/schemas/EntityResponse" }, "title": "Items", "type": "array" }, "next_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "next cursor for this entity collection.", "title": "Next Cursor" }, "place": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ], "description": "Place context for place-scoped entity results." }, "total": { "description": "total for this entity collection.", "title": "Total", "type": "integer" } }, "required": [ "total" ], "title": "EntityCollectionResponse", "type": "object" }, "EntityConnectionsResponse": { "description": "An entity's ranked connection network with the true total.", "properties": { "actors": { "description": "actors for this entity connections.", "items": { "$ref": "#/components/schemas/ConnectedActorResponse" }, "title": "Actors", "type": "array" }, "total": { "description": "Total connected actors before pagination.", "title": "Total", "type": "integer" } }, "required": [ "total" ], "title": "EntityConnectionsResponse", "type": "object" }, "EntityCreateRequest": { "description": "Request to create an entity.", "properties": { "address": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ], "description": "Public address or geography for the new actor." }, "affiliated_org_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Affiliated organization ID", "title": "Affiliated Org Id" }, "city": { "anyOf": [ { "maxLength": 100, "type": "string" }, { "type": "null" } ], "description": "Legacy flat city", "title": "City" }, "contact": { "anyOf": [ { "$ref": "#/components/schemas/ContactInfo" }, { "type": "null" } ], "description": "Public contact channels for the new actor." }, "contact_status": { "default": "not_contacted", "description": "Contact status", "title": "Contact Status", "type": "string" }, "description": { "description": "1-3 sentence description", "maxLength": 500, "minLength": 10, "title": "Description", "type": "string" }, "editorial_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Internal notes", "title": "Editorial Notes" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat email", "title": "Email" }, "first_seen": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "First discovery date", "title": "First Seen" }, "full_address": { "anyOf": [ { "maxLength": 300, "type": "string" }, { "type": "null" } ], "description": "Legacy flat full address", "title": "Full Address" }, "geo_specificity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat geographic scope", "title": "Geo Specificity" }, "issue_area_ids": { "description": "Canonical issue-area IDs", "items": { "type": "string" }, "title": "Issue Area Ids", "type": "array" }, "issue_areas": { "description": "Legacy issue-area slugs", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "last_seen": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Last discovery date", "title": "Last Seen" }, "name": { "description": "Entity name", "minLength": 1, "title": "Name", "type": "string" }, "phone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat phone", "title": "Phone" }, "priority": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Priority level", "title": "Priority" }, "region": { "anyOf": [ { "maxLength": 200, "type": "string" }, { "type": "null" } ], "description": "Legacy flat region", "title": "Region" }, "social_media": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "description": "Legacy flat social media", "title": "Social Media" }, "state": { "anyOf": [ { "maxLength": 2, "minLength": 2, "type": "string" }, { "type": "null" } ], "description": "Legacy flat state", "title": "State" }, "type": { "description": "Entity type", "examples": [ "person", "organization", "initiative", "campaign", "event" ], "title": "Type", "type": "string" }, "website": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat website", "title": "Website" } }, "required": [ "type", "name", "description" ], "title": "EntityCreateRequest", "type": "object" }, "EntityDetailResponse": { "description": "Expanded entity detail record.", "properties": { "action_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Reviewed official page where a visitor can take a next step.", "title": "Action Url" }, "active": { "description": "active for this entity detail.", "title": "Active", "type": "boolean" }, "actor_quality": { "$ref": "#/components/schemas/ActorQualityInfo", "description": "Quality signals for the actor record." }, "address": { "$ref": "#/components/schemas/Address", "description": "Normalized public address or geography for the actor." }, "affiliated_org_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "affiliated org id for this entity detail.", "title": "Affiliated Org Id" }, "claim": { "$ref": "#/components/schemas/ClaimStatusInfo", "description": "Subject-claim state for this actor profile." }, "claim_evidence": { "$ref": "#/components/schemas/ClaimEvidenceSet", "description": "Evidence considered for the profile claim." }, "contact": { "$ref": "#/components/schemas/ContactInfo", "description": "Public contact channels for the actor." }, "created_at": { "description": "created at for this entity detail.", "title": "Created At", "type": "string" }, "custom_bio": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Subject-authored bio that overrides the auto-generated description on display.", "title": "Custom Bio" }, "description": { "description": "description for this entity detail.", "title": "Description", "type": "string" }, "flag_summary": { "$ref": "#/components/schemas/FlagSummary", "description": "Open correction signals on this actor." }, "freshness": { "$ref": "#/components/schemas/FreshnessInfo", "description": "Source freshness and last-seen context for the actor." }, "id": { "description": "id for this entity detail.", "title": "Id", "type": "string" }, "issue_area_ids": { "description": "issue area ids for this entity detail.", "items": { "type": "string" }, "title": "Issue Area Ids", "type": "array" }, "name": { "description": "name for this entity detail.", "title": "Name", "type": "string" }, "photo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Subject-uploaded photo or org logo. Null until a verified subject uploads one.", "title": "Photo Url" }, "preferred_contact_channel": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Subject preference for which channel readers should use to make contact.", "title": "Preferred Contact Channel" }, "profile_answers": { "$ref": "#/components/schemas/ProfileAnswers", "description": "Subject-managed profile answers." }, "profile_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Absolute URL to the entity's public profile page, when derivable.", "title": "Profile Url" }, "relationship_ids": { "description": "relationship ids for this entity detail.", "items": { "type": "string" }, "title": "Relationship Ids", "type": "array" }, "resource_uri": { "description": "resource uri for this entity detail.", "title": "Resource Uri", "type": "string" }, "slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Human-readable URL slug (e.g., jane-doe-a3f2).", "title": "Slug" }, "source_count": { "default": 0, "description": "source count for this entity detail.", "title": "Source Count", "type": "integer" }, "source_ids": { "description": "source ids for this entity detail.", "items": { "type": "string" }, "title": "Source Ids", "type": "array" }, "source_types": { "description": "source types for this entity detail.", "items": { "type": "string" }, "title": "Source Types", "type": "array" }, "sources": { "description": "sources for this entity detail.", "items": { "$ref": "#/components/schemas/SourceResponse" }, "title": "Sources", "type": "array" }, "trust": { "$ref": "#/components/schemas/TrustInfo", "description": "Trust tier and provenance summary for the actor." }, "type": { "description": "type for this entity detail.", "title": "Type", "type": "string" }, "updated_at": { "description": "updated at for this entity detail.", "title": "Updated At", "type": "string" }, "verified": { "description": "verified for this entity detail.", "title": "Verified", "type": "boolean" } }, "required": [ "id", "type", "name", "description", "address", "contact", "active", "verified", "claim_evidence", "profile_answers", "freshness", "created_at", "updated_at", "resource_uri" ], "title": "EntityDetailResponse", "type": "object" }, "EntityFlagCreateRequest": { "description": "Anonymous flag submission for an entity.", "properties": { "entity_id": { "description": "entity id for this entity flag.", "title": "Entity Id", "type": "string" }, "note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "note for this entity flag.", "title": "Note" }, "reason": { "description": "reason for this entity flag.", "title": "Reason", "type": "string" } }, "required": [ "entity_id", "reason" ], "title": "EntityFlagCreateRequest", "type": "object" }, "EntityFlagListResponse": { "description": "Entity flags collection.", "properties": { "items": { "description": "items for this entity flag list.", "items": { "$ref": "#/components/schemas/FlagResponse" }, "title": "Items", "type": "array" }, "next_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "next cursor for this entity flag list.", "title": "Next Cursor" }, "total": { "description": "total for this entity flag list.", "title": "Total", "type": "integer" } }, "required": [ "total" ], "title": "EntityFlagListResponse", "type": "object" }, "EntityResponse": { "description": "Canonical public entity shape.", "properties": { "action_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Reviewed official page where a visitor can take a next step.", "title": "Action Url" }, "active": { "description": "active for this entity.", "title": "Active", "type": "boolean" }, "actor_quality": { "$ref": "#/components/schemas/ActorQualityInfo", "description": "Quality signals for the actor record." }, "address": { "$ref": "#/components/schemas/Address", "description": "Normalized public address or geography for the actor." }, "affiliated_org_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "affiliated org id for this entity.", "title": "Affiliated Org Id" }, "claim": { "$ref": "#/components/schemas/ClaimStatusInfo", "description": "Subject-claim state for this actor profile." }, "claim_evidence": { "$ref": "#/components/schemas/ClaimEvidenceSet", "description": "Evidence considered for the profile claim." }, "contact": { "$ref": "#/components/schemas/ContactInfo", "description": "Public contact channels for the actor." }, "created_at": { "description": "created at for this entity.", "title": "Created At", "type": "string" }, "custom_bio": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Subject-authored bio that overrides the auto-generated description on display.", "title": "Custom Bio" }, "description": { "description": "description for this entity.", "title": "Description", "type": "string" }, "flag_summary": { "$ref": "#/components/schemas/FlagSummary", "description": "Open correction signals on this actor." }, "freshness": { "$ref": "#/components/schemas/FreshnessInfo", "description": "Source freshness and last-seen context for the actor." }, "id": { "description": "id for this entity.", "title": "Id", "type": "string" }, "issue_area_ids": { "description": "issue area ids for this entity.", "items": { "type": "string" }, "title": "Issue Area Ids", "type": "array" }, "name": { "description": "name for this entity.", "title": "Name", "type": "string" }, "photo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Subject-uploaded photo or org logo. Null until a verified subject uploads one.", "title": "Photo Url" }, "preferred_contact_channel": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Subject preference for which channel readers should use to make contact.", "title": "Preferred Contact Channel" }, "profile_answers": { "$ref": "#/components/schemas/ProfileAnswers", "description": "Subject-managed profile answers." }, "profile_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Absolute URL to the entity's public profile page, when derivable.", "title": "Profile Url" }, "resource_uri": { "description": "resource uri for this entity.", "title": "Resource Uri", "type": "string" }, "slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Human-readable URL slug (e.g., jane-doe-a3f2).", "title": "Slug" }, "source_count": { "default": 0, "description": "source count for this entity.", "title": "Source Count", "type": "integer" }, "source_types": { "description": "source types for this entity.", "items": { "type": "string" }, "title": "Source Types", "type": "array" }, "trust": { "$ref": "#/components/schemas/TrustInfo", "description": "Trust tier and provenance summary for the actor." }, "type": { "description": "type for this entity.", "title": "Type", "type": "string" }, "updated_at": { "description": "updated at for this entity.", "title": "Updated At", "type": "string" }, "verified": { "description": "verified for this entity.", "title": "Verified", "type": "boolean" } }, "required": [ "id", "type", "name", "description", "address", "contact", "active", "verified", "claim_evidence", "profile_answers", "freshness", "created_at", "updated_at", "resource_uri" ], "title": "EntityResponse", "type": "object" }, "EntitySourcesResponse": { "description": "Source list for a single entity.", "properties": { "entity_id": { "description": "entity id for this entity sources.", "title": "Entity Id", "type": "string" }, "next_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "next cursor for this entity sources.", "title": "Next Cursor" }, "sources": { "description": "sources for this entity sources.", "items": { "$ref": "#/components/schemas/SourceResponse" }, "title": "Sources", "type": "array" }, "total": { "default": 0, "description": "total for this entity sources.", "title": "Total", "type": "integer" } }, "required": [ "entity_id" ], "title": "EntitySourcesResponse", "type": "object" }, "EntityType": { "description": "Type of entity being catalogued.", "enum": [ "person", "organization", "initiative", "campaign", "event" ], "title": "EntityType", "type": "string" }, "EntityUpdateRequest": { "description": "Request to update an entity.", "properties": { "active": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Is entity active", "title": "Active" }, "address": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ], "description": "Public address or geography updates for the actor." }, "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat city", "title": "City" }, "contact": { "anyOf": [ { "$ref": "#/components/schemas/ContactInfo" }, { "type": "null" } ], "description": "Public contact channel updates for the actor." }, "contact_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Contact status", "title": "Contact Status" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Description", "title": "Description" }, "editorial_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Internal notes", "title": "Editorial Notes" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat email", "title": "Email" }, "full_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat full address", "title": "Full Address" }, "geo_specificity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat geographic scope", "title": "Geo Specificity" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Entity name", "title": "Name" }, "phone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat phone", "title": "Phone" }, "priority": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Priority level", "title": "Priority" }, "region": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat region", "title": "Region" }, "social_media": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "description": "Legacy flat social media", "title": "Social Media" }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat state", "title": "State" }, "verified": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Is entity verified", "title": "Verified" }, "website": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legacy flat website", "title": "Website" } }, "title": "EntityUpdateRequest", "type": "object" }, "EntryMergeCollectionResponse": { "description": "Past merges.", "properties": { "items": { "description": "Merges, newest first", "items": { "$ref": "#/components/schemas/EntryMergeResponse" }, "title": "Items", "type": "array" } }, "required": [ "items" ], "title": "EntryMergeCollectionResponse", "type": "object" }, "EntryMergeResponse": { "description": "One merge that was made.", "properties": { "duplicate_entry_id": { "description": "duplicate entry id for this entry merge.", "title": "Duplicate Entry Id", "type": "string" }, "duplicate_name": { "description": "duplicate name for this entry merge.", "title": "Duplicate Name", "type": "string" }, "duplicate_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "duplicate slug for this entry merge.", "title": "Duplicate Slug" }, "id": { "description": "Merge ID", "title": "Id", "type": "string" }, "kept_entry_id": { "description": "kept entry id for this entry merge.", "title": "Kept Entry Id", "type": "string" }, "kept_name": { "description": "kept name for this entry merge.", "title": "Kept Name", "type": "string" }, "kept_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "kept slug for this entry merge.", "title": "Kept Slug" }, "merged_at": { "description": "merged at for this entry merge.", "title": "Merged At", "type": "string" }, "merged_by": { "description": "The editor who merged them", "title": "Merged By", "type": "string" }, "moved": { "$ref": "#/components/schemas/MergeCountsResponse", "description": "moved for this entry merge." }, "reason": { "description": "reason for this entry merge.", "title": "Reason", "type": "string" } }, "required": [ "id", "kept_entry_id", "kept_name", "kept_slug", "duplicate_entry_id", "duplicate_name", "duplicate_slug", "reason", "merged_by", "merged_at", "moved" ], "title": "EntryMergeResponse", "type": "object" }, "FacetOption": { "description": "A single filter option with result count.", "properties": { "count": { "description": "count for this facet option.", "title": "Count", "type": "integer" }, "value": { "description": "value for this facet option.", "title": "Value", "type": "string" } }, "required": [ "value", "count" ], "title": "FacetOption", "type": "object" }, "FirehoseActorRef": { "description": "Actor reference attached to one Firehose signal.", "properties": { "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "id for this firehose actor ref.", "title": "Id" }, "name": { "description": "name for this firehose actor ref.", "title": "Name", "type": "string" }, "role": { "description": "role for this firehose actor ref.", "title": "Role", "type": "string" }, "type": { "description": "type for this firehose actor ref.", "enum": [ "person", "organization", "initiative", "campaign", "event" ], "title": "Type", "type": "string" } }, "required": [ "id", "name", "type", "role" ], "title": "FirehoseActorRef", "type": "object" }, "FirehoseDeliveryRequest": { "description": "Requested delivery mode for a durable Firehose session.", "properties": { "mode": { "default": "sse", "description": "mode for this firehose delivery.", "enum": [ "sse", "websocket" ], "title": "Mode", "type": "string" } }, "title": "FirehoseDeliveryRequest", "type": "object" }, "FirehoseDestination": { "description": "Destination where a Firehose signal is allowed to appear.", "properties": { "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "id for this firehose destination.", "title": "Id" }, "state": { "description": "state for this firehose destination.", "enum": [ "active", "held", "suppressed" ], "title": "State", "type": "string" }, "type": { "description": "type for this firehose destination.", "enum": [ "workspace", "profile", "place", "issue", "partner", "public", "review" ], "title": "Type", "type": "string" } }, "required": [ "type", "id", "state" ], "title": "FirehoseDestination", "type": "object" }, "FirehoseEvidence": { "description": "Public evidence backing one Firehose signal.", "properties": { "captured_at": { "description": "captured at for this firehose evidence.", "title": "Captured At", "type": "string" }, "content_hash": { "description": "content hash for this firehose evidence.", "title": "Content Hash", "type": "string" }, "locator": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "locator for this firehose evidence.", "title": "Locator" }, "passage": { "description": "passage for this firehose evidence.", "title": "Passage", "type": "string" }, "published_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "published at for this firehose evidence.", "title": "Published At" }, "publisher": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "publisher for this firehose evidence.", "title": "Publisher" }, "source_url": { "description": "source url for this firehose evidence.", "title": "Source Url", "type": "string" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "title for this firehose evidence.", "title": "Title" } }, "required": [ "source_url", "title", "publisher", "published_at", "captured_at", "passage", "locator", "content_hash" ], "title": "FirehoseEvidence", "type": "object" }, "FirehoseLinkSet": { "description": "HTTP and client links for the current Firehose view.", "properties": { "events": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "events for this firehose link set.", "title": "Events" }, "next": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "next for this firehose link set.", "title": "Next" }, "self": { "description": "self for this firehose link set.", "title": "Self", "type": "string" } }, "required": [ "self", "next", "events" ], "title": "FirehoseLinkSet", "type": "object" }, "FirehoseObservationSignalsResponse": { "description": "Result of creating signal resources for one Firehose observation.", "properties": { "observation_id": { "description": "Stored Firehose observation used as the canonical evidence input.", "title": "Observation Id", "type": "string" }, "routes_created": { "description": "Number of workspace or public route records created for the observation.", "minimum": 0.0, "title": "Routes Created", "type": "integer" }, "signals_created": { "description": "Number of signal records created from the observation.", "minimum": 0.0, "title": "Signals Created", "type": "integer" }, "unchanged": { "description": "Whether all requested signal and route resources already existed.", "title": "Unchanged", "type": "boolean" } }, "required": [ "observation_id", "routes_created", "signals_created", "unchanged" ], "title": "FirehoseObservationSignalsResponse", "type": "object" }, "FirehoseQuery": { "description": "Normalized Firehose query filters.", "properties": { "actor_types": { "description": "actor types for this firehose query.", "items": { "enum": [ "person", "organization", "initiative", "campaign", "event" ], "type": "string" }, "title": "Actor Types", "type": "array" }, "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "cursor for this firehose query.", "title": "Cursor" }, "issues": { "description": "issues for this firehose query.", "items": { "type": "string" }, "title": "Issues", "type": "array" }, "limit": { "default": 50, "description": "limit for this firehose query.", "maximum": 200.0, "minimum": 1.0, "title": "Limit", "type": "integer" }, "places": { "description": "places for this firehose query.", "items": { "type": "string" }, "title": "Places", "type": "array" }, "signal_types": { "description": "signal types for this firehose query.", "items": { "enum": [ "public_meeting", "public_comment", "vote", "filing", "grant_award", "coalition_activity", "new_source", "role_change", "freshness_change", "actor_discovered", "source_attached", "relationship_observed", "profile_claimed", "review_decision", "coverage_gap" ], "type": "string" }, "title": "Signal Types", "type": "array" }, "since": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "since for this firehose query.", "title": "Since" }, "sort": { "default": "detected_at_desc", "description": "sort for this firehose query.", "enum": [ "detected_at_desc", "occurred_at_desc", "relevance_desc" ], "title": "Sort", "type": "string" }, "source_classes": { "description": "source classes for this firehose query.", "items": { "type": "string" }, "title": "Source Classes", "type": "array" }, "until": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "until for this firehose query.", "title": "Until" }, "visibility": { "default": "workspace", "description": "visibility for this firehose query.", "enum": [ "workspace", "partner", "public", "reviewer" ], "title": "Visibility", "type": "string" } }, "title": "FirehoseQuery", "type": "object" }, "FirehoseSession": { "description": "Durable observed Firehose query.", "properties": { "created_at": { "description": "created at for this firehose session.", "title": "Created At", "type": "string" }, "events_url": { "description": "events url for this firehose session.", "title": "Events Url", "type": "string" }, "expires_at": { "description": "expires at for this firehose session.", "title": "Expires At", "type": "string" }, "id": { "description": "id for this firehose session.", "title": "Id", "type": "string" }, "query": { "$ref": "#/components/schemas/FirehoseQuery", "description": "query for this firehose session." }, "snapshot_url": { "description": "snapshot url for this firehose session.", "title": "Snapshot Url", "type": "string" }, "socket_url": { "description": "socket url for this firehose session.", "title": "Socket Url", "type": "string" }, "state": { "description": "state for this firehose session.", "enum": [ "active", "expired" ], "title": "State", "type": "string" }, "usage": { "$ref": "#/components/schemas/FirehoseUsageContext", "description": "usage for this firehose session." }, "workspace": { "$ref": "#/components/schemas/FirehoseWorkspaceContext", "description": "workspace for this firehose session." } }, "required": [ "id", "state", "query", "workspace", "usage", "created_at", "expires_at", "snapshot_url", "events_url", "socket_url" ], "title": "FirehoseSession", "type": "object" }, "FirehoseSessionRequest": { "description": "Request to create a durable Firehose observed query.", "properties": { "delivery": { "$ref": "#/components/schemas/FirehoseDeliveryRequest", "description": "delivery for this firehose session." }, "query": { "$ref": "#/components/schemas/FirehoseQuery", "description": "query for this firehose session." } }, "required": [ "query" ], "title": "FirehoseSessionRequest", "type": "object" }, "FirehoseSignal": { "description": "Source-backed civic signal returned by Firehose.", "properties": { "actors": { "description": "actors for this firehose signal.", "items": { "$ref": "#/components/schemas/FirehoseActorRef" }, "title": "Actors", "type": "array" }, "confidence": { "description": "confidence for this firehose signal.", "maximum": 1.0, "minimum": 0.0, "title": "Confidence", "type": "number" }, "destinations": { "description": "destinations for this firehose signal.", "items": { "$ref": "#/components/schemas/FirehoseDestination" }, "title": "Destinations", "type": "array" }, "detected_at": { "description": "detected at for this firehose signal.", "title": "Detected At", "type": "string" }, "evidence": { "description": "evidence for this firehose signal.", "items": { "$ref": "#/components/schemas/FirehoseEvidence" }, "title": "Evidence", "type": "array" }, "id": { "description": "id for this firehose signal.", "title": "Id", "type": "string" }, "issues": { "description": "issues for this firehose signal.", "items": { "type": "string" }, "title": "Issues", "type": "array" }, "occurred_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "occurred at for this firehose signal.", "title": "Occurred At" }, "places": { "description": "places for this firehose signal.", "items": { "type": "string" }, "title": "Places", "type": "array" }, "public_realm_basis": { "description": "public realm basis for this firehose signal.", "title": "Public Realm Basis", "type": "string" }, "review_state": { "description": "review state for this firehose signal.", "enum": [ "not_required", "pending", "approved", "held", "rejected" ], "title": "Review State", "type": "string" }, "sensitivity": { "description": "sensitivity for this firehose signal.", "maximum": 1.0, "minimum": 0.0, "title": "Sensitivity", "type": "number" }, "summary": { "description": "summary for this firehose signal.", "title": "Summary", "type": "string" }, "title": { "description": "title for this firehose signal.", "title": "Title", "type": "string" }, "type": { "description": "type for this firehose signal.", "enum": [ "public_meeting", "public_comment", "vote", "filing", "grant_award", "coalition_activity", "new_source", "role_change", "freshness_change", "actor_discovered", "source_attached", "relationship_observed", "profile_claimed", "review_decision", "coverage_gap" ], "title": "Type", "type": "string" }, "visibility": { "description": "visibility for this firehose signal.", "enum": [ "workspace", "partner", "public", "reviewer" ], "title": "Visibility", "type": "string" } }, "required": [ "id", "type", "title", "summary", "occurred_at", "detected_at", "public_realm_basis", "places", "issues", "actors", "confidence", "sensitivity", "review_state", "visibility", "evidence", "destinations" ], "title": "FirehoseSignal", "type": "object" }, "FirehoseSnapshot": { "description": "Point-in-time Firehose query result.", "properties": { "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "cursor for this firehose snapshot.", "title": "Cursor" }, "generated_at": { "description": "generated at for this firehose snapshot.", "title": "Generated At", "type": "string" }, "links": { "$ref": "#/components/schemas/FirehoseLinkSet", "description": "links for this firehose snapshot." }, "query": { "$ref": "#/components/schemas/FirehoseQuery", "description": "query for this firehose snapshot." }, "session": { "anyOf": [ { "$ref": "#/components/schemas/FirehoseSession" }, { "type": "null" } ], "description": "session for this firehose snapshot." }, "signals": { "description": "signals for this firehose snapshot.", "items": { "$ref": "#/components/schemas/FirehoseSignal" }, "title": "Signals", "type": "array" }, "summary": { "$ref": "#/components/schemas/FirehoseSummary", "description": "summary for this firehose snapshot." }, "usage": { "$ref": "#/components/schemas/FirehoseUsageContext", "description": "usage for this firehose snapshot." }, "workspace": { "$ref": "#/components/schemas/FirehoseWorkspaceContext", "description": "workspace for this firehose snapshot." } }, "required": [ "query", "workspace", "usage", "generated_at", "cursor", "summary", "signals", "links" ], "title": "FirehoseSnapshot", "type": "object" }, "FirehoseSourceTargetCollectionResponse": { "description": "Collection of workspace Firehose source targets.", "properties": { "items": { "description": "items for this firehose source target collection.", "items": { "$ref": "#/components/schemas/FirehoseSourceTargetResponse" }, "title": "Items", "type": "array" }, "total": { "description": "total for this firehose source target collection.", "minimum": 0.0, "title": "Total", "type": "integer" } }, "required": [ "items", "total" ], "title": "FirehoseSourceTargetCollectionResponse", "type": "object" }, "FirehoseSourceTargetRequest": { "description": "Request to create or update a workspace Firehose source target.", "properties": { "cadence_seconds": { "default": 60, "description": "cadence seconds for this firehose source target.", "maximum": 86400.0, "minimum": 30.0, "title": "Cadence Seconds", "type": "integer" }, "coverage_target_id": { "description": "coverage target id for this firehose source target.", "minLength": 1, "title": "Coverage Target Id", "type": "string" }, "enabled": { "default": true, "description": "enabled for this firehose source target.", "title": "Enabled", "type": "boolean" }, "issues": { "description": "issues for this firehose source target.", "items": { "type": "string" }, "minItems": 1, "title": "Issues", "type": "array" }, "label": { "description": "label for this firehose source target.", "minLength": 1, "title": "Label", "type": "string" }, "origin_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "origin note for this firehose source target.", "title": "Origin Note" }, "places": { "description": "places for this firehose source target.", "items": { "type": "string" }, "minItems": 1, "title": "Places", "type": "array" }, "priority": { "default": "hot", "description": "priority for this firehose source target.", "pattern": "^(hot|warm)$", "title": "Priority", "type": "string" }, "public_route_enabled": { "default": false, "description": "public route enabled for this firehose source target.", "title": "Public Route Enabled", "type": "boolean" }, "safety_policy": { "default": "standard", "description": "safety policy for this firehose source target.", "pattern": "^(standard|person_review_required|review_all)$", "title": "Safety Policy", "type": "string" }, "source_class": { "description": "source class for this firehose source target.", "minLength": 1, "title": "Source Class", "type": "string" }, "source_kind": { "description": "source kind for this firehose source target.", "pattern": "^(rss|atom|web_page)$", "title": "Source Kind", "type": "string" }, "url": { "description": "url for this firehose source target.", "minLength": 1, "title": "Url", "type": "string" } }, "required": [ "coverage_target_id", "label", "url", "source_kind", "source_class", "places", "issues" ], "title": "FirehoseSourceTargetRequest", "type": "object" }, "FirehoseSourceTargetResponse": { "description": "Stored workspace Firehose source target.", "properties": { "cadence_seconds": { "description": "cadence seconds for this firehose source target.", "title": "Cadence Seconds", "type": "integer" }, "content_hash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "content hash for this firehose source target.", "title": "Content Hash" }, "coverage_target_id": { "description": "coverage target id for this firehose source target.", "title": "Coverage Target Id", "type": "string" }, "created_at": { "description": "created at for this firehose source target.", "title": "Created At", "type": "string" }, "created_by": { "description": "created by for this firehose source target.", "title": "Created By", "type": "string" }, "enabled": { "description": "enabled for this firehose source target.", "title": "Enabled", "type": "boolean" }, "etag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "etag for this firehose source target.", "title": "Etag" }, "id": { "description": "id for this firehose source target.", "title": "Id", "type": "string" }, "issues": { "description": "issues for this firehose source target.", "items": { "type": "string" }, "title": "Issues", "type": "array" }, "label": { "description": "label for this firehose source target.", "title": "Label", "type": "string" }, "last_checked_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last checked at for this firehose source target.", "title": "Last Checked At" }, "last_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last error for this firehose source target.", "title": "Last Error" }, "last_http_status": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "last http status for this firehose source target.", "title": "Last Http Status" }, "last_modified": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last modified for this firehose source target.", "title": "Last Modified" }, "last_success_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last success at for this firehose source target.", "title": "Last Success At" }, "org_id": { "description": "org id for this firehose source target.", "title": "Org Id", "type": "string" }, "origin": { "description": "origin for this firehose source target.", "title": "Origin", "type": "string" }, "origin_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "origin note for this firehose source target.", "title": "Origin Note" }, "places": { "description": "places for this firehose source target.", "items": { "type": "string" }, "title": "Places", "type": "array" }, "priority": { "description": "priority for this firehose source target.", "title": "Priority", "type": "string" }, "public_route_enabled": { "description": "public route enabled for this firehose source target.", "title": "Public Route Enabled", "type": "boolean" }, "safety_policy": { "description": "safety policy for this firehose source target.", "title": "Safety Policy", "type": "string" }, "source_class": { "description": "source class for this firehose source target.", "title": "Source Class", "type": "string" }, "source_kind": { "description": "source kind for this firehose source target.", "title": "Source Kind", "type": "string" }, "updated_at": { "description": "updated at for this firehose source target.", "title": "Updated At", "type": "string" }, "url": { "description": "url for this firehose source target.", "title": "Url", "type": "string" } }, "required": [ "id", "org_id", "coverage_target_id", "label", "url", "source_kind", "source_class", "places", "issues", "priority", "cadence_seconds", "enabled", "safety_policy", "public_route_enabled", "origin", "origin_note", "last_checked_at", "last_success_at", "last_error", "last_http_status", "etag", "last_modified", "content_hash", "created_by", "created_at", "updated_at" ], "title": "FirehoseSourceTargetResponse", "type": "object" }, "FirehoseSourceTargetRunRequest": { "description": "Fetched source content for an MVP run-once source check.", "properties": { "body": { "description": "body for this firehose source target run.", "minLength": 1, "title": "Body", "type": "string" }, "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "content type for this firehose source target run.", "title": "Content Type" }, "etag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "etag for this firehose source target run.", "title": "Etag" }, "fetched_at": { "description": "fetched at for this firehose source target run.", "title": "Fetched At", "type": "string" }, "last_modified": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last modified for this firehose source target run.", "title": "Last Modified" }, "status_code": { "description": "status code for this firehose source target run.", "maximum": 599.0, "minimum": 100.0, "title": "Status Code", "type": "integer" }, "url": { "description": "url for this firehose source target run.", "minLength": 1, "title": "Url", "type": "string" } }, "required": [ "body", "fetched_at", "status_code", "url" ], "title": "FirehoseSourceTargetRunRequest", "type": "object" }, "FirehoseSourceTargetRunResponse": { "description": "Run-once source check result.", "properties": { "artifacts_created": { "description": "artifacts created for this firehose source target run.", "minimum": 0.0, "title": "Artifacts Created", "type": "integer" }, "routes_created": { "description": "routes created for this firehose source target run.", "minimum": 0.0, "title": "Routes Created", "type": "integer" }, "signals_created": { "description": "signals created for this firehose source target run.", "minimum": 0.0, "title": "Signals Created", "type": "integer" }, "unchanged": { "description": "unchanged for this firehose source target run.", "title": "Unchanged", "type": "boolean" } }, "required": [ "artifacts_created", "routes_created", "signals_created", "unchanged" ], "title": "FirehoseSourceTargetRunResponse", "type": "object" }, "FirehoseSummary": { "description": "Counts for the current Firehose view.", "properties": { "held_signals": { "description": "held signals for this firehose summary.", "minimum": 0.0, "title": "Held Signals", "type": "integer" }, "latest_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "latest cursor for this firehose summary.", "title": "Latest Cursor" }, "total_signals": { "description": "total signals for this firehose summary.", "minimum": 0.0, "title": "Total Signals", "type": "integer" }, "visible_signals": { "description": "visible signals for this firehose summary.", "minimum": 0.0, "title": "Visible Signals", "type": "integer" } }, "required": [ "total_signals", "visible_signals", "held_signals", "latest_cursor" ], "title": "FirehoseSummary", "type": "object" }, "FirehoseUsageContext": { "description": "Billing and metering context for one Firehose request.", "properties": { "meter": { "description": "meter for this firehose usage context.", "enum": [ "firehose_snapshot", "firehose_session", "firehose_stream", "firehose_socket" ], "title": "Meter", "type": "string" }, "query_fingerprint": { "description": "query fingerprint for this firehose usage context.", "title": "Query Fingerprint", "type": "string" } }, "required": [ "meter", "query_fingerprint" ], "title": "FirehoseUsageContext", "type": "object" }, "FirehoseWorkspaceContext": { "description": "Workspace and actor context that owns Firehose usage.", "properties": { "actor_id": { "description": "actor id for this firehose workspace context.", "title": "Actor Id", "type": "string" }, "api_key_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "api key id for this firehose workspace context.", "title": "Api Key Id" }, "auth_type": { "description": "auth type for this firehose workspace context.", "title": "Auth Type", "type": "string" }, "org_id": { "description": "org id for this firehose workspace context.", "title": "Org Id", "type": "string" } }, "required": [ "org_id", "actor_id", "auth_type" ], "title": "FirehoseWorkspaceContext", "type": "object" }, "FlagReceipt": { "description": "Public confirmation that excludes the private report contents.", "properties": { "created_at": { "description": "created at for this flag receipt.", "title": "Created At", "type": "string" }, "id": { "description": "id for this flag receipt.", "title": "Id", "type": "string" }, "status": { "description": "status for this flag receipt.", "title": "Status", "type": "string" } }, "required": [ "id", "status", "created_at" ], "title": "FlagReceipt", "type": "object" }, "FlagResponse": { "description": "Flag resource for an entity or source.", "properties": { "created_at": { "description": "created at for this flag.", "title": "Created At", "type": "string" }, "id": { "description": "id for this flag.", "title": "Id", "type": "string" }, "note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "note for this flag.", "title": "Note" }, "reason": { "description": "reason for this flag.", "title": "Reason", "type": "string" }, "reviewed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "reviewed at for this flag.", "title": "Reviewed At" }, "reviewed_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "reviewed by for this flag.", "title": "Reviewed By" }, "status": { "description": "status for this flag.", "title": "Status", "type": "string" }, "target_id": { "description": "target id for this flag.", "title": "Target Id", "type": "string" }, "target_type": { "description": "target type for this flag.", "title": "Target Type", "type": "string" } }, "required": [ "id", "target_type", "target_id", "reason", "status", "created_at" ], "title": "FlagResponse", "type": "object" }, "FlagStatusReceipt": { "description": "What an anonymous reporter may learn about their own report.", "properties": { "created_at": { "description": "created at for this flag status receipt.", "title": "Created At", "type": "string" }, "id": { "description": "id for this flag status receipt.", "title": "Id", "type": "string" }, "reviewed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "reviewed at for this flag status receipt.", "title": "Reviewed At" }, "status": { "description": "status for this flag status receipt.", "enum": [ "open", "reviewed", "resolved" ], "title": "Status", "type": "string" } }, "required": [ "id", "status", "created_at", "reviewed_at" ], "title": "FlagStatusReceipt", "type": "object" }, "FlagSummary": { "description": "Aggregate flag state for a target.", "properties": { "flag_count": { "default": 0, "description": "flag count for this flag summary.", "title": "Flag Count", "type": "integer" }, "has_open_flags": { "default": false, "description": "has open flags for this flag summary.", "title": "Has Open Flags", "type": "boolean" }, "latest_flagged_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "latest flagged at for this flag summary.", "title": "Latest Flagged At" }, "open_flag_count": { "default": 0, "description": "open flag count for this flag summary.", "title": "Open Flag Count", "type": "integer" } }, "title": "FlagSummary", "type": "object" }, "FreshnessInfo": { "description": "Signals describing how current a record is.", "properties": { "created_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "created at for this freshness info.", "title": "Created At" }, "ingested_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ingested at for this freshness info.", "title": "Ingested At" }, "last_reviewed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last reviewed at for this freshness info.", "title": "Last Reviewed At" }, "last_seen": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last seen for this freshness info.", "title": "Last Seen" }, "last_verified": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last verified for this freshness info.", "title": "Last Verified" }, "latest_source_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "latest source date for this freshness info.", "title": "Latest Source Date" }, "published_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "published date for this freshness info.", "title": "Published Date" }, "staleness_reason": { "description": "staleness reason for this freshness info.", "title": "Staleness Reason", "type": "string" }, "staleness_status": { "description": "staleness status for this freshness info.", "title": "Staleness Status", "type": "string" }, "updated_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "updated at for this freshness info.", "title": "Updated At" } }, "required": [ "staleness_status", "staleness_reason" ], "title": "FreshnessInfo", "type": "object" }, "GapReport": { "description": "Aggregated coverage gap report for a location.", "properties": { "covered_issues": { "description": "Issue area slugs with adequate coverage.", "items": { "type": "string" }, "title": "Covered Issues", "type": "array" }, "location": { "description": "Location query this report covers.", "title": "Location", "type": "string" }, "missing_issues": { "description": "Issue area slugs with zero entries.", "items": { "type": "string" }, "title": "Missing Issues", "type": "array" }, "thin_issues": { "description": "Issue area slugs with some but insufficient entries.", "items": { "type": "string" }, "title": "Thin Issues", "type": "array" }, "total_entries": { "default": 0, "description": "Total entries discovered.", "title": "Total Entries", "type": "integer" }, "uncovered_domains": { "description": "Domains with no covered issue areas.", "items": { "type": "string" }, "title": "Uncovered Domains", "type": "array" } }, "required": [ "location" ], "title": "GapReport", "type": "object" }, "GeoSpecificity": { "description": "Geographic scope of an entity or entry.", "enum": [ "local", "regional", "statewide", "national" ], "title": "GeoSpecificity", "type": "string" }, "HTTPValidationError": { "description": "Validation failure returned when a request cannot be parsed.", "properties": { "detail": { "description": "detail for this httpvalidation error.", "items": { "$ref": "#/components/schemas/ValidationError" }, "title": "Detail", "type": "array" } }, "title": "HTTPValidationError", "type": "object" }, "IssueAreaListResponse": { "description": "Collection response for issue areas.", "properties": { "items": { "description": "items for this issue area list.", "items": { "$ref": "#/components/schemas/IssueAreaResponse" }, "title": "Items", "type": "array" }, "next_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "next cursor for this issue area list.", "title": "Next Cursor" }, "total": { "description": "total for this issue area list.", "title": "Total", "type": "integer" } }, "required": [ "total" ], "title": "IssueAreaListResponse", "type": "object" }, "IssueAreaResponse": { "description": "Canonical issue area resource.", "properties": { "description": { "description": "description for this issue area.", "title": "Description", "type": "string" }, "domain": { "description": "domain for this issue area.", "title": "Domain", "type": "string" }, "id": { "description": "id for this issue area.", "title": "Id", "type": "string" }, "match_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "match score for this issue area.", "title": "Match Score" }, "name": { "description": "name for this issue area.", "title": "Name", "type": "string" }, "slug": { "description": "slug for this issue area.", "title": "Slug", "type": "string" } }, "required": [ "id", "slug", "name", "description", "domain" ], "title": "IssueAreaResponse", "type": "object" }, "IssueSignalSummary": { "description": "Summary of support for one issue area in a place.", "properties": { "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "domain for this issue signal summary.", "title": "Domain" }, "entity_count": { "description": "entity count for this issue signal summary.", "title": "Entity Count", "type": "integer" }, "entity_type_counts": { "description": "entity type counts for this issue signal summary.", "items": { "$ref": "#/components/schemas/PlaceTypeCount" }, "title": "Entity Type Counts", "type": "array" }, "issue_area_id": { "description": "issue area id for this issue signal summary.", "title": "Issue Area Id", "type": "string" }, "name": { "description": "name for this issue signal summary.", "title": "Name", "type": "string" }, "source_count": { "description": "source count for this issue signal summary.", "title": "Source Count", "type": "integer" }, "top_entities": { "description": "top entities for this issue signal summary.", "items": { "$ref": "#/components/schemas/EntityResponse" }, "title": "Top Entities", "type": "array" } }, "required": [ "issue_area_id", "name", "entity_count", "source_count" ], "title": "IssueSignalSummary", "type": "object" }, "IssueSignalsResponse": { "description": "Issue signal response for a place.", "properties": { "issues": { "description": "issues for this issue signals.", "items": { "$ref": "#/components/schemas/IssueSignalSummary" }, "title": "Issues", "type": "array" }, "place": { "$ref": "#/components/schemas/Address", "description": "Place context for the issue-signal summary." }, "resource_uri": { "description": "resource uri for this issue signals.", "title": "Resource Uri", "type": "string" } }, "required": [ "place", "resource_uri" ], "title": "IssueSignalsResponse", "type": "object" }, "MapPoint": { "description": "One placed civic actor, reduced to what the map dot renders.", "properties": { "geo_specificity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "How local or broad the actor's geography is.", "title": "Geo Specificity" }, "geocode_precision": { "anyOf": [ { "enum": [ "rooftop", "city", "state" ], "type": "string" }, { "type": "null" } ], "description": "Precision tier used for the map coordinate.", "title": "Geocode Precision" }, "geocode_source": { "anyOf": [ { "enum": [ "census", "gazetteer", "manual" ], "type": "string" }, { "type": "null" } ], "description": "Source used to derive the map coordinate.", "title": "Geocode Source" }, "id": { "description": "id for this map point.", "title": "Id", "type": "string" }, "issue_areas": { "description": "issue areas for this map point.", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "lat": { "description": "lat for this map point.", "title": "Lat", "type": "number" }, "latest_source_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Newest source date represented on the map point.", "title": "Latest Source Date" }, "lng": { "description": "lng for this map point.", "title": "Lng", "type": "number" }, "name": { "description": "name for this map point.", "title": "Name", "type": "string" }, "place_label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Human-readable place label for the map point.", "title": "Place Label" }, "slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "slug for this map point.", "title": "Slug" }, "source_count": { "description": "Number of sources linked to the mapped actor.", "minimum": 0.0, "title": "Source Count", "type": "integer" }, "trust_level": { "description": "subject_verified | atlas_verified | corroborated | unverified.", "title": "Trust Level", "type": "string" }, "type": { "description": "type for this map point.", "title": "Type", "type": "string" } }, "required": [ "id", "name", "type", "lat", "lng", "source_count", "trust_level" ], "title": "MapPoint", "type": "object" }, "MapPointCollectionResponse": { "description": "The placed actors inside a viewport, with an honest overflow signal.", "properties": { "capped": { "description": "True when the viewport held more actors than the limit returned.", "title": "Capped", "type": "boolean" }, "points": { "description": "points for this map point collection.", "items": { "$ref": "#/components/schemas/MapPoint" }, "title": "Points", "type": "array" }, "total": { "description": "Placed actors inside the viewport before the cap.", "title": "Total", "type": "integer" } }, "required": [ "total", "capped" ], "title": "MapPointCollectionResponse", "type": "object" }, "McpElicitationCompleteResponse": { "additionalProperties": false, "description": "Response returned when a browser flow completes an MCP URL elicitation.", "properties": { "elicitation_id": { "description": "elicitation id for this mcp elicitation complete.", "title": "Elicitation Id", "type": "string" }, "status": { "const": "completed", "description": "status for this mcp elicitation complete.", "title": "Status", "type": "string" }, "target_flow": { "description": "target flow for this mcp elicitation complete.", "title": "Target Flow", "type": "string" } }, "required": [ "status", "elicitation_id", "target_flow" ], "title": "McpElicitationCompleteResponse", "type": "object" }, "MergeCountsResponse": { "description": "What moves, or moved, from the duplicate to the kept profile.", "properties": { "connections": { "description": "Connections to other profiles that move", "minimum": 0.0, "title": "Connections", "type": "integer" }, "followers": { "description": "People who now follow the kept profile", "minimum": 0.0, "title": "Followers", "type": "integer" }, "identity_keys": { "description": "EIN, FEC or domain keys that move", "minimum": 0.0, "title": "Identity Keys", "type": "integer" }, "issue_areas": { "description": "Issue areas the kept profile gains", "minimum": 0.0, "title": "Issue Areas", "type": "integer" }, "open_reports": { "description": "Open visitor reports that move", "minimum": 0.0, "title": "Open Reports", "type": "integer" }, "pending_reviews": { "description": "Pending discovery reviews on the duplicate that close", "minimum": 0.0, "title": "Pending Reviews", "type": "integer" }, "saved_list_places": { "description": "Saved lists that now hold it", "minimum": 0.0, "title": "Saved List Places", "type": "integer" }, "sources": { "description": "Source links the kept profile gains", "minimum": 0.0, "title": "Sources", "type": "integer" } }, "required": [ "sources", "issue_areas", "connections", "followers", "saved_list_places", "open_reports", "identity_keys", "pending_reviews" ], "title": "MergeCountsResponse", "type": "object" }, "MergeCreateRequest": { "description": "Which profile to keep, which to fold into it, and why.", "properties": { "duplicate": { "description": "Slug of the duplicate to retire", "maxLength": 200, "minLength": 1, "title": "Duplicate", "type": "string" }, "keep": { "description": "Slug of the profile to keep", "maxLength": 200, "minLength": 1, "title": "Keep", "type": "string" }, "reason": { "description": "How the editor knows they are the same", "maxLength": 2000, "minLength": 3, "title": "Reason", "type": "string" } }, "required": [ "keep", "duplicate", "reason" ], "title": "MergeCreateRequest", "type": "object" }, "MergePreviewResponse": { "description": "What a merge would do, and anything that stops it.", "properties": { "blockers": { "description": "Every reason the merge is refused; empty if none", "items": { "type": "string" }, "title": "Blockers", "type": "array" }, "duplicate": { "$ref": "#/components/schemas/MergeProfileResponse", "description": "duplicate for this merge preview." }, "keep": { "$ref": "#/components/schemas/MergeProfileResponse", "description": "keep for this merge preview." }, "moves": { "$ref": "#/components/schemas/MergeCountsResponse", "description": "moves for this merge preview." } }, "required": [ "keep", "duplicate", "moves", "blockers" ], "title": "MergePreviewResponse", "type": "object" }, "MergeProfileResponse": { "description": "One of the two profiles in a merge.", "properties": { "active": { "description": "Whether it is published", "title": "Active", "type": "boolean" }, "id": { "description": "Entry ID", "title": "Id", "type": "string" }, "name": { "description": "The profile's name", "title": "Name", "type": "string" }, "slug": { "description": "The profile's slug", "title": "Slug", "type": "string" }, "type": { "description": "person, organization, or another entry type", "title": "Type", "type": "string" } }, "required": [ "id", "name", "slug", "type", "active" ], "title": "MergeProfileResponse", "type": "object" }, "ModerationInboxItemResponse": { "description": "Private report with enough context to review its profile or source.", "properties": { "created_at": { "description": "created at for this moderation inbox item.", "title": "Created At", "type": "string" }, "entity_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entity slug for this moderation inbox item.", "title": "Entity Slug" }, "entity_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entity type for this moderation inbox item.", "title": "Entity Type" }, "id": { "description": "id for this moderation inbox item.", "title": "Id", "type": "string" }, "linked_profiles": { "description": "linked profiles for this moderation inbox item.", "items": { "additionalProperties": { "type": "string" }, "type": "object" }, "title": "Linked Profiles", "type": "array" }, "note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "note for this moderation inbox item.", "title": "Note" }, "reason": { "description": "reason for this moderation inbox item.", "title": "Reason", "type": "string" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "source url for this moderation inbox item.", "title": "Source Url" }, "target_id": { "description": "target id for this moderation inbox item.", "title": "Target Id", "type": "string" }, "target_name": { "description": "target name for this moderation inbox item.", "title": "Target Name", "type": "string" }, "target_type": { "description": "target type for this moderation inbox item.", "enum": [ "entity", "source" ], "title": "Target Type", "type": "string" } }, "required": [ "id", "target_type", "target_id", "target_name", "entity_slug", "entity_type", "source_url", "reason", "note", "created_at" ], "title": "ModerationInboxItemResponse", "type": "object" }, "ModerationInboxResponse": { "description": "Paginated staff-only profile and source reports.", "properties": { "items": { "description": "items for this moderation inbox.", "items": { "$ref": "#/components/schemas/ModerationInboxItemResponse" }, "title": "Items", "type": "array" }, "total": { "description": "total for this moderation inbox.", "title": "Total", "type": "integer" } }, "required": [ "items", "total" ], "title": "ModerationInboxResponse", "type": "object" }, "OrgBriefCollectionResponse": { "description": "Collection response for private Atlas Brief artifacts.", "properties": { "items": { "description": "items for this org brief collection.", "items": { "$ref": "#/components/schemas/OrgBriefResponse" }, "title": "Items", "type": "array" }, "total": { "description": "total for this org brief collection.", "title": "Total", "type": "integer" } }, "required": [ "items", "total" ], "title": "OrgBriefCollectionResponse", "type": "object" }, "OrgBriefConfidenceSummary": { "description": "Trust summary for a private Atlas Brief.", "properties": { "review_status": { "description": "review status for this org brief confidence summary.", "minLength": 1, "title": "Review Status", "type": "string" }, "source_count": { "description": "source count for this org brief confidence summary.", "minimum": 0.0, "title": "Source Count", "type": "integer" }, "state": { "description": "state for this org brief confidence summary.", "enum": [ "corroborated", "partial", "unverified" ], "title": "State", "type": "string" } }, "required": [ "state", "source_count", "review_status" ], "title": "OrgBriefConfidenceSummary", "type": "object" }, "OrgBriefCreateRequest": { "description": "Request to create a private Atlas Brief artifact.", "properties": { "confidence_summary": { "$ref": "#/components/schemas/OrgBriefConfidenceSummary", "description": "Confidence notes captured with the brief." }, "gaps": { "description": "gaps for this org brief.", "items": { "$ref": "#/components/schemas/OrgBriefGap" }, "title": "Gaps", "type": "array" }, "linked_discovery_run_ids": { "description": "linked discovery run ids for this org brief.", "items": { "type": "string" }, "title": "Linked Discovery Run Ids", "type": "array" }, "linked_entry_ids": { "description": "linked entry ids for this org brief.", "items": { "type": "string" }, "title": "Linked Entry Ids", "type": "array" }, "linked_source_ids": { "description": "linked source ids for this org brief.", "items": { "type": "string" }, "title": "Linked Source Ids", "type": "array" }, "scope": { "$ref": "#/components/schemas/OrgBriefScope", "description": "Research scope for the new brief." }, "summary": { "description": "summary for this org brief.", "minLength": 1, "title": "Summary", "type": "string" }, "title": { "description": "title for this org brief.", "minLength": 1, "title": "Title", "type": "string" } }, "required": [ "title", "scope", "summary", "linked_entry_ids", "linked_source_ids", "linked_discovery_run_ids", "confidence_summary", "gaps" ], "title": "OrgBriefCreateRequest", "type": "object" }, "OrgBriefExportDiscoveryRun": { "description": "Discovery run context included in a brief export.", "properties": { "id": { "description": "id for this org brief export discovery run.", "title": "Id", "type": "string" }, "issue_areas": { "description": "issue areas for this org brief export discovery run.", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "location_query": { "description": "location query for this org brief export discovery run.", "title": "Location Query", "type": "string" }, "research_goal": { "description": "research goal for this org brief export discovery run.", "title": "Research Goal", "type": "string" }, "state": { "description": "state for this org brief export discovery run.", "title": "State", "type": "string" }, "status": { "description": "status for this org brief export discovery run.", "title": "Status", "type": "string" } }, "required": [ "id", "location_query", "state", "issue_areas", "research_goal", "status" ], "title": "OrgBriefExportDiscoveryRun", "type": "object" }, "OrgBriefExportEntry": { "description": "Linked actor context included in a brief export.", "properties": { "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "city for this org brief export entry.", "title": "City" }, "id": { "description": "id for this org brief export entry.", "title": "Id", "type": "string" }, "name": { "description": "name for this org brief export entry.", "title": "Name", "type": "string" }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "state for this org brief export entry.", "title": "State" }, "type": { "description": "type for this org brief export entry.", "title": "Type", "type": "string" } }, "required": [ "id", "name", "type", "city", "state" ], "title": "OrgBriefExportEntry", "type": "object" }, "OrgBriefExportProvenance": { "description": "Summary of provenance carried by a brief export.", "properties": { "confidence_state": { "description": "confidence state for this org brief export provenance.", "enum": [ "corroborated", "partial", "unverified" ], "title": "Confidence State", "type": "string" }, "discovery_run_count": { "description": "discovery run count for this org brief export provenance.", "title": "Discovery Run Count", "type": "integer" }, "entry_count": { "description": "entry count for this org brief export provenance.", "title": "Entry Count", "type": "integer" }, "review_status": { "description": "review status for this org brief export provenance.", "title": "Review Status", "type": "string" }, "source_count": { "description": "source count for this org brief export provenance.", "title": "Source Count", "type": "integer" } }, "required": [ "source_count", "entry_count", "discovery_run_count", "confidence_state", "review_status" ], "title": "OrgBriefExportProvenance", "type": "object" }, "OrgBriefExportResponse": { "description": "JSON export for a private Atlas Brief with provenance.", "properties": { "brief": { "$ref": "#/components/schemas/OrgBriefResponse", "description": "Brief artifact being exported." }, "discovery_runs": { "description": "discovery runs for this org brief export.", "items": { "$ref": "#/components/schemas/OrgBriefExportDiscoveryRun" }, "title": "Discovery Runs", "type": "array" }, "entries": { "description": "entries for this org brief export.", "items": { "$ref": "#/components/schemas/OrgBriefExportEntry" }, "title": "Entries", "type": "array" }, "format": { "const": "json", "default": "json", "description": "format for this org brief export.", "title": "Format", "type": "string" }, "provenance": { "$ref": "#/components/schemas/OrgBriefExportProvenance", "description": "Source and export provenance for the brief." }, "sources": { "description": "sources for this org brief export.", "items": { "$ref": "#/components/schemas/OrgBriefExportSource" }, "title": "Sources", "type": "array" } }, "required": [ "brief", "entries", "sources", "discovery_runs", "provenance" ], "title": "OrgBriefExportResponse", "type": "object" }, "OrgBriefExportSource": { "description": "Source receipt included in a brief export.", "properties": { "id": { "description": "id for this org brief export source.", "title": "Id", "type": "string" }, "ingested_at": { "description": "ingested at for this org brief export source.", "title": "Ingested At", "type": "string" }, "publication": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "publication for this org brief export source.", "title": "Publication" }, "published_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "published date for this org brief export source.", "title": "Published Date" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "title for this org brief export source.", "title": "Title" }, "type": { "description": "type for this org brief export source.", "title": "Type", "type": "string" }, "url": { "description": "url for this org brief export source.", "title": "Url", "type": "string" } }, "required": [ "id", "url", "title", "publication", "published_date", "type", "ingested_at" ], "title": "OrgBriefExportSource", "type": "object" }, "OrgBriefGap": { "description": "Known gap or unknown represented in an Atlas Brief.", "properties": { "detail": { "description": "detail for this org brief gap.", "minLength": 1, "title": "Detail", "type": "string" }, "label": { "description": "label for this org brief gap.", "minLength": 1, "title": "Label", "type": "string" } }, "required": [ "label", "detail" ], "title": "OrgBriefGap", "type": "object" }, "OrgBriefResponse": { "description": "Private Atlas Brief artifact response.", "properties": { "confidence_summary": { "$ref": "#/components/schemas/OrgBriefConfidenceSummary", "description": "Confidence notes saved with the brief." }, "created_at": { "description": "created at for this org brief.", "title": "Created At", "type": "string" }, "created_by": { "description": "created by for this org brief.", "title": "Created By", "type": "string" }, "gaps": { "description": "gaps for this org brief.", "items": { "$ref": "#/components/schemas/OrgBriefGap" }, "title": "Gaps", "type": "array" }, "id": { "description": "id for this org brief.", "title": "Id", "type": "string" }, "linked_discovery_run_ids": { "description": "linked discovery run ids for this org brief.", "items": { "type": "string" }, "title": "Linked Discovery Run Ids", "type": "array" }, "linked_entry_ids": { "description": "linked entry ids for this org brief.", "items": { "type": "string" }, "title": "Linked Entry Ids", "type": "array" }, "linked_source_ids": { "description": "linked source ids for this org brief.", "items": { "type": "string" }, "title": "Linked Source Ids", "type": "array" }, "org_id": { "description": "org id for this org brief.", "title": "Org Id", "type": "string" }, "scope": { "$ref": "#/components/schemas/OrgBriefScope", "description": "Research scope saved with the brief." }, "summary": { "description": "summary for this org brief.", "title": "Summary", "type": "string" }, "title": { "description": "title for this org brief.", "title": "Title", "type": "string" }, "updated_at": { "description": "updated at for this org brief.", "title": "Updated At", "type": "string" } }, "required": [ "id", "org_id", "title", "scope", "summary", "linked_entry_ids", "linked_source_ids", "linked_discovery_run_ids", "confidence_summary", "gaps", "created_by", "created_at", "updated_at" ], "title": "OrgBriefResponse", "type": "object" }, "OrgBriefScope": { "description": "Research scope represented by an Atlas Brief.", "properties": { "actor_types": { "description": "actor types for this org brief scope.", "items": { "type": "string" }, "minItems": 1, "title": "Actor Types", "type": "array" }, "geography": { "description": "geography for this org brief scope.", "minLength": 1, "title": "Geography", "type": "string" }, "issue_areas": { "description": "issue areas for this org brief scope.", "items": { "type": "string" }, "minItems": 1, "title": "Issue Areas", "type": "array" }, "source_types": { "description": "source types for this org brief scope.", "items": { "type": "string" }, "minItems": 1, "title": "Source Types", "type": "array" } }, "required": [ "geography", "issue_areas", "actor_types", "source_types" ], "title": "OrgBriefScope", "type": "object" }, "OrgBriefUpdateRequest": { "description": "Request to update editable private Atlas Brief memo fields.", "properties": { "confidence_summary": { "anyOf": [ { "$ref": "#/components/schemas/OrgBriefConfidenceSummary" }, { "type": "null" } ], "description": "Updated confidence notes for the brief." }, "gaps": { "anyOf": [ { "items": { "$ref": "#/components/schemas/OrgBriefGap" }, "type": "array" }, { "type": "null" } ], "description": "gaps for this org brief.", "title": "Gaps" }, "summary": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "summary for this org brief.", "title": "Summary" }, "title": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "title for this org brief.", "title": "Title" } }, "title": "OrgBriefUpdateRequest", "type": "object" }, "OrgDiscoveryRunCollectionResponse": { "description": "Collection response for org discovery runs.", "properties": { "items": { "description": "Discovery runs", "items": { "$ref": "#/components/schemas/OrgDiscoveryRunResponse" }, "title": "Items", "type": "array" }, "next_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Next pagination cursor", "title": "Next Cursor" }, "total": { "description": "Total count", "title": "Total", "type": "integer" } }, "required": [ "items", "total" ], "title": "OrgDiscoveryRunCollectionResponse", "type": "object" }, "OrgDiscoveryRunResponse": { "description": "Org-scoped discovery run response model.", "properties": { "completed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Completion timestamp", "title": "Completed At" }, "created_at": { "description": "Creation timestamp", "title": "Created At", "type": "string" }, "entries_after_dedup": { "description": "Entries after deduplication", "title": "Entries After Dedup", "type": "integer" }, "entries_confirmed": { "description": "Entries confirmed", "title": "Entries Confirmed", "type": "integer" }, "entries_extracted": { "description": "Entries extracted", "title": "Entries Extracted", "type": "integer" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Error message if failed", "title": "Error Message" }, "id": { "description": "Discovery run ID", "title": "Id", "type": "string" }, "issue_areas": { "description": "Issue areas queried", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "location_query": { "description": "Location query", "title": "Location Query", "type": "string" }, "org_id": { "description": "Owning organization ID", "title": "Org Id", "type": "string" }, "queries_generated": { "description": "Search queries generated", "title": "Queries Generated", "type": "integer" }, "research_goal": { "description": "Research job this run supports", "enum": [ "landscape_scan", "interview_leads", "partner_scan", "ecosystem_map" ], "title": "Research Goal", "type": "string" }, "research_summary": { "anyOf": [ { "$ref": "#/components/schemas/DiscoveryResearchSummary" }, { "type": "null" } ], "description": "Structured research output with leads, sources, gaps, and reasoning signals" }, "sources_fetched": { "description": "Sources fetched", "title": "Sources Fetched", "type": "integer" }, "sources_processed": { "description": "Sources processed", "title": "Sources Processed", "type": "integer" }, "started_at": { "description": "Start timestamp", "title": "Started At", "type": "string" }, "state": { "description": "State code", "title": "State", "type": "string" }, "status": { "description": "Status (running, completed, failed)", "title": "Status", "type": "string" } }, "required": [ "id", "org_id", "location_query", "state", "research_goal", "issue_areas", "queries_generated", "sources_fetched", "sources_processed", "entries_extracted", "entries_after_dedup", "entries_confirmed", "started_at", "status", "created_at" ], "title": "OrgDiscoveryRunResponse", "type": "object" }, "OrgDiscoveryRunStartRequest": { "description": "Request to start an org-scoped private discovery run.", "properties": { "issue_areas": { "description": "List of issue area slugs to query", "items": { "type": "string" }, "minItems": 1, "title": "Issue Areas", "type": "array" }, "location_query": { "description": "Location query (e.g., 'Kansas City, MO')", "minLength": 1, "title": "Location Query", "type": "string" }, "research_goal": { "default": "landscape_scan", "description": "Research job this run supports", "enum": [ "landscape_scan", "interview_leads", "partner_scan", "ecosystem_map" ], "title": "Research Goal", "type": "string" }, "state": { "description": "2-letter state code", "maxLength": 2, "minLength": 2, "title": "State", "type": "string" } }, "required": [ "location_query", "state", "issue_areas" ], "title": "OrgDiscoveryRunStartRequest", "type": "object" }, "OrgEvidenceOpenRequest": { "description": "Source receipt open event from a workspace evidence surface.", "properties": { "source_id": { "description": "source id for this org evidence open.", "minLength": 1, "title": "Source Id", "type": "string" }, "surface": { "description": "surface for this org evidence open.", "enum": [ "brief", "coverage_target", "watch_digest", "saved_list", "profile" ], "title": "Surface", "type": "string" } }, "required": [ "source_id", "surface" ], "title": "OrgEvidenceOpenRequest", "type": "object" }, "OrgIntegrationMonitoringDataBoundary": { "description": "Boundary statement for workspace integration activity.", "properties": { "request_metadata_included": { "description": "Whether request metadata is included in the workspace integration view.", "title": "Request Metadata Included", "type": "boolean" }, "session_replay_included": { "description": "Whether behavioral session replay is included in the workspace integration view.", "title": "Session Replay Included", "type": "boolean" }, "statement": { "description": "Plain-language boundary for the workspace integration activity summary.", "title": "Statement", "type": "string" } }, "required": [ "request_metadata_included", "session_replay_included", "statement" ], "title": "OrgIntegrationMonitoringDataBoundary", "type": "object" }, "OrgIntegrationMonitoringResponse": { "description": "Customer-safe workspace integration activity summary for one workspace.", "properties": { "api_calls": { "description": "REST API calls counted for this workspace.", "title": "Api Calls", "type": "integer" }, "data_boundary": { "$ref": "#/components/schemas/OrgIntegrationMonitoringDataBoundary", "description": "Limits on workspace integration activity data." }, "last_seen_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Most recent integration activity timestamp.", "title": "Last Seen At" }, "mcp_calls": { "description": "MCP calls counted for this workspace.", "title": "Mcp Calls", "type": "integer" }, "org_id": { "description": "Workspace id for the integration activity summary.", "title": "Org Id", "type": "string" }, "top_resources": { "description": "Most-used API paths and MCP resources for this workspace.", "items": { "$ref": "#/components/schemas/OrgIntegrationResourceCount" }, "title": "Top Resources", "type": "array" }, "total_calls": { "description": "Total API and MCP calls counted for this workspace.", "title": "Total Calls", "type": "integer" } }, "required": [ "org_id", "total_calls", "api_calls", "mcp_calls", "last_seen_at", "top_resources", "data_boundary" ], "title": "OrgIntegrationMonitoringResponse", "type": "object" }, "OrgIntegrationResourceCount": { "description": "Aggregated integration activity for one route or tool surface.", "properties": { "last_seen_at": { "description": "last seen at for this org integration resource count.", "title": "Last Seen At", "type": "string" }, "resource_id": { "description": "resource id for this org integration resource count.", "title": "Resource Id", "type": "string" }, "surface": { "description": "surface for this org integration resource count.", "enum": [ "api", "mcp" ], "title": "Surface", "type": "string" }, "total_calls": { "description": "total calls for this org integration resource count.", "title": "Total Calls", "type": "integer" } }, "required": [ "resource_id", "surface", "total_calls", "last_seen_at" ], "title": "OrgIntegrationResourceCount", "type": "object" }, "OrgQualitySummaryResponse": { "description": "Workspace ingestion quality summary.", "properties": { "confidence_distribution": { "description": "confidence distribution for this org quality summary.", "items": { "$ref": "#/components/schemas/QualityConfidenceBucket" }, "title": "Confidence Distribution", "type": "array" }, "data_boundary": { "$ref": "#/components/schemas/QualityDataBoundary", "description": "Limits on the workspace quality summary." }, "duplicate_risk": { "$ref": "#/components/schemas/QualityDuplicateRisk", "description": "Duplicate-risk signals for workspace data." }, "generated_at": { "description": "generated at for this org quality summary.", "title": "Generated At", "type": "string" }, "org_id": { "description": "org id for this org quality summary.", "title": "Org Id", "type": "string" }, "source_coverage": { "$ref": "#/components/schemas/QualitySourceCoverage", "description": "Source coverage signals for workspace data." }, "stale_records": { "$ref": "#/components/schemas/QualityStaleRecords", "description": "Stale-record signals for workspace data." } }, "required": [ "org_id", "generated_at", "source_coverage", "duplicate_risk", "confidence_distribution", "stale_records", "data_boundary" ], "title": "OrgQualitySummaryResponse", "type": "object" }, "OrgRenewalPacketDataBoundary": { "description": "Boundary statement for renewal packets.", "properties": { "private_workspace_notes_included": { "description": "private workspace notes included for this org renewal packet data boundary.", "title": "Private Workspace Notes Included", "type": "boolean" }, "session_replay_included": { "description": "session replay included for this org renewal packet data boundary.", "title": "Session Replay Included", "type": "boolean" }, "statement": { "description": "statement for this org renewal packet data boundary.", "title": "Statement", "type": "string" } }, "required": [ "private_workspace_notes_included", "session_replay_included", "statement" ], "title": "OrgRenewalPacketDataBoundary", "type": "object" }, "OrgRenewalPacketMetric": { "description": "One customer-success metric in a renewal packet.", "properties": { "detail": { "description": "detail for this org renewal packet metric.", "title": "Detail", "type": "string" }, "label": { "description": "label for this org renewal packet metric.", "title": "Label", "type": "string" }, "value": { "description": "value for this org renewal packet metric.", "title": "Value", "type": "integer" } }, "required": [ "label", "value", "detail" ], "title": "OrgRenewalPacketMetric", "type": "object" }, "OrgRenewalPacketResponse": { "description": "Exportable customer-success renewal packet for one workspace.", "properties": { "data_boundary": { "$ref": "#/components/schemas/OrgRenewalPacketDataBoundary", "description": "Limits on renewal-packet data." }, "format": { "const": "json", "description": "format for this org renewal packet.", "title": "Format", "type": "string" }, "generated_at": { "description": "generated at for this org renewal packet.", "title": "Generated At", "type": "string" }, "highlights": { "description": "highlights for this org renewal packet.", "items": { "type": "string" }, "title": "Highlights", "type": "array" }, "metrics": { "description": "metrics for this org renewal packet.", "items": { "$ref": "#/components/schemas/OrgRenewalPacketMetric" }, "title": "Metrics", "type": "array" }, "org_id": { "description": "org id for this org renewal packet.", "title": "Org Id", "type": "string" }, "summary": { "$ref": "#/components/schemas/OrgUsageSummaryResponse", "description": "Customer-safe renewal summary." } }, "required": [ "format", "generated_at", "org_id", "summary", "metrics", "highlights", "data_boundary" ], "title": "OrgRenewalPacketResponse", "type": "object" }, "OrgUsageAuditLogDataBoundary": { "description": "Boundary statement for customer-safe workspace usage audit logs.", "properties": { "metadata_included": { "description": "metadata included for this org usage audit log data boundary.", "title": "Metadata Included", "type": "boolean" }, "session_replay_included": { "description": "session replay included for this org usage audit log data boundary.", "title": "Session Replay Included", "type": "boolean" }, "statement": { "description": "statement for this org usage audit log data boundary.", "title": "Statement", "type": "string" } }, "required": [ "metadata_included", "session_replay_included", "statement" ], "title": "OrgUsageAuditLogDataBoundary", "type": "object" }, "OrgUsageAuditLogResponse": { "description": "Customer-safe usage audit log for one workspace.", "properties": { "data_boundary": { "$ref": "#/components/schemas/OrgUsageAuditLogDataBoundary", "description": "Limits on audit-log data." }, "items": { "description": "items for this org usage audit log.", "items": { "$ref": "#/components/schemas/OrgUsageEventResponse" }, "title": "Items", "type": "array" }, "limit": { "description": "limit for this org usage audit log.", "title": "Limit", "type": "integer" }, "offset": { "description": "offset for this org usage audit log.", "title": "Offset", "type": "integer" }, "org_id": { "description": "org id for this org usage audit log.", "title": "Org Id", "type": "string" }, "total": { "description": "total for this org usage audit log.", "title": "Total", "type": "integer" } }, "required": [ "org_id", "items", "total", "limit", "offset", "data_boundary" ], "title": "OrgUsageAuditLogResponse", "type": "object" }, "OrgUsageEventResponse": { "description": "Recorded workspace usage event.", "properties": { "actor_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "actor id for this org usage event.", "title": "Actor Id" }, "created_at": { "description": "created at for this org usage event.", "title": "Created At", "type": "string" }, "event_type": { "description": "event type for this org usage event.", "title": "Event Type", "type": "string" }, "id": { "description": "id for this org usage event.", "title": "Id", "type": "string" }, "org_id": { "description": "org id for this org usage event.", "title": "Org Id", "type": "string" }, "resource_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "resource id for this org usage event.", "title": "Resource Id" }, "resource_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "resource type for this org usage event.", "title": "Resource Type" } }, "required": [ "id", "org_id", "actor_id", "event_type", "resource_type", "resource_id", "created_at" ], "title": "OrgUsageEventResponse", "type": "object" }, "OrgUsageRenewalSignals": { "description": "Renewal-proof usage totals grouped into customer-success language.", "properties": { "briefs_used": { "description": "briefs used for this org usage renewal signals.", "title": "Briefs Used", "type": "integer" }, "coverage_gaps_closed": { "description": "coverage gaps closed for this org usage renewal signals.", "title": "Coverage Gaps Closed", "type": "integer" }, "integrations_used": { "description": "integrations used for this org usage renewal signals.", "title": "Integrations Used", "type": "integer" }, "public_records_improved": { "description": "public records improved for this org usage renewal signals.", "title": "Public Records Improved", "type": "integer" }, "team_workflow_actions": { "description": "team workflow actions for this org usage renewal signals.", "title": "Team Workflow Actions", "type": "integer" } }, "required": [ "briefs_used", "team_workflow_actions", "coverage_gaps_closed", "integrations_used", "public_records_improved" ], "title": "OrgUsageRenewalSignals", "type": "object" }, "OrgUsageSummaryResponse": { "description": "Customer-success summary for one workspace.", "properties": { "event_counts": { "additionalProperties": { "type": "integer" }, "description": "event counts for this org usage summary.", "title": "Event Counts", "type": "object" }, "org_id": { "description": "org id for this org usage summary.", "title": "Org Id", "type": "string" }, "renewal_signals": { "$ref": "#/components/schemas/OrgUsageRenewalSignals", "description": "Usage signals suitable for renewal review." }, "total_events": { "description": "total events for this org usage summary.", "title": "Total Events", "type": "integer" } }, "required": [ "org_id", "total_events", "event_counts", "renewal_signals" ], "title": "OrgUsageSummaryResponse", "type": "object" }, "OrgWatchCollectionResponse": { "description": "Collection response for workspace watches.", "properties": { "items": { "description": "items for this org watch collection.", "items": { "$ref": "#/components/schemas/OrgWatchResponse" }, "title": "Items", "type": "array" }, "total": { "description": "total for this org watch collection.", "title": "Total", "type": "integer" } }, "required": [ "items", "total" ], "title": "OrgWatchCollectionResponse", "type": "object" }, "OrgWatchRequest": { "description": "Request body for creating or updating a workspace watch.", "properties": { "notification_preference": { "default": "digest", "description": "notification preference for this org watch.", "enum": [ "digest", "immediate", "muted" ], "title": "Notification Preference", "type": "string" } }, "title": "OrgWatchRequest", "type": "object" }, "OrgWatchResponse": { "description": "Workspace watch resource.", "properties": { "created_at": { "description": "created at for this org watch.", "title": "Created At", "type": "string" }, "created_by": { "description": "created by for this org watch.", "title": "Created By", "type": "string" }, "id": { "description": "id for this org watch.", "title": "Id", "type": "string" }, "notification_preference": { "description": "notification preference for this org watch.", "enum": [ "digest", "immediate", "muted" ], "title": "Notification Preference", "type": "string" }, "org_id": { "description": "org id for this org watch.", "title": "Org Id", "type": "string" }, "resource_id": { "description": "resource id for this org watch.", "title": "Resource Id", "type": "string" }, "resource_type": { "description": "resource type for this org watch.", "enum": [ "entry", "coverage_target" ], "title": "Resource Type", "type": "string" }, "updated_at": { "description": "updated at for this org watch.", "title": "Updated At", "type": "string" } }, "required": [ "id", "org_id", "resource_type", "resource_id", "notification_preference", "created_by", "created_at", "updated_at" ], "title": "OrgWatchResponse", "type": "object" }, "OrgWatchStatusResponse": { "description": "Watch status for one resource.", "properties": { "watch": { "anyOf": [ { "$ref": "#/components/schemas/OrgWatchResponse" }, { "type": "null" } ], "description": "Workspace watch state for the requested resource." }, "watched": { "description": "watched for this org watch status.", "title": "Watched", "type": "boolean" } }, "required": [ "watched", "watch" ], "title": "OrgWatchStatusResponse", "type": "object" }, "OrganizationAtprotoIdentityAttachRequest": { "description": "Attach one verified account-controlled identity to an organization.", "properties": { "identity_id": { "description": "identity id for this organization atproto identity attach.", "title": "Identity Id", "type": "string" } }, "required": [ "identity_id" ], "title": "OrganizationAtprotoIdentityAttachRequest", "type": "object" }, "OrganizationAtprotoIdentityResponse": { "description": "Auditable organization ownership state for one ATProto identity.", "properties": { "attached_at": { "description": "attached at for this organization atproto identity.", "title": "Attached At", "type": "string" }, "attached_by": { "description": "attached by for this organization atproto identity.", "title": "Attached By", "type": "string" }, "detached_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "detached at for this organization atproto identity.", "title": "Detached At" }, "detached_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "detached by for this organization atproto identity.", "title": "Detached By" }, "id": { "description": "id for this organization atproto identity.", "title": "Id", "type": "string" }, "identity_id": { "description": "identity id for this organization atproto identity.", "title": "Identity Id", "type": "string" }, "organization_id": { "description": "organization id for this organization atproto identity.", "title": "Organization Id", "type": "string" }, "status": { "description": "status for this organization atproto identity.", "enum": [ "active", "removed" ], "title": "Status", "type": "string" } }, "required": [ "id", "organization_id", "identity_id", "status", "attached_by", "attached_at" ], "title": "OrganizationAtprotoIdentityResponse", "type": "object" }, "PageContent": { "description": "Extracted text content from a single web page.", "properties": { "discovered_links": { "description": "Same-domain links discovered while fetching this page.", "items": { "type": "string" }, "title": "Discovered Links", "type": "array" }, "publication": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Publication or site name.", "title": "Publication" }, "published_date": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Article publication datetime.", "title": "Published Date" }, "source_type": { "$ref": "#/components/schemas/SourceType", "default": "org_website", "description": "Classified source type." }, "structured_data": { "additionalProperties": true, "description": "Structured data extracted from HTML (JSON-LD, OpenGraph, meta tags).", "title": "Structured Data", "type": "object" }, "task_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Owning Scout page-task ID.", "title": "Task Id" }, "text": { "default": "", "description": "Main extracted text content.", "title": "Text", "type": "string" }, "title": { "default": "", "description": "Page title.", "title": "Title", "type": "string" }, "url": { "description": "Source URL.", "title": "Url", "type": "string" } }, "required": [ "url" ], "title": "PageContent", "type": "object" }, "PageTaskOutcome": { "description": "Canonical outcome for one fetched or attempted page.", "properties": { "depth": { "default": 0, "description": "Crawl depth for the page.", "minimum": 0.0, "title": "Depth", "type": "integer" }, "discovered_from": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Parent page URL that discovered this page, when applicable.", "title": "Discovered From" }, "entries_extracted": { "default": 0, "description": "Number of entries extracted.", "minimum": 0.0, "title": "Entries Extracted", "type": "integer" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Failure or skip reason.", "title": "Error" }, "seed_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Seed URL that caused the page to be scheduled.", "title": "Seed Url" }, "status": { "description": "Final page-task status.", "title": "Status", "type": "string" }, "task_id": { "description": "Stable page-task identifier.", "title": "Task Id", "type": "string" }, "url": { "description": "Page URL.", "title": "Url", "type": "string" }, "user_visible": { "default": false, "description": "Whether this page outcome should be shown in user-facing inspection.", "title": "User Visible", "type": "boolean" } }, "required": [ "task_id", "url", "status" ], "title": "PageTaskOutcome", "type": "object" }, "PlaceCoverageResponse": { "description": "Coverage summary for a place.", "properties": { "covered_issue_area_ids": { "description": "covered issue area ids for this place coverage.", "items": { "type": "string" }, "title": "Covered Issue Area Ids", "type": "array" }, "entity_count": { "description": "entity count for this place coverage.", "title": "Entity Count", "type": "integer" }, "issue_counts": { "description": "issue counts for this place coverage.", "items": { "$ref": "#/components/schemas/CoverageCount" }, "title": "Issue Counts", "type": "array" }, "missing_issue_area_ids": { "description": "missing issue area ids for this place coverage.", "items": { "type": "string" }, "title": "Missing Issue Area Ids", "type": "array" }, "place": { "$ref": "#/components/schemas/Address", "description": "Place context for the coverage summary." }, "resource_uri": { "description": "resource uri for this place coverage.", "title": "Resource Uri", "type": "string" }, "thin_issue_area_ids": { "description": "thin issue area ids for this place coverage.", "items": { "type": "string" }, "title": "Thin Issue Area Ids", "type": "array" }, "uncovered_domains": { "description": "uncovered domains for this place coverage.", "items": { "type": "string" }, "title": "Uncovered Domains", "type": "array" } }, "required": [ "place", "entity_count", "resource_uri" ], "title": "PlaceCoverageResponse", "type": "object" }, "PlaceGovernmentLinkResponse": { "description": "Public government link associated with a place.", "properties": { "href": { "description": "URL for the government or public-body link.", "title": "Href", "type": "string" }, "label": { "description": "Display label for the government link.", "title": "Label", "type": "string" } }, "required": [ "href", "label" ], "title": "PlaceGovernmentLinkResponse", "type": "object" }, "PlaceGovernmentResponse": { "description": "Government or regional public body associated with a place.", "properties": { "links": { "description": "Public links associated with this government body.", "items": { "$ref": "#/components/schemas/PlaceGovernmentLinkResponse" }, "title": "Links", "type": "array" }, "name": { "description": "Government or regional public body name.", "title": "Name", "type": "string" }, "role": { "description": "Role this body plays for the place.", "title": "Role", "type": "string" } }, "required": [ "name", "role" ], "title": "PlaceGovernmentResponse", "type": "object" }, "PlaceIdentityResponse": { "description": "REST or MCP representation of a place resource.", "properties": { "place": { "$ref": "#/components/schemas/Address", "description": "Canonical Atlas place resource." }, "resource_uri": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "resource uri for this place identity.", "title": "Resource Uri" } }, "required": [ "place" ], "title": "PlaceIdentityResponse", "type": "object" }, "PlacePageContextResponse": { "description": "Human-facing place context for public place pages.", "properties": { "display": { "description": "Human-readable display name for the place page.", "title": "Display", "type": "string" }, "governments": { "description": "Relevant public bodies for the place.", "items": { "$ref": "#/components/schemas/PlaceGovernmentResponse" }, "title": "Governments", "type": "array" }, "kind": { "description": "Place kind used by the public page.", "enum": [ "polity", "borough", "city", "county", "metro", "neighborhood", "district", "service_area", "state" ], "title": "Kind", "type": "string" }, "name": { "description": "Canonical place name.", "title": "Name", "type": "string" }, "place_key": { "description": "Stable Atlas place key.", "title": "Place Key", "type": "string" }, "places": { "description": "Related places shown in the page context.", "items": { "$ref": "#/components/schemas/PlaceRelatedPlaceResponse" }, "title": "Places", "type": "array" }, "resource_uri": { "description": "Canonical resource URI for the place.", "title": "Resource Uri", "type": "string" }, "scopes": { "description": "Broader or narrower scopes for the place.", "items": { "$ref": "#/components/schemas/PlaceScopeLinkResponse" }, "title": "Scopes", "type": "array" }, "source_dataset": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "source dataset for this place page context.", "title": "Source Dataset" }, "source_identifier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "source identifier for this place page context.", "title": "Source Identifier" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "source url for this place page context.", "title": "Source Url" }, "summary_facts": { "description": "summary facts for this place page context.", "items": { "$ref": "#/components/schemas/PlaceSummaryFactResponse" }, "title": "Summary Facts", "type": "array" } }, "required": [ "display", "kind", "name", "place_key", "resource_uri" ], "title": "PlacePageContextResponse", "type": "object" }, "PlaceProfileResponse": { "description": "Structured place profile with flexible data blocks.", "properties": { "demographics": { "additionalProperties": true, "description": "demographics for this place profile.", "title": "Demographics", "type": "object" }, "economics": { "additionalProperties": true, "description": "economics for this place profile.", "title": "Economics", "type": "object" }, "education": { "additionalProperties": true, "description": "education for this place profile.", "title": "Education", "type": "object" }, "health": { "additionalProperties": true, "description": "health for this place profile.", "title": "Health", "type": "object" }, "housing": { "additionalProperties": true, "description": "housing for this place profile.", "title": "Housing", "type": "object" }, "place": { "$ref": "#/components/schemas/Address", "description": "Place context for the demographic profile." }, "provenance": { "description": "provenance for this place profile.", "items": { "additionalProperties": true, "type": "object" }, "title": "Provenance", "type": "array" }, "resource_uri": { "description": "resource uri for this place profile.", "title": "Resource Uri", "type": "string" } }, "required": [ "place", "resource_uri" ], "title": "PlaceProfileResponse", "type": "object" }, "PlaceRelatedPlaceResponse": { "description": "Related local place shown on a place page.", "properties": { "accent": { "description": "accent for this place related place.", "enum": [ "climate", "democracy", "education", "health", "housing", "labor", "neutral" ], "title": "Accent", "type": "string" }, "href": { "description": "href for this place related place.", "title": "Href", "type": "string" }, "kind": { "description": "kind for this place related place.", "enum": [ "polity", "borough", "city", "county", "metro", "neighborhood", "district", "service_area", "state" ], "title": "Kind", "type": "string" }, "latitude": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "latitude for this place related place.", "title": "Latitude" }, "longitude": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "longitude for this place related place.", "title": "Longitude" }, "name": { "description": "name for this place related place.", "title": "Name", "type": "string" }, "source_dataset": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "source dataset for this place related place.", "title": "Source Dataset" }, "source_identifier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "source identifier for this place related place.", "title": "Source Identifier" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "source url for this place related place.", "title": "Source Url" }, "summary": { "description": "summary for this place related place.", "title": "Summary", "type": "string" } }, "required": [ "accent", "href", "kind", "name", "summary" ], "title": "PlaceRelatedPlaceResponse", "type": "object" }, "PlaceScopeLinkResponse": { "description": "A sibling or parent place link for the place page selector.", "properties": { "active": { "description": "active for this place scope link.", "title": "Active", "type": "boolean" }, "href": { "description": "href for this place scope link.", "title": "Href", "type": "string" }, "label": { "description": "label for this place scope link.", "title": "Label", "type": "string" } }, "required": [ "active", "href", "label" ], "title": "PlaceScopeLinkResponse", "type": "object" }, "PlaceSummaryFactResponse": { "description": "One compact place fact shown in the page header.", "properties": { "attribution": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "attribution for this place summary fact.", "title": "Attribution" }, "label": { "description": "label for this place summary fact.", "title": "Label", "type": "string" }, "value": { "description": "value for this place summary fact.", "title": "Value", "type": "string" } }, "required": [ "label", "value" ], "title": "PlaceSummaryFactResponse", "type": "object" }, "PlaceTypeCount": { "description": "Entity type count inside an issue signal.", "properties": { "count": { "description": "count for this place type count.", "title": "Count", "type": "integer" }, "type": { "description": "type for this place type count.", "title": "Type", "type": "string" } }, "required": [ "type", "count" ], "title": "PlaceTypeCount", "type": "object" }, "ProfileAnswers": { "description": "Scan-friendly answers that make actor profiles usable outside the app.", "properties": { "how_atlas_knows": { "description": "how atlas knows for this profile answers.", "title": "How Atlas Knows", "type": "string" }, "what_they_do": { "description": "what they do for this profile answers.", "title": "What They Do", "type": "string" }, "where": { "description": "where for this profile answers.", "title": "Where", "type": "string" }, "who": { "description": "who for this profile answers.", "title": "Who", "type": "string" }, "why_they_matter": { "description": "why they matter for this profile answers.", "title": "Why They Matter", "type": "string" } }, "required": [ "who", "what_they_do", "where", "why_they_matter", "how_atlas_knows" ], "title": "ProfileAnswers", "type": "object" }, "ProfileAtprotoIdentityAttachRequest": { "description": "Explicit request to attach or replace a profile's public identity.", "properties": { "atproto_identity_id": { "description": "atproto identity id for this profile atproto identity attach.", "title": "Atproto Identity Id", "type": "string" }, "replace": { "default": false, "description": "replace for this profile atproto identity attach.", "title": "Replace", "type": "boolean" } }, "required": [ "atproto_identity_id" ], "title": "ProfileAtprotoIdentityAttachRequest", "type": "object" }, "ProfileAtprotoIdentityLinkResponse": { "description": "Auditable public identity relation managed by a verified steward.", "properties": { "current_handle": { "description": "current handle for this profile atproto identity link.", "title": "Current Handle", "type": "string" }, "did": { "description": "did for this profile atproto identity link.", "title": "Did", "type": "string" }, "identity_id": { "description": "identity id for this profile atproto identity link.", "title": "Identity Id", "type": "string" }, "status": { "description": "status for this profile atproto identity link.", "enum": [ "verified", "reverification_required" ], "title": "Status", "type": "string" }, "verified_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "verified at for this profile atproto identity link.", "title": "Verified At" } }, "required": [ "identity_id", "did", "current_handle", "status" ], "title": "ProfileAtprotoIdentityLinkResponse", "type": "object" }, "ProfileAtprotoRevalidationResponse": { "description": "Result from rechecking linked ATProto profile identities.", "properties": { "checked": { "description": "checked for this profile atproto revalidation.", "title": "Checked", "type": "integer" }, "needs_attention": { "description": "needs attention for this profile atproto revalidation.", "title": "Needs Attention", "type": "integer" } }, "required": [ "checked", "needs_attention" ], "title": "ProfileAtprotoRevalidationResponse", "type": "object" }, "ProfileClaimProofRequest": { "description": "Request body for a profile verification proof check.", "properties": { "txt_records": { "description": "txt records for this profile claim proof.", "items": { "type": "string" }, "title": "Txt Records", "type": "array" } }, "title": "ProfileClaimProofRequest", "type": "object" }, "ProfileClaimProofResponse": { "description": "One proof record supporting a profile verification decision.", "properties": { "created_at": { "description": "created at for this profile claim proof.", "title": "Created At", "type": "string" }, "expires_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "expires at for this profile claim proof.", "title": "Expires At" }, "id": { "description": "id for this profile claim proof.", "title": "Id", "type": "string" }, "metadata": { "anyOf": [ {}, { "type": "null" } ], "description": "metadata for this profile claim proof.", "title": "Metadata" }, "proof_status": { "description": "proof status for this profile claim proof.", "title": "Proof Status", "type": "string" }, "proof_summary": { "description": "proof summary for this profile claim proof.", "title": "Proof Summary", "type": "string" }, "proof_type": { "description": "proof type for this profile claim proof.", "title": "Proof Type", "type": "string" }, "reviewed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "reviewed at for this profile claim proof.", "title": "Reviewed At" } }, "required": [ "id", "proof_type", "proof_status", "proof_summary", "created_at" ], "title": "ProfileClaimProofResponse", "type": "object" }, "ProfileClaimRequest": { "description": "Start profile verification.", "properties": { "atproto_identity_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "DID-backed ATProto identity linked by the authenticated user.", "title": "Atproto Identity Id" }, "dns_domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Organization domain verified with an Atlas TXT record.", "title": "Dns Domain" }, "evidence": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "evidence for this profile claim.", "title": "Evidence" }, "preferred_contact_channel": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "preferred contact channel for this profile claim.", "title": "Preferred Contact Channel" }, "private_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "private note for this profile claim.", "title": "Private Note" }, "relationship": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "relationship for this profile claim.", "title": "Relationship" }, "requested_changes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "requested changes for this profile claim.", "title": "Requested Changes" }, "use_active_workspace": { "default": false, "description": "Use the authenticated active workspace as organization-admin proof.", "title": "Use Active Workspace", "type": "boolean" } }, "title": "ProfileClaimRequest", "type": "object" }, "ProfileClaimResponse": { "description": "Profile verification resource.", "properties": { "created_at": { "description": "created at for this profile claim.", "title": "Created At", "type": "string" }, "entry_id": { "description": "entry id for this profile claim.", "title": "Entry Id", "type": "string" }, "entry_name": { "description": "entry name for this profile claim.", "title": "Entry Name", "type": "string" }, "entry_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entry slug for this profile claim.", "title": "Entry Slug" }, "evidence": { "anyOf": [ {}, { "type": "null" } ], "description": "evidence for this profile claim.", "title": "Evidence" }, "id": { "description": "id for this profile claim.", "title": "Id", "type": "string" }, "linked_atproto_did": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "linked atproto did for this profile claim.", "title": "Linked Atproto Did" }, "linked_atproto_handle": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "linked atproto handle for this profile claim.", "title": "Linked Atproto Handle" }, "linked_atproto_verified_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "linked atproto verified at for this profile claim.", "title": "Linked Atproto Verified At" }, "proofs": { "description": "proofs for this profile claim.", "items": { "$ref": "#/components/schemas/ProfileClaimProofResponse" }, "title": "Proofs", "type": "array" }, "rejected_reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "rejected reason for this profile claim.", "title": "Rejected Reason" }, "status": { "description": "status for this profile claim.", "title": "Status", "type": "string" }, "tier": { "description": "tier for this profile claim.", "title": "Tier", "type": "integer" }, "updated_at": { "description": "updated at for this profile claim.", "title": "Updated At", "type": "string" }, "user_email": { "description": "user email for this profile claim.", "title": "User Email", "type": "string" }, "user_id": { "description": "user id for this profile claim.", "title": "User Id", "type": "string" }, "verified_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "verified at for this profile claim.", "title": "Verified At" } }, "required": [ "id", "entry_id", "entry_name", "user_id", "user_email", "status", "tier", "created_at", "updated_at" ], "title": "ProfileClaimResponse", "type": "object" }, "ProfileClaimReviewDecisionRequest": { "description": "Reviewer decision payload for a pending profile verification.", "properties": { "reason": { "anyOf": [ { "maxLength": 2000, "type": "string" }, { "type": "null" } ], "description": "Why the reviewer decided; kept with the proof and in the audit log", "title": "Reason" } }, "title": "ProfileClaimReviewDecisionRequest", "type": "object" }, "ProfileClaimReviewListResponse": { "description": "Pending profile verifications for reviewer action.", "properties": { "items": { "description": "items for this profile claim review list.", "items": { "$ref": "#/components/schemas/ProfileClaimResponse" }, "title": "Items", "type": "array" }, "total": { "description": "total for this profile claim review list.", "title": "Total", "type": "integer" } }, "required": [ "total" ], "title": "ProfileClaimReviewListResponse", "type": "object" }, "ProfileClaimVerifyRequest": { "description": "Tier-1 email-link callback payload.", "properties": { "token": { "description": "token for this profile claim verify.", "title": "Token", "type": "string" } }, "required": [ "token" ], "title": "ProfileClaimVerifyRequest", "type": "object" }, "ProfileFollowResponse": { "description": "Follow subscription resource.", "properties": { "created_at": { "description": "created at for this profile follow.", "title": "Created At", "type": "string" }, "entry_id": { "description": "entry id for this profile follow.", "title": "Entry Id", "type": "string" }, "subscribed_to": { "description": "subscribed to for this profile follow.", "title": "Subscribed To", "type": "string" }, "user_id": { "description": "user id for this profile follow.", "title": "User Id", "type": "string" } }, "required": [ "user_id", "entry_id", "subscribed_to", "created_at" ], "title": "ProfileFollowResponse", "type": "object" }, "ProfileManageRequest": { "description": "Representative updates for a verified profile.", "properties": { "clear_custom_bio": { "default": false, "description": "Set true to drop the existing custom_bio. The auto-generated description returns.", "title": "Clear Custom Bio", "type": "boolean" }, "clear_photo": { "default": false, "description": "Set true to drop the existing photo_url. Photo_url field is ignored if true.", "title": "Clear Photo", "type": "boolean" }, "custom_bio": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "custom bio for this profile manage.", "title": "Custom Bio" }, "photo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "photo url for this profile manage.", "title": "Photo Url" }, "preferred_contact_channel": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "preferred contact channel for this profile manage.", "title": "Preferred Contact Channel" }, "suppressed_source_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "suppressed source ids for this profile manage.", "title": "Suppressed Source Ids" } }, "title": "ProfileManageRequest", "type": "object" }, "PublicDirectoryDomain": { "description": "Verified custom domain exposed on a public directory.", "properties": { "domain": { "description": "domain for this public directory domain.", "title": "Domain", "type": "string" }, "status": { "description": "status for this public directory domain.", "title": "Status", "type": "string" } }, "required": [ "domain", "status" ], "title": "PublicDirectoryDomain", "type": "object" }, "PublicDirectoryFederation": { "description": "Federation metadata for records shared back into the Atlas commons.", "properties": { "body": { "default": "Public records from this directory can be reused by other Atlas-powered directories only with source evidence and workspace review.", "description": "body for this public directory federation.", "title": "Body", "type": "string" }, "label": { "default": "Shared with the Atlas commons", "description": "label for this public directory federation.", "title": "Label", "type": "string" }, "minimum_confidence": { "default": "source-backed public record", "description": "minimum confidence for this public directory federation.", "title": "Minimum Confidence", "type": "string" }, "provenance_stamped_ingestion": { "default": true, "description": "provenance stamped ingestion for this public directory federation.", "title": "Provenance Stamped Ingestion", "type": "boolean" }, "review_required": { "default": true, "description": "review required for this public directory federation.", "title": "Review Required", "type": "boolean" }, "shared_record_count": { "default": 0, "description": "shared record count for this public directory federation.", "title": "Shared Record Count", "type": "integer" }, "source_backed_record_count": { "default": 0, "description": "source backed record count for this public directory federation.", "title": "Source Backed Record Count", "type": "integer" }, "status": { "default": "open_with_review_gate", "description": "status for this public directory federation.", "title": "Status", "type": "string" } }, "title": "PublicDirectoryFederation", "type": "object" }, "PublicDirectoryIndexItem": { "description": "One public workspace directory that can be indexed.", "properties": { "last_published_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last published at for this public directory index item.", "title": "Last Published At" }, "org_id": { "description": "org id for this public directory index item.", "title": "Org Id", "type": "string" }, "record_count": { "description": "record count for this public directory index item.", "minimum": 1.0, "title": "Record Count", "type": "integer" } }, "required": [ "org_id", "record_count" ], "title": "PublicDirectoryIndexItem", "type": "object" }, "PublicDirectoryIndexResponse": { "description": "Public directories with source-backed published records.", "properties": { "directories": { "description": "directories for this public directory index.", "items": { "$ref": "#/components/schemas/PublicDirectoryIndexItem" }, "title": "Directories", "type": "array" } }, "required": [ "directories" ], "title": "PublicDirectoryIndexResponse", "type": "object" }, "PublicDirectoryMethodology": { "description": "Plain public methodology for how records qualify and can be corrected.", "properties": { "correction_path_template": { "default": "/feedback/{slug}?kind=incorrect", "description": "correction path template for this public directory methodology.", "title": "Correction Path Template", "type": "string" }, "correction_policy": { "default": "Each listed record accepts stale, incorrect, or missing-context feedback.", "description": "correction policy for this public directory methodology.", "title": "Correction Policy", "type": "string" }, "missing_context_path_template": { "default": "/feedback/{slug}?kind=missing_context", "description": "missing context path template for this public directory methodology.", "title": "Missing Context Path Template", "type": "string" }, "review_policy": { "default": "Unsourced workspace records are held for review before publication.", "description": "review policy for this public directory methodology.", "title": "Review Policy", "type": "string" }, "source_policy": { "default": "Every public record includes at least one linked source packet.", "description": "source policy for this public directory methodology.", "title": "Source Policy", "type": "string" }, "summary": { "default": "Records qualify after workspace review and linked source evidence.", "description": "summary for this public directory methodology.", "title": "Summary", "type": "string" } }, "title": "PublicDirectoryMethodology", "type": "object" }, "PublicDirectoryPublication": { "description": "Public/private boundary metadata for a directory.", "properties": { "private_notes_exposed": { "default": false, "description": "private notes exposed for this public directory publication.", "title": "Private Notes Exposed", "type": "boolean" }, "visibility": { "const": "public", "default": "public", "description": "visibility for this public directory publication.", "title": "Visibility", "type": "string" } }, "title": "PublicDirectoryPublication", "type": "object" }, "PublicDirectoryResponse": { "description": "Public, source-linked directory published by a workspace.", "properties": { "entries": { "description": "entries for this public directory.", "items": { "$ref": "#/components/schemas/EntityDetailResponse" }, "title": "Entries", "type": "array" }, "federation": { "$ref": "#/components/schemas/PublicDirectoryFederation", "description": "Federation metadata for the public directory." }, "methodology": { "$ref": "#/components/schemas/PublicDirectoryMethodology", "description": "Public methodology text for the directory." }, "publication": { "$ref": "#/components/schemas/PublicDirectoryPublication", "description": "Publication state and timestamps for the directory." }, "scope": { "$ref": "#/components/schemas/PublicDirectoryScope", "description": "Public scope text for the directory." }, "sponsor_label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "sponsor label for this public directory.", "title": "Sponsor Label" }, "stats": { "$ref": "#/components/schemas/PublicDirectoryStats", "description": "Published record counts for the directory." }, "title": { "description": "title for this public directory.", "title": "Title", "type": "string" }, "trust_footer": { "$ref": "#/components/schemas/PublicDirectoryTrustFooter", "description": "Trust and provenance text shown with the directory." }, "workspace": { "$ref": "#/components/schemas/PublicDirectoryWorkspace", "description": "Public workspace identity for the directory." } }, "required": [ "title", "workspace", "scope", "stats" ], "title": "PublicDirectoryResponse", "type": "object" }, "PublicDirectoryScope": { "description": "Derived public scope for a workspace directory.", "properties": { "entry_types": { "description": "entry types for this public directory scope.", "items": { "type": "string" }, "title": "Entry Types", "type": "array" }, "geography_labels": { "description": "geography labels for this public directory scope.", "items": { "type": "string" }, "title": "Geography Labels", "type": "array" }, "issue_area_ids": { "description": "issue area ids for this public directory scope.", "items": { "type": "string" }, "title": "Issue Area Ids", "type": "array" } }, "title": "PublicDirectoryScope", "type": "object" }, "PublicDirectoryStats": { "description": "Public counts that help visitors understand directory coverage.", "properties": { "last_reviewed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "last reviewed at for this public directory stats.", "title": "Last Reviewed At" }, "record_count": { "description": "record count for this public directory stats.", "minimum": 0.0, "title": "Record Count", "type": "integer" }, "source_backed_record_count": { "description": "source backed record count for this public directory stats.", "minimum": 0.0, "title": "Source Backed Record Count", "type": "integer" }, "source_count": { "description": "source count for this public directory stats.", "minimum": 0.0, "title": "Source Count", "type": "integer" } }, "required": [ "record_count", "source_count", "source_backed_record_count" ], "title": "PublicDirectoryStats", "type": "object" }, "PublicDirectoryTrustFooter": { "description": "Trust footer metadata every tenant directory carries.", "properties": { "body": { "default": "Every listed profile keeps source packets and claim-level evidence.", "description": "body for this public directory trust footer.", "title": "Body", "type": "string" }, "label": { "default": "Powered by Atlas", "description": "label for this public directory trust footer.", "title": "Label", "type": "string" }, "provenance_required": { "default": true, "description": "provenance required for this public directory trust footer.", "title": "Provenance Required", "type": "boolean" } }, "title": "PublicDirectoryTrustFooter", "type": "object" }, "PublicDirectoryWorkspace": { "description": "Workspace identity exposed on a public directory.", "properties": { "custom_domain": { "anyOf": [ { "$ref": "#/components/schemas/PublicDirectoryDomain" }, { "type": "null" } ], "description": "Verified custom domain for the directory." }, "id": { "description": "id for this public directory workspace.", "title": "Id", "type": "string" }, "name": { "description": "name for this public directory workspace.", "title": "Name", "type": "string" } }, "required": [ "id", "name" ], "title": "PublicDirectoryWorkspace", "type": "object" }, "PublicFirehoseEvidence": { "description": "Public source evidence for one signal.", "properties": { "captured_at": { "description": "captured at for this public firehose evidence.", "title": "Captured At", "type": "string" }, "content_hash": { "description": "content hash for this public firehose evidence.", "title": "Content Hash", "type": "string" }, "passage": { "description": "passage for this public firehose evidence.", "title": "Passage", "type": "string" }, "published_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "published at for this public firehose evidence.", "title": "Published At" }, "publisher": { "description": "publisher for this public firehose evidence.", "title": "Publisher", "type": "string" }, "source_class": { "description": "source class for this public firehose evidence.", "title": "Source Class", "type": "string" }, "source_url": { "description": "source url for this public firehose evidence.", "title": "Source Url", "type": "string" }, "title": { "description": "title for this public firehose evidence.", "title": "Title", "type": "string" } }, "required": [ "captured_at", "content_hash", "passage", "published_at", "publisher", "source_class", "source_url", "title" ], "title": "PublicFirehoseEvidence", "type": "object" }, "PublicFirehoseIssue": { "description": "Public issue label attached to a signal.", "properties": { "label": { "description": "label for this public firehose issue.", "title": "Label", "type": "string" }, "slug": { "description": "slug for this public firehose issue.", "title": "Slug", "type": "string" } }, "required": [ "label", "slug" ], "title": "PublicFirehoseIssue", "type": "object" }, "PublicFirehosePlace": { "description": "Public place label attached to a signal.", "properties": { "label": { "description": "label for this public firehose place.", "title": "Label", "type": "string" }, "slug": { "description": "slug for this public firehose place.", "title": "Slug", "type": "string" } }, "required": [ "label", "slug" ], "title": "PublicFirehosePlace", "type": "object" }, "PublicFirehoseQueryParams": { "description": "Raw public Firehose query parameters.", "properties": { "issue": { "description": "issue for this public firehose query params.", "items": { "type": "string" }, "title": "Issue", "type": "array" }, "limit": { "default": 50, "description": "limit for this public firehose query params.", "maximum": 50.0, "minimum": 1.0, "title": "Limit", "type": "integer" }, "place": { "description": "place for this public firehose query params.", "items": { "type": "string" }, "title": "Place", "type": "array" }, "signal_type": { "description": "signal type for this public firehose query params.", "items": { "type": "string" }, "title": "Signal Type", "type": "array" }, "source_class": { "description": "source class for this public firehose query params.", "items": { "type": "string" }, "title": "Source Class", "type": "array" } }, "title": "PublicFirehoseQueryParams", "type": "object" }, "PublicFirehoseSignal": { "description": "Public-safe Firehose signal.", "properties": { "confidence": { "description": "confidence for this public firehose signal.", "maximum": 1.0, "minimum": 0.0, "title": "Confidence", "type": "number" }, "detected_at": { "description": "detected at for this public firehose signal.", "title": "Detected At", "type": "string" }, "evidence": { "$ref": "#/components/schemas/PublicFirehoseEvidence", "description": "evidence for this public firehose signal." }, "id": { "description": "id for this public firehose signal.", "title": "Id", "type": "string" }, "issues": { "description": "issues for this public firehose signal.", "items": { "$ref": "#/components/schemas/PublicFirehoseIssue" }, "title": "Issues", "type": "array" }, "occurred_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "occurred at for this public firehose signal.", "title": "Occurred At" }, "places": { "description": "places for this public firehose signal.", "items": { "$ref": "#/components/schemas/PublicFirehosePlace" }, "title": "Places", "type": "array" }, "public_realm_basis": { "description": "public realm basis for this public firehose signal.", "title": "Public Realm Basis", "type": "string" }, "review_state": { "description": "review state for this public firehose signal.", "enum": [ "not_required", "pending", "approved", "held" ], "title": "Review State", "type": "string" }, "sensitivity": { "description": "sensitivity for this public firehose signal.", "maximum": 1.0, "minimum": 0.0, "title": "Sensitivity", "type": "number" }, "signal_type": { "description": "signal type for this public firehose signal.", "enum": [ "public_meeting", "public_comment", "vote", "filing", "coalition_activity", "grant_award", "new_source", "role_change", "freshness_change", "actor_discovered", "source_attached", "relationship_observed", "profile_claimed", "review_decision", "coverage_gap" ], "title": "Signal Type", "type": "string" }, "summary": { "description": "summary for this public firehose signal.", "title": "Summary", "type": "string" }, "title": { "description": "title for this public firehose signal.", "title": "Title", "type": "string" }, "visibility": { "description": "visibility for this public firehose signal.", "enum": [ "public", "workspace", "reviewer" ], "title": "Visibility", "type": "string" } }, "required": [ "confidence", "detected_at", "evidence", "id", "issues", "occurred_at", "places", "public_realm_basis", "review_state", "sensitivity", "signal_type", "summary", "title", "visibility" ], "title": "PublicFirehoseSignal", "type": "object" }, "PublicFirehoseSnapshot": { "description": "Public Firehose feed snapshot.", "properties": { "generated_at": { "description": "generated at for this public firehose snapshot.", "title": "Generated At", "type": "string" }, "query": { "$ref": "#/components/schemas/PublicFirehoseQueryParams", "description": "query for this public firehose snapshot." }, "signals": { "description": "signals for this public firehose snapshot.", "items": { "$ref": "#/components/schemas/PublicFirehoseSignal" }, "title": "Signals", "type": "array" }, "summary": { "$ref": "#/components/schemas/PublicFirehoseSummary", "description": "summary for this public firehose snapshot." } }, "required": [ "generated_at", "query", "signals", "summary" ], "title": "PublicFirehoseSnapshot", "type": "object" }, "PublicFirehoseSummary": { "description": "Summary of the public Firehose snapshot.", "properties": { "latest_detected_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "latest detected at for this public firehose summary.", "title": "Latest Detected At" }, "total_signals": { "description": "total signals for this public firehose summary.", "minimum": 0.0, "title": "Total Signals", "type": "integer" }, "visible_signals": { "description": "visible signals for this public firehose summary.", "minimum": 0.0, "title": "Visible Signals", "type": "integer" } }, "required": [ "latest_detected_at", "total_signals", "visible_signals" ], "title": "PublicFirehoseSummary", "type": "object" }, "PublishEntryResponse": { "description": "Response returned when a workspace entry's visibility changes.", "properties": { "entry_id": { "description": "entry id for this publish entry.", "title": "Entry Id", "type": "string" }, "visibility": { "description": "visibility for this publish entry.", "title": "Visibility", "type": "string" } }, "required": [ "entry_id", "visibility" ], "title": "PublishEntryResponse", "type": "object" }, "QualityConfidenceBucket": { "description": "Source-confidence bucket for workspace-owned records.", "properties": { "record_count": { "description": "record count for this quality confidence bucket.", "minimum": 0.0, "title": "Record Count", "type": "integer" }, "state": { "description": "state for this quality confidence bucket.", "enum": [ "corroborated", "partial", "unverified" ], "title": "State", "type": "string" } }, "required": [ "state", "record_count" ], "title": "QualityConfidenceBucket", "type": "object" }, "QualityDataBoundary": { "description": "Boundary statement for the quality summary.", "properties": { "private_notes_included": { "description": "private notes included for this quality data boundary.", "title": "Private Notes Included", "type": "boolean" }, "statement": { "description": "statement for this quality data boundary.", "title": "Statement", "type": "string" } }, "required": [ "private_notes_included", "statement" ], "title": "QualityDataBoundary", "type": "object" }, "QualityDuplicateCluster": { "description": "A set of records with the same normalized name and place.", "properties": { "key": { "description": "key for this quality duplicate cluster.", "title": "Key", "type": "string" }, "record_count": { "description": "record count for this quality duplicate cluster.", "minimum": 0.0, "title": "Record Count", "type": "integer" }, "records": { "description": "records for this quality duplicate cluster.", "items": { "$ref": "#/components/schemas/QualityDuplicateRecord" }, "title": "Records", "type": "array" } }, "required": [ "key", "record_count", "records" ], "title": "QualityDuplicateCluster", "type": "object" }, "QualityDuplicateRecord": { "description": "One record inside a duplicate-risk cluster.", "properties": { "id": { "description": "id for this quality duplicate record.", "title": "Id", "type": "string" }, "name": { "description": "name for this quality duplicate record.", "title": "Name", "type": "string" } }, "required": [ "id", "name" ], "title": "QualityDuplicateRecord", "type": "object" }, "QualityDuplicateRisk": { "description": "Duplicate-risk rollup for workspace-owned records.", "properties": { "cluster_count": { "description": "cluster count for this quality duplicate risk.", "minimum": 0.0, "title": "Cluster Count", "type": "integer" }, "clusters": { "description": "clusters for this quality duplicate risk.", "items": { "$ref": "#/components/schemas/QualityDuplicateCluster" }, "title": "Clusters", "type": "array" }, "record_count": { "description": "record count for this quality duplicate risk.", "minimum": 0.0, "title": "Record Count", "type": "integer" } }, "required": [ "cluster_count", "record_count", "clusters" ], "title": "QualityDuplicateRisk", "type": "object" }, "QualitySourceCoverage": { "description": "Source coverage summary for workspace-owned records.", "properties": { "coverage_percent": { "description": "coverage percent for this quality source coverage.", "maximum": 100.0, "minimum": 0.0, "title": "Coverage Percent", "type": "number" }, "source_backed_records": { "description": "source backed records for this quality source coverage.", "minimum": 0.0, "title": "Source Backed Records", "type": "integer" }, "total_records": { "description": "total records for this quality source coverage.", "minimum": 0.0, "title": "Total Records", "type": "integer" }, "unsourced_records": { "description": "unsourced records for this quality source coverage.", "minimum": 0.0, "title": "Unsourced Records", "type": "integer" } }, "required": [ "total_records", "source_backed_records", "unsourced_records", "coverage_percent" ], "title": "QualitySourceCoverage", "type": "object" }, "QualityStaleRecord": { "description": "Record whose latest source receipt is older than the quality threshold.", "properties": { "id": { "description": "id for this quality stale record.", "title": "Id", "type": "string" }, "latest_source_date": { "description": "latest source date for this quality stale record.", "title": "Latest Source Date", "type": "string" }, "name": { "description": "name for this quality stale record.", "title": "Name", "type": "string" }, "source_count": { "description": "source count for this quality stale record.", "minimum": 0.0, "title": "Source Count", "type": "integer" } }, "required": [ "id", "name", "latest_source_date", "source_count" ], "title": "QualityStaleRecord", "type": "object" }, "QualityStaleRecords": { "description": "Stale-source rollup for workspace-owned records.", "properties": { "record_count": { "description": "record count for this quality stale records.", "minimum": 0.0, "title": "Record Count", "type": "integer" }, "records": { "description": "records for this quality stale records.", "items": { "$ref": "#/components/schemas/QualityStaleRecord" }, "title": "Records", "type": "array" }, "threshold_days": { "description": "threshold days for this quality stale records.", "minimum": 1.0, "title": "Threshold Days", "type": "integer" } }, "required": [ "threshold_days", "record_count", "records" ], "title": "QualityStaleRecords", "type": "object" }, "RankedEntry": { "description": "A deduplicated entry with a relevance score and score components.", "properties": { "components": { "additionalProperties": true, "description": "Individual scoring component values.", "title": "Components", "type": "object" }, "entry": { "$ref": "#/components/schemas/DeduplicatedEntry", "description": "The underlying deduplicated entry." }, "score": { "description": "Composite relevance score (higher is better).", "title": "Score", "type": "number" } }, "required": [ "entry", "score" ], "title": "RankedEntry", "type": "object" }, "RawEntry": { "description": "A single entry extracted from a source page, before deduplication.", "properties": { "affiliated_org": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Name of affiliated organization.", "title": "Affiliated Org" }, "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "City where the entity is based.", "title": "City" }, "description": { "default": "", "description": "1-3 sentence description.", "title": "Description", "type": "string" }, "discovery_leads": { "description": "URLs or entity names worth following up for further discovery.", "items": { "type": "string" }, "title": "Discovery Leads", "type": "array" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Contact email address.", "title": "Email" }, "entry_type": { "$ref": "#/components/schemas/EntityType", "description": "Entity type." }, "extraction_context": { "default": "", "description": "Verbatim snippet from the source that mentioned this entity.", "title": "Extraction Context", "type": "string" }, "geo_specificity": { "$ref": "#/components/schemas/GeoSpecificity", "default": "local", "description": "Geographic scope of the entity." }, "issue_areas": { "description": "Issue area slugs this entry relates to.", "items": { "type": "string" }, "title": "Issue Areas", "type": "array" }, "mentioned_entities": { "description": "Other entities mentioned in the same source (name, type, relationship).", "items": { "additionalProperties": { "type": "string" }, "type": "object" }, "title": "Mentioned Entities", "type": "array" }, "name": { "description": "Name of the person, organization, or initiative.", "title": "Name", "type": "string" }, "region": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Free-form region description.", "title": "Region" }, "social_media": { "additionalProperties": { "type": "string" }, "description": "Social media handles keyed by platform name.", "title": "Social Media", "type": "object" }, "source_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Publication date of the source page.", "title": "Source Date" }, "source_url": { "default": "", "description": "URL the entry was extracted from.", "title": "Source Url", "type": "string" }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "2-letter state code.", "title": "State" }, "website": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Primary website URL.", "title": "Website" } }, "required": [ "name", "entry_type" ], "title": "RawEntry", "type": "object" }, "ReviewQueueItemResponse": { "description": "A publication hold or proposed public-profile change for review.", "properties": { "created_at": { "description": "created at for this review queue item.", "title": "Created At", "type": "string" }, "dedup_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "dedup note for this review queue item.", "title": "Dedup Note" }, "dedup_suspect": { "description": "dedup suspect for this review queue item.", "title": "Dedup Suspect", "type": "boolean" }, "entity_city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entity city for this review queue item.", "title": "Entity City" }, "entity_description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entity description for this review queue item.", "title": "Entity Description" }, "entity_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entity id for this review queue item.", "title": "Entity Id" }, "entity_issue_areas": { "description": "entity issue areas for this review queue item.", "items": { "type": "string" }, "title": "Entity Issue Areas", "type": "array" }, "entity_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entity name for this review queue item.", "title": "Entity Name" }, "entity_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entity slug for this review queue item.", "title": "Entity Slug" }, "entity_state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entity state for this review queue item.", "title": "Entity State" }, "entity_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entity type for this review queue item.", "title": "Entity Type" }, "entity_website": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "entity website for this review queue item.", "title": "Entity Website" }, "hold_reason": { "description": "hold reason for this review queue item.", "title": "Hold Reason", "type": "string" }, "id": { "description": "id for this review queue item.", "title": "Id", "type": "string" }, "kind": { "description": "kind for this review queue item.", "title": "Kind", "type": "string" }, "org_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "org id for this review queue item.", "title": "Org Id" }, "proposed_changes": { "anyOf": [ { "additionalProperties": { "additionalProperties": true, "type": "object" }, "type": "object" }, { "type": "null" } ], "description": "proposed changes for this review queue item.", "title": "Proposed Changes" }, "reviewed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "reviewed at for this review queue item.", "title": "Reviewed At" }, "reviewed_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "reviewed by for this review queue item.", "title": "Reviewed By" }, "score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "score for this review queue item.", "title": "Score" }, "source_evidence": { "description": "source evidence for this review queue item.", "items": { "$ref": "#/components/schemas/ReviewSourceEvidenceResponse" }, "title": "Source Evidence", "type": "array" }, "source_urls": { "description": "source urls for this review queue item.", "items": { "type": "string" }, "title": "Source Urls", "type": "array" }, "status": { "description": "status for this review queue item.", "title": "Status", "type": "string" } }, "required": [ "id", "kind", "status", "hold_reason", "dedup_suspect", "created_at" ], "title": "ReviewQueueItemResponse", "type": "object" }, "ReviewQueueListResponse": { "description": "Pending review-queue collection.", "properties": { "items": { "description": "items for this review queue list.", "items": { "$ref": "#/components/schemas/ReviewQueueItemResponse" }, "title": "Items", "type": "array" }, "total": { "description": "total for this review queue list.", "title": "Total", "type": "integer" } }, "required": [ "total" ], "title": "ReviewQueueListResponse", "type": "object" }, "ReviewSourceEvidenceResponse": { "description": "One cited URL and the claim recorded for editorial review.", "properties": { "context": { "description": "context for this review source evidence.", "title": "Context", "type": "string" }, "url": { "description": "url for this review source evidence.", "title": "Url", "type": "string" } }, "required": [ "url", "context" ], "title": "ReviewSourceEvidenceResponse", "type": "object" }, "RunCheckpoint": { "description": "A durable checkpoint emitted during discovery execution.", "properties": { "created_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Checkpoint creation time.", "title": "Created At" }, "message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional human-readable checkpoint detail.", "title": "Message" }, "metrics": { "additionalProperties": true, "description": "Structured metrics snapshot captured at the checkpoint.", "title": "Metrics", "type": "object" }, "phase": { "description": "Execution phase name.", "title": "Phase", "type": "string" }, "status": { "$ref": "#/components/schemas/DiscoveryRunStatus", "description": "Run status at this checkpoint." } }, "required": [ "phase", "status" ], "title": "RunCheckpoint", "type": "object" }, "SavedListCreateRequest": { "description": "Create a new saved-actor list.", "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "description for this saved list.", "title": "Description" }, "name": { "description": "name for this saved list.", "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "SavedListCreateRequest", "type": "object" }, "SavedListExportItemResponse": { "description": "Saved-list export row with actor, notes, and evidence receipts.", "properties": { "added_at": { "description": "added at for this saved list export item.", "title": "Added At", "type": "string" }, "entry": { "anyOf": [ { "$ref": "#/components/schemas/EntityResponse" }, { "type": "null" } ], "description": "Actor included in the saved-list export." }, "entry_id": { "description": "entry id for this saved list export item.", "title": "Entry Id", "type": "string" }, "list_id": { "description": "list id for this saved list export item.", "title": "List Id", "type": "string" }, "note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "note for this saved list export item.", "title": "Note" }, "sources": { "description": "sources for this saved list export item.", "items": { "$ref": "#/components/schemas/SavedListExportSource" }, "title": "Sources", "type": "array" }, "trust_level": { "default": "unverified", "description": "trust level for this saved list export item.", "title": "Trust Level", "type": "string" } }, "required": [ "list_id", "entry_id", "added_at" ], "title": "SavedListExportItemResponse", "type": "object" }, "SavedListExportProvenance": { "description": "Provenance summary for a saved-list export.", "properties": { "item_count": { "default": 0, "description": "item count for this saved list export provenance.", "minimum": 0.0, "title": "Item Count", "type": "integer" }, "source_count": { "default": 0, "description": "source count for this saved list export provenance.", "minimum": 0.0, "title": "Source Count", "type": "integer" } }, "title": "SavedListExportProvenance", "type": "object" }, "SavedListExportResponse": { "description": "Downloadable saved-list export with hydrated actor rows.", "properties": { "format": { "const": "json", "default": "json", "description": "format for this saved list export.", "title": "Format", "type": "string" }, "items": { "description": "items for this saved list export.", "items": { "$ref": "#/components/schemas/SavedListExportItemResponse" }, "title": "Items", "type": "array" }, "list": { "$ref": "#/components/schemas/SavedListResponse", "description": "Saved list metadata for the export." }, "provenance": { "$ref": "#/components/schemas/SavedListExportProvenance", "description": "Source-count provenance for the saved-list export." } }, "required": [ "list", "provenance" ], "title": "SavedListExportResponse", "type": "object" }, "SavedListExportSource": { "description": "Source receipt included in a saved-list export row.", "properties": { "id": { "description": "id for this saved list export source.", "title": "Id", "type": "string" }, "publication": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "publication for this saved list export source.", "title": "Publication" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "title for this saved list export source.", "title": "Title" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "type for this saved list export source.", "title": "Type" }, "url": { "description": "url for this saved list export source.", "title": "Url", "type": "string" } }, "required": [ "id", "url" ], "title": "SavedListExportSource", "type": "object" }, "SavedListItemRequest": { "description": "Add an entry to a saved list.", "properties": { "entry_id": { "description": "entry id for this saved list item.", "title": "Entry Id", "type": "string" }, "note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "note for this saved list item.", "title": "Note" } }, "required": [ "entry_id" ], "title": "SavedListItemRequest", "type": "object" }, "SavedListItemResponse": { "description": "Single list-item record.", "properties": { "added_at": { "description": "added at for this saved list item.", "title": "Added At", "type": "string" }, "entry": { "anyOf": [ { "$ref": "#/components/schemas/EntityResponse" }, { "type": "null" } ], "description": "Actor included in the saved list." }, "entry_id": { "description": "entry id for this saved list item.", "title": "Entry Id", "type": "string" }, "list_id": { "description": "list id for this saved list item.", "title": "List Id", "type": "string" }, "note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "note for this saved list item.", "title": "Note" } }, "required": [ "list_id", "entry_id", "added_at" ], "title": "SavedListItemResponse", "type": "object" }, "SavedListResponse": { "description": "Saved-list resource with item count.", "properties": { "created_at": { "description": "created at for this saved list.", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "description for this saved list.", "title": "Description" }, "id": { "description": "id for this saved list.", "title": "Id", "type": "string" }, "item_count": { "default": 0, "description": "item count for this saved list.", "title": "Item Count", "type": "integer" }, "items": { "description": "items for this saved list.", "items": { "$ref": "#/components/schemas/SavedListItemResponse" }, "title": "Items", "type": "array" }, "name": { "description": "name for this saved list.", "title": "Name", "type": "string" }, "org_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "org id for this saved list.", "title": "Org Id" }, "updated_at": { "description": "updated at for this saved list.", "title": "Updated At", "type": "string" }, "user_id": { "description": "user id for this saved list.", "title": "User Id", "type": "string" } }, "required": [ "id", "user_id", "name", "created_at", "updated_at" ], "title": "SavedListResponse", "type": "object" }, "SavedListSharingRequest": { "description": "Explicitly share or unshare an owned list with the active team workspace.", "properties": { "shared": { "description": "shared for this saved list sharing.", "title": "Shared", "type": "boolean" } }, "required": [ "shared" ], "title": "SavedListSharingRequest", "type": "object" }, "ScheduledRunResponse": { "description": "Response from the scheduled trigger endpoint.\n\nThe trigger enqueues durable jobs and returns immediately; the durable\nworker performs the discovery work. ``enqueued`` counts the jobs queued by\nthis invocation, including same-day re-triggers that reused an existing job.", "properties": { "enqueued": { "description": "Number of durable jobs enqueued for schedule targets", "title": "Enqueued", "type": "integer" }, "results": { "description": "Per-target enqueued jobs", "items": { "$ref": "#/components/schemas/ScheduledRunResult" }, "title": "Results", "type": "array" } }, "required": [ "enqueued", "results" ], "title": "ScheduledRunResponse", "type": "object" }, "ScheduledRunResult": { "description": "The durable job enqueued for one scheduled target.", "properties": { "job_id": { "description": "Queued discovery job ID the worker will execute", "title": "Job Id", "type": "string" }, "run_id": { "description": "Discovery run ID created for this execution", "title": "Run Id", "type": "string" }, "schedule_id": { "description": "Schedule target that triggered this run", "title": "Schedule Id", "type": "string" } }, "required": [ "schedule_id", "run_id", "job_id" ], "title": "ScheduledRunResult", "type": "object" }, "ServiceStatusResponse": { "description": "Service state the app reads before offering checkout.", "properties": { "checkout_open": { "description": "False while the platform operator has paused sales with the checkout switch.", "title": "Checkout Open", "type": "boolean" } }, "required": [ "checkout_open" ], "title": "ServiceStatusResponse", "type": "object" }, "SourceCollectionResponse": { "description": "Collection response for sources.", "properties": { "items": { "description": "items for this source collection.", "items": { "$ref": "#/components/schemas/SourceResponse" }, "title": "Items", "type": "array" }, "next_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "next cursor for this source collection.", "title": "Next Cursor" }, "place": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ], "description": "Place context for place-scoped source results." }, "total": { "description": "total for this source collection.", "title": "Total", "type": "integer" } }, "required": [ "total" ], "title": "SourceCollectionResponse", "type": "object" }, "SourceFlagCreateRequest": { "description": "Anonymous flag submission for a source.", "properties": { "note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "note for this source flag.", "title": "Note" }, "reason": { "description": "reason for this source flag.", "title": "Reason", "type": "string" }, "source_id": { "description": "source id for this source flag.", "title": "Source Id", "type": "string" } }, "required": [ "source_id", "reason" ], "title": "SourceFlagCreateRequest", "type": "object" }, "SourceFlagListResponse": { "description": "Source flags collection.", "properties": { "items": { "description": "items for this source flag list.", "items": { "$ref": "#/components/schemas/FlagResponse" }, "title": "Items", "type": "array" }, "next_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "next cursor for this source flag list.", "title": "Next Cursor" }, "total": { "description": "total for this source flag list.", "title": "Total", "type": "integer" } }, "required": [ "total" ], "title": "SourceFlagListResponse", "type": "object" }, "SourceLinkedEntityResponse": { "description": "Minimal entity summary linked to a source.", "properties": { "id": { "description": "id for this source linked entity.", "title": "Id", "type": "string" }, "issue_area_ids": { "description": "issue area ids for this source linked entity.", "items": { "type": "string" }, "title": "Issue Area Ids", "type": "array" }, "name": { "description": "name for this source linked entity.", "title": "Name", "type": "string" }, "slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "slug for this source linked entity.", "title": "Slug" }, "type": { "description": "type for this source linked entity.", "title": "Type", "type": "string" } }, "required": [ "id", "name", "type" ], "title": "SourceLinkedEntityResponse", "type": "object" }, "SourceResponse": { "description": "Canonical public source shape.", "properties": { "extraction_context": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "extraction context for this source.", "title": "Extraction Context" }, "extraction_method": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "extraction method for this source.", "title": "Extraction Method" }, "flag_summary": { "$ref": "#/components/schemas/FlagSummary", "description": "Open correction signals on this source." }, "freshness": { "$ref": "#/components/schemas/FreshnessInfo", "description": "Freshness context for this source." }, "id": { "description": "id for this source.", "title": "Id", "type": "string" }, "linked_entities": { "description": "linked entities for this source.", "items": { "$ref": "#/components/schemas/SourceLinkedEntityResponse" }, "title": "Linked Entities", "type": "array" }, "linked_entity_ids": { "description": "linked entity ids for this source.", "items": { "type": "string" }, "title": "Linked Entity Ids", "type": "array" }, "publication": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "publication for this source.", "title": "Publication" }, "resource_uri": { "description": "resource uri for this source.", "title": "Resource Uri", "type": "string" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "title for this source.", "title": "Title" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "type for this source.", "title": "Type" }, "url": { "description": "url for this source.", "title": "Url", "type": "string" } }, "required": [ "id", "url", "freshness", "resource_uri" ], "title": "SourceResponse", "type": "object" }, "SourceStalenessReviewScanResponse": { "description": "Review items created by a stale-source scan.", "properties": { "enqueued": { "description": "enqueued for this source staleness review scan.", "minimum": 0.0, "title": "Enqueued", "type": "integer" }, "review_item_ids": { "description": "review item ids for this source staleness review scan.", "items": { "type": "string" }, "title": "Review Item Ids", "type": "array" } }, "required": [ "enqueued" ], "title": "SourceStalenessReviewScanResponse", "type": "object" }, "SourceType": { "description": "Type of source from which content was retrieved.", "enum": [ "news_article", "op_ed", "academic_paper", "report", "government_record", "conference", "podcast", "video", "social_media", "community_archive", "org_website", "org_website", "other" ], "title": "SourceType", "type": "string" }, "StagedEntityUpdateResponse": { "description": "An owner's proposed change, which has not changed the public profile.", "properties": { "entity_id": { "description": "entity id for this staged entity.", "title": "Entity Id", "type": "string" }, "message": { "default": "Proposed public profile changes are awaiting editorial review. The published profile is unchanged.", "description": "message for this staged entity.", "title": "Message", "type": "string" }, "review_item_id": { "description": "review item id for this staged entity.", "title": "Review Item Id", "type": "string" }, "status": { "const": "pending_review", "default": "pending_review", "description": "status for this staged entity.", "title": "Status", "type": "string" } }, "required": [ "entity_id", "review_item_id" ], "title": "StagedEntityUpdateResponse", "type": "object" }, "SyncedEntryLink": { "description": "Developer-visible receipt for one entry persisted from a run sync.", "properties": { "id": { "description": "Atlas entry identifier.", "title": "Id", "type": "string" }, "name": { "description": "Display name of the persisted entry.", "title": "Name", "type": "string" }, "slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Public profile slug when one is available.", "title": "Slug" }, "type": { "description": "Atlas entry type.", "title": "Type", "type": "string" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Relative Atlas URL for entries with a visible page.", "title": "Url" }, "visibility": { "description": "Where the synced entry can be seen after sync.", "enum": [ "public", "held_for_review", "workspace_private", "existing_shared" ], "title": "Visibility", "type": "string" } }, "required": [ "id", "name", "type", "visibility" ], "title": "SyncedEntryLink", "type": "object" }, "TakedownCollectionResponse": { "description": "The takedowns that stand.", "properties": { "items": { "description": "Standing takedowns, newest first", "items": { "$ref": "#/components/schemas/TakedownResponse" }, "title": "Items", "type": "array" } }, "required": [ "items" ], "title": "TakedownCollectionResponse", "type": "object" }, "TakedownCreateRequest": { "description": "Which profile to take down, and why.", "properties": { "reason": { "description": "Why it comes down, kept for whoever restores it", "maxLength": 2000, "minLength": 3, "title": "Reason", "type": "string" }, "slug": { "description": "The profile's slug", "maxLength": 200, "minLength": 1, "title": "Slug", "type": "string" } }, "required": [ "slug", "reason" ], "title": "TakedownCreateRequest", "type": "object" }, "TakedownResponse": { "description": "One takedown, standing or lifted.", "properties": { "entry_id": { "description": "The profile taken down", "title": "Entry Id", "type": "string" }, "entry_name": { "description": "The profile's name when it came down", "title": "Entry Name", "type": "string" }, "entry_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The profile's slug when it came down", "title": "Entry Slug" }, "entry_type": { "description": "person or organization", "title": "Entry Type", "type": "string" }, "id": { "description": "Takedown ID", "title": "Id", "type": "string" }, "reason": { "description": "Why it came down", "title": "Reason", "type": "string" }, "restored_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "When it was restored", "title": "Restored At" }, "restored_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The editor who restored it", "title": "Restored By" }, "taken_down_at": { "description": "When it came down", "title": "Taken Down At", "type": "string" }, "taken_down_by": { "description": "The editor who took it down", "title": "Taken Down By", "type": "string" }, "was_active": { "description": "Whether it was published when it came down", "title": "Was Active", "type": "boolean" } }, "required": [ "id", "entry_id", "entry_name", "entry_type", "reason", "was_active", "taken_down_by", "taken_down_at" ], "title": "TakedownResponse", "type": "object" }, "TrustInfo": { "description": "Identity verification and separately evaluated source details.", "properties": { "email_grounded": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Whether the listed email is supported by a linked source.", "title": "Email Grounded" }, "independent_source_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Reviewed independent publisher count; null when claim support has not been evaluated.", "title": "Independent Source Count" }, "level": { "default": "unverified", "description": "Profile identity: subject_verified | atlas_verified | unverified.", "title": "Level", "type": "string" }, "website_grounded": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Whether the listed website is supported by a linked source.", "title": "Website Grounded" } }, "title": "TrustInfo", "type": "object" }, "ValidationError": { "description": "One field-level validation problem inside an invalid request.", "properties": { "ctx": { "description": "ctx for this validation error.", "title": "Context", "type": "object" }, "input": { "description": "input for this validation error.", "title": "Input" }, "loc": { "description": "loc for this validation error.", "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "title": "Location", "type": "array" }, "msg": { "description": "msg for this validation error.", "title": "Message", "type": "string" }, "type": { "description": "type for this validation error.", "title": "Error Type", "type": "string" } }, "required": [ "loc", "msg", "type" ], "title": "ValidationError", "type": "object" }, "VerificationRequestPayload": { "description": "Request payload for discount verification submission.", "properties": { "data": { "additionalProperties": { "type": "string" }, "description": "Segment-specific verification data", "title": "Data", "type": "object" }, "organization_id": { "description": "organization id for this verification request payload.", "title": "Organization Id", "type": "string" }, "segment": { "description": "segment for this verification request payload.", "enum": [ "student", "independent_journalist", "grassroots_nonprofit", "civic_tech_worker" ], "title": "Segment", "type": "string" } }, "required": [ "segment", "organization_id", "data" ], "title": "VerificationRequestPayload", "type": "object" }, "VerificationResponsePayload": { "description": "Response payload for verification submission.", "properties": { "id": { "description": "Verification record ID", "title": "Id", "type": "string" }, "message": { "description": "Human-readable status message", "title": "Message", "type": "string" }, "organization_id": { "description": "Workspace receiving the verified discount", "title": "Organization Id", "type": "string" }, "status": { "description": "Verification status (pending, verified, rejected, expired)", "enum": [ "pending", "verified", "rejected", "expired" ], "title": "Status", "type": "string" }, "verification_method": { "anyOf": [ { "enum": [ "portfolio", "school_email", "ein_submission", "mission_statement" ], "type": "string" }, { "type": "null" } ], "description": "Method used for verification", "title": "Verification Method" } }, "required": [ "id", "organization_id", "status", "message" ], "title": "VerificationResponsePayload", "type": "object" }, "WatchDigestEntry": { "description": "Actor context attached to a digest event.", "properties": { "id": { "description": "id for this watch digest entry.", "title": "Id", "type": "string" }, "name": { "description": "name for this watch digest entry.", "title": "Name", "type": "string" }, "slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "slug for this watch digest entry.", "title": "Slug" }, "type": { "description": "type for this watch digest entry.", "title": "Type", "type": "string" } }, "required": [ "id", "name", "slug", "type" ], "title": "WatchDigestEntry", "type": "object" }, "WatchDigestItem": { "description": "One digest event for a watched workspace resource.", "properties": { "created_at": { "description": "created at for this watch digest item.", "title": "Created At", "type": "string" }, "entry": { "anyOf": [ { "$ref": "#/components/schemas/WatchDigestEntry" }, { "type": "null" } ], "description": "Actor associated with the watch digest item." }, "event_type": { "description": "event type for this watch digest item.", "enum": [ "new_source", "profile_updated", "relationship_added", "coverage_status_changed", "correction", "civic_signal" ], "title": "Event Type", "type": "string" }, "id": { "description": "id for this watch digest item.", "title": "Id", "type": "string" }, "resource_id": { "description": "resource id for this watch digest item.", "title": "Resource Id", "type": "string" }, "resource_type": { "description": "resource type for this watch digest item.", "enum": [ "entry", "coverage_target" ], "title": "Resource Type", "type": "string" }, "source": { "anyOf": [ { "$ref": "#/components/schemas/WatchDigestSource" }, { "type": "null" } ], "description": "Source associated with the watch digest item." }, "summary": { "description": "summary for this watch digest item.", "title": "Summary", "type": "string" }, "title": { "description": "title for this watch digest item.", "title": "Title", "type": "string" } }, "required": [ "id", "resource_type", "resource_id", "event_type", "title", "summary", "created_at", "entry", "source" ], "title": "WatchDigestItem", "type": "object" }, "WatchDigestResponse": { "description": "Digest response for the current workspace.", "properties": { "coverage_signal_count": { "description": "coverage signal count for this watch digest.", "title": "Coverage Signal Count", "type": "integer" }, "items": { "description": "items for this watch digest.", "items": { "$ref": "#/components/schemas/WatchDigestItem" }, "title": "Items", "type": "array" }, "source_signal_count": { "description": "source signal count for this watch digest.", "title": "Source Signal Count", "type": "integer" }, "total": { "description": "total for this watch digest.", "title": "Total", "type": "integer" } }, "required": [ "items", "total", "source_signal_count", "coverage_signal_count" ], "title": "WatchDigestResponse", "type": "object" }, "WatchDigestSource": { "description": "Source receipt attached to a digest event.", "properties": { "id": { "description": "id for this watch digest source.", "title": "Id", "type": "string" }, "publication": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "publication for this watch digest source.", "title": "Publication" }, "published_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "published date for this watch digest source.", "title": "Published Date" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "title for this watch digest source.", "title": "Title" }, "type": { "description": "type for this watch digest source.", "title": "Type", "type": "string" }, "url": { "description": "url for this watch digest source.", "title": "Url", "type": "string" } }, "required": [ "id", "url", "title", "publication", "published_date", "type" ], "title": "WatchDigestSource", "type": "object" }, "WebsiteCandidateScanResponse": { "description": "Website proposals created for editorial review.", "properties": { "enqueued": { "description": "enqueued for this website candidate scan.", "minimum": 0.0, "title": "Enqueued", "type": "integer" }, "review_item_ids": { "description": "review item ids for this website candidate scan.", "items": { "type": "string" }, "title": "Review Item Ids", "type": "array" } }, "required": [ "enqueued" ], "title": "WebsiteCandidateScanResponse", "type": "object" } } }, "externalDocs": { "description": "Atlas API concepts, tutorials, authentication, and trust guidance", "url": "https://atlas.rebuildingus.org/docs/api/overview" }, "info": { "contact": { "email": "contact@rebuildingus.org", "name": "Rebuilding America", "url": "https://atlas.rebuildingus.org/" }, "description": "Atlas exposes place-first civic research data through a typed REST API. Use it to find source-backed civic actors, inspect the public evidence behind a record, understand coverage in a place, and move reviewed work into team workflows without losing provenance.\n\nMost public discovery endpoints can be read without authentication. Workspace, discovery, MCP, and profile-management endpoints require the caller to act as a user, workspace, worker, or integration with the right scope. Keep source ids, place keys, issue-area slugs, and visibility state with any data you export; those fields are what let users trust and refresh the result later.\n\nThe generated reference is intentionally exact about request and response shapes. For narrative guidance, start with the human API guides in the Atlas docs.", "license": { "identifier": "MIT", "name": "MIT" }, "summary": "Structured civic research data for Atlas places, entities, sources, and discovery runs.", "title": "Atlas REST API", "version": "1.0.0" }, "openapi": "3.1.0", "paths": { "/api/access/discount-verification/current": { "get": { "description": "Return the signed-in requester's latest discount verification status.\n\nUse this access operation before relying on protected workflows. It explains or changes the caller's ability to use authenticated Atlas features, so integrations should surface authorization failures clearly instead of treating them as empty data.", "operationId": "getCurrentDiscountVerificationStatus", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CurrentVerificationStatusResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get current discount verification status", "tags": [ "access" ] } }, "/api/access/verify-discount": { "post": { "description": "Validate a discount verification request and record it for manual review.\n\nUse this access operation before relying on protected workflows. It explains or changes the caller's ability to use authenticated Atlas features, so integrations should surface authorization failures clearly instead of treating them as empty data.", "operationId": "submitDiscountVerification", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerificationRequestPayload" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerificationResponsePayload" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Submit discount verification", "tags": [ "access" ] } }, "/api/atproto/identities": { "get": { "description": "Return the current account's active or attention-required ATProto controls for Account settings. Disconnected history and other users' metadata are excluded, while affected public profiles are summarized so disconnect consequences remain understandable.\n\nUse this identity operation for a signed-in person's external ATProto connections or their verified public-profile representation. Keep account control, profile stewardship, and workspace membership separate when interpreting or changing these relationships.", "operationId": "listAtprotoIdentities", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AtprotoIdentityResponse" }, "title": "Response Listatprotoidentities", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List connected ATProto identities", "tags": [ "identity" ] }, "post": { "description": "Accept a short-lived app-server OAuth result, verify the handle and DID again, and record an active account-control relationship. A competing controller receives a privacy-safe conflict without any other account metadata or workspace side effects.\n\nUse this identity operation for a signed-in person's external ATProto connections or their verified public-profile representation. Keep account control, profile stewardship, and workspace membership separate when interpreting or changing these relationships.", "operationId": "linkAtprotoIdentity", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AtprotoIdentityLinkRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AtprotoIdentityResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Connect an ATProto identity", "tags": [ "identity" ] } }, "/api/atproto/identities/{identity_id}": { "delete": { "description": "Disconnect the current account's control relationship so the identity cannot be selected for new actions. Existing verified public-profile links remain auditable until a verified profile steward explicitly removes or replaces them.\n\nUse this identity operation for a signed-in person's external ATProto connections or their verified public-profile representation. Keep account control, profile stewardship, and workspace membership separate when interpreting or changing these relationships.", "operationId": "disconnectAtprotoIdentity", "parameters": [ { "in": "path", "name": "identity_id", "required": true, "schema": { "title": "Identity Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Disconnect an ATProto identity", "tags": [ "identity" ] } }, "/api/atproto/identities/{identity_id}/refresh": { "post": { "description": "Resolve the controlled DID first, verify its current handle in both directions, and update account metadata. Failed resolution retains the DID and profile provenance but marks the identity and its public links as needing attention.\n\nUse this identity operation for a signed-in person's external ATProto connections or their verified public-profile representation. Keep account control, profile stewardship, and workspace membership separate when interpreting or changing these relationships.", "operationId": "refreshAtprotoIdentity", "parameters": [ { "in": "path", "name": "identity_id", "required": true, "schema": { "title": "Identity Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AtprotoIdentityResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Check an ATProto identity connection", "tags": [ "identity" ] } }, "/api/audit-log": { "get": { "description": "Every editorial decision on this instance that changed data, or tried to, newest first, from the append-only audit log.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "listEditorialActivity", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer" } }, { "description": "`next_before` from the previous page", "in": "query", "name": "before", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "`next_before` from the previous page", "title": "Before" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuditPageResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List editorial activity", "tags": [ "moderation" ] } }, "/api/auth/health": { "get": { "description": "Check the health of external authentication dependencies.\n\nUse this access operation before relying on protected workflows. It explains or changes the caller's ability to use authenticated Atlas features, so integrations should surface authorization failures clearly instead of treating them as empty data.", "operationId": "getAuthHealth", "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Response Getauthhealth", "type": "object" } } }, "description": "Successful Response" } }, "summary": "Auth health", "tags": [ "access" ] } }, "/api/correction-inbox": { "get": { "description": "Keep both kinds of private visitor report in the editor's work queue.\n\nUse this flag operation to report or review possible corrections. A flag is a review signal; keep the original source context available until a moderator resolves it.", "operationId": "listModerationInbox", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 25, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModerationInboxResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List open profile and source reports for editors", "tags": [ "flags" ] } }, "/api/discovery-runs": { "get": { "description": "List Atlas discovery pipeline runs with optional state and status filters.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "listDiscoveryRuns", "parameters": [ { "in": "query", "name": "state", "required": false, "schema": { "anyOf": [ { "maxLength": 2, "minLength": 2, "type": "string" }, { "type": "null" } ], "title": "State" } }, { "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryRunCollectionResponse" } } }, "description": "A paginated collection of discovery runs." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List discovery runs", "tags": [ "discovery-runs" ] }, "post": { "description": "Start an Atlas discovery pipeline run for a place and set of issue areas.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.\n\nStarting a run creates asynchronous research work. Poll the run, then review sources and visibility receipts before using discovered actors in a public or high-stakes workflow.", "operationId": "createDiscoveryRun", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryRunStartRequest" } } }, "required": true }, "responses": { "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryRunResponse" } } }, "description": "The accepted discovery run." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Start a discovery run", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/contributions": { "post": { "description": "Persist a discovery payload produced by an external runner such as Scout, using the same shared discovery models Atlas service uses internally.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "createDiscoveryContribution", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryContributionRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryContributionResponse" } } }, "description": "The persisted Atlas run summary." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Ingest contributed discovery results", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/jobs": { "get": { "description": "Return queued, claimed, running, and failed discovery jobs for research ops.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "listDiscoveryJobQueue", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 25, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryJobQueueResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List discovery job queue", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/jobs/claim": { "post": { "description": "Lease the oldest queued discovery job for a Scout host worker.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "claimDiscoveryJob", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryWorkerClaimRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryWorkerClaimResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Claim a discovery job", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/jobs/workers/{worker_id}/release": { "post": { "description": "Release claimed or running jobs when an enrolled Scout device is revoked.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "releaseDiscoveryWorkerJobs", "parameters": [ { "in": "path", "name": "worker_id", "required": true, "schema": { "title": "Worker Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryWorkerReleaseResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Release a Scout worker's active job leases", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/jobs/{job_id}": { "get": { "description": "Return the current status and progress of a discovery pipeline job.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "getDiscoveryJob", "parameters": [ { "in": "path", "name": "job_id", "required": true, "schema": { "title": "Job Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryJobResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get a discovery job", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/jobs/{job_id}/complete": { "post": { "description": "Mark a claimed discovery job complete for the Scout worker holding its lease.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "completeDiscoveryJob", "parameters": [ { "in": "path", "name": "job_id", "required": true, "schema": { "title": "Job Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryWorkerCompleteRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryWorkerJobResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Complete a discovery job", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/jobs/{job_id}/fail": { "post": { "description": "Mark a Scout worker's leased job failed, retryable, or permanently failed.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "failDiscoveryJob", "parameters": [ { "in": "path", "name": "job_id", "required": true, "schema": { "title": "Job Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryWorkerFailRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryWorkerJobResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Fail a discovery job", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/jobs/{job_id}/heartbeat": { "post": { "description": "Renew a Scout worker lease and store progress for a claimed discovery job.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "heartbeatDiscoveryJob", "parameters": [ { "in": "path", "name": "job_id", "required": true, "schema": { "title": "Job Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryWorkerHeartbeatRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryWorkerJobResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Heartbeat a discovery job", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/scheduled": { "post": { "description": "Enqueue a durable discovery job for each enabled schedule target and return immediately. Designed for invocation by Cloud Scheduler or other cron triggers; the durable worker performs the discovery work. Re-triggering the same target on the same day reuses the already-enqueued job, so a duplicate cron fire is a no-op.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "executeScheduledDiscoveryRuns", "responses": { "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduledRunResponse" } } }, "description": "Successful Response" } }, "summary": "Enqueue scheduled discovery targets", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/summary": { "get": { "description": "Aggregate counts of jobs, runs, and entries for pipeline observability.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "getDiscoveryPipelineSummary", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryPipelineSummaryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Pipeline health summary", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/syncs": { "post": { "description": "Sync reviewed local Scout results into Atlas using an authenticated, idempotent workflow.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.\n\nSync is for reviewed local Scout results. Preserve local-to-remote entry links and visibility receipts so a team can tell what stayed private, what was skipped, and what became public.", "operationId": "createDiscoveryRunSync", "parameters": [ { "in": "header", "name": "x-atlas-upload-target", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Atlas-Upload-Target" } }, { "in": "header", "name": "x-atlas-workspace-id", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Atlas-Workspace-Id" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryRunSyncRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryRunSyncResponse" } } }, "description": "The result of syncing the local run bundle." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Sync a local discovery run bundle", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/{run_id}": { "get": { "description": "Return one Atlas discovery run by ID.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "getDiscoveryRun", "parameters": [ { "in": "path", "name": "run_id", "required": true, "schema": { "title": "Run Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryRunResponse" } } }, "description": "The requested discovery run." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get a discovery run", "tags": [ "discovery-runs" ] } }, "/api/discovery-runs/{run_id}/cancel": { "post": { "description": "Cancel every queued, claimed, or running job belonging to a discovery run.\n\nUse this discovery operation to create, synchronize, lease, inspect, or cancel research work. Treat discovered actors as reviewable leads until their source evidence and visibility state are checked.", "operationId": "cancelDiscoveryRun", "parameters": [ { "in": "path", "name": "run_id", "required": true, "schema": { "title": "Run Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryRunCancelResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Cancel a discovery run", "tags": [ "discovery-runs" ] } }, "/api/discovery-schedules": { "get": { "description": "List configured discovery schedule targets.\n\nUse this schedule operation for recurring research targets. Schedules define what Atlas should revisit; review, source freshness, and publication decisions still happen through discovery runs and workspace workflows.", "operationId": "listDiscoverySchedules", "parameters": [ { "description": "Only return enabled schedules", "in": "query", "name": "enabled_only", "required": false, "schema": { "default": false, "description": "Only return enabled schedules", "title": "Enabled Only", "type": "boolean" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryScheduleCollectionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List discovery schedules", "tags": [ "discovery-schedules" ] }, "post": { "description": "Add a new location and issue area target for scheduled discovery.\n\nUse this schedule operation for recurring research targets. Schedules define what Atlas should revisit; review, source freshness, and publication decisions still happen through discovery runs and workspace workflows.", "operationId": "createDiscoverySchedule", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryScheduleCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryScheduleResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create a discovery schedule", "tags": [ "discovery-schedules" ] } }, "/api/discovery-schedules/{schedule_id}": { "delete": { "description": "Remove a discovery schedule target.\n\nUse this schedule operation for recurring research targets. Schedules define what Atlas should revisit; review, source freshness, and publication decisions still happen through discovery runs and workspace workflows.", "operationId": "deleteDiscoverySchedule", "parameters": [ { "in": "path", "name": "schedule_id", "required": true, "schema": { "title": "Schedule Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Delete a discovery schedule", "tags": [ "discovery-schedules" ] }, "get": { "description": "Return one discovery schedule target by ID.\n\nUse this schedule operation for recurring research targets. Schedules define what Atlas should revisit; review, source freshness, and publication decisions still happen through discovery runs and workspace workflows.", "operationId": "getDiscoverySchedule", "parameters": [ { "in": "path", "name": "schedule_id", "required": true, "schema": { "title": "Schedule Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryScheduleResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get a discovery schedule", "tags": [ "discovery-schedules" ] }, "patch": { "description": "Partially update a discovery schedule target.\n\nUse this schedule operation for recurring research targets. Schedules define what Atlas should revisit; review, source freshness, and publication decisions still happen through discovery runs and workspace workflows.", "operationId": "updateDiscoverySchedule", "parameters": [ { "in": "path", "name": "schedule_id", "required": true, "schema": { "title": "Schedule Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryScheduleUpdateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryScheduleResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Update a discovery schedule", "tags": [ "discovery-schedules" ] } }, "/api/domains": { "get": { "description": "List top-level Atlas issue domains.\n\nUse this taxonomy operation to keep integrations aligned with Atlas vocabulary. Store stable slugs in code and exports, but show human labels when presenting filters to users.", "operationId": "listDomains", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 25, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainListResponse" } } }, "description": "A paginated collection of Atlas domains." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List domains", "tags": [ "domains" ] } }, "/api/domains/{domain_slug}": { "get": { "description": "Return a single Atlas domain and its issue areas.\n\nUse this taxonomy operation to keep integrations aligned with Atlas vocabulary. Store stable slugs in code and exports, but show human labels when presenting filters to users.", "operationId": "getDomain", "parameters": [ { "in": "path", "name": "domain_slug", "required": true, "schema": { "title": "Domain Slug", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainDetailResponse" } } }, "description": "The requested Atlas domain." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get a domain", "tags": [ "domains" ] } }, "/api/entities": { "get": { "description": "Search Atlas entities with text, geography, issue-area, entity-type, and source-type filters.\n\nUse this entity operation to find or manage source-backed civic actors. Preserve entity ids, source ids, place context, and issue filters whenever you export or reuse results.\n\nStart broad, then narrow with place, issue-area, actor-type, source-type, or text filters. A matching entity is a lead until its source trail supports the claim you plan to repeat.", "operationId": "listEntities", "parameters": [ { "in": "query", "name": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Query" } }, { "in": "query", "name": "state", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "State" } }, { "in": "query", "name": "city", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "City" } }, { "in": "query", "name": "region", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Region" } }, { "in": "query", "name": "entity_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Entity Type" } }, { "in": "query", "name": "issue_area", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Issue Area" } }, { "in": "query", "name": "source_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Type" } }, { "in": "query", "name": "source_pattern", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Pattern" } }, { "in": "query", "name": "affiliated_org_id", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Affiliated Org Id" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 20, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityCollectionResponse" } } }, "description": "A paginated collection of Atlas entities." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List entities", "tags": [ "entities" ] }, "post": { "description": "Create a private workspace entity using the canonical nested address and contact request shape. Publish separately after adding a source.\n\nUse this entity operation to find or manage source-backed civic actors. Preserve entity ids, source ids, place context, and issue filters whenever you export or reuse results.", "operationId": "createEntity", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityDetailResponse" } } }, "description": "The newly created Atlas entity." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create an entity", "tags": [ "entities" ] } }, "/api/entities/by-slug/{entity_type}/{slug}": { "get": { "description": "Resolve a type + slug pair to a full entity detail response.\n\nUse this entity operation to find or manage source-backed civic actors. Preserve entity ids, source ids, place context, and issue filters whenever you export or reuse results.", "operationId": "resolveEntityBySlug", "parameters": [ { "in": "path", "name": "entity_type", "required": true, "schema": { "title": "Entity Type", "type": "string" } }, { "in": "path", "name": "slug", "required": true, "schema": { "title": "Slug", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Resolve entity by slug", "tags": [ "entities" ] } }, "/api/entities/map": { "get": { "description": "Return placed civic actors inside a bounding box, filtered by the browse facets, as a tiny projection for the map.\n\nUse this entity operation to find or manage source-backed civic actors. Preserve entity ids, source ids, place context, and issue filters whenever you export or reuse results.", "operationId": "getEntitiesMap", "parameters": [ { "description": "Western edge of the viewport.", "in": "query", "name": "min_lng", "required": true, "schema": { "description": "Western edge of the viewport.", "title": "Min Lng", "type": "number" } }, { "description": "Southern edge of the viewport.", "in": "query", "name": "min_lat", "required": true, "schema": { "description": "Southern edge of the viewport.", "title": "Min Lat", "type": "number" } }, { "description": "Eastern edge of the viewport.", "in": "query", "name": "max_lng", "required": true, "schema": { "description": "Eastern edge of the viewport.", "title": "Max Lng", "type": "number" } }, { "description": "Northern edge of the viewport.", "in": "query", "name": "max_lat", "required": true, "schema": { "description": "Northern edge of the viewport.", "title": "Max Lat", "type": "number" } }, { "in": "query", "name": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Query" } }, { "in": "query", "name": "state", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "State" } }, { "in": "query", "name": "city", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "City" } }, { "in": "query", "name": "region", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Region" } }, { "in": "query", "name": "entity_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Entity Type" } }, { "in": "query", "name": "issue_area", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Issue Area" } }, { "in": "query", "name": "source_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Type" } }, { "in": "query", "name": "source_pattern", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Pattern" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 2000, "maximum": 5000, "minimum": 1, "title": "Limit", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MapPointCollectionResponse" } } }, "description": "A capped collection of placed actors for the requested viewport." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Map points in a viewport", "tags": [ "entities" ] } }, "/api/entities/{entity_id}": { "delete": { "description": "Delete an Atlas entity by ID.\n\nUse this entity operation to find or manage source-backed civic actors. Preserve entity ids, source ids, place context, and issue filters whenever you export or reuse results.", "operationId": "deleteEntity", "parameters": [ { "in": "path", "name": "entity_id", "required": true, "schema": { "title": "Entity Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "204": { "description": "The entity was deleted." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Delete an entity", "tags": [ "entities" ] }, "get": { "description": "Return one Atlas entity with normalized contact, freshness, flag summary, and linked source provenance.\n\nUse this entity operation to find or manage source-backed civic actors. Preserve entity ids, source ids, place context, and issue filters whenever you export or reuse results.", "operationId": "getEntity", "parameters": [ { "in": "path", "name": "entity_id", "required": true, "schema": { "title": "Entity Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityDetailResponse" } } }, "description": "The requested Atlas entity." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get an entity", "tags": [ "entities" ] }, "patch": { "description": "Update a private entity or submit public fact changes for editorial review.\n\nUse this entity operation to find or manage source-backed civic actors. Preserve entity ids, source ids, place context, and issue filters whenever you export or reuse results.", "operationId": "updateEntity", "parameters": [ { "in": "path", "name": "entity_id", "required": true, "schema": { "title": "Entity Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityUpdateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityDetailResponse" } } }, "description": "The updated Atlas entity." }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StagedEntityUpdateResponse" } } }, "description": "Accepted" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Update an entity", "tags": [ "entities" ] } }, "/api/entities/{entity_id}/sources": { "get": { "description": "Return the source trail for one Atlas entity.\n\nUse this entity operation to find or manage source-backed civic actors. Preserve entity ids, source ids, place context, and issue filters whenever you export or reuse results.\n\nUse the source trail before publishing, contacting, funding, or importing an actor. Keep the source URL, title, date, and extraction context with any exported claim.", "operationId": "listEntitySources", "parameters": [ { "in": "path", "name": "entity_id", "required": true, "schema": { "title": "Entity Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntitySourcesResponse" } } }, "description": "The source records linked to the requested entity." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List entity sources", "tags": [ "entities" ] } }, "/api/entities/{entry_id}/connections": { "get": { "description": "Return related actors ranked by connection strength, with the reasons behind each link.\n\nUse this entity operation to find or manage source-backed civic actors. Preserve entity ids, source ids, place context, and issue filters whenever you export or reuse results.", "operationId": "getEntityConnections", "parameters": [ { "in": "path", "name": "entry_id", "required": true, "schema": { "title": "Entry Id", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 20, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityConnectionsResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get entity connections", "tags": [ "entities" ] } }, "/api/entity-flags": { "get": { "description": "List anonymous flags that have been submitted for one Atlas entity.\n\nUse this flag operation to report or review possible corrections. A flag is a review signal; keep the original source context available until a moderator resolves it.", "operationId": "listEntityFlags", "parameters": [ { "in": "query", "name": "entity_id", "required": true, "schema": { "title": "Entity Id", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityFlagListResponse" } } }, "description": "A paginated collection of entity flags." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List entity flags", "tags": [ "flags" ] }, "post": { "description": "Submit an anonymous flag for an Atlas entity that looks stale or incorrect.\n\nUse this flag operation to report or review possible corrections. A flag is a review signal; keep the original source context available until a moderator resolves it.", "operationId": "createEntityFlag", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityFlagCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FlagReceipt" } } }, "description": "The newly created entity flag." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create an entity flag", "tags": [ "flags" ] } }, "/api/entity-flags/inbox": { "get": { "description": "Give an editor a private, oldest-first queue of reports requiring action.\n\nUse this flag operation to report or review possible corrections. A flag is a review signal; keep the original source context available until a moderator resolves it.", "operationId": "listCorrectionInbox", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 25, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CorrectionInboxResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List open profile corrections for editors", "tags": [ "flags" ] } }, "/api/entity-flags/{flag_id}/dismiss": { "post": { "description": "Close an entity correction, dispute, or sensitive-person report as dismissed.\n\nUse this flag operation to report or review possible corrections. A flag is a review signal; keep the original source context available until a moderator resolves it.", "operationId": "dismissEntityFlag", "parameters": [ { "in": "path", "name": "flag_id", "required": true, "schema": { "title": "Flag Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/EditorialDecisionRequest" }, { "type": "null" } ], "title": "Payload" } } } }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FlagResponse" } } }, "description": "The dismissed entity flag." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Dismiss an entity flag", "tags": [ "flags" ] } }, "/api/entity-flags/{flag_id}/resolve": { "post": { "description": "Close an entity correction, dispute, or sensitive-person report as resolved.\n\nUse this flag operation to report or review possible corrections. A flag is a review signal; keep the original source context available until a moderator resolves it.", "operationId": "resolveEntityFlag", "parameters": [ { "in": "path", "name": "flag_id", "required": true, "schema": { "title": "Flag Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/EditorialDecisionRequest" }, { "type": "null" } ], "title": "Payload" } } } }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FlagResponse" } } }, "description": "The resolved entity flag." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Resolve an entity flag", "tags": [ "flags" ] } }, "/api/entity-flags/{flag_id}/status": { "get": { "description": "Whether an Atlas editor has reviewed an anonymous profile report. Never returns what the reporter wrote or who reviewed it.\n\nUse this flag operation to report or review possible corrections. A flag is a review signal; keep the original source context available until a moderator resolves it.", "operationId": "getEntityFlagStatus", "parameters": [ { "in": "path", "name": "flag_id", "required": true, "schema": { "title": "Flag Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FlagStatusReceipt" } } }, "description": "The report's review status." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Check a profile report's review status", "tags": [ "flags" ] } }, "/api/feed/following": { "get": { "description": "Return recent source ingest events for every profile the authenticated user follows, newest first.\n\nUse this feed operation to help a signed-in user notice source-backed profile changes. Feed events are cues for review, not endorsements or impact claims.", "operationId": "getFollowingFeed", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, "title": "Response Getfollowingfeed", "type": "object" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Followed-profile activity feed", "tags": [ "feed" ] } }, "/api/firehose": { "get": { "description": "Return a source-backed Firehose snapshot for a civic query, or stream the same query as Server-Sent Events when the client requests text/event-stream.\n\nUse this Firehose operation to query or observe source-backed civic signals for an authenticated workspace. Preserve workspace, usage, signal, and evidence context so billing and trust stay tied to the query that produced the data.", "operationId": "getFirehose", "parameters": [ { "in": "query", "name": "place", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Place" } }, { "in": "query", "name": "issue", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Issue" } }, { "in": "query", "name": "actor_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Actor Type" } }, { "in": "query", "name": "signal_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Signal Type" } }, { "in": "query", "name": "source_class", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Class" } }, { "in": "query", "name": "visibility", "required": false, "schema": { "default": "workspace", "enum": [ "workspace", "partner", "public", "reviewer" ], "title": "Visibility", "type": "string" } }, { "in": "query", "name": "since", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Since" } }, { "in": "query", "name": "until", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Until" } }, { "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "sort", "required": false, "schema": { "default": "detected_at_desc", "enum": [ "detected_at_desc", "occurred_at_desc", "relevance_desc" ], "title": "Sort", "type": "string" } }, { "in": "header", "name": "Last-Event-ID", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last-Event-Id" } }, { "in": "header", "name": "Accept", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accept" } }, { "in": "header", "name": "X-Request-ID", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Request-Id" } }, { "in": "header", "name": "Traceparent", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Traceparent" } }, { "in": "header", "name": "Tracestate", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tracestate" } }, { "in": "header", "name": "Prefer", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Prefer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FirehoseSnapshot" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Query Firehose", "tags": [ "firehose" ] }, "head": { "description": "Return snapshot headers for a Firehose query without downloading the JSON response body.\n\nUse this Firehose operation to query or observe source-backed civic signals for an authenticated workspace. Preserve workspace, usage, signal, and evidence context so billing and trust stay tied to the query that produced the data.", "operationId": "headFirehose", "parameters": [ { "in": "query", "name": "place", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Place" } }, { "in": "query", "name": "issue", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Issue" } }, { "in": "query", "name": "actor_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Actor Type" } }, { "in": "query", "name": "signal_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Signal Type" } }, { "in": "query", "name": "source_class", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Class" } }, { "in": "query", "name": "visibility", "required": false, "schema": { "default": "workspace", "enum": [ "workspace", "partner", "public", "reviewer" ], "title": "Visibility", "type": "string" } }, { "in": "query", "name": "since", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Since" } }, { "in": "query", "name": "until", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Until" } }, { "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "sort", "required": false, "schema": { "default": "detected_at_desc", "enum": [ "detected_at_desc", "occurred_at_desc", "relevance_desc" ], "title": "Sort", "type": "string" } }, { "in": "header", "name": "Accept", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accept" } }, { "in": "header", "name": "X-Request-ID", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Request-Id" } }, { "in": "header", "name": "Traceparent", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Traceparent" } }, { "in": "header", "name": "Tracestate", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tracestate" } }, { "in": "header", "name": "Prefer", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Prefer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Probe Firehose", "tags": [ "firehose" ] } }, "/api/firehose/public": { "get": { "description": "Return a public-safe Firehose proof snapshot.\n\nUse this Firehose operation to query or observe source-backed civic signals for an authenticated workspace. Preserve workspace, usage, signal, and evidence context so billing and trust stay tied to the query that produced the data.", "operationId": "getPublicFirehose", "parameters": [ { "in": "query", "name": "place", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Place" } }, { "in": "query", "name": "issue", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Issue" } }, { "in": "query", "name": "signal_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Signal Type" } }, { "in": "query", "name": "source_class", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Class" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 50, "minimum": 1, "title": "Limit", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicFirehoseSnapshot" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get Public Firehose", "tags": [ "firehose" ] } }, "/api/firehose/public/events": { "get": { "description": "Stream public-safe Firehose proof events.\n\nUse this Firehose operation to query or observe source-backed civic signals for an authenticated workspace. Preserve workspace, usage, signal, and evidence context so billing and trust stay tied to the query that produced the data.", "operationId": "streamPublicFirehoseEvents", "parameters": [ { "in": "query", "name": "place", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Place" } }, { "in": "query", "name": "issue", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Issue" } }, { "in": "query", "name": "signal_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Signal Type" } }, { "in": "query", "name": "source_class", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Class" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 50, "minimum": 1, "title": "Limit", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Stream Public Firehose Events", "tags": [ "firehose" ] } }, "/api/firehose/sessions": { "post": { "description": "Create a durable observed Firehose query when filters are too rich for URL parameters or a client needs stable live-session URLs.\n\nUse this Firehose operation to query or observe source-backed civic signals for an authenticated workspace. Preserve workspace, usage, signal, and evidence context so billing and trust stay tied to the query that produced the data.", "operationId": "createFirehoseSession", "parameters": [ { "in": "header", "name": "Idempotency-Key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } }, { "in": "header", "name": "Content-Type", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content-Type" } }, { "in": "header", "name": "Accept", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accept" } }, { "in": "header", "name": "X-Request-ID", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Request-Id" } }, { "in": "header", "name": "Traceparent", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Traceparent" } }, { "in": "header", "name": "Tracestate", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tracestate" } }, { "in": "header", "name": "Prefer", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Prefer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FirehoseSessionRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FirehoseSession" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create a Firehose session", "tags": [ "firehose" ] } }, "/api/firehose/sessions/{session_id}": { "get": { "description": "Return the current snapshot for a durable Firehose session. The MVP stub keeps the session readable and typed before real persisted sessions exist.\n\nUse this Firehose operation to query or observe source-backed civic signals for an authenticated workspace. Preserve workspace, usage, signal, and evidence context so billing and trust stay tied to the query that produced the data.", "operationId": "getFirehoseSession", "parameters": [ { "in": "path", "name": "session_id", "required": true, "schema": { "title": "Session Id", "type": "string" } }, { "in": "header", "name": "Accept", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accept" } }, { "in": "header", "name": "X-Request-ID", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Request-Id" } }, { "in": "header", "name": "Traceparent", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Traceparent" } }, { "in": "header", "name": "Tracestate", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tracestate" } }, { "in": "header", "name": "Prefer", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Prefer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FirehoseSnapshot" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get Firehose session", "tags": [ "firehose" ] } }, "/api/firehose/sessions/{session_id}/events": { "get": { "description": "Stream Server-Sent Events for a durable Firehose session. Clients can reconnect with Last-Event-ID without changing the query contract.\n\nUse this Firehose operation to query or observe source-backed civic signals for an authenticated workspace. Preserve workspace, usage, signal, and evidence context so billing and trust stay tied to the query that produced the data.", "operationId": "streamFirehoseSessionEvents", "parameters": [ { "in": "path", "name": "session_id", "required": true, "schema": { "title": "Session Id", "type": "string" } }, { "in": "header", "name": "Last-Event-ID", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last-Event-Id" } }, { "in": "header", "name": "Accept", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accept" } }, { "in": "header", "name": "X-Request-ID", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Request-Id" } }, { "in": "header", "name": "Traceparent", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Traceparent" } }, { "in": "header", "name": "Tracestate", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tracestate" } }, { "in": "header", "name": "Prefer", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Prefer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Stream Firehose session events", "tags": [ "firehose" ] } }, "/api/firehose/source-targets": { "get": { "description": "List Firehose source targets owned by the actor's workspace.\n\nUse this Firehose operation to query or observe source-backed civic signals for an authenticated workspace. Preserve workspace, usage, signal, and evidence context so billing and trust stay tied to the query that produced the data.", "operationId": "listFirehoseSourceTargets", "parameters": [ { "in": "query", "name": "coverage_target_id", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Coverage Target Id" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FirehoseSourceTargetCollectionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List Firehose source targets", "tags": [ "firehose" ] }, "post": { "description": "Create or update a workspace Firehose source target.\n\nUse this Firehose operation to query or observe source-backed civic signals for an authenticated workspace. Preserve workspace, usage, signal, and evidence context so billing and trust stay tied to the query that produced the data.", "operationId": "createFirehoseSourceTarget", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FirehoseSourceTargetRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FirehoseSourceTargetResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create Firehose source target", "tags": [ "firehose" ] } }, "/api/firehose/source-targets/{source_target_id}/runs": { "post": { "description": "Run one source-target check with caller-supplied fetched content.\n\nUse this Firehose operation to query or observe source-backed civic signals for an authenticated workspace. Preserve workspace, usage, signal, and evidence context so billing and trust stay tied to the query that produced the data.", "operationId": "runFirehoseSourceTargetOnce", "parameters": [ { "in": "path", "name": "source_target_id", "required": true, "schema": { "title": "Source Target Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FirehoseSourceTargetRunRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FirehoseSourceTargetRunResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Run Firehose source target once", "tags": [ "firehose" ] } }, "/api/internal/firehose/observation-deliveries": { "post": { "description": "Accept one message-bus delivery for a stored Firehose observation and create signal resources from the delivered observation id. The delivery payload contains only the observation id; Atlas reloads canonical evidence and routing context before writing.", "operationId": "createFirehoseObservationDelivery", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Payload", "type": "object" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FirehoseObservationSignalsResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create a Firehose observation delivery", "tags": [ "firehose-internal" ] } }, "/api/internal/firehose/observations/{observation_id}/signals": { "post": { "description": "Create idempotent Firehose signal resources for one stored observation. This internal endpoint is used after a producer has written the observation row; it preserves the observation as the source of truth and only creates or reuses signal and route records.", "operationId": "createFirehoseObservationSignals", "parameters": [ { "in": "path", "name": "observation_id", "required": true, "schema": { "title": "Observation Id", "type": "string" } } ], "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FirehoseObservationSignalsResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create Firehose signals for an observation", "tags": [ "firehose-internal" ] } }, "/api/issue-areas": { "get": { "description": "List Atlas issue areas or resolve natural-language issue queries.\n\nUse this issue-area operation to translate user intent into stable Atlas filters. Fetch the taxonomy from the API instead of maintaining a second copy in an app or agent prompt.", "operationId": "listIssueAreas", "parameters": [ { "in": "query", "name": "query", "required": false, "schema": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Query" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 25, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueAreaListResponse" } } }, "description": "A paginated collection of Atlas issue areas." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List issue areas", "tags": [ "issue-areas" ] } }, "/api/issue-areas/{issue_area_slug}": { "get": { "description": "Return one Atlas issue area by slug.\n\nUse this issue-area operation to translate user intent into stable Atlas filters. Fetch the taxonomy from the API instead of maintaining a second copy in an app or agent prompt.", "operationId": "getIssueArea", "parameters": [ { "in": "path", "name": "issue_area_slug", "required": true, "schema": { "title": "Issue Area Slug", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueAreaResponse" } } }, "description": "The requested Atlas issue area." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get an issue area", "tags": [ "issue-areas" ] } }, "/api/lists": { "get": { "description": "Return private lists and lists shared with the active paid team.\n\nUse this saved-list operation to collect actors for a signed-in user's later review. Lists are personal workflow artifacts; exports should keep source counts or receipts attached to the actors they describe.", "operationId": "listSavedLists", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SavedListResponse" }, "title": "Response Listsavedlists", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List my saved lists", "tags": [ "lists" ] }, "post": { "description": "Create a saved list owned by the current user.\n\nUse this saved-list operation to collect actors for a signed-in user's later review. Lists are personal workflow artifacts; exports should keep source counts or receipts attached to the actors they describe.", "operationId": "createSavedList", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedListCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedListResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create a saved list", "tags": [ "lists" ] } }, "/api/lists/membership/{entry_id}": { "get": { "description": "Return ids of all of my lists that already contain this entry.\n\nUse this saved-list operation to collect actors for a signed-in user's later review. Lists are personal workflow artifacts; exports should keep source counts or receipts attached to the actors they describe.", "operationId": "getSavedListMembership", "parameters": [ { "in": "path", "name": "entry_id", "required": true, "schema": { "title": "Entry Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "type": "string" }, "title": "Response Getsavedlistmembership", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List my list-memberships for an entry", "tags": [ "lists" ] } }, "/api/lists/{list_id}": { "delete": { "description": "Delete a saved list and (cascade) its items.\n\nUse this saved-list operation to collect actors for a signed-in user's later review. Lists are personal workflow artifacts; exports should keep source counts or receipts attached to the actors they describe.", "operationId": "deleteSavedList", "parameters": [ { "in": "path", "name": "list_id", "required": true, "schema": { "title": "List Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Delete a saved list", "tags": [ "lists" ] }, "get": { "description": "Return a saved list with hydrated entries.\n\nUse this saved-list operation to collect actors for a signed-in user's later review. Lists are personal workflow artifacts; exports should keep source counts or receipts attached to the actors they describe.", "operationId": "getSavedList", "parameters": [ { "in": "path", "name": "list_id", "required": true, "schema": { "title": "List Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedListResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get a saved list", "tags": [ "lists" ] } }, "/api/lists/{list_id}/export": { "get": { "description": "Export one saved list with notes and compact source-count provenance.\n\nUse this saved-list operation to collect actors for a signed-in user's later review. Lists are personal workflow artifacts; exports should keep source counts or receipts attached to the actors they describe.", "operationId": "exportSavedList", "parameters": [ { "in": "path", "name": "list_id", "required": true, "schema": { "title": "List Id", "type": "string" } }, { "in": "query", "name": "format", "required": false, "schema": { "default": "json", "enum": [ "json", "csv" ], "title": "Format", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedListExportResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Export a saved list", "tags": [ "lists" ] } }, "/api/lists/{list_id}/items": { "post": { "description": "Add an entry to a saved list.\n\nUse this saved-list operation to collect actors for a signed-in user's later review. Lists are personal workflow artifacts; exports should keep source counts or receipts attached to the actors they describe.", "operationId": "addSavedListItem", "parameters": [ { "in": "path", "name": "list_id", "required": true, "schema": { "title": "List Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedListItemRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedListItemResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Add an entry to a saved list", "tags": [ "lists" ] } }, "/api/lists/{list_id}/items/{entry_id}": { "delete": { "description": "Remove an entry from a saved list.\n\nUse this saved-list operation to collect actors for a signed-in user's later review. Lists are personal workflow artifacts; exports should keep source counts or receipts attached to the actors they describe.", "operationId": "removeSavedListItem", "parameters": [ { "in": "path", "name": "list_id", "required": true, "schema": { "title": "List Id", "type": "string" } }, { "in": "path", "name": "entry_id", "required": true, "schema": { "title": "Entry Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Remove an entry from a saved list", "tags": [ "lists" ] } }, "/api/lists/{list_id}/sharing": { "patch": { "description": "Only the list owner can change its visibility, within the active team.\n\nUse this saved-list operation to collect actors for a signed-in user's later review. Lists are personal workflow artifacts; exports should keep source counts or receipts attached to the actors they describe.", "operationId": "setSavedListSharing", "parameters": [ { "in": "path", "name": "list_id", "required": true, "schema": { "title": "List Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedListSharingRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedListResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Share or unshare a saved list with my team workspace", "tags": [ "lists" ] } }, "/api/mcp/elicitations/{elicitation_id}/complete": { "post": { "description": "Complete a URL-mode MCP elicitation after first-party identity verification.\n\nUse this access operation before relying on protected workflows. It explains or changes the caller's ability to use authenticated Atlas features, so integrations should surface authorization failures clearly instead of treating them as empty data.", "operationId": "complete_mcp_url_elicitation_api_mcp_elicitations__elicitation_id__complete_post", "parameters": [ { "in": "path", "name": "elicitation_id", "required": true, "schema": { "title": "Elicitation Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/McpElicitationCompleteResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Complete Mcp Url Elicitation", "tags": [ "access" ] } }, "/api/merges": { "get": { "description": "Duplicate profiles editors folded into the profile to keep, newest first.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "listEntryMerges", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 100, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntryMergeCollectionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List profile merges", "tags": [ "moderation" ] }, "post": { "description": "Fold a duplicate into the profile to keep: sources, issue areas, connections, followers, saved-list places, open reports and identity keys move over, the duplicate is retired, and its address opens the kept profile. Cannot be undone.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "createEntryMerge", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MergeCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntryMergeResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Merge a duplicate profile", "tags": [ "moderation" ] } }, "/api/merges/preview": { "get": { "description": "Show what merging one profile into another would move, and anything that stops it. Changes nothing.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "previewEntryMerge", "parameters": [ { "description": "Slug to keep", "in": "query", "name": "keep", "required": true, "schema": { "description": "Slug to keep", "maxLength": 200, "minLength": 1, "title": "Keep", "type": "string" } }, { "description": "Slug to retire", "in": "query", "name": "duplicate", "required": true, "schema": { "description": "Slug to retire", "maxLength": 200, "minLength": 1, "title": "Duplicate", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MergePreviewResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Check a profile merge", "tags": [ "moderation" ] } }, "/api/orgs/{org_id}/annotations": { "get": { "description": "List annotations for the org, optionally filtered by entry_id or source_id.\n\nUse this annotation operation for private workspace context attached to entries or sources. Annotations help teams decide what to do next but are not public evidence.", "operationId": "listOrgAnnotations", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "description": "Filter by entry ID", "in": "query", "name": "entry_id", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by entry ID", "title": "Entry Id" } }, { "description": "Filter by source ID", "in": "query", "name": "source_id", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by source ID", "title": "Source Id" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AnnotationResponse" }, "title": "Response Listorgannotations", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List annotations for org", "tags": [ "org-annotations" ] }, "post": { "description": "Create an annotation on a shared entry or source.\n\nUse this annotation operation for private workspace context attached to entries or sources. Annotations help teams decide what to do next but are not public evidence.", "operationId": "createOrgAnnotation", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnotationCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnotationResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create an annotation", "tags": [ "org-annotations" ] } }, "/api/orgs/{org_id}/annotations/{annotation_id}": { "delete": { "description": "Delete an annotation (author or org admin/owner only).\n\nUse this annotation operation for private workspace context attached to entries or sources. Annotations help teams decide what to do next but are not public evidence.", "operationId": "deleteOrgAnnotation", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "annotation_id", "required": true, "schema": { "title": "Annotation Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Delete an annotation", "tags": [ "org-annotations" ] }, "put": { "description": "Update an annotation (author or org admin/owner only).\n\nUse this annotation operation for private workspace context attached to entries or sources. Annotations help teams decide what to do next but are not public evidence.", "operationId": "updateOrgAnnotation", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "annotation_id", "required": true, "schema": { "title": "Annotation Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnotationUpdateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnotationResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Update an annotation", "tags": [ "org-annotations" ] } }, "/api/orgs/{org_id}/atproto-identities": { "get": { "description": "Return the single active public identity assigned to this organization, or null when none is assigned. The result is limited to the caller's active workspace and is no-store because organization identity administration reveals an account-controlled DID relationship.", "operationId": "getOrganizationAtprotoIdentity", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/OrganizationAtprotoIdentityResponse" }, { "type": "null" } ], "title": "Response Getorganizationatprotoidentity" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get the active organization ATProto identity", "tags": [ "organization-identity" ] }, "post": { "description": "Attach an account-controlled DID as the organization's active public identity.\n\nThe caller must be an owner or admin in the matching workspace and must actively control the\nDID through Atlas. Atlas records the relationship without transferring personal DID control.", "operationId": "attachOrganizationAtprotoIdentity", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationAtprotoIdentityAttachRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationAtprotoIdentityResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Attach Organization Atproto Identity", "tags": [ "organization-identity" ] } }, "/api/orgs/{org_id}/atproto-identities/{identity_id}": { "delete": { "description": "Remove only the public organization association. Owners and admins may always do this; members need an active delegation for this exact identity. The underlying DID remains controlled by its Atlas account.", "operationId": "detachOrganizationAtprotoIdentity", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "identity_id", "required": true, "schema": { "title": "Identity Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationAtprotoIdentityResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Remove the active organization ATProto identity", "tags": [ "organization-identity" ] } }, "/api/orgs/{org_id}/atproto-identities/{identity_id}/delegations": { "get": { "description": "Return only members who currently hold delegated authority for the organization's active ATProto identity. Revoked grants remain auditable but are deliberately excluded, and callers receive a privacy-safe not-found response when the DID is not the active organization identity.", "operationId": "listOrganizationAtprotoIdentityDelegations", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "identity_id", "required": true, "schema": { "title": "Identity Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AtprotoIdentityDelegationResponse" }, "title": "Response Listorganizationatprotoidentitydelegations", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List active delegated identity administrators", "tags": [ "organization-identity" ] }, "post": { "description": "Grant a member revocable authority to administer this organization's active DID.\n\nThe controlling owner or admin retains account-level control; this relation only permits the\nnamed member to act for this workspace identity until an administrator explicitly revokes it.", "operationId": "grantOrganizationAtprotoIdentityDelegation", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "identity_id", "required": true, "schema": { "title": "Identity Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AtprotoIdentityDelegationRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AtprotoIdentityDelegationResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Grant Organization Atproto Delegation", "tags": [ "organization-identity" ] } }, "/api/orgs/{org_id}/atproto-identities/{identity_id}/delegations/{delegate_user_id}": { "delete": { "description": "Revoke a member's organization-specific identity administration immediately.\n\nThe revoked relation remains auditable, while all future actions requiring delegated authority\nfail until an authorized owner or admin grants a new active delegation for the same workspace.", "operationId": "revokeOrganizationAtprotoIdentityDelegation", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "identity_id", "required": true, "schema": { "title": "Identity Id", "type": "string" } }, { "in": "path", "name": "delegate_user_id", "required": true, "schema": { "title": "Delegate User Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AtprotoIdentityDelegationResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Revoke Organization Atproto Delegation", "tags": [ "organization-identity" ] } }, "/api/orgs/{org_id}/briefs": { "get": { "description": "List private Atlas Brief artifacts owned by the workspace.\n\nUse this brief operation to build or export a source-linked workspace artifact. Briefs should carry actors, sources, confidence notes, and review state together.", "operationId": "listOrgBriefs", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgBriefCollectionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List private Atlas Briefs", "tags": [ "org-briefs" ] }, "post": { "description": "Create a private Atlas Brief artifact inside a workspace.\n\nUse this brief operation to build or export a source-linked workspace artifact. Briefs should carry actors, sources, confidence notes, and review state together.", "operationId": "createOrgBrief", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgBriefCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgBriefResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create a private Atlas Brief", "tags": [ "org-briefs" ] } }, "/api/orgs/{org_id}/briefs/{brief_id}": { "get": { "description": "Get one private Atlas Brief artifact owned by the workspace.\n\nUse this brief operation to build or export a source-linked workspace artifact. Briefs should carry actors, sources, confidence notes, and review state together.", "operationId": "getOrgBrief", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "brief_id", "required": true, "schema": { "title": "Brief Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgBriefResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get a private Atlas Brief", "tags": [ "org-briefs" ] }, "patch": { "description": "Update editable memo fields on one private Atlas Brief.\n\nUse this brief operation to build or export a source-linked workspace artifact. Briefs should carry actors, sources, confidence notes, and review state together.", "operationId": "updateOrgBrief", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "brief_id", "required": true, "schema": { "title": "Brief Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgBriefUpdateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgBriefResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Update a private Atlas Brief", "tags": [ "org-briefs" ] } }, "/api/orgs/{org_id}/briefs/{brief_id}/export": { "get": { "description": "Export one private Atlas Brief with source receipts and linked context.\n\nUse this brief operation to build or export a source-linked workspace artifact. Briefs should carry actors, sources, confidence notes, and review state together.", "operationId": "exportOrgBrief", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "brief_id", "required": true, "schema": { "title": "Brief Id", "type": "string" } }, { "in": "query", "name": "format", "required": false, "schema": { "default": "json", "enum": [ "json", "csv" ], "title": "Format", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgBriefExportResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Export a private Atlas Brief", "tags": [ "org-briefs" ] } }, "/api/orgs/{org_id}/coverage-reports": { "get": { "description": "Return a funder-facing report of public coverage outcomes.\n\nUse this report operation to explain workspace coverage outcomes. Report data should make public coverage and data boundaries clear instead of implying complete impact.", "operationId": "getOrgCoverageUnderwritingReport", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoverageUnderwritingReportResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get coverage underwriting report", "tags": [ "org-coverage-reports" ] } }, "/api/orgs/{org_id}/coverage-targets": { "get": { "description": "List coverage targets owned by a workspace.\n\nUse this coverage-target operation to track places, issues, actor types, and source gaps that a workspace intends to improve. Link evidence and review state before treating a target as complete.", "operationId": "listOrgCoverageTargets", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoverageTargetCollectionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List workspace coverage targets", "tags": [ "org-coverage-targets" ] }, "post": { "description": "Create a coverage target with status derived from linked evidence.\n\nUse this coverage-target operation to track places, issues, actor types, and source gaps that a workspace intends to improve. Link evidence and review state before treating a target as complete.", "operationId": "createOrgCoverageTarget", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoverageTargetCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoverageTargetResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create a workspace coverage target", "tags": [ "org-coverage-targets" ] } }, "/api/orgs/{org_id}/coverage-targets/export": { "get": { "description": "Export coverage targets as JSON or CSV report rows.\n\nUse this coverage-target operation to track places, issues, actor types, and source gaps that a workspace intends to improve. Link evidence and review state before treating a target as complete.", "operationId": "exportOrgCoverageTargets", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "query", "name": "format", "required": false, "schema": { "default": "json", "enum": [ "json", "csv" ], "title": "Format", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoverageReportResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Export workspace coverage targets", "tags": [ "org-coverage-targets" ] } }, "/api/orgs/{org_id}/coverage-targets/import": { "post": { "description": "Import coverage targets from a customer onboarding CSV.\n\nUse this coverage-target operation to track places, issues, actor types, and source gaps that a workspace intends to improve. Link evidence and review state before treating a target as complete.", "operationId": "importOrgCoverageTargets", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoverageTargetImportRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoverageTargetImportResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Import workspace coverage targets", "tags": [ "org-coverage-targets" ] } }, "/api/orgs/{org_id}/coverage-targets/{target_id}": { "get": { "description": "Return a workspace coverage target with linked evidence for review.\n\nUse this coverage-target operation to track places, issues, actor types, and source gaps that a workspace intends to improve. Link evidence and review state before treating a target as complete.", "operationId": "getOrgCoverageTarget", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "target_id", "required": true, "schema": { "title": "Target Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoverageTargetDetailResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get workspace coverage target detail", "tags": [ "org-coverage-targets" ] }, "patch": { "description": "Update a coverage target and notify watched workspaces of status changes.\n\nUse this coverage-target operation to track places, issues, actor types, and source gaps that a workspace intends to improve. Link evidence and review state before treating a target as complete.", "operationId": "updateOrgCoverageTarget", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "target_id", "required": true, "schema": { "title": "Target Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoverageTargetUpdateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoverageTargetResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Update a workspace coverage target", "tags": [ "org-coverage-targets" ] } }, "/api/orgs/{org_id}/discovery-runs": { "get": { "description": "List private discovery runs owned by the org.\n\nUse this organization discovery operation for private workspace research records. Keep private run state separate from public directory entries until publication is explicit.", "operationId": "listOrgDiscoveryRuns", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "description": "Filter by status", "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by status", "title": "Status" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "description": "Pagination cursor", "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Pagination cursor", "title": "Cursor" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgDiscoveryRunCollectionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List org's private discovery runs", "tags": [ "org-discovery-runs" ] }, "post": { "description": "Start a private discovery run for the org (record only, no pipeline execution).\n\nUse this organization discovery operation for private workspace research records. Keep private run state separate from public directory entries until publication is explicit.", "operationId": "createOrgDiscoveryRun", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgDiscoveryRunStartRequest" } } }, "required": true }, "responses": { "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgDiscoveryRunResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Start a private discovery run", "tags": [ "org-discovery-runs" ] } }, "/api/orgs/{org_id}/discovery-runs/{run_id}": { "get": { "description": "Get details of a private discovery run owned by the org.\n\nUse this organization discovery operation for private workspace research records. Keep private run state separate from public directory entries until publication is explicit.", "operationId": "getOrgDiscoveryRun", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "run_id", "required": true, "schema": { "title": "Run Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgDiscoveryRunResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get a private discovery run", "tags": [ "org-discovery-runs" ] } }, "/api/orgs/{org_id}/entries": { "get": { "description": "List private entries owned by the org.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.", "operationId": "listOrgEntries", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/EntityDetailResponse" }, "title": "Response Listorgentries", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List private entries for org", "tags": [ "org-entries" ] }, "post": { "description": "Create a private entry owned by the org.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.", "operationId": "createOrgEntry", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityDetailResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create a private entry for org", "tags": [ "org-entries" ] } }, "/api/orgs/{org_id}/entries/directory-config": { "get": { "description": "Return the editable public framing for a workspace directory.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.", "operationId": "getOrgDirectoryConfig", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DirectoryConfigResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get workspace directory configuration", "tags": [ "org-entries" ] }, "put": { "description": "Persist the public title, scope, and methodology for a workspace directory.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.", "operationId": "updateOrgDirectoryConfig", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DirectoryConfigRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DirectoryConfigResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Update workspace directory configuration", "tags": [ "org-entries" ] } }, "/api/orgs/{org_id}/entries/directory-domain": { "put": { "description": "Create or replace the workspace directory custom domain resource.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.", "operationId": "putOrgDirectoryDomain", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DirectoryDomainRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DirectoryDomainResponse" } } }, "description": "Successful Response" }, "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DirectoryDomainResponse" } } }, "description": "Directory domain created" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Configure a workspace directory domain", "tags": [ "org-entries" ] } }, "/api/orgs/{org_id}/entries/directory-domain/verification": { "put": { "description": "Mark a workspace directory custom domain verified when DNS TXT proof matches.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.", "operationId": "putOrgDirectoryDomainVerification", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DirectoryDomainResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Verify a workspace directory domain", "tags": [ "org-entries" ] } }, "/api/orgs/{org_id}/entries/directory-templates": { "get": { "description": "List templates that seed a workspace directory's issue and place scope.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.", "operationId": "listOrgDirectoryTemplates", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DirectoryTemplatesResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List workspace directory templates", "tags": [ "org-entries" ] } }, "/api/orgs/{org_id}/entries/public-directory": { "get": { "description": "Return source-linked entries a workspace has published publicly.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.\n\nUse this endpoint for source-linked records a workspace has deliberately published. Private briefs, annotations, and planning notes are intentionally excluded.", "operationId": "getPublicOrgDirectory", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicDirectoryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get public workspace directory", "tags": [ "org-entries" ] } }, "/api/orgs/{org_id}/entries/{entry_id}": { "delete": { "description": "Delete a private entry and its ownership record.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.", "operationId": "deleteOrgEntry", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "entry_id", "required": true, "schema": { "title": "Entry Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Delete a private entry", "tags": [ "org-entries" ] }, "get": { "description": "Get a single private entry owned by the org.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.", "operationId": "getOrgEntry", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "entry_id", "required": true, "schema": { "title": "Entry Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityDetailResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get a private entry", "tags": [ "org-entries" ] }, "put": { "description": "Update a private entry or propose public fact changes for review.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.", "operationId": "updateOrgEntry", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "entry_id", "required": true, "schema": { "title": "Entry Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityUpdateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityDetailResponse" } } }, "description": "Successful Response" }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StagedEntityUpdateResponse" } } }, "description": "Accepted" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Update a workspace entry", "tags": [ "org-entries" ] } }, "/api/orgs/{org_id}/entries/{entry_id}/publish": { "put": { "description": "Publish a workspace-owned entry into that workspace's public directory.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.\n\nPublishing is a visibility decision. Only publish workspace entries whose public fields and sources are safe for the directory audience.", "operationId": "publishOrgEntry", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "entry_id", "required": true, "schema": { "title": "Entry Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublishEntryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Publish a workspace entry", "tags": [ "org-entries" ] } }, "/api/orgs/{org_id}/quality-summary": { "get": { "description": "Return source coverage, duplicate risk, confidence, and stale-record signals.\n\nUse this quality operation to inspect source coverage, duplicate risk, stale-record signals, and confidence indicators for a workspace. These signals guide review rather than replacing it.", "operationId": "getOrgQualitySummary", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "query", "name": "stale_after_days", "required": false, "schema": { "default": 365, "maximum": 3650, "minimum": 1, "title": "Stale After Days", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgQualitySummaryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get workspace ingestion quality summary", "tags": [ "org-quality" ] } }, "/api/orgs/{org_id}/usage-summary": { "get": { "description": "Return non-invasive renewal usage counts for one workspace.\n\nUse this usage operation for customer-safe renewal proof and integration activity. Usage counts explain how a workspace used Atlas without exposing sensitive notes.", "operationId": "getOrgUsageSummary", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgUsageSummaryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get workspace usage summary", "tags": [ "org-usage" ] } }, "/api/orgs/{org_id}/usage-summary/audit-log": { "get": { "description": "Return a customer-safe usage audit log for one workspace.\n\nUse this usage operation for customer-safe renewal proof and integration activity. Usage counts explain how a workspace used Atlas without exposing sensitive notes.", "operationId": "getOrgUsageAuditLog", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 25, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgUsageAuditLogResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get workspace usage audit log", "tags": [ "org-usage" ] } }, "/api/orgs/{org_id}/usage-summary/evidence-opens": { "post": { "description": "Record a deliberate workspace source-receipt open for renewal proof.\n\nUse this usage operation for customer-safe renewal proof and integration activity. Usage counts explain how a workspace used Atlas without exposing sensitive notes.", "operationId": "recordOrgEvidenceOpen", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgEvidenceOpenRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgUsageEventResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Record source evidence opened", "tags": [ "org-usage" ] } }, "/api/orgs/{org_id}/usage-summary/integrations": { "get": { "description": "Return customer-safe workspace integration activity for one workspace.\n\nUse this usage operation for customer-safe renewal proof and integration activity. Usage counts explain how a workspace used Atlas without exposing sensitive notes.", "operationId": "getOrgIntegrationMonitoring", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgIntegrationMonitoringResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get workspace integration activity", "tags": [ "org-usage" ] } }, "/api/orgs/{org_id}/usage-summary/renewal-packet": { "get": { "description": "Export customer-success renewal proof for one workspace.\n\nUse this usage operation for customer-safe renewal proof and integration activity. Usage counts explain how a workspace used Atlas without exposing sensitive notes.", "operationId": "exportOrgUsageRenewalPacket", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "query", "name": "format", "required": false, "schema": { "default": "json", "enum": [ "json", "markdown" ], "title": "Format", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgRenewalPacketResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Export workspace renewal packet", "tags": [ "org-usage" ] } }, "/api/orgs/{org_id}/watch-digest": { "get": { "description": "Return digest events for resources the workspace watches.\n\nUse this digest operation to review changes for watched workspace resources. Digest items should send users back to source-backed records before they act.", "operationId": "listOrgWatchDigest", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WatchDigestResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List workspace watch digest", "tags": [ "org-watch-digest" ] } }, "/api/orgs/{org_id}/watches": { "get": { "description": "List watch subscriptions for one workspace.\n\nUse this watch operation to subscribe a workspace to changes on an actor, brief, target, or related resource. Watches are monitoring preferences, not public claims.", "operationId": "listOrgWatches", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgWatchCollectionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List workspace watches", "tags": [ "org-watches" ] } }, "/api/orgs/{org_id}/watches/{resource_type}/{resource_id}": { "delete": { "description": "Remove a workspace watch.\n\nUse this watch operation to subscribe a workspace to changes on an actor, brief, target, or related resource. Watches are monitoring preferences, not public claims.", "operationId": "unwatchOrgResource", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "resource_type", "required": true, "schema": { "enum": [ "entry", "coverage_target" ], "title": "Resource Type", "type": "string" } }, { "in": "path", "name": "resource_id", "required": true, "schema": { "title": "Resource Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Unwatch a workspace resource", "tags": [ "org-watches" ] }, "get": { "description": "Return whether the workspace watches one resource.\n\nUse this watch operation to subscribe a workspace to changes on an actor, brief, target, or related resource. Watches are monitoring preferences, not public claims.", "operationId": "getOrgWatchStatus", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "resource_type", "required": true, "schema": { "enum": [ "entry", "coverage_target" ], "title": "Resource Type", "type": "string" } }, { "in": "path", "name": "resource_id", "required": true, "schema": { "title": "Resource Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgWatchStatusResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get workspace watch status", "tags": [ "org-watches" ] }, "put": { "description": "Create or update a workspace watch.\n\nUse this watch operation to subscribe a workspace to changes on an actor, brief, target, or related resource. Watches are monitoring preferences, not public claims.", "operationId": "watchOrgResource", "parameters": [ { "in": "path", "name": "org_id", "required": true, "schema": { "title": "Org Id", "type": "string" } }, { "in": "path", "name": "resource_type", "required": true, "schema": { "enum": [ "entry", "coverage_target" ], "title": "Resource Type", "type": "string" } }, { "in": "path", "name": "resource_id", "required": true, "schema": { "title": "Resource Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/OrgWatchRequest" }, { "type": "null" } ], "title": "Payload" } } } }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgWatchResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Watch a workspace resource", "tags": [ "org-watches" ] } }, "/api/places/{place_key}": { "get": { "description": "Return the canonical Atlas identity for a normalized place key.\n\nUse this place operation when the user's question is local. Place-first results are most useful when paired with issue filters, source review, and coverage context.", "operationId": "getPlace", "parameters": [ { "in": "path", "name": "place_key", "required": true, "schema": { "title": "Place Key", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlaceIdentityResponse" } } }, "description": "The canonical Atlas place resource." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get a place", "tags": [ "places" ] } }, "/api/places/{place_key}/coverage": { "get": { "description": "Return Atlas coverage counts and gaps for one place.\n\nUse this place operation when the user's question is local. Place-first results are most useful when paired with issue filters, source review, and coverage context.", "operationId": "getPlaceCoverage", "parameters": [ { "in": "path", "name": "place_key", "required": true, "schema": { "title": "Place Key", "type": "string" } }, { "in": "query", "name": "kind", "required": false, "schema": { "anyOf": [ { "enum": [ "polity", "borough", "city", "county", "metro", "neighborhood", "district", "service_area", "state" ], "type": "string" }, { "type": "null" } ], "title": "Kind" } }, { "in": "query", "name": "issue_area", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Issue Area" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlaceCoverageResponse" } } }, "description": "Atlas coverage metadata for the requested place." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get place coverage", "tags": [ "places" ] } }, "/api/places/{place_key}/entities": { "get": { "description": "List Atlas entities associated with one place, with optional issue-area, entity-type, source-type, text, and sort controls.\n\nUse this place operation when the user's question is local. Place-first results are most useful when paired with issue filters, source review, and coverage context.\n\nThis is the most natural public discovery entry point: choose a place first, then refine by issue area or actor type. Use coverage and sources before interpreting absence as a real local gap.", "operationId": "listPlaceEntities", "parameters": [ { "in": "path", "name": "place_key", "required": true, "schema": { "title": "Place Key", "type": "string" } }, { "in": "query", "name": "kind", "required": false, "schema": { "anyOf": [ { "enum": [ "polity", "borough", "city", "county", "metro", "neighborhood", "district", "service_area", "state" ], "type": "string" }, { "type": "null" } ], "title": "Kind" } }, { "in": "query", "name": "issue_area", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Issue Area" } }, { "in": "query", "name": "entity_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Entity Type" } }, { "in": "query", "name": "source_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Type" } }, { "in": "query", "name": "text", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Text" } }, { "in": "query", "name": "sort", "required": false, "schema": { "default": "relevance", "enum": [ "relevance", "source_count", "recent", "name" ], "title": "Sort", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 20, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityCollectionResponse" } } }, "description": "A paginated collection of Atlas entities for the requested place." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List place entities", "tags": [ "places" ] } }, "/api/places/{place_key}/issue-signals": { "get": { "description": "Return structured issue-area signals for one place based on Atlas entities and sources.\n\nUse this place operation when the user's question is local. Place-first results are most useful when paired with issue filters, source review, and coverage context.", "operationId": "getPlaceIssueSignals", "parameters": [ { "in": "path", "name": "place_key", "required": true, "schema": { "title": "Place Key", "type": "string" } }, { "in": "query", "name": "kind", "required": false, "schema": { "anyOf": [ { "enum": [ "polity", "borough", "city", "county", "metro", "neighborhood", "district", "service_area", "state" ], "type": "string" }, { "type": "null" } ], "title": "Kind" } }, { "in": "query", "name": "issue_area", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Issue Area" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueSignalsResponse" } } }, "description": "Issue-area signal summaries for the requested place." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get place issue signals", "tags": [ "places" ] } }, "/api/places/{place_key}/page-context": { "get": { "description": "Return the durable public context used to render one place page.\n\nUse this place operation when the user's question is local. Place-first results are most useful when paired with issue filters, source review, and coverage context.", "operationId": "getPlacePageContext", "parameters": [ { "in": "path", "name": "place_key", "required": true, "schema": { "title": "Place Key", "type": "string" } }, { "in": "query", "name": "kind", "required": false, "schema": { "anyOf": [ { "enum": [ "polity", "borough", "city", "county", "metro", "neighborhood", "district", "service_area", "state" ], "type": "string" }, { "type": "null" } ], "title": "Kind" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlacePageContextResponse" } } }, "description": "Public context for the requested place page." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get place page context", "tags": [ "places" ] } }, "/api/places/{place_key}/profile": { "get": { "description": "Return structured demographic and socioeconomic context for one place.\n\nUse this place operation when the user's question is local. Place-first results are most useful when paired with issue filters, source review, and coverage context.", "operationId": "getPlaceProfile", "parameters": [ { "in": "path", "name": "place_key", "required": true, "schema": { "title": "Place Key", "type": "string" } }, { "in": "query", "name": "kind", "required": false, "schema": { "anyOf": [ { "enum": [ "polity", "borough", "city", "county", "metro", "neighborhood", "district", "service_area", "state" ], "type": "string" }, { "type": "null" } ], "title": "Kind" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlaceProfileResponse" } } }, "description": "The Atlas place profile for the requested place." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get a place profile", "tags": [ "places" ] } }, "/api/places/{place_key}/sources": { "get": { "description": "List source records associated with one place, with optional issue-area, source-type, and text filters.\n\nUse this place operation when the user's question is local. Place-first results are most useful when paired with issue filters, source review, and coverage context.\n\nUse place sources to understand which public documents are shaping a local result set. A place can look well-covered because one source family is dense, so inspect the source mix before drawing conclusions.", "operationId": "listPlaceSources", "parameters": [ { "in": "path", "name": "place_key", "required": true, "schema": { "title": "Place Key", "type": "string" } }, { "in": "query", "name": "kind", "required": false, "schema": { "anyOf": [ { "enum": [ "polity", "borough", "city", "county", "metro", "neighborhood", "district", "service_area", "state" ], "type": "string" }, { "type": "null" } ], "title": "Kind" } }, { "in": "query", "name": "issue_area", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Issue Area" } }, { "in": "query", "name": "source_type", "required": false, "schema": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Type" } }, { "in": "query", "name": "text", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Text" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 20, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceCollectionResponse" } } }, "description": "A paginated collection of Atlas sources for the requested place." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List place sources", "tags": [ "places" ] } }, "/api/profiles/claims/me": { "get": { "description": "Returns all profile verifications belonging to the authenticated user.\n\nUse this profile-claim operation when a real profile subject needs controlled access to their own Atlas presence. Keep subject-managed fields distinct from source-backed public claims so user edits do not overwrite provenance.", "operationId": "listMyProfileClaims", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ProfileClaimResponse" }, "title": "Response Listmyprofileclaims", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List my profile verifications", "tags": [ "claims" ] } }, "/api/profiles/claims/review": { "get": { "description": "List pending profile representative verifications for reviewer action.\n\nUse this profile-claim operation when a real profile subject needs controlled access to their own Atlas presence. Keep subject-managed fields distinct from source-backed public claims so user edits do not overwrite provenance.", "operationId": "listProfileClaimReviews", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileClaimReviewListResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List profile verifications for review", "tags": [ "claims" ] } }, "/api/profiles/claims/review/atproto/revalidate": { "post": { "description": "Flag linked ATProto profiles whose current handle and DID no longer match.\n\nUse this profile-claim operation when a real profile subject needs controlled access to their own Atlas presence. Keep subject-managed fields distinct from source-backed public claims so user edits do not overwrite provenance.", "operationId": "revalidateProfileAtprotoLinks", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileAtprotoRevalidationResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Recheck linked ATProto profiles", "tags": [ "claims" ] } }, "/api/profiles/claims/review/{claim_id}/approve": { "post": { "description": "Verify a pending profile representative after reviewer confirmation.\n\nUse this profile-claim operation when a real profile subject needs controlled access to their own Atlas presence. Keep subject-managed fields distinct from source-backed public claims so user edits do not overwrite provenance.", "operationId": "approveProfileClaimReview", "parameters": [ { "in": "path", "name": "claim_id", "required": true, "schema": { "title": "Claim Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileClaimReviewDecisionRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileClaimResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Approve a profile verification", "tags": [ "claims" ] } }, "/api/profiles/claims/review/{claim_id}/reject": { "post": { "description": "Reject a pending profile representative when the evidence does not match.\n\nUse this profile-claim operation when a real profile subject needs controlled access to their own Atlas presence. Keep subject-managed fields distinct from source-backed public claims so user edits do not overwrite provenance.", "operationId": "rejectProfileClaimReview", "parameters": [ { "in": "path", "name": "claim_id", "required": true, "schema": { "title": "Claim Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileClaimReviewDecisionRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileClaimResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Reject a profile verification", "tags": [ "claims" ] } }, "/api/profiles/claims/verify-email": { "post": { "description": "Exchanges an email verification token for verified representative access.\n\nUse this profile-claim operation when a real profile subject needs controlled access to their own Atlas presence. Keep subject-managed fields distinct from source-backed public claims so user edits do not overwrite provenance.", "operationId": "verifyProfileClaim", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileClaimVerifyRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileClaimResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Verify by email", "tags": [ "claims" ] } }, "/api/profiles/{slug}/atproto-identity": { "delete": { "description": "Let a verified profile steward remove the current public ATProto relation while retaining its audit history. The global DID and every account-control relationship remain intact, so this profile action cannot disconnect or transfer the external account.\n\nUse this identity operation for a signed-in person's external ATProto connections or their verified public-profile representation. Keep account control, profile stewardship, and workspace membership separate when interpreting or changing these relationships.", "operationId": "detachProfileAtprotoIdentity", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "title": "Slug", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Remove a public ATProto identity", "tags": [ "identity" ] }, "put": { "description": "Let a verified profile steward attach a currently controlled and freshly resolved ATProto identity. Replacing another public identity requires explicit confirmation and writes a new auditable relation without changing account control or workspace membership.\n\nUse this identity operation for a signed-in person's external ATProto connections or their verified public-profile representation. Keep account control, profile stewardship, and workspace membership separate when interpreting or changing these relationships.", "operationId": "attachProfileAtprotoIdentity", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "title": "Slug", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileAtprotoIdentityAttachRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileAtprotoIdentityLinkResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Attach a verified public ATProto identity", "tags": [ "identity" ] } }, "/api/profiles/{slug}/claim": { "post": { "description": "Starts profile verification for the authenticated user.\n\nUse this profile-claim operation when a real profile subject needs controlled access to their own Atlas presence. Keep subject-managed fields distinct from source-backed public claims so user edits do not overwrite provenance.", "operationId": "initiateProfileClaim", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "title": "Slug", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileClaimRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileClaimResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Start profile verification", "tags": [ "claims" ] } }, "/api/profiles/{slug}/claims/{claim_id}/verify-domain": { "post": { "description": "Checks the DNS record for an organization profile verification.\n\nUse this profile-claim operation when a real profile subject needs controlled access to their own Atlas presence. Keep subject-managed fields distinct from source-backed public claims so user edits do not overwrite provenance.", "operationId": "verifyProfileClaimDomain", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "title": "Slug", "type": "string" } }, { "in": "path", "name": "claim_id", "required": true, "schema": { "title": "Claim Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileClaimProofRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileClaimResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Verify an organization domain", "tags": [ "claims" ] } }, "/api/profiles/{slug}/follow": { "delete": { "description": "Drop the authenticated user's subscription to a profile.\n\nUse this follow operation to manage a user's subscription to profile activity. Follow state controls personal notifications and feed contents, not public record visibility.", "operationId": "unfollowProfile", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "title": "Slug", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Unfollow a profile", "tags": [ "follows" ] }, "get": { "description": "Return the current user's follow record for a profile (or null).\n\nUse this follow operation to manage a user's subscription to profile activity. Follow state controls personal notifications and feed contents, not public record visibility.", "operationId": "getProfileFollow", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "title": "Slug", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ProfileFollowResponse" }, { "type": "null" } ], "title": "Response Getprofilefollow" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Get follow status", "tags": [ "follows" ] }, "post": { "description": "Subscribe the authenticated user to updates on a profile.\n\nUse this follow operation to manage a user's subscription to profile activity. Follow state controls personal notifications and feed contents, not public record visibility.", "operationId": "followProfile", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "title": "Slug", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileFollowResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Follow a profile", "tags": [ "follows" ] } }, "/api/profiles/{slug}/manage": { "patch": { "description": "Update fields on a verified profile: custom bio, photo URL, suppressed sources, and preferred contact. Requires verified representative access.\n\nUse this profile-claim operation when a real profile subject needs controlled access to their own Atlas presence. Keep subject-managed fields distinct from source-backed public claims so user edits do not overwrite provenance.", "operationId": "manageProfile", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "title": "Slug", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileManageRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Response Manageprofile", "type": "object" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Update verified profile fields", "tags": [ "claims" ] } }, "/api/public-directories": { "get": { "description": "List workspace directories that currently expose at least one published public record.\n\nUse this workspace-entry operation to manage private records or publish reviewed records into a public workspace directory. Do not treat private notes as public evidence.", "operationId": "listPublicDirectories", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicDirectoryIndexResponse" } } }, "description": "A collection of public directory URLs eligible for indexing." } }, "summary": "List public directories", "tags": [ "org-entries" ] } }, "/api/review-queue": { "get": { "description": "List publication holds and proposed edits to public profiles.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "listReviewQueue", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "title": "Offset", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReviewQueueListResponse" } } }, "description": "A collection of pending review-queue items." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List pending discovery reviews", "tags": [ "moderation" ] } }, "/api/review-queue/editorial-candidates": { "post": { "description": "Keep a researched organization private until an editor publishes it.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "createEditorialCandidate", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EditorialCandidateCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EditorialCandidateCreateResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Stage an official-source organization for editorial review", "tags": [ "moderation" ] } }, "/api/review-queue/editorial-profiles/{entity_id}/changes": { "post": { "description": "Keep the current public facts in place until an editor reviews the change.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "stageEditorialProfileChange", "parameters": [ { "in": "path", "name": "entity_id", "required": true, "schema": { "title": "Entity Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EditorialCandidateCreateRequest" } } }, "required": true }, "responses": { "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EditorialCandidateCreateResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Stage a sourced correction to a published organization", "tags": [ "moderation" ] } }, "/api/review-queue/source-staleness-scan": { "post": { "description": "Enqueue public records whose source receipts need freshness review.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "scanSourceStalenessReviewQueue", "parameters": [ { "in": "query", "name": "org_id", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Org Id" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceStalenessReviewScanResponse" } } }, "description": "Review items created by the stale-source scan." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Scan public records for stale source review", "tags": [ "moderation" ] } }, "/api/review-queue/website-candidate-scan": { "post": { "description": "Stage one linked organization-site source as a website proposal without publishing it.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "scanWebsiteCandidates", "parameters": [ { "in": "query", "name": "city", "required": true, "schema": { "minLength": 1, "title": "City", "type": "string" } }, { "in": "query", "name": "state", "required": true, "schema": { "maxLength": 2, "minLength": 2, "title": "State", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebsiteCandidateScanResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Prepare organization website candidates for review", "tags": [ "moderation" ] } }, "/api/review-queue/{item_id}/approve": { "post": { "description": "Publish a held record or apply a proposed public-profile change.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "approveReviewQueueItem", "parameters": [ { "in": "path", "name": "item_id", "required": true, "schema": { "title": "Item Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/EditorialDecisionRequest" }, { "type": "null" } ], "title": "Payload" } } } }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReviewQueueItemResponse" } } }, "description": "The approved review-queue item." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Approve a discovery review item", "tags": [ "moderation" ] } }, "/api/review-queue/{item_id}/reject": { "post": { "description": "Leave a held record unpublished or keep the current public-profile facts.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "rejectReviewQueueItem", "parameters": [ { "in": "path", "name": "item_id", "required": true, "schema": { "title": "Item Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/EditorialDecisionRequest" }, { "type": "null" } ], "title": "Payload" } } } }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReviewQueueItemResponse" } } }, "description": "The rejected review-queue item." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Reject a discovery review item", "tags": [ "moderation" ] } }, "/api/service-status": { "get": { "description": "Whether checkout is open. Changes within a minute of the operator's switch.\n\nUse this access operation before relying on protected workflows. It explains or changes the caller's ability to use authenticated Atlas features, so integrations should surface authorization failures clearly instead of treating them as empty data.", "operationId": "getServiceStatus", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceStatusResponse" } } }, "description": "Successful Response" } }, "summary": "Service status", "tags": [ "access" ] } }, "/api/source-flags": { "get": { "description": "List anonymous flags that have been submitted for one Atlas source.\n\nUse this flag operation to report or review possible corrections. A flag is a review signal; keep the original source context available until a moderator resolves it.", "operationId": "listSourceFlags", "parameters": [ { "in": "query", "name": "source_id", "required": true, "schema": { "title": "Source Id", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceFlagListResponse" } } }, "description": "A paginated collection of source flags." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List source flags", "tags": [ "flags" ] }, "post": { "description": "Submit an anonymous flag for an Atlas source record that looks stale or incorrect.\n\nUse this flag operation to report or review possible corrections. A flag is a review signal; keep the original source context available until a moderator resolves it.", "operationId": "createSourceFlag", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceFlagCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FlagReceipt" } } }, "description": "The newly created source flag." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Create a source flag", "tags": [ "flags" ] } }, "/api/source-flags/{flag_id}/dismiss": { "post": { "description": "Close a source correction or dispute as dismissed.\n\nUse this flag operation to report or review possible corrections. A flag is a review signal; keep the original source context available until a moderator resolves it.", "operationId": "dismissSourceFlag", "parameters": [ { "in": "path", "name": "flag_id", "required": true, "schema": { "title": "Flag Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/EditorialDecisionRequest" }, { "type": "null" } ], "title": "Payload" } } } }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FlagResponse" } } }, "description": "The dismissed source flag." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Dismiss a source flag", "tags": [ "flags" ] } }, "/api/source-flags/{flag_id}/resolve": { "post": { "description": "Close a source correction or dispute as resolved.\n\nUse this flag operation to report or review possible corrections. A flag is a review signal; keep the original source context available until a moderator resolves it.", "operationId": "resolveSourceFlag", "parameters": [ { "in": "path", "name": "flag_id", "required": true, "schema": { "title": "Flag Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/EditorialDecisionRequest" }, { "type": "null" } ], "title": "Payload" } } } }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FlagResponse" } } }, "description": "The resolved source flag." }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Resolve a source flag", "tags": [ "flags" ] } }, "/api/takedowns": { "get": { "description": "Profiles an editor took down and has not restored, newest first.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "listTakedowns", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 200, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TakedownCollectionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "List standing takedowns", "tags": [ "moderation" ] }, "post": { "description": "Hide a profile, published or waiting for review, and keep it hidden: no approval, registry match or later discovery run republishes it until it is restored.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "createTakedown", "parameters": [ { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TakedownCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TakedownResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Take a profile down", "tags": [ "moderation" ] } }, "/api/takedowns/{takedown_id}/restore": { "post": { "description": "Lift a takedown. A profile that was published before it came down is published again; one that was waiting for review goes back to waiting.\n\nUse this moderation operation when a record needs human review before it appears in a public directory. The goal is to prevent unsupported, stale, or sensitive claims from being displayed with more confidence than the evidence allows.", "operationId": "restoreTakedown", "parameters": [ { "in": "path", "name": "takedown_id", "required": true, "schema": { "title": "Takedown Id", "type": "string" } }, { "in": "header", "name": "x-api-key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X-Api-Key" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TakedownResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "summary": "Restore a profile", "tags": [ "moderation" ] } }, "/health": { "get": { "description": "Return the Atlas API health status.\n\nUse this health operation for uptime and dependency checks. It is intentionally minimal and should not be used as a data-readiness or discovery-quality signal.", "operationId": "getHealth", "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": { "type": "string" }, "title": "Response Gethealth", "type": "object" } } }, "description": "Successful Response" } }, "summary": "Health", "tags": [ "health" ] } } }, "servers": [ { "description": "Production environment", "url": "https://atlas.rebuildingus.org" }, { "description": "Local development", "url": "https://api.atlas.localhost" }, { "description": "Relative to current host", "url": "/" } ], "tags": [ { "description": "Authentication, authorization, account verification, and operational access checks. Use these endpoints to understand whether a caller can use protected Atlas workflows before starting a workspace, MCP, discovery, or profile-management request.", "name": "access" }, { "description": "Profile-claim and subject-management APIs. These endpoints let a signed-in person request control of a public profile, verify ownership where possible, and update subject-controlled fields without weakening source-backed provenance.", "name": "claims" }, { "description": "Account-level external identity connections and verified public-profile links. These operations keep durable ATProto DIDs separate from Atlas users, profile stewardship, and workspace membership while preserving verification history.", "name": "identity" }, { "description": "Recurring discovery targets for research operations. Schedules describe the places and issue areas Atlas should revisit; the durable discovery worker performs the actual source search, extraction, and review workflow.", "name": "discovery-schedules" }, { "description": "Discovery pipeline runs, Scout syncs, worker leases, and pipeline observability. These endpoints create or inspect research work; completion means the pipeline ran, not that every resulting actor is ready for publication or outreach.", "name": "discovery-runs" }, { "description": "Top-level issue domains in the Atlas taxonomy. Domains group issue areas for navigation and reporting; issue-area slugs are the filters most integrations use.", "name": "domains" }, { "description": "Source-backed civic actors: people, organizations, initiatives, campaigns, and events. Use entity endpoints to search actors, inspect a single profile, preserve source evidence, and manage authenticated writes.", "name": "entities" }, { "description": "Activity feed resources for signed-in users following public profiles. Feed items are source-ingest events that help a user revisit evidence changes without polling each profile manually.", "name": "feed" }, { "description": "Anonymous correction signals for stale, incorrect, sensitive, or broken Atlas data. Flags prompt review; they do not by themselves prove that a public record should be changed, removed, or trusted.", "name": "flags" }, { "description": "Follow-state APIs for public profiles. Use these endpoints to subscribe or unsubscribe the authenticated user from profile activity that appears in their feed.", "name": "follows" }, { "description": "Live civic-intelligence query APIs. Firehose lets a workspace ask what changed in a public civic field, receive source-backed signals with billing context attached, and observe the same query through standards-based HTTP streams.", "name": "firehose" }, { "description": "Trusted Firehose production endpoints for workers, schedulers, and message-bus deliveries. These routes keep stored observations as the canonical evidence record while creating idempotent signal resources that can later power user-facing feeds.", "name": "firehose-internal" }, { "description": "Small operational health checks for clients and monitors. Health responses are intentionally minimal and do not expose user, workspace, or discovery data.", "name": "health" }, { "description": "Atlas issue-area taxonomy and natural-language issue lookup. Issue-area slugs are stable filters for places, entities, discovery runs, coverage targets, and MCP tools.", "name": "issue-areas" }, { "description": "Saved-list APIs for authenticated users. Lists let a user collect source-backed actors for later review or export while preserving compact provenance.", "name": "lists" }, { "description": "Review-queue operations for records held back from the public directory. Moderation endpoints protect users from seeing unsupported, stale, sensitive, or unreviewed claims presented as confident public facts.", "name": "moderation" }, { "description": "Workspace annotations attached to shared entries or source packets. Annotations are private team context and should not be treated as public evidence.", "name": "org-annotations" }, { "description": "Organization-scoped ATProto identity administration. Workspace owners and admins attach a verified controlled DID, grant or revoke member delegation, and retain an audit trail without transferring the person's underlying identity control.", "name": "organization-identity" }, { "description": "Private Atlas Brief artifacts for workspace teams. Briefs combine actors, sources, notes, confidence summaries, and exports so teams can act without separating claims from the evidence behind them.", "name": "org-briefs" }, { "description": "Workspace coverage reports for funders and customer-success review. Reports explain what public coverage improved and where the data boundary still matters.", "name": "org-coverage-reports" }, { "description": "Workspace targets for places, issues, actor types, and source gaps. Targets help a team decide what to research next and keep review status tied to linked evidence.", "name": "org-coverage-targets" }, { "description": "Organization-scoped discovery records. These endpoints keep private research runs inside a workspace until the team decides what, if anything, should become public.", "name": "org-discovery-runs" }, { "description": "Organization-owned entries and public workspace directory controls. Use these endpoints to manage private records, publish reviewed records, and configure a source-linked public directory.", "name": "org-entries" }, { "description": "Workspace data-quality summaries. These endpoints expose source coverage, duplicate risk, stale-record signals, and confidence indicators without turning them into public impact claims.", "name": "org-quality" }, { "description": "Customer-safe usage and renewal proof for workspaces. Usage endpoints show evidence opens, exports, integration activity, and audit context without exposing private notes as public evidence.", "name": "org-usage" }, { "description": "Workspace watch digest events. Digests summarize watched resource changes so teams can revisit source-backed work without polling every actor, brief, or target.", "name": "org-watch-digest" }, { "description": "Workspace watch subscriptions. Watches tell Atlas which actors, briefs, targets, or other resources a workspace wants to monitor for changes.", "name": "org-watches" }, { "description": "Place-first public discovery resources. Place endpoints let a user resolve a local place, find source-backed actors there, inspect local sources, and understand coverage before drawing conclusions from a result set.", "name": "places" } ], "x-tagGroups": [ { "name": "Public discovery", "tags": [ "places", "entities", "issue-areas", "domains", "flags" ] }, { "name": "Personal account workflows", "tags": [ "access", "identity", "claims", "follows", "feed", "lists" ] }, { "name": "Workspace workflows", "tags": [ "org-entries", "org-briefs", "org-coverage-targets", "org-coverage-reports", "org-annotations", "organization-identity", "org-quality", "org-usage", "org-watches", "org-watch-digest", "org-discovery-runs" ] }, { "name": "Discovery operations", "tags": [ "discovery-runs", "discovery-schedules", "firehose", "moderation", "health" ] } ] }