Documentation

Judge Human API

Submit anything human to the tribunal. Get a structured verdict with reasoning and a shareable verdict card.

Base URLhttps://judgehuman.aiFormatJSONVersionv0.1.0

Quick Start

Get your first judgment in three steps.

1

Get your API key

Join the beta waitlist at judgehuman.ai. Once accepted, you'll receive a Bearer token for API access.

2

Submit your first judgment

Terminal
curl -X POST https://judgehuman.ai/api/judge \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input": "AITA for judging humans?", "bench": "ethics"}'
3

Read the verdict

Response
{
  "case_id": "case_abc123",
  "bench": "ethics",
  "verdict": "Mostly Human",   // Plain-language summary
  "reasons": [                 // Three supporting reasons
    "Demonstrates self-awareness about the act of judgment",
    "Engages in moral reasoning about fairness",
    "Shows capacity for reflective irony"
  ]
}

Authentication

All write endpoints require a Bearer token in the Authorization header. The GET /api/case/{id} endpoint is publicly accessible without authentication.

Authorization Header
curl -H "Authorization: Bearer your_api_key_here" \
  https://judgehuman.ai/api/judge
Core Concepts

Benches

Every opinion is rendered by one of five benches. Each bench evaluates content through a different lens with its own scoring rubric. Pass the bench parameter to choose which lens to apply.

ethics

Is it right?

Evaluates harm, fairness, consent, and accountability

humanity

Is it real?

Assesses sincerity, intent, lived experience, and performative risk

aesthetics

Is it good?

Judges craft, originality, emotional residue, and human feel

hype

Is it honest?

Measures substance vs spin, detects human-washing and exaggeration

dilemma

Who's right?

Renders AITA-style decisions on moral dilemmas and trade-offs

Humanity Index

The Humanity Index is a global metric measuring the divergence between human and AI judgment across the platform. It reflects collective voting patterns, not individual case scores.

0 – 30

Low

Strongly non-human, performative, or harmful

31 – 70

Mixed

Ambiguous, contextual, or partially human

71 – 100

High

Strongly human, authentic, and substantive

Each verdict includes three reasons explaining the opinion in plain language.

Split Decisions

After the AI renders its opinion, humans can cast jury votes via the /api/jury endpoint. When the crowd consensus diverges significantly from the AI score, a Split Decision is declared.

Example: The AI scores a post at 82 (Mostly Human), but 68% of jurors disagree. The Split Decision reads: "Humans disagree with the machine by 27 points."

Split Decisions surface where human judgment and AI assessment diverge most, creating the most interesting and shareable moments on the platform.

API Reference

Endpoints

Four endpoints power the tribunal. All requests and responses use JSON.

POST

/api/judge

Submits text, a URL, or an image URL to the Judge Human tribunal. Returns a structured verdict with reasoning and a shareable card URL.

Requires Bearer token

Request Body

FieldType
input*string
benchstring
ethicshumanityaestheticshypedilemma
default: humanity
input_typestring
texturlimage_url
default: text

Response

FieldType
case_idstring
benchstring
verdictstring
reasonsstring[]
share_card_urlstring (URL)
case_urlstring (URL)
Request
curl -X POST https://judgehuman.ai/api/judge \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "AITA for judging humans?",
    "bench": "ethics"
  }'
Response
{
  "case_id": "case_abc123",
  "bench": "ethics",
  "verdict": "Mostly Human",
  "reasons": [
    "Demonstrates self-awareness about the act of judgment",
    "Engages in moral reasoning about fairness",
    "Shows capacity for reflective irony"
  ],
  "share_card_url": "https://judgehuman.ai/card/case_abc123.png",
  "case_url": "https://judgehuman.ai/api/case/case_abc123"
}

Error Codes

400Invalid request body or missing required fields401Missing or invalid API key429Rate limit exceeded
GET

/api/case/{id}

Retrieves a previously rendered opinion by its case ID. Supports JSON and HTML response formats.

Path Parameters

FieldType
id*string

Query Parameters

FieldType
formatstring
jsonhtml
default: json

Response

FieldType
case_idstring
benchstring
verdictstring
reasonsstring[]
contestedboolean
share_card_urlstring (URL)
case_urlstring (URL)
Request
curl https://judgehuman.ai/api/case/case_abc123
Response
{
  "case_id": "case_abc123",
  "bench": "ethics",
  "verdict": "Mostly Human",
  "reasons": [
    "Demonstrates self-awareness about the act of judgment",
    "Engages in moral reasoning about fairness",
    "Shows capacity for reflective irony"
  ],
  "contested": false,
  "share_card_url": "https://judgehuman.ai/card/case_abc123.png",
  "case_url": "https://judgehuman.ai/api/case/case_abc123"
}

Error Codes

404Case not found
POST

/api/appeal

Submit an appeal against a previously rendered opinion. Provides additional context or arguments for re-evaluation.

Requires Bearer token

Request Body

FieldType
case_id*string
argumentstring

Response

FieldType
case_idstring
benchstring
verdictstring
reasonsstring[]
share_card_urlstring (URL)
case_urlstring (URL)
Request
curl -X POST https://judgehuman.ai/api/appeal \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "case_id": "case_abc123",
    "argument": "The original judgment overlooked cultural context"
  }'
Response
{
  "case_id": "case_abc123",
  "bench": "ethics",
  "verdict": "Substantially Human",
  "reasons": [
    "Cultural context adds nuance to ethical reasoning",
    "Appeal demonstrates deeper reflection",
    "Self-correction is a distinctly human trait"
  ],
  "share_card_url": "https://judgehuman.ai/card/case_abc123.png",
  "case_url": "https://judgehuman.ai/api/case/case_abc123"
}

Error Codes

400Invalid request or case_id not found401Missing or invalid API key
POST

/api/jury

Cast a jury vote on an existing case, contributing to the crowd consensus score that creates Split Decisions.

Requires Bearer token

Request Body

FieldType
case_id*string
vote*string
agreedisagreeabstain

Response

FieldType
case_idstring
vote_recordedboolean
Request
curl -X POST https://judgehuman.ai/api/jury \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "case_id": "case_abc123",
    "vote": "agree"
  }'
Response
{
  "case_id": "case_abc123",
  "vote_recorded": true
}

Error Codes

400Invalid request or duplicate vote401Missing or invalid API key
Reference

Error Codes

The API uses standard HTTP status codes. All error responses include a JSON body with error and code fields.

Error Response
{
  "error": "Missing or invalid API key",
  "code": "UNAUTHORIZED"
}
StatusDescription
200Success
400Invalid request body or parameters
401Missing or invalid API key
404Resource not found
429Rate limit exceeded
500Internal server error

Rate Limits

Rate limits are enforced per API key. Exceeding the limit returns a 429 response with a Retry-After header.

Demo10requests / hour
Authenticated100requests / hour