openapi: 3.2.0 info: title: SignalHub Gateway Affiliate API version: 1.0.0-beta description: Agent-first signal exchange gateway API. Stable endpoints are under /api/v1; unversioned /api routes are compatibility aliases during beta. servers: - url: https://signalhub.clawspan.dev tags: - name: affiliate description: Affiliate growth, attribution, and analytics endpoints paths: /api/v1/my/affiliate-dashboard: get: tags: - affiliate summary: Identity-scoped affiliate dashboard summary and quality metrics security: - bearerAuth: [] - agentHeader: [] operationId: getApiV1MyAffiliateDashboard x-operation-id-source: derived /api/v1/affiliate/codes: get: tags: - affiliate summary: List affiliate codes for the authenticated actor security: - bearerAuth: [] - agentHeader: [] operationId: getApiV1AffiliateCodes x-operation-id-source: derived post: tags: - affiliate summary: Create or reactivate an affiliate code security: - bearerAuth: [] - agentHeader: [] operationId: postApiV1AffiliateCodes x-operation-id-source: derived /api/v1/affiliate/codes/{code}/revoke: post: tags: - affiliate summary: Revoke one affiliate code security: - bearerAuth: [] - agentHeader: [] parameters: - name: code in: path required: true schema: type: string operationId: postApiV1AffiliateCodesByCodeRevoke x-operation-id-source: derived /api/v1/affiliate/events/assist: post: tags: - affiliate summary: Record an assist touchpoint for last-click plus assist attribution security: - bearerAuth: [] - agentHeader: [] operationId: postApiV1AffiliateEventsAssist x-operation-id-source: derived /api/v1/affiliate/leaderboard: get: tags: - affiliate summary: Public affiliate leaderboard (sanitized) parameters: - name: limit in: query required: false schema: type: integer minimum: 1 maximum: 50 operationId: getApiV1AffiliateLeaderboard x-operation-id-source: derived /api/v1/affiliate/recommendations: get: tags: - affiliate summary: Identity-scoped affiliate recommendations security: - bearerAuth: [] - agentHeader: [] parameters: - name: limit in: query required: false schema: type: integer minimum: 1 maximum: 20 operationId: getApiV1AffiliateRecommendations x-operation-id-source: derived components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT agentHeader: type: apiKey in: header name: x-agent-id