openapi: 3.0.1 info: title: FirstPromoter Admin Commissions Reports API version: '2.0' description: REST API for managing affiliate programs, promoters, campaigns, referrals, rewards, and payouts in FirstPromoter. Supports pagination, filtering, and full CRUD operations across all affiliate program resources. contact: url: https://docs.firstpromoter.com license: name: Proprietary url: https://firstpromoter.com/terms servers: - url: https://api.firstpromoter.com/api/v2 description: Production server security: - BearerAuth: [] tags: - name: Reports paths: /company/reports/overview: get: summary: Get reports for overview description: "Get reports for overview \n **HTTP Request**
`GET https://api.firstpromoter.com/api/v2/company/reports/overview`
" tags: - Reports parameters: - $ref: '#/components/parameters/AccountId' - name: columns in: query required: true schema: type: array items: type: string enum: - active_customers - monthly_churn - clicks_count - net_revenue_amount - revenue_amount - referrals_count - customers_count - sales_count - refunds_count - cancelled_customers_count - promoter_earnings_amount - non_link_customers - referrals_to_customers_cr - 3m_epc - 6m_epc - clicks_to_customers_cr - clicks_to_referrals_cr - promoter_paid_amount - signups_count - name: q in: query required: false schema: type: string - name: group_by in: query required: true schema: type: string enum: - day - week - month - year - name: start_date in: query required: true schema: type: string format: date-time - name: end_date in: query required: true schema: type: string format: date-time - name: sorting in: query required: false schema: type: object additionalProperties: type: string enum: - asc - desc responses: '200': description: Successful response content: application/json: schema: type: array items: type: object properties: period: type: string id: type: string data: type: object properties: revenue_amount: type: number net_revenue_amount: type: number promoter_earnings_amount: type: number customers_count: type: integer referrals_count: type: integer clicks_count: type: integer active_customers: type: integer 3m_epc: type: number '401': description: Unauthorized content: application/json: schema: type: object properties: message: type: string code: type: string '403': description: Forbidden content: application/json: schema: type: object properties: message: type: string code: type: string '422': description: Unprocessable Entity content: application/json: schema: type: object properties: message: type: string code: type: string /company/reports/campaigns: get: summary: Get reports for campaigns description: With this endpoint you can get the report data grouped by campaigns.**HTTP Request**
`GET https://api.firstpromoter.com/api/v2/company/reports/campaigns`
tags: - Reports parameters: - $ref: '#/components/parameters/AccountId' - name: columns in: query required: true schema: type: array items: type: string enum: - active_customers - monthly_churn - clicks_count - net_revenue_amount - revenue_amount - referrals_count - customers_count - sales_count - refunds_count - cancelled_customers_count - promoter_earnings_amount - non_link_customers - referrals_to_customers_cr - 3m_epc - 6m_epc - clicks_to_customers_cr - clicks_to_referrals_cr - promoter_paid_amount - signups_count - name: q in: query required: false schema: type: string - name: group_by in: query required: true schema: type: string enum: - day - week - month - year - name: start_date in: query required: true schema: type: string format: date-time - name: end_date in: query required: true schema: type: string format: date-time - name: sorting in: query required: false schema: type: object additionalProperties: type: string enum: - asc - desc responses: '200': description: Successful response content: application/json: schema: type: array items: type: object properties: campaign: type: object properties: id: type: integer name: type: string color: type: string id: type: integer data: type: object properties: revenue_amount: type: number net_revenue_amount: type: number promoter_earnings_amount: type: number customers_count: type: integer referrals_count: type: integer clicks_count: type: integer active_customers: type: integer 3m_epc: type: number sub_data: type: array items: type: object properties: period: type: string id: type: string data: type: object properties: revenue_amount: type: number net_revenue_amount: type: number promoter_earnings_amount: type: number customers_count: type: integer referrals_count: type: integer clicks_count: type: integer active_customers: type: integer 3m_epc: type: number '401': description: Unauthorized content: application/json: schema: type: object properties: message: type: string code: type: string '403': description: Forbidden content: application/json: schema: type: object properties: message: type: string code: type: string /company/reports/promoters: get: summary: Get reports for promoters description: ' With this endpoint you can get the report data grouped by promoters.**HTTP Request**
`GET https://api.firstpromoter.com/api/v2/company/reports/promoters`
' tags: - Reports parameters: - $ref: '#/components/parameters/AccountId' - name: columns in: query required: true schema: type: array items: type: string enum: - active_customers - monthly_churn - clicks_count - net_revenue_amount - revenue_amount - referrals_count - customers_count - sales_count - refunds_count - cancelled_customers_count - promoter_earnings_amount - non_link_customers - referrals_to_customers_cr - 3m_epc - 6m_epc - clicks_to_customers_cr - clicks_to_referrals_cr - promoter_paid_amount - signups_count description: Fields to be included in the report - name: q in: query required: false schema: type: string description: Search query string - name: group_by in: query required: true schema: type: string enum: - day - week - month - year description: Time period grouping - name: start_date in: query required: true schema: type: string format: date-time description: Start date for the report period - name: end_date in: query required: true schema: type: string format: date-time description: End date for the report period - name: sorting in: query required: false schema: type: object additionalProperties: type: string enum: - asc - desc description: Sorting parameters responses: '200': description: Successful response content: application/json: schema: type: array items: type: object properties: promoter: type: object properties: id: type: integer email: type: string format: email name: type: string required: - id - email - name id: type: integer data: type: object properties: revenue_amount: type: number net_revenue_amount: type: number promoter_earnings_amount: type: number customers_count: type: integer referrals_count: type: integer clicks_count: type: integer active_customers: type: integer 3m_epc: type: number sub_data: type: array items: type: object properties: period: type: string id: type: string data: type: object properties: revenue_amount: type: number net_revenue_amount: type: number promoter_earnings_amount: type: number customers_count: type: integer referrals_count: type: integer clicks_count: type: integer active_customers: type: integer 3m_epc: type: number '401': description: Unauthorized content: application/json: schema: type: object properties: message: type: string example: Unauthorized code: type: string '403': description: Forbidden content: application/json: schema: type: object properties: message: type: string example: Invalid user type code: type: string example: forbidden '422': description: Unprocessable Entity content: application/json: schema: type: object properties: message: type: string example: 'param is missing or the value is empty: columns' code: type: string example: invalid_params /company/reports/traffic_sources: get: summary: Get reports for traffic sources description: "With this endpoint you can get the report data grouped by traffic sources. \n **HTTP Request**
`GET https://api.firstpromoter.com/api/v2/company/reports/traffic_sources`
" tags: - Reports parameters: - $ref: '#/components/parameters/AccountId' - name: columns in: query required: true schema: type: array items: type: string enum: - clicks_count - revenue_amount - promoter_earnings_amount - referrals_count - customers_count - sales_count - refunds_count - cancelled_customers_count - referrals_to_customers_cr - clicks_to_customers_cr - clicks_to_referrals_cr description: Fields to be included in the report - name: q in: query required: false schema: type: string description: Search query string - name: group_by in: query required: true schema: type: string enum: - day - week - month - year description: Time period grouping - name: start_date in: query required: true schema: type: string format: date-time description: Start date for the report period - name: end_date in: query required: true schema: type: string format: date-time description: End date for the report period - name: sorting in: query required: false schema: type: object additionalProperties: type: string enum: - asc - desc description: Sorting parameters responses: '200': description: Successful response content: application/json: schema: type: array items: type: object properties: source: type: string id: type: string data: type: object properties: clicks_count: type: integer revenue_amount: type: number promoter_earnings_amount: type: number referrals_count: type: integer customers_count: type: integer sales_count: type: integer refunds_count: type: integer cancelled_customers_count: type: integer referrals_to_customers_cr: type: number clicks_to_customers_cr: type: number clicks_to_referrals_cr: type: number sub_data: type: array items: type: object properties: period: type: string id: type: string data: type: object properties: clicks_count: type: integer revenue_amount: type: number promoter_earnings_amount: type: number referrals_count: type: integer customers_count: type: integer sales_count: type: integer refunds_count: type: integer cancelled_customers_count: type: integer referrals_to_customers_cr: type: number clicks_to_customers_cr: type: number clicks_to_referrals_cr: type: number '401': description: Unauthorized content: application/json: schema: type: object properties: message: type: string example: Unauthorized code: type: string '403': description: Forbidden content: application/json: schema: type: object properties: message: type: string example: Invalid user type code: type: string example: forbidden '422': description: Unprocessable Entity content: application/json: schema: type: object properties: message: type: string example: 'param is missing or the value is empty: columns' code: type: string example: invalid_params /company/reports/urls: get: summary: Get reports for URLs description: With this endpoint you can get the report data grouped by URLs.**HTTP Request**
`GET https://api.firstpromoter.com/api/v2/company/reports/urls`
tags: - Reports parameters: - $ref: '#/components/parameters/AccountId' - name: columns in: query required: true schema: type: array items: type: string enum: - clicks_count - revenue_amount - promoter_earnings_amount - referrals_count - customers_count - sales_count - refunds_count - cancelled_customers_count - referrals_to_customers_cr - clicks_to_customers_cr - clicks_to_referrals_cr - url - name: q in: query required: false schema: type: string - name: group_by in: query required: true schema: type: string enum: - day - week - month - year - name: start_date in: query required: true schema: type: string format: date-time - name: end_date in: query required: true schema: type: string format: date-time - name: sorting in: query required: false schema: type: object additionalProperties: type: string enum: - asc - desc responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/URLsResponse' '401': description: Unauthorized '403': description: Forbidden '422': description: Unprocessable Entity /company/reports/download: get: summary: Download reports description: With this endpoint you can download reports.**HTTP Request**
`GET https://api.firstpromoter.com/api/v2/company/reports/download`
tags: - Reports parameters: - $ref: '#/components/parameters/AccountId' - name: report_type in: query required: true schema: type: string enum: - overview - campaigns - promoters - traffic_sources - urls - name: totals in: query required: false schema: type: boolean - name: columns in: query required: true schema: type: array items: type: string - name: group_by in: query required: true schema: type: string enum: - day - week - month - year - name: start_date in: query required: true schema: type: string format: date-time - name: end_date in: query required: true schema: type: string format: date-time responses: '200': description: CSV file download content: text/csv: schema: type: string format: binary '202': description: Accepted - async processing started content: application/json: schema: type: object properties: message: type: string '401': description: Unauthorized '403': description: Forbidden '422': description: Unprocessable Entity components: schemas: URLsResponse: type: array items: type: object properties: url: type: string id: type: string data: type: object properties: clicks_count: type: integer revenue_amount: type: number promoter_earnings_amount: type: number referrals_count: type: integer customers_count: type: integer sales_count: type: integer refunds_count: type: integer cancelled_customers_count: type: integer referrals_to_customers_cr: type: number clicks_to_customers_cr: type: number clicks_to_referrals_cr: type: number parameters: AccountId: name: Account-ID in: header required: true description: Account ID. You can find your Account ID on Your FirstPromoter Dashboard. Navigate to Settings → Integrations schema: type: string securitySchemes: BearerAuth: type: http scheme: bearer description: API key passed as Bearer token