openapi: 3.0.3 info: title: Choozle Reporting Accounts Reports API description: 'REST API for accessing campaign performance data, account information, and advertising metrics across all channels managed within the Choozle platform. Supports programmatic retrieval of spend, impressions, clicks, conversions, and other KPIs by account, date range, and ad group. ' version: '1.0' contact: name: Choozle Support url: https://help.choozle.com/ termsOfService: https://choozle.com/terms-of-service/ servers: - url: https://app.choozle.com/api description: Choozle production API security: - tokenHeader: [] tags: - name: Reports paths: /reports: get: operationId: getReports summary: Retrieve campaign performance reports description: 'Returns campaign performance metrics for the specified account and date range. Optionally filter results by ad group. Metrics include spend, impressions, clicks, conversions, and other KPIs. ' parameters: - name: account_id in: query required: true description: The numeric identifier of the account to report on. schema: type: integer example: 8737 - name: date_start in: query required: true description: Start date of the reporting period in YYYY-MM-DD format. schema: type: string format: date example: '2023-01-16' - name: date_end in: query required: true description: End date of the reporting period in YYYY-MM-DD format. schema: type: string format: date example: '2023-02-16' - name: ad_group_id in: query required: false description: Optional numeric identifier for a specific ad group to filter results. schema: type: integer example: 12345 responses: '200': description: Performance report data for the requested account and date range. content: application/json: schema: type: array items: $ref: '#/components/schemas/ReportRow' '400': description: Bad request — missing or invalid query parameters. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid authorization token. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Reports components: schemas: ReportRow: type: object description: A single row of campaign performance data. properties: account_id: type: integer description: Account identifier. example: 8737 ad_group_id: type: integer description: Ad group identifier (if filtered). example: 12345 date: type: string format: date description: Date of the reported metrics. example: '2023-01-16' impressions: type: integer description: Number of ad impressions served. example: 100000 clicks: type: integer description: Number of clicks recorded. example: 850 spend: type: number format: float description: Total spend in USD for the period. example: 1250.75 conversions: type: integer description: Number of attributed conversions. example: 42 ctr: type: number format: float description: Click-through rate (clicks / impressions). example: 0.0085 cpc: type: number format: float description: Cost per click in USD. example: 1.47 cpm: type: number format: float description: Cost per thousand impressions in USD. example: 12.51 Error: type: object description: API error response. properties: error: type: string description: Human-readable error message. example: Unauthorized securitySchemes: tokenHeader: type: apiKey in: header name: token description: 'API token obtained from the /authorization endpoint. Valid for 2 hours. Pass the token value as the `token` request header. ' externalDocs: description: Choozle Reporting API Documentation url: https://help.choozle.com/connecting-to-choozles-reporting-api