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

# Get daily per-TSP data coverage (fill-rate) stats

> Retrieve fill-rate stats for a starting set of fields, broken down per TSP and per (entity, field) pair, for a single calendar day. Coverage counts are TSP-wide (all fleets on that TSP), scoped to only the TSPs visible to the calling partner.



## OpenAPI

````yaml https://api.catenatelematics.com/v2/intelligence/openapi.json get /v2/intelligence/analytics/tsp-coverage
openapi: 3.1.0
info:
  title: Telematics Intelligence Service - REST API
  description: Telematics Intelligence Service REST API.
  version: 0.1.0
servers:
  - url: https://api.catenatelematics.com
    description: Catena Intelligence API
security: []
tags:
  - name: Analytics
    description: >-
      Endpoints providing analytical insights and aggregated data for vehicles,
      fleets, drivers, and trailers.
  - name: Benchmarks
    description: >-
      Endpoints providing cross-fleet benchmark data. A vehicle's metrics are
      ranked against a cohort of peer vehicles drawn from the full Catena fleet
      population. Cohort statistics are k-anonymised: percentile and cohort
      counts are suppressed when the cohort covers too few distinct fleets to
      protect individual fleet privacy.
paths:
  /v2/intelligence/analytics/tsp-coverage:
    get:
      tags:
        - Analytics
      summary: Get daily per-TSP data coverage (fill-rate) stats
      description: >-
        Retrieve fill-rate stats for a starting set of fields, broken down per
        TSP and per (entity, field) pair, for a single calendar day. Coverage
        counts are TSP-wide (all fleets on that TSP), scoped to only the TSPs
        visible to the calling partner.
      operationId: get_tsp_field_coverage
      parameters:
        - name: date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: 'null'
            description: >-
              Calendar day to fetch (YYYY-MM-DD). Defaults to the latest
              available rollup date.
            title: Date
          description: >-
            Calendar day to fetch (YYYY-MM-DD). Defaults to the latest available
            rollup date.
        - name: tsp_slug
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Restrict results to a single TSP by slug (e.g. 'samsara').
            title: Tsp Slug
          description: Restrict results to a single TSP by slug (e.g. 'samsara').
        - name: entity
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - vehicle
                  - user
                  - vehicle_location
                type: string
              - type: 'null'
            description: Restrict results to a single entity.
            title: Entity
          description: Restrict results to a single entity.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TspFieldCoverage'
                title: Response Get Tsp Field Coverage
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
          description: Not Found
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed'
          description: Method Not Allowed
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntity'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests'
          description: Too Many Requests
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
        '501':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotImplementedResponse'
          description: Not Implemented
      security:
        - Bearer:
            - telematics:read
components:
  schemas:
    TspFieldCoverage:
      properties:
        tsp_id:
          type: string
          format: uuid
          title: Tsp Id
          description: Catena TSP identifier.
        tsp_slug:
          anyOf:
            - type: string
            - type: 'null'
          title: Tsp Slug
          description: >-
            Human readable slug of the TSP (e.g., 'samsara'). Null if not
            resolved.
        date:
          type: string
          format: date
          title: Date
          description: Calendar day this snapshot covers (YYYY-MM-DD).
        fields:
          items:
            $ref: '#/components/schemas/FieldCoverageStat'
          type: array
          title: Fields
          description: Fill-rate stats for each tracked field, for this TSP on this day.
      type: object
      required:
        - tsp_id
        - date
        - fields
      title: TspFieldCoverage
      description: Per-TSP data coverage (fill-rate) snapshot for a single day.
    BadRequest:
      properties:
        code:
          type: integer
          title: Code
          default: 400
        message:
          type: string
          title: Message
          default: Bad Request
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: BadRequest
    Unauthorized:
      properties:
        code:
          type: integer
          title: Code
          default: 401
        message:
          type: string
          title: Message
          default: Unauthorized
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Unauthorized
    Forbidden:
      properties:
        code:
          type: integer
          title: Code
          default: 403
        message:
          type: string
          title: Message
          default: Forbidden
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Forbidden
    NotFound:
      properties:
        code:
          type: integer
          title: Code
          default: 404
        message:
          type: string
          title: Message
          default: Not Found
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: NotFound
    MethodNotAllowed:
      properties:
        code:
          type: integer
          title: Code
          default: 405
        message:
          type: string
          title: Message
          default: Method Not Allowed
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: MethodNotAllowed
    Conflict:
      properties:
        code:
          type: integer
          title: Code
          default: 409
        message:
          type: string
          title: Message
          default: Conflict
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Conflict
    UnprocessableEntity:
      properties:
        code:
          type: integer
          title: Code
          default: 422
        message:
          type: string
          title: Message
          default: Invalid Request Body
        detail:
          anyOf:
            - items:
                $ref: '#/components/schemas/ValidationErrorDetail'
              type: array
            - type: 'null'
          title: Detail
      type: object
      title: UnprocessableEntity
    TooManyRequests:
      properties:
        code:
          type: integer
          title: Code
          default: 429
        message:
          type: string
          title: Message
          default: Too Many Requests
        detail:
          anyOf:
            - $ref: '#/components/schemas/RetryAfterDetail'
            - type: 'null'
      type: object
      title: TooManyRequests
    InternalServerError:
      properties:
        message:
          type: string
          title: Message
          default: Internal Server Error
      type: object
      title: InternalServerError
    NotImplementedResponse:
      properties:
        code:
          type: integer
          title: Code
          default: 501
        message:
          type: string
          title: Message
          default: Not Implemented
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: NotImplementedResponse
    FieldCoverageStat:
      properties:
        entity:
          type: string
          title: Entity
          description: >-
            Entity the field belongs to (e.g. 'vehicle', 'user',
            'vehicle_location').
        field_name:
          type: string
          title: Field Name
          description: Tracked field name (e.g. 'vin', 'user_email').
        total_count:
          type: integer
          title: Total Count
          description: Total non-deleted records for this TSP/entity on this day.
        filled_count:
          type: integer
          title: Filled Count
          description: Number of those records where this field was non-null.
        fill_rate_pct:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Fill Rate Pct
          description: >-
            filled_count / total_count as a percentage (0 when total_count is
            0).
      type: object
      required:
        - entity
        - field_name
        - total_count
        - filled_count
        - fill_rate_pct
      title: FieldCoverageStat
      description: >-
        Fill-rate stats for a single (entity, field) pair, for one TSP on one
        day.
    ValidationErrorDetail:
      properties:
        path:
          type: string
          title: Path
        input:
          type: string
          title: Input
        message:
          type: string
          title: Message
        error_type:
          type: string
          title: Error Type
      type: object
      required:
        - path
        - input
        - message
        - error_type
      title: ValidationErrorDetail
    RetryAfterDetail:
      properties:
        retry_after_seconds:
          type: integer
          title: Retry After Seconds
        message:
          type: string
          title: Message
      type: object
      required:
        - retry_after_seconds
        - message
      title: RetryAfterDetail
  securitySchemes:
    Bearer:
      type: oauth2
      flows:
        clientCredentials:
          refreshUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
          scopes: {}
          tokenUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
        authorizationCode:
          refreshUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
          scopes: {}
          authorizationUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/auth
          tokenUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token

````