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

# Submit a claim

> Tells QED Proof what an agent says it did. The claim is checked against the destination itself, inline when the destination answers quickly, otherwise by the next worker pass. Submitting the same `client_claim_id` again returns the existing claim (`created: false`) instead of a second one.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/claims
openapi: 3.1.0
info:
  description: 'The public HTTP API of QED Proof. Guides: https://docs.qedproof.site'
  title: QED Proof API
  version: 0.1.0
servers:
  - url: https://api.qedproof.site
security: []
paths:
  /v1/claims:
    post:
      summary: Submit a claim
      description: >-
        Tells QED Proof what an agent says it did. The claim is checked against
        the destination itself, inline when the destination answers quickly,
        otherwise by the next worker pass. Submitting the same `client_claim_id`
        again returns the existing claim (`created: false`) instead of a second
        one.
      operationId: submit_v1_claims_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClaimIn'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Submit V1 Claims Post
                type: object
          description: Successful Response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Missing or invalid API key.
        '402':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            The deployment refused a new claim (for example a workspace limit).
            Nothing was created.
        '413':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: The request body is too large.
        '422':
          description: The claim or its `params` are invalid for this `action`.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Rate limit exceeded. Retry after the `Retry-After` header's seconds.
      security:
        - apiKey: []
components:
  schemas:
    ClaimIn:
      description: What an agent submits. Always untrusted (SPEC §2).
      properties:
        action:
          pattern: ^[a-z0-9]+(\.[a-z0-9_]+){2}$
          title: Action
          type: string
        agent_id:
          maxLength: 256
          minLength: 1
          title: Agent Id
          type: string
        claimed_at:
          format: date-time
          title: Claimed At
          type: string
        client_claim_id:
          maxLength: 256
          minLength: 1
          title: Client Claim Id
          type: string
        params:
          additionalProperties: true
          title: Params
          type: object
        target:
          maxLength: 512
          minLength: 1
          title: Target
          type: string
      required:
        - client_claim_id
        - agent_id
        - action
        - target
        - claimed_at
      title: ClaimIn
      type: object
    Error:
      properties:
        detail:
          description: What went wrong, in plain words.
          type: string
      required:
        - detail
      title: Error
      type: object
  securitySchemes:
    apiKey:
      description: A workspace API key, created on the Developers screen.
      scheme: bearer
      type: http

````