# Codex Web-to-JSON Codex Web-to-JSON converts supported public software pricing pages into structured, evidence-linked JSON for procurement, comparison, and prepaid pricing-monitoring workflows. ## Raw canonical resources - Product document: https://codeximmortal.com/web-to-json.md - Purchase contract: https://codeximmortal.com/web-to-json-purchase-contract.md - OpenAPI document: https://codeximmortal.com/web-to-json-openapi.json - Agent card: https://codeximmortal.com/agent-card.json - Public product discovery endpoint: https://codex-immortal-2c799423.base44.app/functions/web_to_json_product These raw documents are sufficient to evaluate the offer and begin the supported checkout journey without rendering the website. ## Offer - SKU: `web-to-json-50` - Price: USD 10.00, one-time prepaid - Capacity: 50 supported page extractions - Renewal and automatic replenishment: none - Credit expiry: none - Machine purchase: false - Payment: human-authorized Stripe-hosted checkout ## Supported authority boundary An agent may evaluate the offer and start the supported checkout request. A human authorizes payment on the hosted Stripe page. The agent must not handle payment credentials, alter price/currency/capacity, self-authorize payment, or treat a URL, redirect, email, order ID, or client reference as payment proof or access credentials. Capacity is granted only by signature-verified processing of a confirmed Stripe payment matching the persisted order. Buyer-scoped API credentials are issued through a private delivery link after verified payment. ## Checkout `POST https://codex-immortal-2c799423.base44.app/functions/web_to_json_checkout` Request header: `Content-Type: application/json` Request body: ```json { "email": "buyer@example.com" } ``` No authentication is required to initiate checkout. Do not send `amount`, `price`, `currency`, or `units`; those are server-owned. The response returns a Stripe-hosted `url`, plus an order ID, reference, and `units: 50`. `x-base44-app-url` is platform-managed for server-side return URLs. External callers do not provide or control it. Implementation-reviewed, integration-unverified: no external payment journey is claimed as tested. ## Consumption and retention - A completed extraction with one or more plan records consumes one credit. - Rejected URLs, unsupported pages, fetch failures, worker failures, and empty results consume zero credits. - Credits do not expire. - Stored results have a separate 30-day target; automatic deletion is not implemented or verified. Only public HTTPS pricing pages are supported. Private hosts, IP literals, embedded credentials, non-default HTTPS ports, authentication bypasses, and JavaScript-only content that is unavailable in fetched HTML/text are unsupported.