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

# List managed agents

> Returns roster and active custom agents with display fields and, for each, the evidence verdict a run would start from.



## OpenAPI

````yaml /openapi.json get /projects/{projectId}/agents
openapi: 3.1.0
info:
  title: DevTune API
  version: 2.0.0
  description: >-
    API for programmatic access to your AI visibility data, webhook
    subscriptions, and automation workflows. Use this API to integrate DevTune
    data into CI/CD pipelines, BI tools, AI agents, and operational systems.
servers:
  - url: https://devtune.ai/api/v2
    description: Production
security:
  - bearerAuth: []
paths:
  /projects/{projectId}/agents:
    get:
      summary: List managed agents
      description: >-
        Returns roster and active custom agents with display fields and, for
        each, the evidence verdict a run would start from.
      operationId: listManagedAgents
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Managed-agent gallery
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      agents:
                        type: array
                        items:
                          $ref: '#/components/schemas/AgentDefinition'
                      evidenceCoverage:
                        $ref: '#/components/schemas/ProjectEvidenceCoverage'
                      trial:
                        type: object
                        nullable: true
                        description: >-
                          Trial policy, or null outside a trial. The allowance
                          is one-time and shared across the account, not a
                          remaining balance.
                        properties:
                          creditAllowance:
                            type: integer
                            enum:
                              - 2
                          scheduledAgentsEnabled:
                            type: boolean
                            enum:
                              - false
                        required:
                          - creditAllowance
                          - scheduledAgentsEnabled
                    required:
                      - agents
                      - evidenceCoverage
                      - trial
                  meta:
                    $ref: '#/components/schemas/Meta'
                required:
                  - data
                  - meta
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitExceededError'
components:
  schemas:
    AgentDefinition:
      type: object
      properties:
        agentKey:
          type: string
        description:
          type: string
        displayName:
          type: string
        evidence:
          $ref: '#/components/schemas/AgentEvidence'
        isCustom:
          type: boolean
        outputArtifactType:
          type: string
        quickActions:
          type: array
          items:
            type: string
        workflowKey:
          type: string
      required:
        - agentKey
        - description
        - displayName
        - evidence
        - isCustom
        - outputArtifactType
        - workflowKey
    ProjectEvidenceCoverage:
      type: object
      description: >-
        Project-wide evidence state at the moment the gallery was read, in the
        same vocabulary the per-agent verdicts use.
      properties:
        asOf:
          type: string
          format: date-time
        sources:
          type: array
          items:
            type: object
            properties:
              source: 1c3b25b6-948f-4479-aa95-c4e2ec1e8d15
              state:
                type: string
                enum:
                  - available
                  - missing
                  - unconfirmed
            required:
              - source
              - state
      required:
        - asOf
        - sources
    Meta:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        projectId:
          type: string
          format: uuid
    AgentEvidence:
      type: object
      properties:
        unavailable:
          type: array
          items:
            $ref: '#/components/schemas/AgentEvidenceGap'
        verdict:
          type: string
          enum:
            - blocked
            - partial
            - ready
          description: >-
            blocked means nothing this agent reads is available and a run would
            be refused before any credits are spent. partial means the run
            proceeds and reports which sources it could not see.
      required:
        - unavailable
        - verdict
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        status:
          type: integer
      required:
        - error
        - message
        - status
    AgentEvidenceGap:
      type: object
      properties:
        source:
          type: string
          enum:
            - analytics
            - answer_engine_audits
            - browser_machine_traffic
            - owned_content
            - search_console
            - search_probe_answers
            - search_probes
            - server_machine_traffic
          description: >-
            The evidence source the agent cannot read. The two machine-traffic
            sources are not interchangeable: only server_machine_traffic sees
            answer fetches and 404 demand.
        state:
          type: string
          enum:
            - missing
            - unconfirmed
          description: >-
            missing means nothing is connected; unconfirmed means it is
            connected but has never delivered a measurement.
      required:
        - source
        - state
  responses:
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ForbiddenError:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFoundError:
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimitExceededError:
      description: Rate limit exceeded
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  headers:
    X-RateLimit-Limit:
      description: Maximum requests per window
      schema:
        type: integer
    X-RateLimit-Remaining:
      description: Requests remaining in current window
      schema:
        type: integer
    X-RateLimit-Reset:
      description: Unix timestamp when the window resets
      schema:
        type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key with dtk_live_ prefix. Obtain it from API Keys in the account
        sidebar. New keys start with all supported scopes selected for the
        chosen project, and you can narrow them to specific read/write scopes as
        needed.

````

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