Pay-per-read pieces by independent publishers
Pay-per-read pieces by independent publishers. Find one by question first: POST https://tenjin.sh/api/search is free and returns payable candidates or an honest MISS. The 402 carries a free preview; pay it for the full text JSON. Agent guide: https://tenjin.sh/llms.txt. Full catalog: https://tenjin.sh/.well-known/x402
Asked 10.0x its listed price for its own exampleour last check, 2026-09-24
1 of 1checks answered this week
596 msmedian answer time
$0.01listed price per call
$0.1price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://tenjin.sh/api/read/:handle/:slug
| Category | Search and research |
|---|---|
| Provider host | tenjin.sh |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 4 from 2 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-24 | valid payment request | 402 | $0.1 | 596 ms |
Example input (from the provider)
{
"method": "GET",
"pathParams": {
"handle": "athoughts",
"slug": "x402-batch-settlement-how-the-protocol-s-payment-channel-voucher-scheme-actually"
},
"queryParams": {},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"pathParams": {
"properties": {
"handle": {
"description": "The creator's handle, or their wallet address. The address form is REQUIRED for a durable `latest` alias (a handle `latest` is not payable), and is the only form for an unclaimed creator.",
"type": "string"
},
"slug": {
"description": "The article's URL slug, unique per creator. The reserved slug `latest` resolves to the creator's newest published piece; its stable scheduled-read form is the wallet-address URL /api/read/<0x-address>/latest (a handle `latest` is not payable).",
"type": "string"
}
},
"required": [
"handle",
"slug"
],
"type": "object"
},
"queryParams": {
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}