> The full index of these docs is at [llms.txt](https://u22a8.ai/llms.txt).

# A8 documentation

Call A8 from the OpenAI or Anthropic SDK, or from an MCP host, and get verdicts at the accuracy you set.

**A8 (Touchstone)** is an evaluation model with a chat-model interface. You state a criterion in plain words and send a subject, and A8 returns a verdict where its evidence meets the minimum accuracy the request sets.

## A first verdict

The system message is the criterion. The user message is the subject. The schema is the verdict’s shape:

**curl**

```bash
curl https://api.u22a8.ai/eval/v1/chat/completions \
  -H "Authorization: Bearer $U22A8_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "a8",
    "messages": [
      {"role": "system", "content": "Does the reply promise a refund?"},
      {"role": "user", "content": "We will refund you in full by Friday."}
    ],
    "response_format": {
      "type": "json_schema",
      "json_schema": {
        "name": "verdict",
        "schema": {
          "type": "object",
          "properties": {"refund": {"type": "boolean"}}
        }
      }
    }
  }'
```

**Python**

```python
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://api.u22a8.ai/eval/v1",
    api_key=os.environ["U22A8_API_KEY"],
)

resp = client.chat.completions.create(
    model="a8",
    messages=[
        {"role": "system", "content": "Does the reply promise a refund?"},
        {"role": "user", "content": "We will refund you in full by Friday."},
    ],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "verdict",
            "schema": {
                "type": "object",
                "properties": {"refund": {"type": "boolean"}},
            },
        },
    },
)
print(resp.choices[0].message.content)  # the verdict
```

**TypeScript**

```typescript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.u22a8.ai/eval/v1",
  apiKey: process.env.U22A8_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "a8",
  messages: [
    { role: "system", content: "Does the reply promise a refund?" },
    { role: "user", content: "We will refund you in full by Friday." },
  ],
  response_format: {
    type: "json_schema",
    json_schema: {
      name: "verdict",
      schema: {
        type: "object",
        properties: { refund: { type: "boolean" } },
      },
    },
  },
});
console.log(resp.choices[0].message.content); // the verdict
```

The verdict is the message content:

```json
{"refund": true}
```

Recorded from `a8-1-1@20260715t140322z` on 2026-10-22.

A8 answered at the default minimum accuracy of 90, or at the next level up it has earned: at least that share of the verdicts it returns at the level is correct. The response’s `min_accuracy` names the level. A case whose evidence falls short of it comes back as an [abstention](https://u22a8.ai/docs/a8-abstention.md).

## Where to start

- [Quickstart](https://u22a8.ai/docs/quickstart.md): Make a first call from an SDK, from curl or from your assistant.
- [When to use A8](https://u22a8.ai/docs/when-to-use-a8.md): The judgments A8 is built for, and the tools for the rest.
- [A8 model card](https://u22a8.ai/docs/a8.md): The model on one page: spec, interfaces, behaviour and evidence.

## Build, test and ship

- [Writing criteria](https://u22a8.ai/docs/writing-criteria.md): State a criterion so A8 judges it well.
- [Teaching](https://u22a8.ai/docs/a8-teaching.md): Teach A8 the answer you wanted, from inside a conversation.
- [Testing](https://u22a8.ai/docs/a8-testing.md): Check what A8 learned the way you would test a student.
- [Horizons](https://u22a8.ai/docs/a8-horizons.md): Pin the version you tested, and keep what it learned.

## Next steps

- [Quickstart: a first verdict](https://u22a8.ai/docs/quickstart.md): Get a key, call A8 from an SDK, from curl or from your assistant, and read the verdict it returns.
- [A8 model card](https://u22a8.ai/docs/a8.md): A8 on one page: model IDs, pricing, capabilities, endpoints, features, rate limits and how it compares.
- [Accuracy and abstention](https://u22a8.ai/docs/a8-abstention.md): How a request sets the minimum accuracy a verdict must meet, what that level promises and the five kinds of abstention.
