openapi: 3.2.0 info: title: VoyantIO Org Settings API description: ' ## Brand Context Intelligence Platform VoyantIO provides AI-powered brand context management for GTM teams. ### Core Capabilities - **Context Streams** - Centralized brand knowledge that any AI tool can use - **Telemetry** - Visitor tracking with IP geolocation and company enrichment - **Signals** - Social listening across 10+ platforms: GitHub, Reddit, HackerNews, LinkedIn, Twitter/X, Discord, ProductHunt, YouTube, G2, Slack, and government sources - **Target Graph** - Account and contact intelligence with engagement tracking - **RAG** - Retrieval-augmented content generation with brand awareness ### Authentication Most endpoints require a Bearer token from Clerk authentication. Public endpoints (telemetry ingestion, well-known files) are clearly marked. ### Rate Limits - Telemetry ingestion: 100 req/min per IP - API endpoints: 1000 req/min per org ' version: 1.0.0 servers: - url: https://voice-forge-production.up.railway.app description: Production tags: - name: org-settings description: 'Organization settings: domain, company name, preferences.' paths: /api/org-settings: get: tags: - org-settings summary: Get Org Settings description: Get organization settings. operationId: get_org_settings_api_org_settings_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OrgSettingsResponse' security: - HTTPBearer: [] put: tags: - org-settings summary: Update Org Settings description: Update organization settings. operationId: update_org_settings_api_org_settings_put requestBody: content: application/json: schema: $ref: '#/components/schemas/OrgSettingsRequest' required: true responses: '200': description: Successful Response content: application/json: schema: additionalProperties: type: boolean type: object title: Response Update Org Settings Api Org Settings Put '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /api/org-settings/domain: get: tags: - org-settings summary: Get Primary Domain description: 'Get the primary domain for this org. Returns user-set domain if available, otherwise falls back to most common content domain.' operationId: get_primary_domain_api_org_settings_domain_get responses: '200': description: Successful Response content: application/json: schema: additionalProperties: true type: object title: Response Get Primary Domain Api Org Settings Domain Get security: - HTTPBearer: [] components: schemas: ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError OrgSettingsRequest: properties: primary_domain: anyOf: - type: string - type: 'null' title: Primary Domain description: Primary domain for this organization (e.g., buf.build) company_name: anyOf: - type: string - type: 'null' title: Company Name description: Display name for the company type: object title: OrgSettingsRequest OrgSettingsResponse: properties: primary_domain: anyOf: - type: string - type: 'null' title: Primary Domain company_name: anyOf: - type: string - type: 'null' title: Company Name type: object title: OrgSettingsResponse securitySchemes: HTTPBearer: type: http scheme: bearer