> ## 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.

# Get Agent Picks summary

> Returns which tool coding agents installed when asked for one, from the project’s latest completed Agent Picks test, or the latest completed public test for its category when the project has none (test.scope says which). Every rate is picks over completed runs summed across the test’s cells, with its Wilson 95% likely range; tool_key null means the agent built its own. Re-tests are never shown. status is no_settings when no category is chosen and no_test when no test has finished. agent and intent narrow every number to the matching runs; any other parameter is refused with 400. Needs the Agent Picks feature; without it the request is refused with 403.



## OpenAPI

````yaml /openapi.json get /projects/{projectId}/agent-picks/summary
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}/agent-picks/summary:
    get:
      summary: Get Agent Picks summary
      description: >-
        Returns which tool coding agents installed when asked for one, from the
        project’s latest completed Agent Picks test, or the latest completed
        public test for its category when the project has none (test.scope says
        which). Every rate is picks over completed runs summed across the test’s
        cells, with its Wilson 95% likely range; tool_key null means the agent
        built its own. Re-tests are never shown. status is no_settings when no
        category is chosen and no_test when no test has finished. agent and
        intent narrow every number to the matching runs; any other parameter is
        refused with 400. Needs the Agent Picks feature; without it the request
        is refused with 403.
      operationId: getAgentPicksSummary
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: agent
          in: query
          schema:
            type: string
            enum:
              - claude_code
              - codex
              - cursor
          description: Only runs by this coding agent.
        - name: intent
          in: query
          schema:
            type: string
            enum:
              - add
              - recommend
              - hosted
          description: >-
            Only runs of this question: add (build it), recommend (recommend
            one) or hosted (hosted service).
      responses:
        '200':
          description: Agent Picks summary
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AgentPicksSummaryData'
                  meta:
                    $ref: '#/components/schemas/Meta'
                required:
                  - data
                  - meta
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitExceededError'
components:
  schemas:
    AgentPicksSummaryData:
      type: object
      properties:
        status:
          type: string
          enum:
            - no_settings
            - no_test
            - ready
        category:
          type:
            - object
            - 'null'
          properties:
            id:
              type: string
              format: uuid
            slug:
              type: string
            name:
              type: string
          required:
            - id
            - slug
            - name
        own_tool_key:
          type:
            - string
            - 'null'
        competitor_tool_keys:
          type: array
          items:
            type: string
        test:
          type:
            - object
            - 'null'
          properties:
            id:
              type: string
              format: uuid
            scope:
              type: string
              enum:
                - project
                - public
              description: >-
                public when the project has no completed test and its category’s
                public test is shown.
            kind:
              type: string
            completed_at:
              type: string
              format: date-time
          required:
            - id
            - scope
            - kind
            - completed_at
        runs:
          type: integer
          minimum: 0
          description: Completed runs in the shown test.
        tools:
          type: array
          description: >-
            Every tool picked, plus the project’s own tool and competitors, most
            picks first.
          items:
            allOf:
              - $ref: '#/components/schemas/AgentPickRate'
              - type: object
                properties:
                  display_name:
                    type:
                      - string
                      - 'null'
                  brand_domain:
                    type:
                      - string
                      - 'null'
                  is_own:
                    type: boolean
                  is_competitor:
                    type: boolean
                required:
                  - display_name
                  - brand_domain
                  - is_own
                  - is_competitor
        frameworks:
          type: array
          items:
            type: object
            properties:
              framework:
                type:
                  - string
                  - 'null'
                description: Null for an empty project with no framework.
              runs:
                type: integer
                minimum: 0
              top_picks:
                type: array
                maxItems: 3
                items:
                  $ref: '#/components/schemas/AgentPickRate'
            required:
              - framework
              - runs
              - top_picks
        agents:
          type: array
          items:
            type: object
            properties:
              agent:
                type: string
                enum:
                  - claude_code
                  - codex
                  - cursor
              model:
                type: string
              runs:
                type: integer
                minimum: 0
              tools:
                type: array
                description: The same tools as the top-level list, in its order.
                items:
                  $ref: '#/components/schemas/AgentPickRate'
            required:
              - agent
              - model
              - runs
              - tools
        environments:
          type: array
          description: >-
            Each test environment, most-run first and the empty project last.
            Every group lists the tools picked there plus the project’s own
            tool, most picks first.
          items:
            type: object
            properties:
              slug:
                type: string
              name:
                type: string
              framework:
                type:
                  - string
                  - 'null'
                description: Null for an empty project with no framework.
              runs:
                type: integer
                minimum: 0
              tools:
                type: array
                items:
                  $ref: '#/components/schemas/AgentPickRate'
              agents:
                type: array
                description: Rates per agent, its models summed.
                items:
                  type: object
                  properties:
                    agent:
                      type: string
                      enum:
                        - claude_code
                        - codex
                        - cursor
                    runs:
                      type: integer
                      minimum: 0
                    tools:
                      type: array
                      items:
                        $ref: '#/components/schemas/AgentPickRate'
                  required:
                    - agent
                    - runs
                    - tools
              cells:
                type: array
                description: >-
                  One per question and agent, in question order (add, recommend,
                  hosted).
                items:
                  type: object
                  properties:
                    intent:
                      type: string
                      enum:
                        - add
                        - recommend
                        - hosted
                    agent:
                      type: string
                      enum:
                        - claude_code
                        - codex
                        - cursor
                    runs:
                      type: integer
                      minimum: 0
                    tools:
                      type: array
                      items:
                        $ref: '#/components/schemas/AgentPickRate'
                  required:
                    - intent
                    - agent
                    - runs
                    - tools
            required:
              - slug
              - name
              - framework
              - runs
              - tools
              - agents
              - cells
        filters:
          type: object
          description: The filters applied; null means all.
          properties:
            agent:
              type:
                - string
                - 'null'
            intent:
              type:
                - string
                - 'null'
          required:
            - agent
            - intent
      required:
        - status
        - category
        - own_tool_key
        - competitor_tool_keys
        - test
        - filters
        - runs
        - tools
        - frameworks
        - agents
        - environments
    Meta:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        projectId:
          type: string
          format: uuid
    AgentPickRate:
      type: object
      properties:
        tool_key:
          type:
            - string
            - 'null'
          description: Null when the agent built its own.
        picks:
          type: integer
          minimum: 0
        runs:
          type: integer
          minimum: 0
        rate:
          type:
            - number
            - 'null'
          minimum: 0
          maximum: 1
          description: picks / runs; null when there are no runs.
        rate_low:
          type:
            - number
            - 'null'
          minimum: 0
          maximum: 1
          description: Lower bound of the Wilson 95% interval.
        rate_high:
          type:
            - number
            - 'null'
          minimum: 0
          maximum: 1
          description: Upper bound of the Wilson 95% interval.
      required:
        - tool_key
        - picks
        - runs
        - rate
        - rate_low
        - rate_high
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        status:
          type: integer
      required:
        - error
        - message
        - status
  responses:
    BadRequestError:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    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.