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

# List all task usages

> List usage data for all tasks with aggregated metrics.
Each task may contain multiple streams (executions), and this endpoint
returns the combined totals for each task including cost,
tool calls, and execution times.

Access control:
- Solo users (not in a team): Can view their own tasks only
- Team admins: Can view all team members' tasks (with email field and optional email filter)
- Team members/viewers: No access (returns 403)




## OpenAPI

````yaml https://neo.api.projectdiscovery.io/api/openapi.json get /api/v1/usage/tasks
openapi: 3.1.0
info:
  contact:
    name: ProjectDiscovery
    url: https://neo.projectdiscovery.io
  description: Neo API Server - Security agent orchestration platform
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  title: Neo API
  version: 1.0.0
servers:
  - description: Production
    url: https://neo.api.projectdiscovery.io
  - description: Local development
    url: http://localhost:8080
security: []
tags:
  - description: Task execution and management
    name: Tasks
  - description: Agent listing and management
    name: Agents
  - description: Public agent directory
    name: Agent Directory
  - description: User file storage management
    name: Files
  - description: User working memory management
    name: Memory
  - description: Scheduled and recurring task management
    name: Schedules
  - description: Knowledge base and semantic search
    name: Knowledge
  - description: Encrypted user credentials and API keys
    name: Secrets
  - description: Neo API key management for programmatic access
    name: API Keys
  - description: User profile and account information
    name: User
  - description: Task and LLM usage tracking
    name: Usage
  - description: Bring Your Own Key provider management
    name: BYOK
  - description: Model discovery and capabilities
    name: Models
  - description: Third-party integrations
    name: Integrations
  - description: Skill knowledge documents for agent prompts
    name: Skills
  - description: Team management and member invitations
    name: Teams
  - description: Prompt library management and discovery
    name: Prompts
  - description: Slack bot integration for workspace installation and OAuth
    name: Slack
  - description: GitHub integration for PR reviews and repository management
    name: GitHub
  - description: Vulnerability issue tracking and management
    name: Issues
  - description: Subscription billing and plans
    name: Billing
  - description: Project management and member assignments
    name: Projects
  - description: SSH key pair generation and management for remote server access
    name: SSH Keys
  - description: Codebase structural analysis and mapping
    name: Codemaps
  - description: AI-generated codebase documentation and security analysis
    name: CodeWiki
  - description: Captured HTTP traffic query and replay
    name: Network Events
paths:
  /api/v1/usage/tasks:
    get:
      tags:
        - Usage
      summary: List all task usages
      description: >
        List usage data for all tasks with aggregated metrics.

        Each task may contain multiple streams (executions), and this endpoint

        returns the combined totals for each task including cost,

        tool calls, and execution times.


        Access control:

        - Solo users (not in a team): Can view their own tasks only

        - Team admins: Can view all team members' tasks (with email field and
        optional email filter)

        - Team members/viewers: No access (returns 403)
      operationId: get-v1-usage-tasks
      parameters:
        - description: Filter by specific task ID
          in: query
          name: task_id
          required: false
          schema:
            type: string
        - description: Filter by task status
          in: query
          name: status
          required: false
          schema:
            enum:
              - completed
              - error
              - failed
              - aborted
              - blocked
            type: string
        - description: Filter by model
          in: query
          name: model
          required: false
          schema:
            type: string
        - description: Filter from datetime (ISO 8601)
          in: query
          name: from
          required: false
          schema:
            format: date-time
            type: string
        - description: Filter to datetime (ISO 8601)
          in: query
          name: to
          required: false
          schema:
            format: date-time
            type: string
        - description: Number of results (1-200, default 50)
          in: query
          name: limit
          required: false
          schema:
            default: 50
            maximum: 200
            minimum: 1
            type: integer
        - description: Pagination offset (default 0)
          in: query
          name: offset
          required: false
          schema:
            default: 0
            minimum: 0
            type: integer
        - description: Filter tasks by task ID or email (case-insensitive partial match)
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: Filter by team member email (exact match, only for team admins)
          in: query
          name: email
          required: false
          schema:
            type: string
        - description: >-
            Filter by BYOK status (true = only BYOK tasks, false = only non-BYOK
            tasks)
          in: query
          name: is_byok
          required: false
          schema:
            type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskUsageListResponse'
          description: List of tasks with aggregated usage
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden - team members/viewers cannot access usage data
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
      security:
        - BearerAuth: []
        - ApiKeyAuth: []
components:
  schemas:
    TaskUsageListResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/TaskUsage'
          type: array
        has_more:
          description: Whether there are more records
          type: boolean
        total:
          description: Total number of records
          type: integer
      required:
        - data
        - total
        - has_more
      type: object
    ErrorResponse:
      properties:
        code:
          description: >
            Stable machine-readable error code — branch on this rather than

            matching the human `error`/`message` strings. Domain codes include

            `user_spending_cap_reached`, `project_spending_cap_reached`, and

            `insufficient_neo_credits`; otherwise it mirrors the error kind

            (e.g. `forbidden`, `invalid_request`, `not_exists`,
            `already_exists`).
          example: user_spending_cap_reached
          type: string
        error:
          example: Bad request
          type: string
        error_id:
          description: Correlation id for a specific error instance, when present.
          type: string
        kind:
          description: Coarse error category (e.g. "forbidden request", "invalid request").
          example: forbidden request
          type: string
        message:
          description: |
            Human-readable detail (the kind prefixed to the error). For display,
            not for branching.
          type: string
      required:
        - error
      type: object
    TaskUsage:
      properties:
        agent_breakdown:
          additionalProperties:
            type: integer
          description: Agent trigger counts by agent name
          nullable: true
          type: object
        agent_triggers:
          description: Total agent triggers
          type: integer
        avg_step_latency_ms:
          description: Average step latency in milliseconds
          nullable: true
          type: integer
        created_at:
          description: When the task was created
          format: date-time
          type: string
        email:
          description: Email of the user who created the task (only visible to team admins)
          type: string
        error_message:
          description: Error message if status is error
          nullable: true
          type: string
        is_byok:
          description: Whether the task used a Bring Your Own Key (BYOK) provider
          type: boolean
        llm_cost:
          description: >-
            LLM cost for BYOK usage. Returns the same base amount previously
            exposed as neo_credits.
          format: float
          nullable: true
          type: number
        llm_time_ms:
          description: Total LLM inference time in milliseconds
          nullable: true
          type: integer
        model:
          description: LLM model used
          type: string
        neo_cost:
          description: Neo platform cost for BYOK usage after applying neo_cost_rate
          format: float
          nullable: true
          type: number
        neo_credits:
          description: Neo credits used (1 credit = $10 USD equivalent)
          format: float
          nullable: true
          type: number
        status:
          description: Execution status
          enum:
            - completed
            - error
            - failed
            - aborted
            - blocked
          type: string
        step_count:
          description: Number of steps executed
          type: integer
        stream_count:
          description: Number of streams aggregated (1 if single stream)
          type: integer
        stream_id:
          description: >-
            Stream ID (only present for individual streams, omitted for grouped
            tasks)
          format: uuid
          type: string
        task_id:
          description: Task ID
          type: string
        task_title:
          description: Task title when available
          nullable: true
          type: string
        tool_breakdown:
          additionalProperties:
            $ref: '#/components/schemas/ToolBreakdownEntry'
          description: Tool call breakdown with calls and duration
          nullable: true
          type: object
        tool_call_history:
          description: Detailed tool call history
          items:
            $ref: '#/components/schemas/ToolCallHistoryEntry'
          nullable: true
          type: array
        tool_calls:
          description: Total tool calls made
          type: integer
        tool_time_ms:
          description: Total tool execution time in milliseconds
          nullable: true
          type: integer
        total_execution_ms:
          description: Total execution time in milliseconds
          nullable: true
          type: integer
      required:
        - task_id
        - model
        - status
        - step_count
        - tool_calls
        - agent_triggers
        - created_at
      type: object
    ToolBreakdownEntry:
      properties:
        calls:
          description: Number of calls to this tool
          type: integer
        total_duration_ms:
          description: Total duration of all calls in milliseconds
          type: integer
      type: object
    ToolCallHistoryEntry:
      properties:
        duration_ms:
          description: Duration of the call in milliseconds
          type: integer
        index:
          description: Sequential index of the tool call
          type: integer
        timestamp:
          description: Unix timestamp in milliseconds when the call was made
          format: int64
          type: integer
        tool_name:
          description: Name of the tool called
          type: string
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT authentication token
      scheme: bearer
      type: http
    ApiKeyAuth:
      description: Neo API key (neo_sk_* prefix)
      in: header
      name: X-Api-Key
      type: apiKey

````