# 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