Optional analytics cookies help us improve Opedd. Declining keeps only essential cookies. See our Cookie Policy.
For AI agents
Discover, license and verify content through one API and a native MCP server, with every licence in a public record.
Works with
Licence types
Read the publication to answer questions, quoting short passages with a link.
licence: "enterprise"Everything published up to the purchase date, kept permanently.
licence: "archive"Train a model on everything published up to the purchase date.
licence: "training"Show articles to your own clients.
licence: "display"Pay per article used is self-serve once a card is on file. Other licences are ordered from Browse, or contact sales for every publication.
Core endpoints
/.well-known/opedd.jsonA publisher's catalogue, prices and licences in one machine-readable manifest.
/searchAsk a question across licensed publications and get cited passages. Each article an answer uses is charged once, at its publication's price; max_charge_cents caps a question.
Pay per request. AI agents can pay per request by card, with no account or contract. Every use is still licensed and recorded.
/verify-license?key={key}Proof a licence is valid: holder, content, licence type, expiry and its public record.
/registry?license_key={key}Look up any issued licence by key, article or publisher, or browse the feed.
/apiServer-to-server: list articles, verify keys and query usage.
/register-buyer-webhookFull catalogue holders get content.published events when new articles go live.
Quick start
// 1. Discover the publisher's catalogue
const manifest = await fetch(
"https://publisher.com/.well-known/opedd.json"
).then(r => r.json());
// manifest.licensing.licences → what this publisher offers, with prices
// 2. Ask a question: cited passages, paid per article used
const answer = await fetch("https://api.opedd.com/search", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer opedd_buyer_your_key_here",
},
body: JSON.stringify({
query: "Why did EU chip subsidies change in 2026?",
max_results: 5, // 5 by default, up to 10
max_charge_cents: 100, // optional cap for this question
}),
}).then(r => r.json());
console.log(answer.data.passages[0]);
// → a licensed passage, with its article and publication
console.log(answer.data.billing.charged_cents);
// 3. Verify any licence at any time
const proof = await fetch(
`https://api.opedd.com/verify-license?key=${licenceKey}`
).then(r => r.json());
console.log(proof.data.blockchain_status);
// → "confirmed" - recorded in the public record on TempoList your articles, verify keys and query usage with your opedd_sk_ key, issued in Settings, Developers.
articlesList and search your articlesverifyVerify any licence keyusageQuery licence usage// Server-to-server: list your articles
const articles = await fetch(
"https://api.opedd.com/api?action=articles&limit=50",
{
headers: { Authorization: "Bearer opedd_sk_your_key_here" },
}
).then(r => r.json());Your assistant finds articles, answers with licensed passages and verifies licences without leaving the conversation.
Tools, highlights
lookup_contentSearch the catalogue by topic, publisher or URLsearch_passagesAsk a question and get cited, licensed passagesverify_licenseCheck any licence key and its public recordbrowse_registryQuery the public licence registrylist_publisher_contentList a publisher's articles// Hosted (zero install) - works in claude.ai, Cursor,
// Claude Messages API, OpenAI Responses API:
{
"mcpServers": {
"opedd": {
"url": "https://mcp.opedd.com/mcp",
"headers": { "Authorization": "Bearer opedd_buyer_live_..." }
}
}
}
// Or local via npm (stdio):
{
"mcpServers": {
"opedd": {
"command": "npx",
"args": ["-y", "opedd-mcp"],
"env": {
"OPEDD_BUYER_TOKEN": "opedd_buyer_live_..."
}
}
}
}Every licence Opedd issues is registered in a public record on Tempo. Check any licence key without relying on Opedd.
0x647da2435b831f15f5e5f39c113cfb0a553f11b8Read the full API reference, explore all endpoints, and integrate Opedd into your AI pipeline in minutes.