openapi: 3.2.0 info: title: VoyantIO Attribution 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: Attribution paths: /api/attribution/track: post: summary: Track Event description: Receive tracking events from websites and match to signals operationId: track_event_api_attribution_track_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TrackingEvent' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Attribution /api/attribution/generate: post: summary: Generate Attribution Link description: Generate an attribution link for a signal operationId: generate_attribution_link_api_attribution_generate_post parameters: - name: signal_id in: query required: true schema: type: string title: Signal Id - name: base_url in: query required: true schema: type: string title: Base Url - name: param_name in: query required: false schema: anyOf: - type: string - type: 'null' default: ref title: Param Name responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Attribution /api/attribution/funnel/{signal_id}: get: summary: Get Attribution Funnel description: Get the complete attribution funnel for a signal operationId: get_attribution_funnel_api_attribution_funnel__signal_id__get parameters: - name: signal_id in: path required: true schema: type: string title: Signal Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Attribution /api/attribution/report: get: summary: Get Attribution Report description: Get attribution report for all signals operationId: get_attribution_report_api_attribution_report_get parameters: - name: days in: query required: false schema: type: integer default: 30 title: Days responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Attribution /attribution: get: summary: Attribution Dashboard Page operationId: attribution_dashboard_page_attribution_get responses: '200': description: Successful Response content: text/html: schema: type: string tags: - Attribution components: schemas: HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError TrackingEvent: properties: site_id: type: string title: Site Id visitor_id: type: string title: Visitor Id session_id: type: string title: Session Id event_type: type: string title: Event Type event_data: additionalProperties: true type: object title: Event Data default: {} timestamp: type: string format: date-time title: Timestamp page: additionalProperties: true type: object title: Page browser: additionalProperties: true type: object title: Browser attribution: anyOf: - additionalProperties: true type: object - type: 'null' title: Attribution type: object required: - site_id - visitor_id - session_id - event_type - timestamp - page - browser title: TrackingEvent description: Tracking event from website 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 securitySchemes: HTTPBearer: type: http scheme: bearer