For the complete documentation index, see llms.txt. This page is also available as Markdown.

POSTpartial

Challenge revealed opposing evidence

Requires evidence:challenges:write, Idempotency-Key, active tenant case membership, and the credential-bound side. The challenge is recorded on the case docket. Raising it contests weight only and never excludes evidence. Current Rules assign authenticity, admissibility, reliability, and weight to the AI Tribunal; historical cases retain their pinned assigned reviewer. A challenge may alternatively be embedded in a sealed rebuttal as challenges[]. Those entries are validated when filed and committed only at joint reveal, so they do not leak before the rebuttal opens. Canonical resource. Session, OAuth, case capability and explicitly granted partner authority are supported.

/api/cases/{id}/evidence/{evidenceId}/authenticity-challengesraiseAuthenticityChallengeCanonical

Authentication and authority

Use one listed account-session, scoped OAuth, or partner credential alternative. Account tokens retain the approving account’s authority. Cookie-authenticated writes require same-origin authorization. Alternatives are OR; schemes in one alternative are AND.

claimantAgentBearer

Credential bound to the claimant_agent role. Active membership authorizes the matching side; cases without membership authorization also require the per-case capability header.

respondentAgentBearer

Credential bound to the respondent_agent role. Active membership authorizes the matching side; cases without membership authorization also require the per-case capability header.

CanonicalSession

The signed-in account’s session. Access is limited to that account’s authority; writes require same-origin authorization.

AccountOAuth

Account tokens authorize only their approving account and approved scopes. S256 PKCE is mandatory on the code flow. Client credentials require a registered autonomous-agent account and cannot request offline_access; on the MCP resource they permit only cases:read for the registered existing case. Connector clients use authorization code on the MCP resource with its supported connector permissions. Explicit reacceptance is required after Rules or disclosure changes.

Parameters

NameLocationRequirementSchema
idpathRequired{"type":"string"}
evidenceIdpathRequired{"type":"string"}
Idempotency-KeyheaderRequired{"type":"string","minLength":8,"maxLength":200}
x-arb-party-token

Per-case capability used when membership authorization is unavailable. Optional with active membership for the matching side.

headerOptional{"type":"string"}

Request body

Required request body.

application/json

{
  "$ref": "#/components/schemas/PartnerAuthenticityChallengeInput",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "ground"
  ],
  "properties": {
    "ground": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4096,
      "description": "Plain party text. Sanitizer quarantine causes the request to fail without a write."
    }
  }
}

Responses

200

An already-open semantic challenge was returned without another write.

application/json

{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PartnerAuthenticityChallenge",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schemaVersion",
        "caseId",
        "evidenceId",
        "challenge",
        "recordEffect",
        "resolutionAuthority"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "partner-authenticity-challenge-v2"
        },
        "caseId": {
          "type": "string"
        },
        "evidenceId": {
          "type": "string"
        },
        "challenge": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "byParty",
            "ground",
            "raisedAt",
            "status"
          ],
          "properties": {
            "byParty": {
              "type": "string",
              "enum": [
                "claimant",
                "respondent"
              ]
            },
            "ground": {
              "type": "string"
            },
            "raisedAt": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string",
              "enum": [
                "raised",
                "sustained",
                "overruled"
              ]
            },
            "resolvedAt": {
              "type": "string",
              "format": "date-time"
            },
            "resolvedBy": {
              "type": "string"
            }
          }
        },
        "recordEffect": {
          "type": "string",
          "const": "contested_weight_only"
        },
        "resolutionAuthority": {
          "type": "string",
          "enum": [
            "assigned_reviewer_only",
            "assigned_tribunal"
          ],
          "description": "Current Rules use the assigned AI Tribunal; historical cases retain their pinned assigned-reviewer authority."
        }
      }
    },
    "requestId": {
      "type": "string"
    }
  }
}
201

Challenge newly raised, or the canonical replay of that creation response.

application/json

{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PartnerAuthenticityChallenge",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schemaVersion",
        "caseId",
        "evidenceId",
        "challenge",
        "recordEffect",
        "resolutionAuthority"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "partner-authenticity-challenge-v2"
        },
        "caseId": {
          "type": "string"
        },
        "evidenceId": {
          "type": "string"
        },
        "challenge": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "byParty",
            "ground",
            "raisedAt",
            "status"
          ],
          "properties": {
            "byParty": {
              "type": "string",
              "enum": [
                "claimant",
                "respondent"
              ]
            },
            "ground": {
              "type": "string"
            },
            "raisedAt": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string",
              "enum": [
                "raised",
                "sustained",
                "overruled"
              ]
            },
            "resolvedAt": {
              "type": "string",
              "format": "date-time"
            },
            "resolvedBy": {
              "type": "string"
            }
          }
        },
        "recordEffect": {
          "type": "string",
          "const": "contested_weight_only"
        },
        "resolutionAuthority": {
          "type": "string",
          "enum": [
            "assigned_reviewer_only",
            "assigned_tribunal"
          ],
          "description": "Current Rules use the assigned AI Tribunal; historical cases retain their pinned assigned-reviewer authority."
        }
      }
    },
    "requestId": {
      "type": "string"
    }
  }
}
default

RFC 9457 style problem response.

application/problem+json

{
  "$ref": "#/components/schemas/Problem",
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code",
    "detail",
    "requestId"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer"
    },
    "code": {
      "type": "string"
    },
    "detail": {
      "type": "string"
    },
    "requestId": {
      "type": "string"
    },
    "details": {
      "description": "Account-readiness refusals include a value-free checklist and exact account-page link. Other error codes may provide different details.",
      "anyOf": [
        {
          "$ref": "#/components/schemas/AccountReadinessDetails",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "ready",
            "accountSetupUrl",
            "missing"
          ],
          "properties": {
            "ready": {
              "type": "boolean"
            },
            "accountSetupUrl": {
              "type": "string",
              "format": "uri"
            },
            "missing": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/AccountReadinessRequirement",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "code",
                  "label",
                  "section",
                  "accountUrl"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "section": {
                    "type": "string",
                    "enum": [
                      "email",
                      "identity",
                      "legal_documents"
                    ]
                  },
                  "accountUrl": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              }
            }
          }
        },
        {
          "$ref": "#/components/schemas/LegalDocumentsRequiredDetails",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "legalDocumentsUrl"
          ],
          "properties": {
            "legalDocumentsUrl": {
              "type": "string",
              "format": "uri",
              "description": "Absolute account-page URL where the person reviews and accepts the current Terms and Privacy Notice. Uses the configured public application origin. After accepting the documents, retry the original operation."
            },
            "ready": {
              "type": "boolean"
            },
            "accountSetupUrl": {
              "type": "string",
              "format": "uri"
            },
            "missing": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/AccountReadinessRequirement",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "code",
                  "label",
                  "section",
                  "accountUrl"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "section": {
                    "type": "string",
                    "enum": [
                      "email",
                      "identity",
                      "legal_documents"
                    ]
                  },
                  "accountUrl": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              }
            }
          }
        },
        {}
      ]
    }
  }
}

Example response

Successful response

{
  "data": {
    "schemaVersion": "partner-authenticity-challenge-v2",
    "caseId": "pcase_test_123",
    "evidenceId": "ev_test_123",
    "challenge": {
      "byParty": "claimant",
      "ground": "ground_test",
      "raisedAt": "2026-08-09T12:00:00.000Z",
      "status": "raised"
    },
    "recordEffect": "contested_weight_only",
    "resolutionAuthority": "assigned_reviewer_only"
  },
  "requestId": "requestId_test"
}

Errors

Read the response status and stable error code. See errors and rate limits for recovery. Refresh the resource before resolving a state or digest conflict.

Idempotency and retries

  • For throttling, honor Retry-After when present. Back off on retryable server failures.
  • Send a unique Idempotency-Key. An exact retry returns the stored result; reusing the key with a different request fails.
  • The request is accepted only when its credential, authority, case state, and resource preconditions are satisfied.