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

# Hunt overview

> Landing dashboard: environment metric tiles, the intel -> exposure funnel, detection coverage distribution, and recent Threats / rule proposals / blocking gaps.



## OpenAPI

````yaml https://app.cotool.ai/api/docs/openapi.json get /api/hunt/overview
openapi: 3.1.0
info:
  title: Cotool API
  version: 1.0.0
  description: >-
    # Cotool API Documentation


    The Cotool API allows you to interact with the Cotool platform
    programmatically, enabling you to build powerful integrations and automate
    your workflows.


    ## Getting an API Key


    Follow these steps to generate your API key:


    1. **Log in** to the Cotool web interface

    2. **Navigate** to `/settings/api-keys`

    3. **Click** "Generate Key"

    4. **Copy and store** your API key securely ⚠️ *It won't be shown again*


    ## API Key Authentication


    For programmatic access and integrations, use your API key with the
    Authorization header:


    ```http

    Authorization: Bearer your_api_key_here

    ```


    ```bash

    curl -X GET "https://app.cotool.ai/api/endpoint" \
      -H "Authorization: Bearer your_api_key_here" \
      -H "Content-Type: application/json"
    ```
servers:
  - url: https://app.cotool.ai
    description: Production server
security:
  - ApiKeyAuth: []
paths:
  /api/hunt/overview:
    get:
      tags:
        - Hunt
      summary: Hunt overview
      description: >-
        Landing dashboard: environment metric tiles, the intel -> exposure
        funnel, detection coverage distribution, and recent Threats / rule
        proposals / blocking gaps.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  primaryCta:
                    type: object
                    properties:
                      label:
                        type: string
                      href:
                        type: string
                      activeHuntAlertCount:
                        type: number
                    required:
                      - label
                      - href
                      - activeHuntAlertCount
                  summary:
                    type: object
                    properties:
                      windowDays:
                        anyOf:
                          - type: number
                            const: 7
                          - type: number
                            const: 30
                      intelIngestedCount:
                        type: number
                      threatsTrackedCount:
                        type: number
                      threatsAssessedCount:
                        type: number
                      exposureAlertsGeneratedCount:
                        type: number
                      foundIocAlertsGeneratedCount:
                        type: number
                      activeHuntAlertCount:
                        type: number
                      ruleProposalsCreatedCount:
                        type: number
                      detectionPrsOpenedCount:
                        type: number
                      ruleProposalsShippedCount:
                        type: number
                      blockingGapsOpenCount:
                        type: number
                      blockingGapsResolvedCount:
                        type: number
                      coverageStateDistribution:
                        type: object
                        properties:
                          none:
                            type: number
                          partial:
                            type: number
                          covered:
                            type: number
                          unknown:
                            type: number
                        required:
                          - none
                          - partial
                          - covered
                          - unknown
                    required:
                      - windowDays
                      - intelIngestedCount
                      - threatsTrackedCount
                      - threatsAssessedCount
                      - exposureAlertsGeneratedCount
                      - foundIocAlertsGeneratedCount
                      - activeHuntAlertCount
                      - ruleProposalsCreatedCount
                      - detectionPrsOpenedCount
                      - ruleProposalsShippedCount
                      - blockingGapsOpenCount
                      - blockingGapsResolvedCount
                      - coverageStateDistribution
                  funnel:
                    type: object
                    properties:
                      intelIngestedCount:
                        type: number
                      huntableIntelCount:
                        type: number
                      threatsTrackedCount:
                        type: number
                      threatsAssessedCount:
                        type: number
                      exposureAlertsGeneratedCount:
                        type: number
                    required:
                      - intelIngestedCount
                      - huntableIntelCount
                      - threatsTrackedCount
                      - threatsAssessedCount
                      - exposureAlertsGeneratedCount
                  recentThreats:
                    type: array
                    items:
                      type: object
                      properties:
                        threatId:
                          type: string
                        title:
                          type: string
                        canonicalType:
                          type: string
                          enum:
                            - vulnerability
                            - campaign
                        canonicalKeyType:
                          type: string
                          enum:
                            - cve
                            - advisory
                            - vendor_advisory
                            - campaign_name
                            - malware_family
                        canonicalKey:
                          type: string
                        firstSeenAt:
                          type: string
                        latestIntelAt:
                          type: string
                        huntResultBadge:
                          type:
                            - string
                            - 'null'
                          enum:
                            - compromise_signal_found
                            - exposure_found
                            - covered_by_existing_detection
                            - no_exposure_found
                            - inconclusive
                            - null
                        exposureScore:
                          type:
                            - number
                            - 'null'
                        exposureBand:
                          type:
                            - string
                            - 'null'
                          enum:
                            - critical
                            - high
                            - medium
                            - low
                            - minimal
                            - null
                        exposureState:
                          type:
                            - string
                            - 'null'
                          enum:
                            - compromise_signal_found
                            - exposure_found
                            - no_exposure_found
                            - inconclusive
                            - null
                        coverageState:
                          type:
                            - string
                            - 'null'
                          enum:
                            - none
                            - partial
                            - covered
                            - unknown
                            - null
                        affectedAssetCount:
                          type: number
                        activeHuntAlertId:
                          type:
                            - string
                            - 'null'
                        activeHuntAlertStatus:
                          type:
                            - string
                            - 'null'
                          enum:
                            - open
                            - in_progress
                            - escalated
                            - closed_true_positive
                            - closed_false_positive
                            - closed_true_positive_benign
                            - dismissed
                            - null
                          description: >-
                            Lifecycle status for a first-class alert. Terminal
                            closed statuses include final disposition. Dismissed
                            archives the alert and hides it from alert lists.
                        latestAlertId:
                          type:
                            - string
                            - 'null'
                        latestAlertStatus:
                          type:
                            - string
                            - 'null'
                          enum:
                            - open
                            - in_progress
                            - escalated
                            - closed_true_positive
                            - closed_false_positive
                            - closed_true_positive_benign
                            - dismissed
                            - null
                          description: >-
                            Lifecycle status for a first-class alert. Terminal
                            closed statuses include final disposition. Dismissed
                            archives the alert and hides it from alert lists.
                        deliverableCount:
                          type: number
                      required:
                        - threatId
                        - title
                        - canonicalType
                        - canonicalKeyType
                        - canonicalKey
                        - firstSeenAt
                        - latestIntelAt
                        - huntResultBadge
                        - exposureScore
                        - exposureBand
                        - exposureState
                        - coverageState
                        - affectedAssetCount
                        - activeHuntAlertId
                        - activeHuntAlertStatus
                        - latestAlertId
                        - latestAlertStatus
                        - deliverableCount
                  recentRuleProposals:
                    type: array
                    items:
                      type: object
                      properties:
                        deliverableId:
                          type: string
                        proposalId:
                          type:
                            - string
                            - 'null'
                        pullRequestUrl:
                          type:
                            - string
                            - 'null'
                        threatId:
                          type: string
                        threatTitle:
                          type: string
                        intent:
                          type: string
                        pinning:
                          type: string
                          enum:
                            - ioc_pinned
                            - behavioral
                            - mixed
                        targetProduct:
                          type:
                            - string
                            - 'null'
                        targetLogSource:
                          type:
                            - string
                            - 'null'
                        lifecycleStatus:
                          type: string
                          enum:
                            - authoring
                            - drafted
                            - in_review
                            - shipped
                            - dismissed
                            - failed
                        createdAt:
                          type: string
                      required:
                        - deliverableId
                        - proposalId
                        - pullRequestUrl
                        - threatId
                        - threatTitle
                        - intent
                        - pinning
                        - targetProduct
                        - targetLogSource
                        - lifecycleStatus
                        - createdAt
                  recentBlockingGaps:
                    type: array
                    items:
                      type: object
                      properties:
                        gapId:
                          type: string
                        product:
                          type: string
                        logSource:
                          type: string
                        scopeType:
                          type: string
                          enum:
                            - org
                            - integration
                            - account
                            - environment
                            - asset_group
                            - tenant
                            - domain
                        scopeId:
                          type:
                            - string
                            - 'null'
                        blocking:
                          type: boolean
                        gapStatus:
                          type: string
                          enum:
                            - open
                            - resolved
                            - dismissed
                        establishedAt:
                          type: string
                        linkedThreats:
                          type: array
                          items:
                            type: object
                            properties:
                              threatId:
                                type: string
                              threatTitle:
                                type: string
                              canonicalKey:
                                type: string
                              blocking:
                                type: boolean
                            required:
                              - threatId
                              - threatTitle
                              - canonicalKey
                              - blocking
                        createdAt:
                          type: string
                      required:
                        - gapId
                        - product
                        - logSource
                        - scopeType
                        - scopeId
                        - blocking
                        - gapStatus
                        - establishedAt
                        - linkedThreats
                        - createdAt
                  capabilities:
                    type: object
                    properties:
                      canReadEvidence:
                        type: boolean
                      canReassess:
                        type: boolean
                      canTriage:
                        type: boolean
                    required:
                      - canReadEvidence
                      - canReassess
                      - canTriage
                required:
                  - primaryCta
                  - summary
                  - funnel
                  - recentThreats
                  - recentRuleProposals
                  - recentBlockingGaps
        '400':
          description: Bad request — input validation failed or the request was malformed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '401':
          description: Unauthorized — missing or invalid API key / session
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — the authenticated user lacks the required permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: shell
          label: cURL
          source: |-
            curl -X GET "https://app.cotool.ai/api/hunt/overview" \
              -H "Authorization: Bearer YOUR_API_KEY" \
              -H "Content-Type: application/json"
components:
  schemas:
    ValidationError:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong
        issues:
          type: array
          description: >-
            Detailed validation issues, present when request or response schema
            validation fails
          items:
            type: object
            additionalProperties: true
      required:
        - error
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong
      required:
        - error
    PermissionError:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong
        missingPerms:
          type: array
          description: Permissions the authenticated user is missing for this operation
          items:
            type: string
      required:
        - error
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        API Key authentication for programmatic access. Include your API key in
        the Authorization header as: `Bearer your_api_key_here`

````