# panevin-x402-api v1.2.0
> x402 payment-gated REST API for web content extraction, transformation, and AI-powered analysis on Base mainnet (eip155:8453).
## Authentication
This API uses the x402 micropayment protocol. Include an x402 payment header with each request.
Payment token: USDC on Base mainnet (eip155:8453).
Payee wallet: 0x9Bdf7621FE1DA6421E69DB0d98bFA5E30a209cf7
## Endpoints
### POST /extract/text — $0.001 USDC
Extract clean text from a URL.
Request body (JSON):
url: string — URL of the web page to extract text from
Response (JSON):
url: string — the original URL
length: number — character count of extracted text
text: string — up to 5000 chars of clean text
Example:
POST https://api.panevin.net/extract/text
{"url": "https://example.com"}
### POST /extract/summary — $0.003 USDC
Fetch a URL and return a brief text summary.
Request body (JSON):
url: string — URL of the web page to summarize
Response (JSON):
url: string — the original URL
summary: string — first 500 chars of extracted text as summary
fullLength: number — total character count of the page
Example:
POST https://api.panevin.net/extract/summary
{"url": "https://example.com"}
### POST /extract/links — $0.001 USDC
Extract all hyperlinks from a URL.
Request body (JSON):
url: string — URL of the web page to extract links from
Response (JSON):
url: string — the original URL
links: string[] — unique list of absolute URLs found on the page
count: number — number of unique links
Example:
POST https://api.panevin.net/extract/links
{"url": "https://example.com"}
### POST /extract/metadata — $0.001 USDC
Extract meta tags from a URL.
Request body (JSON):
url: string — URL of the web page to extract metadata from
Response (JSON):
url: string — the original URL
title: string|null — page
description: string|null — meta description
ogTitle: string|null — og:title
ogImage: string|null — og:image
keywords: string|null — meta keywords
Example:
POST https://api.panevin.net/extract/metadata
{"url": "https://example.com"}
### POST /transform/markdown — $0.002 USDC
Convert an HTML page to Markdown format.
Request body (JSON):
url: string — URL of the web page to convert
Response (JSON):
url: string — the original URL
markdown: string — Markdown representation of the page
length: number — character count of the Markdown
Example:
POST https://api.panevin.net/transform/markdown
{"url": "https://example.com"}
### POST /ai/summarize — $0.005 USDC
Fetch a URL and return an AI-generated summary using OpenRouter LLM.
Request body (JSON):
url: string — URL of the web page to summarize
language: string — (optional) language for the summary (default: English)
maxLength: number — (optional) max summary length in words (default: 300)
Response (JSON):
url: string — the original URL
summary: string — AI-generated summary
language: string — language used for summary
model: string — LLM model used
Example:
POST https://api.panevin.net/ai/summarize
{"url": "https://example.com", "language": "Russian", "maxLength": 150}
### POST /ai/translate — $0.005 USDC
Fetch URL content and translate it to the target language via LLM.
Request body (JSON):
url: string — URL of the web page to translate
targetLanguage: string — target language (e.g. Russian, Spanish, French)
sourceLanguage: string — (optional) source language, auto-detected if omitted
Response (JSON):
url: string — the original URL
translation: string — translated text
sourceLanguage: string — source language used
targetLanguage: string — target language used
model: string — LLM model used
Example:
POST https://api.panevin.net/ai/translate
{"url": "https://example.com", "targetLanguage": "Russian"}
### POST /ai/extract-structured — $0.008 USDC
Extract structured data from a URL according to a user-defined schema via LLM.
Request body (JSON):
url: string — URL of the web page to extract data from
schema: object — schema definition: {fields: [{name, type, description}]}
Response (JSON):
url: string — the original URL
data: object — extracted data matching the schema
model: string — LLM model used
Example:
POST https://api.panevin.net/ai/extract-structured
{"url": "https://example.com", "schema": {"fields": [{"name": "title", "type": "string", "description": "Page title"}]}}
### POST /ai/seo-audit — $0.10 USDC
Comprehensive SEO audit of a URL via LLM. Analyzes title, meta description, heading structure (h1-h6), image alt tags, internal/external link counts, word count, keyword density, and produces an SEO score with improvement recommendations.
Request body (JSON):
url: string — URL of the web page to audit
Response (JSON):
url: string — the original URL
score: number — SEO score (1-100)
issues: string[] — list of detected SEO issues
recommendations: string[] — 3 actionable improvement recommendations
metrics: object — raw metrics (headings, images, links, keywords, etc.)
model: string — LLM model used
Example:
POST https://api.panevin.net/ai/seo-audit
{"url": "https://example.com"}
### POST /ai/compare — $0.15 USDC
Compare two web pages via LLM. Evaluates topic similarity, content depth, readability, and key differences; declares a winner.
Request body (JSON):
url1: string — first URL to compare
url2: string — second URL to compare
Response (JSON):
url1: string — first URL
url2: string — second URL
comparison: object — {similarity: float, differences: string[], winner: string, analysis: string}
model: string — LLM model used
Example:
POST https://api.panevin.net/ai/compare
{"url1": "https://example.com", "url2": "https://example.org"}
### POST /ai/sentiment — $0.05 USDC
Analyze the sentiment of any URL content via LLM.
Request body (JSON):
url: string — URL of the web page to analyze
language: string — (optional) expected content language (default: en)
Response (JSON):
url: string — the original URL
sentiment: string — overall sentiment: positive | negative | neutral
confidence: number — confidence score (0.0-1.0)
phrases: object[] — key phrases with individual sentiment labels
tone: string — emotional tone description (e.g. "informative", "enthusiastic")
model: string — LLM model used
Example:
POST https://api.panevin.net/ai/sentiment
{"url": "https://example.com", "language": "en"}
## Discovery
- x402 manifest: https://api.panevin.net/.well-known/x402
- Health check: https://api.panevin.net/health