openapi: 3.2.0 info: title: VoyantIO Admin 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: admin description: Super admin endpoints for platform management. paths: /api/admin/orgs: get: tags: - admin summary: List All Orgs description: List all organizations with data in the system. operationId: list_all_orgs_api_admin_orgs_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OrgListResponse' security: - HTTPBearer: [] /api/admin/orgs/{org_id}/details: get: tags: - admin summary: Get Org Details description: Get detailed information about a specific organization. operationId: get_org_details_api_admin_orgs__org_id__details_get security: - HTTPBearer: [] parameters: - name: org_id in: path required: true schema: type: string title: Org Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/admin/orgs/{org_id}/impersonate: post: tags: - admin summary: Impersonate Org description: 'Get a token or session to view the app as if you were in this org. Returns the org_id to use in frontend for org switching.' operationId: impersonate_org_api_admin_orgs__org_id__impersonate_post security: - HTTPBearer: [] parameters: - name: org_id in: path required: true schema: type: string title: Org Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/admin/orgs/{org_id}/invite: post: tags: - admin summary: Invite To Org description: Invite a user to an organization via Clerk. operationId: invite_to_org_api_admin_orgs__org_id__invite_post security: - HTTPBearer: [] parameters: - name: org_id in: path required: true schema: type: string title: Org Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InviteRequest' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/admin/orgs/{org_id}/invitations: get: tags: - admin summary: List Org Invitations description: List pending invitations for an organization. operationId: list_org_invitations_api_admin_orgs__org_id__invitations_get security: - HTTPBearer: [] parameters: - name: org_id in: path required: true schema: type: string title: Org Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/admin/orgs/{org_id}/members: get: tags: - admin summary: List Org Members description: List members of an organization. operationId: list_org_members_api_admin_orgs__org_id__members_get security: - HTTPBearer: [] parameters: - name: org_id in: path required: true schema: type: string title: Org Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: InviteRequest: properties: email: type: string title: Email role: type: string title: Role default: org:member type: object required: - email title: InviteRequest 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 OrgSummary: properties: org_id: type: string title: Org Id org_name: anyOf: - type: string - type: 'null' title: Org Name context_streams: type: integer title: Context Streams default: 0 content_chunks: type: integer title: Content Chunks default: 0 unified_signals: type: integer title: Unified Signals default: 0 competitors: type: integer title: Competitors default: 0 target_prompts: type: integer title: Target Prompts default: 0 last_activity: anyOf: - type: string format: date-time - type: 'null' title: Last Activity type: object required: - org_id title: OrgSummary HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError OrgListResponse: properties: orgs: items: $ref: '#/components/schemas/OrgSummary' type: array title: Orgs total: type: integer title: Total type: object required: - orgs - total title: OrgListResponse securitySchemes: HTTPBearer: type: http scheme: bearer