Build with TruthPal.
The evidence layer for AI agents. Give an agent a claim and a source. TruthPal checks whether the evidence supports it, contradicts it, or simply isn't enough.
Quickstart
The core API is deliberately simple: submit a claim and the public URL of the source you want checked.
{
"claim": "The source supports this statement.",
"source_url": "https://example.com/article"
}
Payments
TruthPal uses x402 for machine-to-machine payments. A client that supports x402 can pay for a verification automatically when the API returns 402 Payment Required.
/v1/verifyCurrent network: Base Sepolia testnet.
Production: Base mainnet will be used for live payments when TruthPal moves to production.
POST /v1/verify
Checks whether a supplied public source establishes a supplied claim.
Request
| Field | Type | Required | Description |
|---|---|---|---|
claim | string | Yes | The factual statement you want the source checked against. |
source_url | string | Yes | A public HTTP or HTTPS URL containing the evidence. |
{
"claim": "The source supports this statement.",
"source_url": "https://example.com/article"
}
Response
{
"verdict": "supported",
"confidence": 0.94,
"supporting_evidence": [
"The source explicitly states..."
],
"contradicting_evidence": [],
"reasoning": "The source directly establishes the claim.",
"source_freshness": "current"
}
| Field | Type | Description |
|---|---|---|
verdict | string | supported, contradicted, or uncertain. |
confidence | number | Model confidence in the verification result, from 0 to 1. |
supporting_evidence | string[] | Relevant evidence supporting the claim. |
contradicting_evidence | string[] | Relevant evidence that conflicts with the claim. |
reasoning | string | A concise explanation of how the evidence leads to the verdict. |
source_freshness | string | current, dated, or unknown. |
Verdicts
TruthPal deliberately has three outcomes. Uncertain is a first-class result. If the source does not establish the claim, TruthPal should say so rather than guess.
Source freshness
TruthPal reports the apparent freshness of the supplied source as part of the verification result.
| Value | Meaning |
|---|---|
current | The source appears current based on available source information. |
dated | The source contains indications that it is from an earlier date. |
unknown | There is not enough information to determine freshness. |
Errors
TruthPal uses standard HTTP status codes to make failures straightforward for agents to handle.
| Status | Meaning |
|---|---|
200 | Verification completed successfully. |
400 | The request is invalid, for example because required input is missing or malformed. |
402 | Payment is required before the verification can be completed. |
500 | An unexpected error occurred while processing the request. |
uncertain as a valid verification result, not as an API failure. Treat HTTP 402 as a payment flow, not as a failed verification.Ready to build?
TruthPal is designed to be a small, composable piece of infrastructure inside an agent's workflow.
Back to TruthPal โ