> ## 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 coding-agent answer fetches

> Returns answer fetches by coding agents over a fixed rolling window, per agent and platform since countedFrom: the coding-agent counts of the summary's codingAgents, without its totals of all answer fetches. Every Agent Picks plan can read it, with 404 Demand; the other traffic reads need an AI Search plan and return 403 without one. pathPrefix requires domain. Requires the `traffic.read` scope.



## OpenAPI

````yaml /openapi.json get /projects/{projectId}/traffic/coding-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: []
tags:
  - name: Connection and usage
    description: >-
      The project a credential is bound to, its scopes and features, usage, and
      code-mode receipts.
  - name: Setup
    description: >-
      Brands, domains, brand terms, platforms, content sources and pausing a
      project.
  - name: Prompts and topics
    description: Tracked prompts, their topics, and prompt-set analysis.
  - name: Visibility
    description: >-
      Visibility metrics, AI answers, sentiment, competitive position and the
      project timeline.
  - name: Citations
    description: >-
      Citation statistics, the most-cited domains and pages, and cited lookalike
      sites.
  - name: Positioning
    description: How well AI answers match your positioning statements.
  - name: Accuracy
    description: Claims AI answers make about your brand, and contradictions.
  - name: Content gaps
    description: Topics, sources and brands where competitors are cited.
  - name: AI Traffic
    description: >-
      AI referrals, answer fetches, crawls, 404 Demand, Direct lift and Search
      Console totals.
  - name: Adoption
    description: npm downloads and GitHub stars for project domains.
  - name: Audit and pages
    description: Audit findings, Google eligibility, page metrics, and locked pages.
  - name: Actions
    description: Suggested and accepted work, briefs, drafts and pull requests.
  - name: Results
    description: Content changes, measured results and what works.
  - name: Agents
    description: Managed agents, their schedules and runs.
  - name: Dex
    description: Private Dex conversations, specialist handoffs and memory.
  - name: Agent Picks
    description: Agent Picks setup, tests, schedules and results.
  - name: Library and Knowledge
    description: Library items and the Knowledge Profile.
  - name: Webhooks
    description: Webhook subscriptions and signing secrets.
  - name: Agent registration
    description: Setup drafts for an unclaimed agent registration.
paths:
  /projects/{projectId}/traffic/coding-agents:
    get:
      tags:
        - AI Traffic
      summary: Get coding-agent answer fetches
      description: >-
        Returns answer fetches by coding agents over a fixed rolling window, per
        agent and platform since countedFrom: the coding-agent counts of the
        summary's codingAgents, without its totals of all answer fetches. Every
        Agent Picks plan can read it, with 404 Demand; the other traffic reads
        need an AI Search plan and return 403 without one. pathPrefix requires
        domain. Requires the `traffic.read` scope.
      operationId: getTrafficCodingAgents
      parameters:
        - name: projectId
          in: path
          required: true
          description: >-
            The project the credential is bound to. Read it from GET
            /connection.
          schema:
            type: string
            format: uuid
        - name: windowDays
          in: query
          schema:
            type: integer
            enum:
              - 30
              - 90
            default: 30
          description: >-
            Fixed rolling window in days. Supported values are 30 and 90.
            Defaults to 30.
        - name: domain
          description: Only traffic on this host, such as docs.example.com.
          in: query
          schema:
            type: string
        - name: pathPrefix
          in: query
          description: Count only this path and its descendants. Requires domain.
          schema:
            type: string
            pattern: ^/
      responses:
        '200':
          description: Coding-agent answer fetches
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      codingAgents:
                        type: object
                        description: >-
                          Answer fetches made by coding agents (Aider, Claude
                          Code, Crush, Gemini CLI, OpenCode and Qwen Code) since
                          countedFrom, under the domain and pathPrefix filters,
                          as edge middleware, a Vercel log drain and the
                          tracking snippet attribute them. Coding-agent counts
                          only: no total of all answer fetches. coverage is
                          partial when some answer fetches in the span could not
                          be attributed, so totalEvents leaves them out. state
                          is not_yet_observed, with a null totalEvents, until
                          the project records a coding-agent fetch.
                        properties:
                          state:
                            type: string
                            enum:
                              - observed
                              - not_yet_observed
                            description: >-
                              not_yet_observed until the project records its
                              first coding-agent fetch.
                          coverage:
                            type: string
                            enum:
                              - complete
                              - partial
                            description: >-
                              complete when every answer fetch in the span was
                              attributed or ruled out; partial when some could
                              not be attributed to a coding agent, for example
                              Cloudflare pulls, so totalEvents is a lower bound.
                          countedFrom:
                            type: string
                            format: date-time
                            description: >-
                              Start of the counted span: the later of the window
                              start and the first hour DevTune counted coding
                              agents.
                          totalEvents:
                            type:
                              - integer
                              - 'null'
                            description: >-
                              Coding-agent answer fetches attributed since
                              countedFrom. Null while state is not_yet_observed.
                          agents:
                            type: array
                            description: Totals per coding agent, largest first.
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                  description: The coding agent, such as OpenCode or Aider.
                                llmPlatform:
                                  type: string
                                  description: >-
                                    The AI Traffic provider key the agent
                                    belongs to, such as anthropic.
                                events:
                                  type: integer
                                  description: Its answer fetches since countedFrom.
                              required:
                                - label
                                - llmPlatform
                                - events
                          platforms:
                            type: array
                            description: Totals per AI platform, largest first.
                            items:
                              type: object
                              properties:
                                llmPlatform:
                                  type: string
                                  description: The AI Traffic provider key.
                                events:
                                  type: integer
                                  description: >-
                                    Coding-agent answer fetches for the provider
                                    since countedFrom.
                              required:
                                - llmPlatform
                                - events
                        required:
                          - state
                          - coverage
                          - countedFrom
                          - totalEvents
                          - agents
                          - platforms
                      window:
                        type: object
                        description: The fixed window the figures cover, in UTC days.
                        properties:
                          days:
                            type: integer
                          dateFrom:
                            type: string
                            format: date
                            description: First day of the window.
                          dateTo:
                            type: string
                            format: date
                            description: Last day of the window, included.
                        required:
                          - days
                          - dateFrom
                          - dateTo
                    required:
                      - codingAgents
                      - window
                  meta:
                    $ref: '#/components/schemas/Meta'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/RateLimitExceededError'
      security:
        - bearerAuth: []
        - oauthBearer: []
components:
  schemas:
    Meta:
      type: object
      description: Sent beside data on every successful response that returns data.
      properties:
        timestamp:
          type: string
          format: date-time
          description: When the response was produced.
        projectId:
          type: string
          format: uuid
    Error:
      type: object
      properties:
        error:
          type: string
          description: >-
            Machine-readable error code, such as bad_request, unauthorized,
            forbidden, not_found, conflict, payment_required,
            rate_limit_exceeded or internal_error. Some endpoints return their
            own codes, listed in their descriptions.
        message:
          type: string
          description: >-
            What went wrong, for a person to read. Do not parse it; use error
            and reason.
        reason:
          type: string
          description: >-
            Why the request was refused, for an error with more than one cause,
            such as a refused content-draft start.
        details:
          type: object
          additionalProperties: true
          description: >-
            Machine-readable facts about the refusal, such as shortfall_credits
            when an Agent Picks start is refused for insufficient_credits.
        status:
          type: integer
          description: The HTTP status code, repeated in the body.
      required:
        - error
        - message
        - status
  responses:
    BadRequestError:
      description: >-
        The request is invalid: a parameter or body field is missing, has the
        wrong type or is out of range, or a cursor doesn't match this list. The
        message says which; reason, where present, is listed in the endpoint's
        description. Fix the request before retrying, and restart a list without
        its cursor. See [Errors](/api-reference/errors).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    UnauthorizedError:
      description: >-
        The request has no valid credential: the Authorization header is missing
        or malformed, or the API key or OAuth token is invalid, expired or
        revoked. Send `Authorization: Bearer <API key>` with an active key, or
        sign in again to get a new OAuth token. See
        [Errors](/api-reference/errors).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ForbiddenError:
      description: >-
        The credential is valid but can't make this request. The message says
        which cause applies: the key or sign-in lacks the scope this endpoint
        requires (named in the message), it belongs to another project, the plan
        doesn't include API access or this feature, the project is paused (a
        paused project keeps only read scopes and setup.write), or the member a
        write acts as no longer has the role it needs. Read `GET
        /projects/{projectId}/connection` for the credential's current scopes
        and features, then use a key that has the scope, sign in again and
        approve it, or upgrade the plan. See [Errors](/api-reference/errors).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimitExceededError:
      description: >-
        Too many requests from this credential in the current window. The
        request was refused before it took effect, so it is safe to retry: wait
        until the time in X-RateLimit-Reset, then send it again. Endpoints that
        start agent runs have a stricter limit. See [Rate
        limits](/api-reference/rate-limits).
      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.
    oauthBearer:
      type: http
      scheme: bearer
      description: >-
        Project-granted OAuth access token from the authorization server
        advertised at /.well-known/oauth-protected-resource/api/v2. Uses the
        same browser consent and current project permissions as MCP. Only
        operations explicitly listing oauthBearer accept these tokens.

````

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