{"uid":"cap_JxlDF9DziPJ7BG6WCli5y","slug":"structured-extractor-cbca1d86","name":"Structured Extractor","description":"Four JSON APIs for agents. Paid operations use x402 v2 HTTP payment, not API-key authentication. Read the current PAYMENT-REQUIRED offer before paying.","url":"https://grim-foundry-pilot.onrender.com/v1/structured-extractor","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"url":{"type":"string"},"html":{"type":"string"},"schema":{"type":"object"}}},"responseSchema":{"type":"json","example":{"ok":true,"data":{"data":{"title":"Demo"},"valid":true,"source_url":null,"extraction_mode":"deterministic-v0.1","validation_errors":[]},"service":"structured_extractor","request_id":"00000000-0000-4000-8000-000000000000"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.02","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.02/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_oEiWnyKEtBhTnc5J6BV_4","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Extracts structured JSON data from a webpage URL or raw HTML according to a caller-supplied JSON schema, with validation","exampleAgentPrompt":"Extract structured data from https://example.com/product/123 using this schema: {title: string, price: number, description: string} — I need validated JSON back with any errors flagged.","exampleUseCases":[{"title":"Product catalog data extraction","prompt":"Grab the product name, price, and availability from https://store.example.com/item/456 and return them as validated JSON with this schema: {name: string, price: number, inStock: boolean}."},{"title":"Article metadata harvesting","prompt":"Pull the title, author, publish date, and summary from this article URL https://news.example.com/article/789 and structure it as {title: string, author: string, publishedAt: string, summary: string} — tell me if anything fails validation."},{"title":"Raw HTML field extraction","prompt":"I have some raw HTML from a job listing — extract the job title, company name, location, and salary range from it using this schema: {jobTitle: string, company: string, location: string, salaryRange: string}."}],"resultDescription":"Returns a JSON object containing: ok (boolean success flag), data (the extracted fields matching the provided schema), valid (boolean indicating schema validation passed), source_url (the URL fetched or null if HTML was provided directly), extraction_mode (e.g. 'deterministic-v0.1'), and validation_errors (array of any schema mismatch messages). Also includes a service identifier and a UUID request_id for tracing.","failureModes":["URL is unreachable or returns non-200 — extraction fails with ok:false","HTML is malformed or too sparse to extract required fields — validation_errors populated","Provided schema is invalid JSON Schema — request rejected or returns empty data","Page requires JavaScript rendering (no browser execution) — incomplete extraction","Rate limiting or payment failure via x402 — request not processed","Schema fields not present in source content — valid:false with validation_errors"],"whenToPreferThis":"Use this endpoint when you need to extract specific, schema-defined fields from a public webpage or raw HTML and want built-in schema validation to confirm the output is well-formed. It is best for deterministic field extraction where you know the shape of data you want, rather than open-ended summarization or AI-generated content. Prefer it over general LLM extraction when reproducibility and validation errors matter, and when you want to pay per-call with x402 rather than manage API keys.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T12:33:27.439Z","isFirstParty":false}