> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xerobi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Full Speed Test

> Comprehensive speed test measuring all network metrics in a single test.

**Metrics Measured:**
1. **Ping**: Latency to server
2. **Jitter**: Latency variance
3. **Download**: Download bandwidth
4. **Upload**: Upload bandwidth
5. **Packet Loss**: Data transmission reliability
6. **Quality Score**: Overall network quality (0-100)

**Additional Data:**
- Geographic location (country, region, coordinates)
- Connection type detection
- Timestamp for historical tracking

**Use Cases:**
- Complete network diagnostics
- ISP performance validation
- Troubleshooting connectivity issues
- Network comparison over time
- Customer support diagnostics

**Result Storage**: Full test results are automatically stored.

**Test Duration**: Approximately 10-15 seconds.

Comprehensive speed test measuring ping, jitter, download, upload, packet loss, and network quality score. Result is stored for historical analysis.


## OpenAPI

````yaml GET /full
openapi: 3.1.0
info:
  title: Xerobi Speed Test API
  description: >-
    A comprehensive network speed testing API with advanced metrics, real-time
    progress tracking, result history, and comparative analysis.


    ## Overview


    The Xerobi Speed Test API provides powerful network performance testing
    capabilities:


    - **Basic Metrics**: Individual tests for ping, jitter, download, and upload
    speeds

    - **Advanced Tests**: Multi-file testing for more accurate measurements

    - **Full Speed Tests**: Comprehensive analysis with quality scoring

    - **Real-time Monitoring**: Server-Sent Events (SSE) for live progress
    tracking

    - **Historical Data**: Store and retrieve test results with statistics

    - **Comparative Analysis**: Compare results over time

    - **Server Selection**: Test against specific servers


    ## Authentication


    Most endpoints require the `Xerobi-Version` header:


    ```bash

    curl -H "Xerobi-Version: 2.0.0" \
      https://api.hixbe.com/speedtest/full
    ```


    **Exceptions**: The `/` (docs) and `/health` endpoints don't require this
    header.


    ## Rate Limits


    - **Basic endpoints** (ping, download, upload): 60 requests/minute

    - **Full/Advanced tests**: 10 requests/minute

    - **Results/Stats endpoints**: 120 requests/minute


    Rate limit information is included in response headers.


    ## Test Result Storage


    Results from these endpoints are automatically stored:

    - `/ping` - Basic latency tests

    - `/download` - Download speed tests

    - `/upload` - Upload speed tests

    - `/full` - Comprehensive tests

    - `/advanced` - Advanced multi-file tests


    Each stored result receives a unique ID for later retrieval.


    ## Quality Score Calculation


    The quality score (0-100) is calculated based on:

    - **Ping** (30%): < 20ms = excellent, < 50ms = good, < 100ms = fair

    - **Jitter** (20%): < 5ms = excellent, < 15ms = good, < 30ms = fair

    - **Download** (25%): Relative to expected speeds

    - **Upload** (20%): Relative to expected speeds

    - **Packet Loss** (5%): 0% = perfect, < 1% = excellent, < 5% = acceptable


    ## Server-Sent Events (SSE)


    The `/stream` endpoint provides real-time progress updates:


    ```javascript

    const eventSource = new EventSource('/speedtest/stream', {
      headers: { 'Xerobi-Version': '2.0.0' }
    });


    eventSource.addEventListener('ping', (e) => {
      const data = JSON.parse(e.data);
      console.log('Ping:', data.result, 'ms');
    });


    eventSource.addEventListener('finish', (e) => {
      const data = JSON.parse(e.data);
      console.log('Complete:', data.result);
      eventSource.close();
    });

    ```


    ## Best Practices


    1. **Use appropriate test types**: Use basic tests for quick checks,
    advanced tests for accuracy

    2. **Handle rate limits**: Implement exponential backoff for retries

    3. **Store results**: Use result IDs to track performance over time

    4. **Compare wisely**: Use `/comparison` and `/stats` for trend analysis

    5. **Real-time updates**: Use `/stream` for UI progress indicators

    6. **Server selection**: Use `/servers` to find optimal test servers


    ## Support


    - Website: https://hixbe.com

    - Documentation: https://docs.hixbe.com/speedtest

    - Status: https://status.hixbe.com
  version: 2.0.0
  contact:
    name: Xerobi Support
    url: https://hixbe.com
    email: support@xerobi.com
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://api.hixbe.com/speedtest
    description: Production server
security: []
tags:
  - name: Information
    description: API information, documentation, and health checks
  - name: Basic Metrics
    description: Individual speed test metrics (ping, jitter, download, upload)
  - name: Advanced Tests
    description: Comprehensive and multi-file speed tests for accuracy
  - name: Results & History
    description: Retrieve stored test results with filtering and statistics
  - name: Real-time
    description: Real-time test monitoring via Server-Sent Events (SSE)
  - name: Servers
    description: Test server management and selection
paths:
  /full:
    get:
      tags:
        - Advanced Tests
      summary: Full Speed Test
      description: |-
        Comprehensive speed test measuring all network metrics in a single test.

        **Metrics Measured:**
        1. **Ping**: Latency to server
        2. **Jitter**: Latency variance
        3. **Download**: Download bandwidth
        4. **Upload**: Upload bandwidth
        5. **Packet Loss**: Data transmission reliability
        6. **Quality Score**: Overall network quality (0-100)

        **Additional Data:**
        - Geographic location (country, region, coordinates)
        - Connection type detection
        - Timestamp for historical tracking

        **Use Cases:**
        - Complete network diagnostics
        - ISP performance validation
        - Troubleshooting connectivity issues
        - Network comparison over time
        - Customer support diagnostics

        **Result Storage**: Full test results are automatically stored.

        **Test Duration**: Approximately 10-15 seconds.
      operationId: runFullTest
      parameters:
        - $ref: '#/components/parameters/HixbeVersion'
      responses:
        '200':
          description: Full speed test completed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FullTestResponse'
              example:
                success: true
                timestamp: '2025-12-07T10:30:00.000Z'
                data:
                  id: 10
                  ping:
                    value: 25.5
                    unit: ms
                  jitter:
                    value: 2.3
                    unit: ms
                  download:
                    value: 95.42
                    unit: Mbps
                  upload:
                    value: 48.75
                    unit: Mbps
                  packetLoss:
                    value: 0
                    unit: '%'
                  qualityScore:
                    value: 92
                    maxScore: 100
                    rating: Excellent
                  geo:
                    country: US
                    region: America/New_York
                    latitude: 40.7128
                    longitude: -74.006
                    city: New York
                  connectionType: Fiber
                  isp: Xerobi Fiber
                executionTime: 12500ms
        '400':
          $ref: '#/components/responses/MissingVersionHeader'
        '429':
          $ref: 39b25672-2403-4c5d-9194-56ae3fea1725
        '500':
          $ref: 48df11c3-12e7-4b5c-965c-acb0684491d2
components:
  parameters:
    HixbeVersion:
      name: Xerobi-Version
      in: header
      description: API version header. Required for all endpoints except / and /health
      required: true
      schema:
        type: string
        pattern: ^\d+\.\d+\.\d+$
        example: 2.0.0
  schemas:
    FullTestResponse:
      type: object
      properties:
        success:
          type: boolean
        timestamp:
          type: string
          format: date-time
        data:
          type: object
          properties:
            id:
              type: integer
              example: 10
            ping:
              type: object
              properties:
                value:
                  type: number
                unit:
                  type: string
            jitter:
              type: object
              properties:
                value:
                  type: number
                unit:
                  type: string
            download:
              type: object
              properties:
                value:
                  type: number
                unit:
                  type: string
            upload:
              type: object
              properties:
                value:
                  type: number
                unit:
                  type: string
            packetLoss:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                  maximum: 100
                unit:
                  type: string
                  enum:
                    - '%'
            qualityScore:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 100
                maxScore:
                  type: integer
                  example: 100
                rating:
                  type: string
                  enum:
                    - Excellent
                    - Good
                    - Fair
                    - Poor
            geo:
              type: object
              properties:
                country:
                  type: string
                region:
                  type: string
                city:
                  type: string
                  nullable: true
                latitude:
                  type: number
                  nullable: true
                longitude:
                  type: number
                  nullable: true
            connectionType:
              type: string
              example: Fiber
            isp:
              type: string
              example: Xerobi Fiber
          required:
            - id
            - ping
            - download
            - upload
            - qualityScore
        executionTime:
          type: string
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        timestamp:
          type: string
          format: date-time
        error:
          type: object
          properties:
            code:
              type: string
              example: INVALID_REQUEST
            message:
              type: string
              example: Invalid request parameters
            details:
              type: object
              nullable: true
  responses:
    MissingVersionHeader:
      description: Missing Xerobi-Version header
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'

````

## Related topics

- [Advanced Speed Test](https://docs.xerobi.com/speed-api/endpoint/advanced-test.md)
- [Custom Speed Test](https://docs.xerobi.com/speed-api/endpoint/custom-test.md)
- [Xerobi Speed Test API](https://docs.xerobi.com/speed-api/introduction.md)
- [Real-time Stream](https://docs.xerobi.com/speed-api/endpoint/realtime-stream.md)
- [Download Speed Test](https://docs.xerobi.com/speed-api/endpoint/download-test.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.