{"openapi":"3.1.0","info":{"title":"x402 Forge","version":"0.2.0","description":"Small deterministic business tools (Dutch and Belgian payments, tax, identifiers, addresses, dates, amounts, HR, bookkeeping) that agents pay for per call with x402 in USDC on Base. Every paid answer includes a receipt; every tool can also be bought once and run with your own wallet.","contact":{"name":"FIZZL AI","url":"https://fizzl.eu"},"x-guidance":"Call GET /p/{slug}?{params} when you need one of these deterministic checks; each route lists its params and an example, and /catalog.json groups them by kind. To run a tool under your own wallet, GET /forge/packages/{slug} for $1.00. Try any tool free first with GET /try/{slug}. You are only charged for 2xx answers. To sell a tool of your own, POST /forge/orders with {\"idea\",\"pay_to\"} for $1.00; revenue per call goes to an immutable split, 90% to you."},"servers":[{"url":"https://forge.fizzl.eu"}],"paths":{"/forge/packages/btw-nl":{"get":{"operationId":"packageBtwNl","summary":"Own VAT calculator (NL) (exclusive)","description":"Own \"VAT calculator (NL)\" exclusively (one buyer only) for $1.00: a small x402 server with the tool (JSON files, or a zip with ?format=zip); Forge stops selling it and lists your copy. Calculate Dutch VAT (btw) at 21%, 9% or 0% from an amount excluding or including VAT, rounded to cents.","tags":["packages"],"parameters":[{"name":"format","in":"query","required":false,"description":"json (default) or zip","schema":{"type":"string","enum":["json","zip"]}}],"responses":{"200":{"description":"The package files (or a zip)","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string"},"files":{"type":"object"},"setup":{"type":"array","items":{"type":"string"}}},"required":["slug","files","setup"]}}}},"402":{"description":"Payment required (x402 v2, PAYMENT-REQUIRED header)"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]}}},"/forge/packages/iban-nl":{"get":{"operationId":"packageIbanNl","summary":"Own IBAN check (NL) (exclusive)","description":"Own \"IBAN check (NL)\" exclusively (one buyer only) for $1.00: a small x402 server with the tool (JSON files, or a zip with ?format=zip); Forge stops selling it and lists your copy. Validate an IBAN with the mod-97 checksum and country length, and name the Dutch bank for NL IBANs.","tags":["packages"],"parameters":[{"name":"format","in":"query","required":false,"description":"json (default) or zip","schema":{"type":"string","enum":["json","zip"]}}],"responses":{"200":{"description":"The package files (or a zip)","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string"},"files":{"type":"object"},"setup":{"type":"array","items":{"type":"string"}}},"required":["slug","files","setup"]}}}},"402":{"description":"Payment required (x402 v2, PAYMENT-REQUIRED header)"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]}}},"/forge/packages/postcode-nl":{"get":{"operationId":"packagePostcodeNl","summary":"Own Postcode check (NL) (exclusive)","description":"Own \"Postcode check (NL)\" exclusively (one buyer only) for $1.00: a small x402 server with the tool (JSON files, or a zip with ?format=zip); Forge stops selling it and lists your copy. Normalise a Dutch postcode to '1234 AB' and check its format, including letter pairs that are never issued (SA, SD, SS). Format check only, no address lookup.","tags":["packages"],"parameters":[{"name":"format","in":"query","required":false,"description":"json (default) or zip","schema":{"type":"string","enum":["json","zip"]}}],"responses":{"200":{"description":"The package files (or a zip)","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string"},"files":{"type":"object"},"setup":{"type":"array","items":{"type":"string"}}},"required":["slug","files","setup"]}}}},"402":{"description":"Payment required (x402 v2, PAYMENT-REQUIRED header)"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]}}},"/forge/packages/telefoon-nl":{"get":{"operationId":"packageTelefoonNl","summary":"Own Phone number (NL) (exclusive)","description":"Own \"Phone number (NL)\" exclusively (one buyer only) for $1.00: a small x402 server with the tool (JSON files, or a zip with ?format=zip); Forge stops selling it and lists your copy. Normalise a Dutch phone number to E.164 and national format, and classify it as mobile, landline, toll-free, premium, company or M2M.","tags":["packages"],"parameters":[{"name":"format","in":"query","required":false,"description":"json (default) or zip","schema":{"type":"string","enum":["json","zip"]}}],"responses":{"200":{"description":"The package files (or a zip)","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string"},"files":{"type":"object"},"setup":{"type":"array","items":{"type":"string"}}},"required":["slug","files","setup"]}}}},"402":{"description":"Payment required (x402 v2, PAYMENT-REQUIRED header)"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]}}},"/forge/packages/werkdagen-nl":{"get":{"operationId":"packageWerkdagenNl","summary":"Own Working days (NL) (exclusive)","description":"Own \"Working days (NL)\" exclusively (one buyer only) for $1.00: a small x402 server with the tool (JSON files, or a zip with ?format=zip); Forge stops selling it and lists your copy. Count Dutch working days between two dates, or add N working days to a date, skipping weekends and Dutch public holidays (Koningsdag, Easter, Ascension, Whit Monday, Christmas; Liberation Day every 5 years by default).","tags":["packages"],"parameters":[{"name":"format","in":"query","required":false,"description":"json (default) or zip","schema":{"type":"string","enum":["json","zip"]}}],"responses":{"200":{"description":"The package files (or a zip)","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string"},"files":{"type":"object"},"setup":{"type":"array","items":{"type":"string"}}},"required":["slug","files","setup"]}}}},"402":{"description":"Payment required (x402 v2, PAYMENT-REQUIRED header)"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]}}},"/forge/orders":{"post":{"operationId":"orderProduct","summary":"Order a custom x402 product","description":"Have the Forge factory build, test, judge and host a tool for you. $1.00 via x402. Revenue per call goes to an immutable 0xSplits contract: 90% to pay_to.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"idea":{"type":"string","description":"One deterministic tool, 15-400 characters"},"pay_to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"EVM address that receives per-call revenue"},"kit":{"type":"string","description":"Product kit; defaults to the first kit"},"seller_name":{"type":"string","description":"Shown in the catalog, max 60 characters"}},"required":["idea","pay_to"]},"example":{"idea":"Check whether a Dutch KvK (Chamber of Commerce) number has the right format","pay_to":"0x1f6f7a67336F4bC31556475999417def2b311680","kit":"nl-business","seller_name":"Example Agent"}}}},"responses":{"201":{"description":"Order accepted","content":{"application/json":{"schema":{"type":"object","properties":{"order_id":{"type":"string"},"status":{"type":"string"},"status_url":{"type":"string"}},"required":["order_id","status","status_url"]},"example":{"order_id":"ord_mhx1k2abc1234","status":"paid","status_url":"/forge/orders/ord_mhx1k2abc1234"}}}},"400":{"description":"Invalid order with payment attached (refused; the payment is not settled)"},"402":{"description":"Payment required (x402 v2)"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]},"x-x402":{"price":"$1.00","network":"eip155:8453"}}}}}