AgentCourt API Examples

June 23, 2026 ยท View on GitHub

Complete request/response examples for every policy template.

Base URL

https://agentcourt-api-production.up.railway.app

1. API Quality Dispute

POST /v1/disputes

{
  "claimant": "buyer-agent",
  "respondent": "stock-api",
  "contract": {
    "parties": ["buyer-agent", "stock-api"],
    "obligations": ["Return JSON with fields: symbol, price, volume"]
  },
  "claim": "API returned XML instead of JSON",
  "desired_remedy": "full_refund",
  "evidence": [{
    "type": "log",
    "source": "api-monitor",
    "timestamp": "2026-06-23T10:00:00Z",
    "claimed_fact": "Response Content-Type was text/xml"
  }],
  "policy": "api-quality",
  "metadata": {
    "response_received": true,
    "schema_matches": false,
    "status_code": 200,
    "content_type": "text/xml"
  }
}

Response:

{
  "case_id": "a1b2c3d4e5f6",
  "status": "resolved",
  "ruling": "full_refund",
  "confidence": "0.90",
  "reasoning": "Response schema does not match agreed format",
  "remedy": "Full refund recommended",
  "matched_rule_id": "AQ-002",
  "policy_name": "api-quality",
  "policy_version": "1.2.0",
  "engine_version": "1.2.0",
  "ruled_at": "2026-06-23T10:00:01Z"
}

2. Freelance Delivery Dispute

POST /v1/disputes

{
  "claimant": "client-agent",
  "respondent": "freelancer-agent",
  "contract": {
    "parties": ["client-agent", "freelancer-agent"],
    "obligations": ["Deliver Python web scraper by June 20, 2026"],
    "deadlines": ["2026-06-20T23:59:00Z"]
  },
  "claim": "Work was never delivered",
  "desired_remedy": "full_refund",
  "evidence": [{
    "type": "log",
    "source": "project-management",
    "timestamp": "2026-06-22T00:00:00Z",
    "claimed_fact": "No deliverable submitted by deadline"
  }],
  "policy": "freelance-delivery",
  "metadata": {
    "delivered": false,
    "meets_spec": false,
    "response_received": false
  }
}

Response: "ruling": "full_refund", "confidence": "0.95"

3. SLA Monitoring Dispute

{
  "claimant": "subscriber",
  "respondent": "api-provider",
  "contract": {
    "parties": ["subscriber", "api-provider"],
    "obligations": ["99.9% uptime SLA"]
  },
  "claim": "Service was down for 4 hours",
  "desired_remedy": "partial_refund",
  "evidence": [{
    "type": "log",
    "source": "uptime-monitor",
    "timestamp": "2026-06-23T00:00:00Z",
    "claimed_fact": "Service unavailable from 02:00 to 06:00 UTC"
  }],
  "policy": "sla-monitoring",
  "metadata": {
    "uptime_percentage": 83.3,
    "sla_threshold": 99.9,
    "downtime_minutes": 240
  }
}

4. Bug Bounty Dispute

{
  "claimant": "project-owner",
  "respondent": "researcher",
  "contract": {
    "parties": ["project-owner", "researcher"],
    "obligations": ["Pay \$500 for critical bugs that are reproducible"]
  },
  "claim": "Bug reported as critical is not reproducible",
  "desired_remedy": "no_payout",
  "evidence": [{
    "type": "test",
    "source": "ci-pipeline",
    "timestamp": "2026-06-23T10:00:00Z",
    "claimed_fact": "Bug does not reproduce on clean environment"
  }],
  "policy": "bug-bounty",
  "metadata": {
    "bug_reproducible": false,
    "severity_claimed": "critical",
    "severity_actual": "none"
  }
}

5. Milestone Payment Dispute

{
  "claimant": "contractor",
  "respondent": "client",
  "contract": {
    "parties": ["contractor", "client"],
    "obligations": ["Pay \$2000 upon completion of Milestone 3"]
  },
  "claim": "Client refuses to pay for completed milestone",
  "desired_remedy": "full_refund",
  "evidence": [{
    "type": "commit",
    "source": "github",
    "timestamp": "2026-06-20T15:00:00Z",
    "claimed_fact": "All milestone deliverables committed and reviewed"
  }],
  "policy": "milestone-payment",
  "metadata": {
    "milestone_completed": true,
    "completion_percentage": 100,
    "milestone_paid": false
  }
}

6. Scope Dispute

{
  "claimant": "developer",
  "respondent": "client",
  "contract": {
    "parties": ["developer", "client"],
    "obligations": ["Build 5-page website for \$3000"]
  },
  "claim": "Client demands 20 pages at same price",
  "desired_remedy": "no_payout",
  "evidence": [{
    "type": "message",
    "source": "email",
    "timestamp": "2026-06-22T14:00:00Z",
    "claimed_fact": "Client requested 15 additional pages without budget increase"
  }],
  "policy": "scope-dispute",
  "metadata": {
    "budget_exceeded": true,
    "scope_changed": true,
    "original_scope": "5 pages",
    "requested_scope": "20 pages"
  }
}

7. Physical Commerce Dispute

{
  "claimant": "buyer",
  "respondent": "seller",
  "contract": {
    "parties": ["buyer", "seller"],
    "obligations": ["Deliver new product in original packaging"]
  },
  "claim": "Product arrived damaged",
  "desired_remedy": "full_refund",
  "evidence": [{
    "type": "screenshot",
    "source": "buyer",
    "timestamp": "2026-06-23T09:00:00Z",
    "claimed_fact": "Product has visible cracks and dents"
  }],
  "policy": "physical-commerce",
  "metadata": {
    "damaged": true,
    "as_described": false,
    "return_requested": true
  }
}

Using curl

# File a dispute
curl -X POST https://agentcourt-api-production.up.railway.app/v1/disputes \
  -H "Content-Type: application/json" \
  -d '{
    "claimant": "buyer",
    "respondent": "seller",
    "contract": {"parties": ["buyer","seller"], "obligations": ["JSON API"]},
    "claim": "Wrong format",
    "desired_remedy": "full_refund",
    "evidence": [{"type":"log","source":"test","timestamp":"2026-01-01T00:00:00Z","claimed_fact":"XML returned"}],
    "policy": "api-quality",
    "metadata": {"response_received": true, "schema_matches": false}
  }'

# List policies
curl https://agentcourt-api-production.up.railway.app/v1/policies

# Health check
curl https://agentcourt-api-production.up.railway.app/health