> ## 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 Accuracy claims

> Lists the claim groups with one outcome over the same window and filters as getAccuracy, most answers first, then most recently seen. Each item carries the latest answer with that outcome, the site page and any other page, and the team’s active decision.



## OpenAPI

````yaml /openapi.json get /projects/{projectId}/accuracy/claims
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}/accuracy/claims:
    get:
      summary: List Accuracy claims
      description: >-
        Lists the claim groups with one outcome over the same window and filters
        as getAccuracy, most answers first, then most recently seen. Each item
        carries the latest answer with that outcome, the site page and any other
        page, and the team’s active decision.
      operationId: listAccuracyClaims
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: outcome
          in: query
          required: true
          schema:
            type: string
            enum:
              - contradict
              - site_conflict
              - not_on_site
              - dismissed
        - name: window
          in: query
          schema:
            type: integer
            enum:
              - 30
              - 90
            default: 30
        - name: platform
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 100
        - name: intent
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 100
        - name: cursor
          in: query
          description: next_cursor from the previous page, verbatim.
          schema:
            type: string
            maxLength: 400
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
      responses:
        '200':
          description: Accuracy claims
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AccuracyClaimsData'
                  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:
    AccuracyClaimsData:
      type: object
      properties:
        window:
          $ref: '#/components/schemas/AccuracyWindow'
        outcome:
          type: string
          enum:
            - contradict
            - site_conflict
            - not_on_site
            - dismissed
        items:
          type: array
          items:
            type: object
            properties:
              group_id:
                type: string
                format: uuid
              claim_text:
                type: string
              answers:
                type: integer
                minimum: 0
              platforms:
                type: array
                items:
                  type: string
              last_seen_on:
                type: string
                format: date
              last_seen_at:
                type: string
                format: date-time
              execution_id:
                type:
                  - string
                  - 'null'
                format: uuid
                description: >-
                  The latest answer with the listed outcome. Null only until the
                  rollup is rebuilt after its group was merged.
              claim_index:
                type:
                  - integer
                  - 'null'
                minimum: 0
                description: >-
                  The claim within that answer. With execution_id it names the
                  claim a decision on this item acts on.
              prompt_id:
                type:
                  - string
                  - 'null'
                format: uuid
              prompt_text:
                type:
                  - string
                  - 'null'
                description: Null once the prompt is deleted.
              excerpt:
                type:
                  - string
                  - 'null'
              site_page:
                anyOf:
                  - $ref: '#/components/schemas/AccuracySitePage'
                  - type: 'null'
              other_page:
                anyOf:
                  - $ref: '#/components/schemas/AccuracyOtherPage'
                  - type: 'null'
              decision:
                anyOf:
                  - $ref: '#/components/schemas/AccuracyDecision'
                  - type: 'null'
              answered:
                type: boolean
                description: The team said whether a not-on-site claim is true or false.
              action:
                anyOf:
                  - $ref: '#/components/schemas/AccuracyOpenAction'
                  - type: 'null'
            required:
              - group_id
              - claim_text
              - answers
              - platforms
              - last_seen_on
              - last_seen_at
              - execution_id
              - claim_index
              - prompt_id
              - prompt_text
              - excerpt
              - site_page
              - other_page
              - decision
              - answered
              - action
        dismissed_count:
          type: integer
          minimum: 0
          description: Claims in the window the team dismissed, of both kinds.
        dismissed_contradiction_count:
          type: integer
          minimum: 0
          description: >-
            Dismissed claims that were contradictions. With
            dismissed_site_conflict_count, sums to dismissed_count.
        dismissed_site_conflict_count:
          type: integer
          minimum: 0
          description: >-
            Dismissed claims that were site conflicts the team marked both
            right.
        answered_count:
          type: integer
          minimum: 0
        next_cursor:
          type:
            - string
            - 'null'
          description: >-
            Pass verbatim as cursor for the next page, with the other parameters
            unchanged. Null on the last page.
      required:
        - window
        - outcome
        - items
        - dismissed_count
        - dismissed_contradiction_count
        - dismissed_site_conflict_count
        - answered_count
        - next_cursor
    Meta:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        projectId:
          type: string
          format: uuid
    AccuracyWindow:
      type: object
      properties:
        days:
          type: integer
          enum:
            - 30
            - 90
        from:
          type: string
          format: date
        to:
          type: string
          format: date
      required:
        - days
        - from
        - to
    AccuracySitePage:
      type: object
      description: The page on the brand’s site the claim was judged against.
      properties:
        url:
          type:
            - string
            - 'null'
        quote:
          type:
            - string
            - 'null'
        page_type:
          type:
            - string
            - 'null'
        crawled_at:
          type:
            - string
            - 'null'
          format: date-time
        locked:
          type: boolean
          description: The customer has marked the page off-limits for suggested changes.
      required:
        - url
        - quote
        - page_type
        - crawled_at
        - locked
    AccuracyOtherPage:
      type: object
      description: >-
        Another page that states the claim: a conflicting_page makes a site
        conflict; a set_aside_page is a blog post or changelog that leaves the
        claim a contradiction.
      properties:
        url:
          type:
            - string
            - 'null'
        quote:
          type:
            - string
            - 'null'
        page_type:
          type:
            - string
            - 'null'
        role:
          type:
            - string
            - 'null'
          enum:
            - conflicting_page
            - set_aside_page
            - null
        locked:
          type: boolean
      required:
        - url
        - quote
        - page_type
        - role
        - locked
    AccuracyDecision:
      type: object
      description: >-
        A decision the team made on a claim. Claim lists and the claim detail
        carry the active one.
      properties:
        id:
          type: string
          format: uuid
        kind:
          type: string
          enum:
            - contradiction
            - site_conflict
            - not_on_site
        choice:
          type: string
          enum:
            - not_a_contradiction
            - both_right
            - site
            - other
            - 'true'
            - 'false'
        chosen_url:
          type:
            - string
            - 'null'
          description: The page a site-conflict answer kept. Null for other choices.
        changed_url:
          type:
            - string
            - 'null'
          description: >-
            The page a site-conflict answer changes to agree with chosen_url.
            Null for other choices.
        action_id:
          type:
            - string
            - 'null'
          format: uuid
        action_role:
          type:
            - string
            - 'null'
          enum:
            - created
            - attached
            - null
          description: >-
            Where the decision stands on its action now: created when the action
            is built from this decision, attached when the decision is added to
            an action built from another claim, null when it has none. Undoing
            the decision an action was built from rebuilds it from the next
            claim on it, whose role becomes created.
        no_action_reason:
          type:
            - string
            - 'null'
        label: {}
        decided_by:
          type:
            - string
            - 'null'
          format: uuid
        decided_at:
          type: string
          format: date-time
        undo_available:
          type: boolean
          description: >-
            False once the decision is undone, or when the action it created is
            live.
      required:
        - id
        - kind
        - choice
        - chosen_url
        - changed_url
        - action_id
        - action_role
        - no_action_reason
        - label
        - decided_by
        - decided_at
        - undo_available
    AccuracyOpenAction:
      type: object
      description: The open action for the claim, created from Accuracy or attached to.
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - open
            - in_progress
            - blocked
        loop_state:
          type:
            - string
            - 'null'
        created_by:
          type:
            - string
            - 'null'
          format: uuid
        created_at:
          type: string
          format: date-time
      required:
        - id
        - status
        - loop_state
        - created_by
        - created_at
    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.