# Get test summary

## OpenAPI Specification

```yaml
openapi: 3.0.1
info:
  title: ''
  description: ''
  version: 1.0.0
paths:
  /emailplacement/get/test-summary:
    get:
      summary: Get test summary
      deprecated: false
      description: >-
        Retrieve aggregated summary statistics for a parent test with optional
        filtering by recipient type and sender provider.
      operationId: getTestSummary
      tags:
        - Email Placement Test/Results & Analytics
        - Results & Analytics
      parameters:
        - name: workspace_id
          in: query
          description: Workspace ID
          required: true
          schema:
            type: string
            pattern: ^[a-f0-9]{24}$
        - name: parent_test_id
          in: query
          description: Parent test ID
          required: true
          example: 65f3c92d3dbe5dbb35374abc
          schema:
            type: string
            pattern: ^[a-f0-9]{24}$
        - name: rec_type
          in: query
          description: Filter by recipient type (e.g., GOOGLE, MICROSOFT)
          required: false
          example: GOOGLE
          schema:
            type: string
        - name: sender_provider
          in: query
          description: >-
            Filter by sender provider (GOOGLE_WORKSPACE, MICROSOFT365,
            REGULAR_ACCOUNT)
          required: false
          example: GOOGLE_WORKSPACE
          schema:
            type: string
            enum:
              - GOOGLE_WORKSPACE
              - MICROSOFT365
              - REGULAR_ACCOUNT
      responses:
        '200':
          description: Summary retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    examples:
                      - 1
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      inbox_rate:
                        type: number
                        format: float
                        examples:
                          - 87.5
                      spam_rate:
                        type: number
                        format: float
                        examples:
                          - 8.2
                      promotions_rate:
                        type: number
                        format: float
                        examples:
                          - 4.3
                      total_emails:
                        type: integer
                        examples:
                          - 1000
                      placement_breakdown:
                        type: object
                        properties:
                          inbox:
                            type: integer
                            examples:
                              - 875
                          spam:
                            type: integer
                            examples:
                              - 82
                          promotions:
                            type: integer
                            examples:
                              - 43
                        x-apidog-orders:
                          - inbox
                          - spam
                          - promotions
                        x-apidog-ignore-properties: []
                    x-apidog-orders:
                      - inbox_rate
                      - spam_rate
                      - promotions_rate
                      - total_emails
                      - placement_breakdown
                    x-apidog-ignore-properties: []
                x-apidog-orders:
                  - status
                  - message
                  - data
                x-apidog-ignore-properties: []
          headers: {}
          x-apidog-name: ''
        '400':
          description: Bad request - validation error or missing required fields
          content:
            application/json:
              schema: &ref_0
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 0
                message: Validation error
                error: Validation error
                errors:
                  - workspace_id is required
                  - api_key must be a valid string
          headers: {}
          x-apidog-name: BadRequest
        '401':
          description: Unauthorized - invalid or missing API key
          content:
            application/json:
              schema: *ref_0
              example:
                status: 0
                message: Unauthorized
                error: Invalid API key
          headers: {}
          x-apidog-name: Unauthorized
      security:
        - ApiKeyAuth: []
          x-apidog:
            schemeGroups:
              - id: uS5KiuC4wfZHK42AzOfA_
                schemeIds:
                  - ApiKeyAuth
            required: true
            use:
              id: uS5KiuC4wfZHK42AzOfA_
            scopes:
              uS5KiuC4wfZHK42AzOfA_:
                ApiKeyAuth: []
      x-apidog-folder: Email Placement Test/Results & Analytics
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/929054/apis/api-28696787-run
components:
  schemas:
    ErrorResponse:
      type: object
      required:
        - code
        - message
        - data
      properties:
        code:
          type: integer
          enum:
            - 0
        message:
          type: string
        data:
          type: object
          x-apidog-orders: []
          properties: {}
          x-apidog-ignore-properties: []
      x-apidog-orders:
        - code
        - message
        - data
      x-apidog-ignore-properties: []
      x-apidog-folder: ''
  securitySchemes:
    ApiKeyAuth:
      type: apikey
      in: header
      name: x-api-key
      description: |
        API key issued in the PlusVibe dashboard. The server reads it
        from the `x-api-key` header and injects it into the request as
        the `api_key` query parameter, which is why you will see
        `api_key` referenced in validation errors.
    apiKey:
      type: apikey
      in: body
      name: api_key
      description: API key passed in request body
servers:
  - url: https://api.plusvibe.ai/api/v1
    description: Prod Env
security:
  - ApiKeyAuth: []
    x-apidog:
      schemeGroups:
        - id: uS5KiuC4wfZHK42AzOfA_
          schemeIds:
            - ApiKeyAuth
      required: true
      use:
        id: uS5KiuC4wfZHK42AzOfA_
      scopes:
        uS5KiuC4wfZHK42AzOfA_:
          ApiKeyAuth: []

```
