# DisputeTracker agent API reference

DisputeTracker provides paid, machine-readable Polymarket and UMA resolution intelligence.

- OpenAPI: https://disputetracker.xyz/openapi.json
- Service manifest: https://disputetracker.xyz/.well-known/agent-payments.json
- MCP: https://disputetracker.xyz/mcp
- Agent Card: https://disputetracker.xyz/.well-known/agent-card.json

## Capabilities

| Capability | Tier | x402 advisory price | MPP advisory price | x402 path | MPP path |
|---|---:|---:|---:|---|---|
| dispute-brief | starter | $0.001 | 0.001 USDC.e | `/api/agent/dispute-brief/x402` | `/api/agent/dispute-brief/mpp` |
| stage-assessment | basic | $0.002 | 0.002 USDC.e | `/api/agent/stage-assessment/x402` | `/api/agent/stage-assessment/mpp` |
| market-metrics | standard | $0.003 | 0.003 USDC.e | `/api/agent/market-metrics/x402` | `/api/agent/market-metrics/mpp` |
| evidence-readiness | advanced | $0.005 | 0.005 USDC.e | `/api/agent/evidence-readiness/x402` | `/api/agent/evidence-readiness/mpp` |
| resolution-risk | premium | $0.01 | 0.01 USDC.e | `/api/agent/resolution-risk/x402` | `/api/agent/resolution-risk/mpp` |

All endpoints accept:

```json
{
  "slugOrUrl": "example-polymarket-event"
}
```

The value may be a Polymarket event/market slug or full Polymarket URL. Empty strings, unknown properties, and values over 2,048 characters are rejected before payment.

## Response

```json
{
  "capability": "dispute-brief",
  "priceTier": "starter",
  "generatedAt": "2026-07-21T12:00:00.000Z",
  "source": "live",
  "market": {
    "slug": "example-polymarket-event",
    "title": "Example Polymarket event",
    "question": "Will the event resolve YES?",
    "url": "https://polymarket.com/event/example-polymarket-event",
    "status": "CLOSED",
    "resolved": false,
    "resolvedOutcome": null,
    "updatedAt": "2026-07-21T11:59:00.000Z"
  },
  "result": {
    "stage": {
      "id": "SECOND_DISPUTE_ESCALATED_TO_DVM",
      "label": "Escalated to UMA DVM",
      "confidence": 0.9,
      "dataCompletenessScore": 0.85,
      "missingFields": [],
      "explanation": "A second dispute escalated the request to UMA voting."
    },
    "progress": {
      "activeStageLabel": "UMA commit phase",
      "progressPercent": 60,
      "timeLeftLabel": "about 24 hours",
      "timeConfidence": "estimated",
      "nextEventLabel": "Reveal phase",
      "finalTimeLeftLabel": "about 3 days"
    },
    "activity": {
      "oracleRequests": 1,
      "disputes": 2,
      "votingRounds": 1,
      "evidenceItems": 0,
      "chainEvents": 4
    },
    "latestMetrics": null
  }
}
```

## Status contract

- `200`: paid capability result plus settlement receipt header.
- `400`: invalid request; settlement is not attempted.
- `402`: payment required, invalid, expired, or failed.
- `404`: no live matching market; settlement is not attempted.
- `5xx`: service or upstream failure; do not infer settlement without a valid receipt.

The complete schemas, examples, operation IDs, payment metadata, and response headers are in [OpenAPI](https://disputetracker.xyz/openapi.json).
