{"openapi":"3.1.0","info":{"title":"Strale API","version":"1.0.0","description":"The trust layer for AI agents — 250+ independently tested data capabilities across 27 countries. Execute capabilities via REST, MCP, A2A, or x402 micropayments. Every call returns an audit record.","contact":{"name":"Strale","email":"hello@strale.io","url":"https://strale.dev"},"termsOfService":"https://strale.dev/terms","license":{"name":"MIT","url":"https://opensource.org/licenses/MIT"}},"externalDocs":{"description":"Strale Documentation","url":"https://strale.dev/docs"},"servers":[{"url":"https://api.strale.io","description":"Production — includes sandbox access via free trial (€2.00 credits on signup, no card required)"}],"tags":[{"name":"capabilities","description":"Browse and execute capabilities"},{"name":"solutions","description":"Bundled multi-capability workflows"},{"name":"wallet","description":"Wallet balance and top-ups"},{"name":"transactions","description":"Transaction history and verification"},{"name":"auth","description":"Registration and API key management"},{"name":"trust","description":"Quality scores and trust data"},{"name":"suggest","description":"AI-powered capability suggestions"},{"name":"discovery","description":"Agent discovery endpoints"},{"name":"x402","description":"Pay-per-call endpoints (USDC on Base, no API key)"}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Strale API key (starts with sk_live_). Obtain from https://strale.dev after registration."}},"schemas":{"Error":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"Capability":{"type":"object","properties":{"slug":{"type":"string","example":"iban-validate"},"name":{"type":"string","example":"IBAN Validation"},"description":{"type":"string"},"category":{"type":"string","example":"validation"},"price_cents":{"type":"integer","description":"Price in EUR cents (0 = free tier)","example":0},"input_schema":{"type":"object"},"output_schema":{"type":"object"},"transparency_tag":{"type":"string","nullable":true,"enum":["algorithmic","ai_generated","mixed"]},"geography":{"type":"string","nullable":true},"data_source":{"type":"string","nullable":true},"is_free_tier":{"type":"boolean"},"search_tags":{"type":"array","items":{"type":"string"},"description":"Searchability tags"},"freshness_level":{"type":"string","description":"Test data freshness","enum":["fresh","aging","stale","expired","unverified"]},"last_tested_at":{"type":"string","format":"date-time","nullable":true,"description":"When this capability was last tested"},"cost_class":{"type":"string","nullable":true,"enum":["free_unlimited","free_quota","paid_with_free_tier","paid_prepaid","paid_subscription"],"description":"Per-capability cost classification (Phase A0b, DEC-20260512-A). NULL means the capability has not yet been classified."},"last_customer_call_at":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the most recent customer-initiated completed invocation. Excludes internal test runs. Used by clients to distinguish 'paid capability awaiting first customer call' from 'capability with genuine quality issues.'"}}},"Solution":{"type":"object","properties":{"slug":{"type":"string","example":"kyb-essentials-se"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"price_cents":{"type":"integer"},"step_count":{"type":"integer"},"geography":{"type":"string"},"transparency_tag":{"type":"string","nullable":true,"description":"Data transparency category"},"compliance_coverage":{"type":"array","items":{"type":"string"},"description":"Compliance frameworks covered"},"search_tags":{"type":"array","items":{"type":"string"},"description":"Searchability tags"},"capabilities":{"type":"array","items":{"type":"string"},"description":"Step capability slugs"},"data_sources":{"type":"array","items":{"type":"string"},"description":"Unique data sources across steps"},"freshness_level":{"type":"string","description":"Worst step freshness","enum":["fresh","aging","stale","expired","unverified"]},"last_tested_at":{"type":"string","format":"date-time","nullable":true,"description":"Oldest step last-tested timestamp"}}},"DoRequest":{"type":"object","description":"Provide either capability_slug (direct execution) or task (semantic matching).","properties":{"task":{"type":"string","description":"Natural language task description. The system finds the best matching capability.","example":"Validate this IBAN: DE89370400440532013000"},"capability_slug":{"type":"string","description":"Direct capability slug to execute.","example":"iban-validate"},"inputs":{"type":"object","description":"Capability-specific input fields.","example":{"iban":"DE89370400440532013000"}},"max_price_cents":{"type":"integer","description":"Maximum price willing to pay (EUR cents). Required for authenticated requests to paid capabilities."},"timeout_seconds":{"type":"integer","description":"Max execution time (1-60, default 30)."},"dry_run":{"type":"boolean","description":"If true, returns matched capability without executing.","default":false}}},"DoResponse":{"type":"object","description":"Response from POST /v1/do. Core execution data in `result`, trust metadata in `meta`.","properties":{"result":{"type":"object","description":"What the caller asked for — the execution result.","properties":{"transaction_id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["completed","executing","failed"]},"capability_used":{"type":"string"},"price_cents":{"type":"integer"},"latency_ms":{"type":"integer"},"wallet_balance_cents":{"type":"integer","description":"Remaining wallet balance (authenticated only)."},"output":{"type":"object","nullable":true},"provenance":{"type":"object","properties":{"source":{"type":"string"},"fetched_at":{"type":"string","format":"date-time"}}}}},"meta":{"type":"object","description":"Per-call audit trail.","properties":{"audit":{"type":"object","description":"EU AI Act compliant audit trail."}}},"free_tier":{"type":"boolean","description":"True for unauthenticated free-tier calls."},"usage":{"type":"object","description":"Free-tier usage counter (unauthenticated only)."},"upgrade":{"type":"object","description":"Upgrade prompt with paid capability examples (free-tier only)."}}}}},"paths":{"/v1/capabilities":{"get":{"tags":["capabilities"],"summary":"List all capabilities","description":"Returns the full catalog of active capabilities with their pricing and input schemas. No authentication required.","responses":{"200":{"description":"Capability catalog","content":{"application/json":{"schema":{"type":"object","properties":{"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/Capability"}}}}}}}}}},"/v1/capabilities/{slug}":{"get":{"tags":["capabilities"],"summary":"Get a single capability","description":"Returns detailed information for a specific capability including its input/output schema, pricing, and which solutions include it.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"iban-validate"}],"responses":{"200":{"description":"Capability details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Capability"}}}},"404":{"description":"Capability not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"not_found","message":"Capability not found."}}}}}}},"/v1/solutions":{"get":{"tags":["solutions"],"summary":"List all solutions","description":"Returns all active bundled solutions with pricing and step counts.","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Filter by category slug"}],"responses":{"200":{"description":"Solution catalog","content":{"application/json":{"schema":{"type":"object","properties":{"solutions":{"type":"array","items":{"$ref":"#/components/schemas/Solution"}},"total":{"type":"integer"}}}}}}}}},"/v1/solutions/{slug}":{"get":{"tags":["solutions"],"summary":"Get a single solution","description":"Returns detailed solution information including individual steps, input mapping, pricing breakdown, and related solutions.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"kyb-essentials-se"}],"responses":{"200":{"description":"Solution details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Solution"}}}},"404":{"description":"Solution not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"not_found","message":"Solution not found."}}}}}}},"/v1/do":{"post":{"tags":["capabilities"],"summary":"Execute a capability","description":"Execute a Strale capability. Two patterns:\n\n1. **Direct execution**: Provide `capability_slug` and `inputs` to execute a specific capability.\n2. **Semantic matching**: Provide `task` as a natural language description — the system finds and executes the best matching capability.\n\nFree-tier capabilities (iban-validate, email-validate, dns-lookup, json-repair, url-to-markdown) work without authentication.\n\nFor long-running capabilities (>10s), the response has `status: \"pending\"` with a `transaction_id`. Poll `GET /v1/transactions/{id}` until `status` is `completed` or `failed`.\n\nSupports `Idempotency-Key` header for safe retries.","security":[{"BearerAuth":[]},{}],"x-ratelimit":{"limit":10,"window":"1s","scope":"per API key"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoRequest"}}}},"responses":{"200":{"description":"Capability executed successfully (synchronous).","headers":{"X-Credits-Remaining":{"description":"Wallet balance in EUR cents after this transaction","schema":{"type":"integer"}},"X-Cost-Cents":{"description":"Cost of this execution in EUR cents","schema":{"type":"integer"}},"X-Credits-Currency":{"description":"Currency for credit values (always EUR)","schema":{"type":"string","example":"EUR"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoResponse"}}}},"202":{"description":"Capability execution started (asynchronous). Poll GET /v1/transactions/{transaction_id} for result.","content":{"application/json":{"schema":{"type":"object","properties":{"transaction_id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending"]},"capability_used":{"type":"string"},"price_cents":{"type":"integer"},"poll_url":{"type":"string"}}}}}},"400":{"description":"Missing task or capability_slug.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"invalid_request","message":"Missing task or capability_slug."}}}},"401":{"description":"Authentication required for paid capabilities.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"unauthorized","message":"Authentication required for paid capabilities."}}}},"402":{"description":"Insufficient wallet balance. Top up at the included checkout URL.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"insufficient_balance","message":"Insufficient wallet balance. Top up at the included checkout URL."}}}},"404":{"description":"No capability matches the task within budget.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"no_matching_capability","message":"No capability matches the task within budget."}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"rate_limited","message":"Rate limit exceeded."}}}},"503":{"description":"Capability is temporarily unavailable (circuit breaker open).","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"capability_unavailable","message":"Capability is temporarily unavailable (circuit breaker open)."}}}}}}},"/v1/web3-assurance":{"post":{"tags":["web3-assurance"],"summary":"Decision-ready answer about an on-chain counterparty","description":"Sister product to Payee Assurance for on-chain targets (wallet, contract, token, DeFi protocol, bridge). Returns a verdict (proceed/review/block/insufficient_evidence), reason_codes (UPPERCASE_SNAKE_CASE), critical_flags, suggested_action, evidence map, and a sidecar audit_url. Two modes: `outbound` (agent vetting recipient pre-payment, full evaluator set, 8s budget — default) and `reverse-call` (x402 service publisher gating an inbound buyer in real-time, critical evaluators only, sub-second SLA).","security":[{"BearerAuth":[]},{}],"x-ratelimit":{"limit":10,"window":"1s","scope":"per API key"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["target"],"properties":{"target":{"type":"string","description":"Wallet address (0x... or Solana), contract, token, protocol slug, or domain.","example":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},"target_type":{"type":"string","enum":["wallet","contract","token","protocol","bridge","domain"]},"chain":{"type":"string","example":"ethereum"},"action":{"type":"string","enum":["send_payment","swap","stake","mint","interact","bridge"]},"amount_usd":{"type":"number"},"mode":{"type":"string","enum":["outbound","reverse-call"],"default":"outbound"},"agent_id":{"type":"string","description":"Optional ERC-8004 agent identifier."},"caller_jurisdiction":{"type":"string","description":"Optional ISO country code for jurisdiction-aware verdict (US, EU, UK, etc.)."}}}}}},"responses":{"200":{"description":"Decision-ready answer.","content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string"},"target_type":{"type":"string"},"chain":{"type":"string"},"mode":{"type":"string","enum":["outbound","reverse-call"]},"verdict":{"type":"string","enum":["proceed","review","block","insufficient_evidence"]},"reason_codes":{"type":"array","items":{"type":"string","example":"MIXER_DELISTED_ELEVATED"}},"confidence":{"type":"number","minimum":0,"maximum":1},"evidence_completeness":{"type":"string","enum":["complete","partial","minimal"]},"evidence_status":{"type":"string","enum":["corroborated","partial","contradictory","single_source","minimal"]},"critical_flags":{"type":"array","items":{"type":"string"}},"suggested_action":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"evidence":{"type":"object","additionalProperties":true},"source_quality":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"ms":{"type":"integer"},"ok":{"type":"boolean"}}}},"audit_url":{"type":"string","format":"uri"},"sla":{"type":"object","properties":{"mode":{"type":"string"},"p99_ms":{"type":"integer"},"p50_ms":{"type":"integer"}}},"meta":{"type":"object","properties":{"api_version":{"type":"string"},"fetched_at":{"type":"string","format":"date-time"},"response_ms":{"type":"integer"}}}}}}}},"400":{"description":"Missing or invalid target / mode.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"invalid_request","message":"Missing or invalid target / mode."}}}},"401":{"description":"Authentication required.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"unauthorized","message":"Authentication required."}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"rate_limited","message":"Rate limit exceeded."}}}}}}},"/v1/auth/register":{"post":{"tags":["auth"],"summary":"Register a new account","description":"Creates a new Strale account and returns the API key — store it securely, it is shown only once. Trial credits (€2.00, no card required) are granted once per email address; when they are withheld the account is still created and `wallet_balance_cents` is 0 with a `trial_credits` object explaining why. Read the granted amount from the response rather than assuming the default.","x-ratelimit":{"limit":3,"window":"1m","scope":"per IP"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email","example":"dev@yourcompany.com"},"name":{"type":"string","example":"Jane Developer"}}}}}},"responses":{"201":{"description":"Account created","content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"type":"string","format":"uuid"},"email":{"type":"string"},"api_key":{"type":"string","description":"Shown once. Starts with sk_live_."},"wallet_balance_cents":{"type":"integer","example":200,"description":"What the wallet was actually opened with. 0 when trial credits were withheld."},"trial_credits":{"type":"object","description":"Present only when no trial credit was granted. The account is still usable; top up to make paid calls.","properties":{"granted":{"type":"boolean","example":false},"reason":{"type":"string","enum":["trial_not_available"],"description":"Deliberately undifferentiated. Registration does not verify the mailbox, so a more specific reason would tell anyone who registers an address whether it had previously held an account."},"message":{"type":"string"}}}}}}}},"400":{"description":"Invalid email, a disposable-mail domain, or a domain with no mail exchanger. `details.reason` carries disposable_domain or no_mail_exchanger.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"invalid_request","message":"Invalid email, a disposable-mail domain, or a domain with no mail exchanger. `details.reason` carries disposable_domain or no_mail_exchanger."}}}},"409":{"description":"Email already registered.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"invalid_request","message":"Email already registered."}}}}}}},"/v1/auth/recover":{"post":{"tags":["auth"],"summary":"Request an API key recovery code","description":"Sends a single-use recovery code to the account's email address. Your current API key keeps working — nothing is rotated until the code is redeemed at /v1/auth/recover/confirm. The response body and status are identical whether or not an account exists. Response TIMING is not equalised, so this is not a constant-time oracle.","x-ratelimit":{"limit":2,"window":"5m","scope":"per IP"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}},"responses":{"200":{"description":"Accepted (whether or not an account exists)","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"expires_in_minutes":{"type":"integer","example":30}}}}}},"400":{"description":"A valid email address is required.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"invalid_request","message":"A valid email address is required."}}}}}}},"/v1/auth/recover/confirm":{"post":{"tags":["auth"],"summary":"Redeem a recovery code and rotate the API key","description":"Redeems the single-use code sent by /v1/auth/recover. The previous API key stops working the moment this returns 200. Codes expire 30 minutes after issue. Requesting another does NOT invalidate an outstanding one — several can be live at once, each single-use — because an unauthenticated endpoint that invalidates a code on request lets anyone who knows the address keep cancelling a recovery in progress.","x-ratelimit":{"limit":10,"window":"5m","scope":"per IP"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","token"],"properties":{"email":{"type":"string","format":"email"},"token":{"type":"string","description":"The code from the recovery email."}}}}}},"responses":{"200":{"description":"Key rotated","content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string","description":"Shown once. The previous key is now invalid."},"key_prefix":{"type":"string"},"message":{"type":"string"}}}}}},"400":{"description":"Both 'email' and 'token' are required.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"invalid_request","message":"Both 'email' and 'token' are required."}}}},"401":{"description":"The code is invalid, expired, or already used.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"unauthorized","message":"The code is invalid, expired, or already used."}}}}}}},"/v1/auth/api-key":{"post":{"tags":["auth"],"summary":"Regenerate API key","description":"Generates a new API key and invalidates the current one.","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"New API key","content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string"},"key_prefix":{"type":"string"}}}}}}}}},"/v1/wallet/balance":{"get":{"tags":["wallet"],"summary":"Get wallet balance","security":[{"BearerAuth":[]}],"x-ratelimit":{"limit":5,"window":"1s","scope":"per API key"},"responses":{"200":{"description":"Current balance","content":{"application/json":{"schema":{"type":"object","properties":{"balance_cents":{"type":"integer","description":"Balance in EUR cents","example":1850},"currency":{"type":"string","example":"EUR"}}}}}}}}},"/v1/wallet/topup":{"post":{"tags":["wallet"],"summary":"Create a top-up checkout session","description":"Creates a Stripe Checkout session for wallet top-up. Minimum €10.00.","security":[{"BearerAuth":[]}],"x-ratelimit":{"limit":5,"window":"1s","scope":"per API key"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["amount_cents"],"properties":{"amount_cents":{"type":"integer","minimum":1000,"description":"Amount in EUR cents (minimum 1000 = €10.00)","example":2000}}}}}},"responses":{"200":{"description":"Checkout session created","content":{"application/json":{"schema":{"type":"object","properties":{"checkout_url":{"type":"string","format":"uri"},"session_id":{"type":"string"},"amount_cents":{"type":"integer"}}}}}},"400":{"description":"amount_cents must be >= 1000","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"invalid_request","message":"amount_cents must be >= 1000"}}}}}}},"/v1/wallet/transactions":{"get":{"tags":["wallet"],"summary":"List wallet transactions","description":"Returns wallet top-up and credit history.","security":[{"BearerAuth":[]}],"x-ratelimit":{"limit":5,"window":"1s","scope":"per API key"},"responses":{"200":{"description":"Wallet transaction history","content":{"application/json":{"schema":{"type":"object","properties":{"transactions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"amount_cents":{"type":"integer"},"type":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}}}}}}}}}}},"/v1/transactions":{"get":{"tags":["transactions"],"summary":"List capability transactions","description":"Returns history of capability executions for the authenticated user.","security":[{"BearerAuth":[]}],"x-ratelimit":{"limit":5,"window":"1s","scope":"per API key"},"responses":{"200":{"description":"Transaction history","content":{"application/json":{"schema":{"type":"object","properties":{"transactions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["completed","failed","pending"]},"capability_slug":{"type":"string"},"price_cents":{"type":"integer"},"latency_ms":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"completed_at":{"type":"string","format":"date-time","nullable":true}}}}}}}}}}}},"/v1/transactions/{id}/audit-token":{"post":{"tags":["transactions"],"summary":"Re-issue audit token","description":"Issue a new HMAC-signed audit URL for a transaction you own. Replaces the previous token for the caller's convenience; previous tokens remain valid until their own expires_at (stateless). Default TTL 90 days (F-A-006). Caller must own the transaction (same 404 for unknown / cross-user / deleted).","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"expires_in_days":{"type":"integer","minimum":1,"maximum":365,"default":90,"description":"TTL for the new token in days. Integer 1-365. Default 90."}}}}}},"responses":{"200":{"description":"Audit token re-issued.","content":{"application/json":{"schema":{"type":"object","properties":{"transaction_id":{"type":"string","format":"uuid"},"token":{"type":"string","description":"32-char HMAC-SHA256 substring."},"expires_at":{"type":"integer","description":"Unix seconds."},"expires_at_iso":{"type":"string","format":"date-time"},"audit_url":{"type":"string","description":"Full shareable URL with token + expires_at query params."}}}}}},"400":{"description":"expires_in_days must be an integer between 1 and 365.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"invalid_request","message":"expires_in_days must be an integer between 1 and 365."}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"unauthorized","message":"Missing or invalid API key."}}}},"404":{"description":"Transaction not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"not_found","message":"Transaction not found."}}}}}}},"/v1/transactions/{id}":{"get":{"tags":["transactions"],"summary":"Get transaction detail","description":"Returns transaction detail. Authenticated callers receive the full body (output, provenance, audit trail). Unauthenticated callers looking up a free-tier transaction by UUID receive a redacted envelope with `body_redacted: true` and the body fields (input/output/error/provenance/audit_trail) absent. See F-A-005.","security":[{"BearerAuth":[]},{}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Transaction detail (full body if authenticated, redacted envelope if unauthenticated free-tier lookup).","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["completed","failed","pending"]},"capability_slug":{"type":"string"},"output":{"type":"object","nullable":true},"error":{"type":"string","nullable":true},"price_cents":{"type":"integer"},"latency_ms":{"type":"integer"},"provenance":{"type":"object","nullable":true},"transparency_marker":{"type":"string"},"data_jurisdiction":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"completed_at":{"type":"string","format":"date-time","nullable":true},"body_redacted":{"type":"boolean","description":"Present and true on unauth free-tier lookups; indicates body fields are redacted."},"body_redacted_reason":{"type":"string","description":"Human-readable explanation of why the body is redacted."}}}}}},"404":{"description":"Transaction not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"not_found","message":"Transaction not found."}}}}}}},"/v1/verify/{transactionId}":{"get":{"tags":["trust"],"summary":"Verify transaction integrity","description":"Recompute a transaction's SHA-256 content hash and walk the recorded chain backward from it, up to a bounded depth. Public, no auth required.","parameters":[{"name":"transactionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"depth","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"description":"Max chain depth to verify (default 20, max 50). F-A-012: values >50 are clamped to 50."}],"responses":{"200":{"description":"Verification result","content":{"application/json":{"schema":{"type":"object","properties":{"transaction_id":{"type":"string","format":"uuid"},"verified":{"type":"boolean","description":"True if hash is valid and chain has no broken links"},"hash_valid":{"type":"boolean","description":"True if recomputed hash matches stored hash"},"chain":{"type":"object","properties":{"length":{"type":"integer"},"verified_links":{"type":"integer"},"broken_links":{"type":"integer"},"reaches_genesis":{"type":"boolean"},"chain_start_date":{"type":"string","format":"date","nullable":true},"chain_end_date":{"type":"string","format":"date"},"max_depth":{"type":"integer"},"truncated":{"type":"boolean","description":"F-A-012: true when the chain walk stopped at max_depth before reaching genesis. False when the walk completed (reached genesis, hit a missing link, or the chain was shorter than max_depth)."},"truncated_reason":{"type":"string","nullable":true,"description":"Human-readable reason string (e.g. 'max_depth_reached (N=50)') when truncated=true, otherwise null."}}},"transaction_metadata":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time"},"capability_slug":{"type":"string","nullable":true},"transparency_marker":{"type":"string"},"data_jurisdiction":{"type":"string"},"status":{"type":"string"}}},"methodology_url":{"type":"string","format":"uri"}}}}}},"404":{"description":"Transaction not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"not_found","message":"Transaction not found."}}}},"429":{"description":"Rate limit exceeded (F-A-012: 10 req/min per IP). Retry after the window resets.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"rate_limited","message":"Rate limit exceeded (F-A-012: 10 req/min per IP). Retry after the window resets."}}}}}}},"/v1/suggest":{"post":{"tags":["suggest"],"summary":"AI capability suggestion","description":"Uses AI to find the best capability or solution for a natural language query. Returns ranked suggestions with confidence scores.","x-ratelimit":{"limit":20,"window":"1s","scope":"per IP"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","maxLength":500,"example":"validate a Swedish company's VAT number"},"limit":{"type":"integer","minimum":1,"maximum":10,"default":3}}}}}},"responses":{"200":{"description":"Suggestions","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"suggestions":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["capability","solution"]},"description":{"type":"string"},"price_cents":{"type":"integer","nullable":true},"confidence":{"type":"number"}}}}}}}}},"400":{"description":"Missing query.","content":{"application/json":{"schema":{"type":"object","properties":{"error_code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}},"required":["error_code","message"]},"example":{"error_code":"invalid_request","message":"Missing query."}}}}}}},"/v1/suggest/typeahead":{"get":{"tags":["suggest"],"summary":"Typeahead search","description":"Fast keyword-based autocomplete for capability and solution names.","x-ratelimit":{"limit":30,"window":"1s","scope":"per IP"},"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2},"description":"Search query"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":10,"default":6}},{"name":"geo","in":"query","required":false,"schema":{"type":"string"},"description":"Geography filter"},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["capability","solution"]}}],"responses":{"200":{"description":"Typeahead matches","content":{"application/json":{"schema":{"type":"object","properties":{"matches":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"price_cents":{"type":"integer","nullable":true},"category":{"type":"string"}}}}}}}}}}}},"/.well-known/agent-card.json":{"get":{"tags":["discovery"],"summary":"A2A Agent Card","description":"Dynamic Agent Card for the A2A (Agent-to-Agent) protocol. Lists all capabilities as agent skills.","responses":{"200":{"description":"Agent Card JSON"}}}},"/health":{"get":{"tags":["discovery"],"summary":"Health check","responses":{"200":{"description":"Service healthy","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"}}}}}}}}},"/x402/v2/us-product-recall-search":{"post":{"tags":["x402"],"summary":"US Product Recall Search (x402)","description":"Search official US CPSC consumer product recalls by keyword or manufacturer. Returns recall title, date, hazard description, affected products, and manufacturer for supplier and product due-diligence checks.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":{"text":"hoverboard","date_to":null,"date_from":null,"manufacturer":null},"recalls":[{"url":"https://www.cpsc.gov/Recalls/2024/DGL-Group-Recalls-Hover-1-Helix-Hoverboards-Due-to-Fire-Hazard","title":"DGL Group Recalls Hover-1 Helix Hoverboards Due to Fire Hazard","hazard":"Fire hazard","products":[{"name":"Hover-1 Helix hoverboards","model":null,"units":"About 25,000"}],"recall_id":9806,"description":"This recall involves certain Hover-1 Helix hoverboards.","recall_date":"2023-12-21T00:00:00","manufacturers":["DGL Group"],"recall_number":"24065"}],"result_count":1},"properties":{"query":{"type":"object"},"recalls":{"type":"array"},"result_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","anyOf":[{"required":["query"]},{"required":["manufacturer"]},{"required":["task"]}],"required":[],"properties":{"task":{"type":"string","description":"Free-text alias for query"},"query":{"type":"string","description":"Product or recall title keyword to search for"},"date_to":{"type":"string","description":"ISO date (YYYY-MM-DD) — only recalls on or before this date"},"date_from":{"type":"string","description":"ISO date (YYYY-MM-DD) — only recalls on or after this date"},"manufacturer":{"type":"string","description":"Manufacturer name to filter by (alternative or complement to query)"}}}}}}}},"/x402/v2/name-parse":{"get":{"tags":["x402"],"summary":"Name Parse (x402)","description":"Parse a full name into components: first, middle, last, prefix, suffix, nickname. Handles 'Dr. Karl-Johan von Lindström III' correctly.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"prefix":null,"suffix":null,"nickname":null,"full_name":"test","last_name":null,"first_name":"test","middle_name":null},"properties":{"prefix":{"type":"string"},"suffix":{"type":"string"},"nickname":{"type":"string"},"full_name":{"type":"string"},"last_name":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"full_name","in":"query","required":true,"description":"Full name to parse","schema":{"type":"string","description":"Full name to parse"}}]}},"/x402/v2/french-insolvency-check":{"post":{"tags":["x402"],"summary":"French Insolvency Check (x402)","description":"Check a French company for formal insolvency proceedings (redressement or liquidation judiciaire) via BODACC, the official French legal gazette. Search by SIREN or company name. Returns judgment dates, court, and nature.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.086400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":{"siren":"345086177","company_name":null},"result_count":8,"insolvency_notices":[{"id":"A20200165944","url":"https://www.bodacc.fr/pages/annonces-commerciales-detail/?q.id=id:A20200165944","court":"TRIBUNAL DE COMMERCE DE LILLE MÉTROPOLE","siren":"345086177","judgment":{"date":"2020-08-17","type":"initial","nature":"Jugement arrêtant un plan de cession","famille":"Extrait de jugement"},"department":"59","notice_type":"Avis initial","company_name":"CAMAIEU INTERNATIONAL","department_name":"Nord","publication_date":"2020-08-26"}]},"properties":{"query":{"type":"object"},"result_count":{"type":"integer"},"insolvency_notices":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","anyOf":[{"required":["siren"]},{"required":["company_name"]},{"required":["task"]}],"required":[],"properties":{"task":{"type":"string","description":"Free-text alias — SIREN or company name"},"siren":{"type":"string","description":"9-digit French company identifier (SIREN)"},"company_name":{"type":"string","description":"French company name to search for (alternative to SIREN)"}}}}}}}},"/x402/v2/nginx-config-generate":{"get":{"tags":["x402"],"summary":"Nginx Config Generate (x402)","description":"Generate production nginx server blocks with SSL, proxy_pass, WebSocket support, security headers, gzip, rate limiting.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"notes":["Ensure Let's Encrypt certificate exists at /etc/letsencrypt/live/google.com/ before deploying","Update root directory path /var/www/google.com/public to match your application structure","Upstream service must be running on localhost:3000","HSTS header includes preload flag - only add if domain is in HSTS preload list","SSL session cache uses shared memory for better performance across worker processes","WebSocket upgrade headers ensure proper bidirectional communication","Gzip compression excludes compressed formats to avoid double-compression overhead","Consider adjusting proxy timeouts based on application response times","Access logs can be disabled for health check endpoint to reduce log noise","Certificate renewal with Let's Encrypt certbot is required every 90 days"],"config":"# HTTP redirect to HTTPS\nserver {\n    listen 80;\n    listen [::]:80;\n    server_name google.com www.google.com;\n    return 301 https://$server_name$request_uri;\n}\n\n# WWW redirect to non-WWW\nserver {\n    listen 443 ssl http2;\n    listen [::]:443 ssl http2;\n    server_name www.google.com;\n\n    ssl_certificate /etc/letsencrypt/live/google.com/fullchain.pem;\n    ssl_certificate_key /etc/letsencrypt/live/google.com/privkey.pem;\n\n    return 301 https://google.com$request_uri;\n}\n\n# Main server block\nserver {\n    listen 443 ssl http2;\n    listen [::]:443 ssl http2;\n    server_name google.com;\n\n    # SSL Configuration\n    ssl_certificate /etc/letsencrypt/live/google.com/fullchain.pem;\n    ssl_certificate_key /etc/letsencrypt/live/google.com/privkey.pem;\n    ssl_protocols TLSv1.2 TLSv1.3;\n    ssl_ciphers HIGH:!aNULL:!MD5;\n    ssl_prefer_server_ciphers on;\n    ssl_session_cache shared:SSL:10m;\n    ssl_session_timeout 10m;\n\n    # Gzip Compression\n    gzip on;\n    gzip_vary on;\n    gzip_min_length 1000;\n    gzip_proxied any;\n    gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml+rss application/atom+xml image/svg+xml application/json;\n    gzip_disable \"msie6\";\n\n    # Security Headers\n    add_header Strict-Transport-Security \"max-age=31536000; includeSubDomains; preload\" always;\n    add_header X-Frame-Options \"SAMEORIGIN\" always;\n    add_header X-Content-Type-Options \"nosniff\" always;\n    add_header Referrer-Policy \"strict-origin-when-cross-origin\" always;\n    add_header X-XSS-Protection \"1; mode=block\" always;\n    add_header Permissions-Policy \"geolocation=(), microphone=(), camera=()\" always;\n\n    # Logging\n    access_log /var/log/nginx/google.com.access.log;\n    error_log /var/log/nginx/google.com.error.log;\n\n    # Root location\n    root /var/www/google.com/public;\n\n    location / {\n        proxy_pass http://localhost:3000;\n        \n        # Proxy Headers\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_set_header X-Forwarded-Host $server_name;\n\n        # WebSocket Support\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n\n        # Timeouts\n        proxy_connect_timeout 60s;\n        proxy_send_timeout 60s;\n        proxy_read_timeout 60s;\n\n        # Buffering\n        proxy_buffering on;\n        proxy_buffer_size 4k;\n        proxy_buffers 8 4k;\n        proxy_busy_buffers_size 8k;\n    }\n\n    # Health check endpoint (optional)\n    location /health {\n        proxy_pass http://localhost:3000;\n        access_log off;\n    }\n}","domain":"google.com","upstream_port":3000,"features_enabled":["SSL/TLS with Let's Encrypt","HTTP to HTTPS redirect","WWW to non-WWW redirect","WebSocket support","Gzip compression","HTTP/2 support","Security headers (HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, X-XSS-Protection, Permissions-Policy)","Proxy headers (X-Real-IP, X-Forwarded-For, X-Forwarded-Proto, X-Forwarded-Host)","Connection pooling and buffering","Request timeouts","Logging"],"security_headers_included":["Strict-Transport-Security (HSTS)","X-Frame-Options","X-Content-Type-Options","Referrer-Policy","X-XSS-Protection","Permissions-Policy"]},"properties":{"notes":{"type":"array"},"config":{"type":"string"},"features_enabled":{"type":"array"},"security_headers_included":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"ssl","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"gzip","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"domain","in":"query","required":true,"schema":{"type":"string"}},{"name":"rate_limit","in":"query","required":false,"schema":{"type":"integer"}},{"name":"www_redirect","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"upstream_port","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/ssl-check":{"get":{"tags":["x402"],"summary":"SSL Certificate Check (x402)","description":"Check a domain's SSL/TLS certificate. Returns issuer, validity dates, days until expiry, protocol version, cipher, and SAN entries.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":false,"domain":"expired.badssl.com","issuer":"COMODO CA Limited","subject":"*.badssl.com","protocol":"TLSv1.2","valid_to":"2015-04-12T23:59:59.000Z","is_expired":true,"valid_from":"2015-04-09T00:00:00.000Z","cipher_name":"ECDHE-RSA-AES128-GCM-SHA256","serial_number":"4AE79549FA9ABE3F100F17A478E16909","cipher_version":"TLSv1.2","is_expiring_soon":false,"days_until_expiry":-4009,"subject_alt_names":["*.badssl.com","badssl.com"],"fingerprint_sha256":"BA:10:5C:E0:2B:AC:76:88:8E:CE:E4:7C:D4:EB:79:41:65:3E:9A:C9:93:B6:1B:2E:B3:DC:C8:20:14:D2:1B:4F"},"properties":{"valid":{"type":"boolean"},"domain":{"type":"string"},"issuer":{"type":"string"},"valid_to":{"type":"string"},"is_expired":{"type":"boolean"},"days_until_expiry":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain name (e.g. example.com)","schema":{"type":"string","description":"Domain name (e.g. example.com)"}}]}},"/x402/v2/adverse-media-check":{"get":{"tags":["x402"],"summary":"Adverse Media Check (x402)","description":"Screens a person or company for adverse news coverage across 235,000+ sources via Dilisense (primary) with Serper Google search fallback. Returns audit-grade evidence: risk level with documented thresholds, FATF-aligned category counts, top article headlines with source URLs and dates, and the rule used to classify severe vs non-severe coverage.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"Wirecard AG","period":"last 12 months","source":"dilisense","categories":{"political":19,"regulatory":94,"financial_crime":187,"organized_crime":12},"risk_level":"high","total_hits":312,"screened_at":"2026-04-27T13:00:00.000Z","top_articles":[{"category":"financial_crime","headline":"Wirecard scandal: how the German fintech collapsed","language":"en","timestamp":"2026-04-20T10:00:00","source_link":"https://example.com/wirecard-scandal"}],"lists_queried":{"version":null,"collection":"dilisense/adverse-media","source_count":235000,"last_updated_at":null},"categories_found":["financial_crime","regulatory","organized_crime","political"],"severe_categories":["financial_crime","organized_crime","terrorism","violent_crime"],"risk_level_thresholds":{"low":"total_hits > 0 AND no hits in severe categories (financial_crime, organized_crime, terrorism, violent_crime)","high":"10+ hits in any single severe category","none":"total_hits == 0","medium":"1+ hits in any severe category"}},"properties":{"query":{"type":"string"},"period":{"type":"string"},"source":{"enum":["dilisense","serper"],"type":"string"},"categories":{"type":"object"},"risk_level":{"enum":["none","low","medium","high"],"type":"string"},"total_hits":{"type":"integer"},"screened_at":{"type":"string"},"top_articles":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"headline":{"type":"string"},"language":{"type":"string"},"timestamp":{"type":"string"},"source_link":{"type":"string"}}}},"lists_queried":{"type":"object","properties":{"version":{"type":["string","null"]},"collection":{"type":"string"},"source_count":{"type":["integer","null"]},"last_updated_at":{"type":["string","null"]}}},"fallback_reason":{"type":["string","null"]},"categories_found":{"type":"array"},"severe_categories":{"type":"array"},"risk_level_thresholds":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name","in":"query","required":true,"description":"Person or company name to screen","schema":{"type":"string","description":"Person or company name to screen"}},{"name":"country","in":"query","required":false,"description":"Additional context like industry or country (optional)","schema":{"type":"string","description":"Additional context like industry or country (optional)"}},{"name":"entity_name","in":"query","required":false,"description":"Alias for name (optional)","schema":{"type":"string","description":"Alias for name (optional)"}},{"name":"entity_type","in":"query","required":false,"description":"Override auto-detection of entity type (optional)","schema":{"enum":["person","company"],"type":"string","description":"Override auto-detection of entity type (optional)"}}]}},"/x402/v2/eu-ai-act-classify":{"get":{"tags":["x402"],"summary":"EU AI Act Classify (x402)","description":"Classify an AI system's risk level under the EU AI Act. Rule-based analysis against Annex III and Article 5/6/50 criteria.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"timeline":"No mandatory compliance deadline, but voluntary codes of conduct may apply.","prohibited":false,"risk_level":"minimal","obligations":["No mandatory obligations under the EU AI Act.","Voluntary codes of conduct encouraged (Article 95)."],"recommendations":["Although not legally required, consider adopting voluntary codes of conduct (Article 95).","Maintain good AI development practices (transparency, fairness, safety).","Monitor regulatory developments — classification may change with delegated acts.","Document your AI system's purpose and functionality for potential future audits."],"matched_keywords":[],"applicable_articles":["Article 95 (Codes of conduct for minimal-risk AI)"],"classification_reason":"No high-risk, limited-risk, or prohibited keywords detected. System appears to fall under minimal risk.","system_description_summary":"INVALID_TEST_VALUE_12345","conformity_assessment_needed":false},"properties":{"risk_level":{"type":"string"},"obligations":{"type":"array"},"applicable_articles":{"type":"array"},"classification_reason":{"type":"string"},"conformity_assessment_needed":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"description","in":"query","required":true,"description":"Description of the AI system","schema":{"type":"string","description":"Description of the AI system"}}]}},"/x402/v2/irish-company-data":{"get":{"tags":["x402"],"summary":"Irish Company Data (x402)","description":"Look up Irish company data from the Companies Registration Office (CRO) Open Data Portal. Accepts CRO number (5-6 digits) or fuzzy company name. Returns name, status, type, address, registration date, annual return dates, NACE code, and Eircode.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"Normal","address":"One Wilton Park, Wilton Place, Ireland","eircode":"D02FX04","cro_number":"513174","status_date":null,"company_name":"STRIPE PAYMENTS EUROPE, LIMITED","company_type":"LTD - Private Company Limited by Shares","jurisdiction":"IE","nace_v2_code":null,"dissolution_date":null,"registration_date":"2012-05-15","last_accounts_date":"2024-12-31","principal_object_code":"65.23","last_annual_return_date":"2025-09-30","next_annual_return_date":"2026-09-30"},"properties":{"status":{"type":"string"},"address":{"type":"string"},"eircode":{"type":"string"},"cro_number":{"type":"string"},"status_date":{"type":"string"},"company_name":{"type":"string"},"company_type":{"type":"string"},"jurisdiction":{"type":"string"},"nace_v2_code":{"type":"string"},"dissolution_date":{"type":"string"},"registration_date":{"type":"string"},"last_accounts_date":{"type":"string"},"principal_object_code":{"type":"string"},"last_annual_return_date":{"type":"string"},"next_annual_return_date":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"task","in":"query","required":false,"description":"Free-text input — first matching CRO number or company name is used","schema":{"type":"string","description":"Free-text input — first matching CRO number or company name is used"}},{"name":"cro_number","in":"query","required":false,"description":"CRO number (5-6 digits)","schema":{"type":"string","description":"CRO number (5-6 digits)"}},{"name":"company_name","in":"query","required":false,"description":"Irish company name (fuzzy match)","schema":{"type":"string","description":"Irish company name (fuzzy match)"}}]}},"/x402/v2/sanctions-check":{"get":{"tags":["x402"],"summary":"Sanctions Check (x402)","description":"Check if a person or entity is on sanctions lists (EU, US OFAC, UN, UK OFSI, Swiss SECO, BIS, World Bank, EBRD, ADB + 125 national lists). Uses Dilisense consolidated database. Returns audit-grade evidence: match results with named source attribution and country attribution.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"Vladimir Putin","schema":"Person","source":"dilisense","matches":[{"name":"Vladimir Vladimirovich Putin","datasets":["us_ofac_sdn"],"countries":["ru"],"entity_id":"us_ofac_sdn","last_updated_at":null,"sanction_details":["Executive Order 14024"]}],"queried_at":"2026-04-27T13:00:00.000Z","match_count":14,"is_sanctioned":true,"lists_queried":{"version":null,"collection":"dilisense/consolidated-sanctions","major_lists":["OFAC — Specially Designated Nationals (SDN)","European Commission — Consolidated List of Financial Sanctions","UN Security Council — Consolidated List","HMT OFSI — Financial Sanctions","SECO — Switzerland Sanctions","BIS — Entity List","(plus ~128 more)"],"source_count":134,"freshness_note":"Dilisense aggregates 130+ sanctions, debarment, and restrictive-measure lists into a consolidated index. The publisher refreshes the consolidated index multiple times daily; per-list timestamps are not exposed via the screening API.","last_updated_at":null,"source_catalog_url":"https://dilisense.com/en/sources/sanction-sources"},"total_results":14,"country_filter":null,"birth_date_filter":"1952-10-07"},"properties":{"query":{"type":"string"},"schema":{"enum":["Person","Company"],"type":"string"},"source":{"enum":["dilisense"],"type":"string"},"matches":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"datasets":{"type":"array"},"countries":{"type":"array"},"entity_id":{"type":"string"},"last_updated_at":{"type":["string","null"]},"sanction_details":{"type":"array"}}}},"queried_at":{"type":"string"},"match_count":{"type":"integer"},"is_sanctioned":{"type":"boolean"},"lists_queried":{"type":"object","properties":{"version":{"type":["string","null"]},"collection":{"type":"string"},"major_lists":{"type":"array"},"source_count":{"type":"integer"},"freshness_note":{"type":"string"},"last_updated_at":{"type":["string","null"]},"source_catalog_url":{"type":"string"}}},"total_results":{"type":"integer"},"country_filter":{"type":["string","null"]},"birth_date_filter":{"type":["string","null"]}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name","in":"query","required":true,"description":"Person or company name to check","schema":{"type":"string","description":"Person or company name to check"}},{"name":"country","in":"query","required":false,"description":"ISO country code filter (optional)","schema":{"type":"string","description":"ISO country code filter (optional)"}},{"name":"birth_date","in":"query","required":false,"description":"ISO date of birth (YYYY-MM-DD) for person disambiguation, reduces false positives on common names (optional)","schema":{"type":"string","format":"date","description":"ISO date of birth (YYYY-MM-DD) for person disambiguation, reduces false positives on common names (optional)"}},{"name":"entity_type","in":"query","required":false,"description":"Override auto-detection of entity type (optional)","schema":{"enum":["person","company"],"type":"string","description":"Override auto-detection of entity type (optional)"}}]}},"/x402/v2/webhook-test-payload":{"get":{"tags":["x402"],"summary":"Webhook Test Payload (x402)","description":"Generate realistic test webhook payloads for Stripe, GitHub, Slack, Twilio, SendGrid, Shopify. Includes proper headers and schema-accurate data.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"headers":{"Timestamp":"1704067200","User-Agent":"test-service/1.0","Content-Type":"application/json","X-Request-ID":"req_test_1234567890"},"payload":{"id":"evt_test_1234567890","data":{"object":{"id":"test_obj_1234567890","object":"test_value","status":"active","created":1704067200,"metadata":{}}},"type":"test_value","object":"event","created":1704067200,"request":{"id":null,"idempotency_key":null},"livemode":false,"api_version":"2024-01-01","pending_webhooks":1},"service":"test_value","event_type":"test_value","documentation_url":"https://docs.example.com/webhooks/test_value"},"properties":{"headers":{"type":"object"},"payload":{"type":"object"},"event_type":{"type":"string"},"documentation_url":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"service","in":"query","required":true,"description":"stripe/github/slack/twilio/sendgrid/shopify","schema":{"type":"string","description":"stripe/github/slack/twilio/sendgrid/shopify"}},{"name":"event_type","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/schema-migration-generate":{"get":{"tags":["x402"],"summary":"Schema Migration Generate (x402)","description":"Generate database migration code from current→desired schema description. Supports Drizzle, Prisma, Knex, and raw SQL.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"orm":"raw","up_sql":"ALTER TABLE users ADD COLUMN email VARCHAR(255);","down_sql":"ALTER TABLE users DROP COLUMN email;","warnings":["New column 'email' is nullable by default. Existing rows will have NULL values for email.","If email should be unique or NOT NULL, consider adding constraints after migration and populating existing rows.","Application code expecting email field may receive NULL values from existing records."],"migration":"ALTER TABLE users ADD COLUMN email VARCHAR(255);","breaking_changes":[]},"properties":{"orm":{"type":"string"},"migration_up":{"type":"string"},"migration_down":{"type":"string"},"breaking_changes":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"orm","in":"query","required":false,"description":"drizzle/prisma/knex/raw","schema":{"type":"string","description":"drizzle/prisma/knex/raw"}},{"name":"current_schema","in":"query","required":false,"schema":{"type":"string"}},{"name":"desired_schema","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/ssl-certificate-chain":{"get":{"tags":["x402"],"summary":"SSL Certificate Chain (x402)","description":"Inspect the full SSL/TLS certificate chain for a domain. Returns cert details, expiry, issuer, TLS version, cipher suite, and security issues.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"host":"google.com","port":443,"issues":["Weak key size: 256 bits"],"authorized":true,"tls_version":"TLSv1.3","chain_length":3,"cipher_suite":"TLS_AES_256_GCM_SHA384","leaf_certificate":{"valid_to":"2026-04-27T08:36:37.000Z","san_count":137,"is_expired":false,"valid_from":"2026-02-02T08:36:38.000Z","common_name":"*.google.com","organization":null,"days_until_expiry":51},"certificate_chain":[{"bits":256,"issuer":"C=US, O=Google Trust Services, CN=WR2","subject":"CN=*.google.com","valid_to":"Apr 27 08:36:37 2026 GMT","valid_from":"Feb  2 08:36:38 2026 GMT","serial_number":"B24FF93A9975FA670A45A4784F3ACC65","subject_alt_names":["DNS:*.google.com","DNS:*.appengine.google.com","DNS:*.bdn.dev","DNS:*.origin-test.bdn.dev","DNS:*.cloud.google.com","DNS:*.crowdsource.google.com","DNS:*.datacompute.google.com","DNS:*.google.ca","DNS:*.google.cl","DNS:*.google.co.in","DNS:*.google.co.jp","DNS:*.google.co.uk","DNS:*.google.com.ar","DNS:*.google.com.au","DNS:*.google.com.br","DNS:*.google.com.co","DNS:*.google.com.mx","DNS:*.google.com.tr","DNS:*.google.com.vn","DNS:*.google.de","DNS:*.google.es","DNS:*.google.fr","DNS:*.google.hu","DNS:*.google.it","DNS:*.google.nl","DNS:*.google.pl","DNS:*.google.pt","DNS:*.googleapis.cn","DNS:*.gstatic.cn","DNS:*.gstatic-cn.com","DNS:googlecnapps.cn","DNS:*.googlecnapps.cn","DNS:googleapps-cn.com","DNS:*.googleapps-cn.com","DNS:gkecnapps.cn","DNS:*.gkecnapps.cn","DNS:googledownloads.cn","DNS:*.googledownloads.cn","DNS:recaptcha.net.cn","DNS:*.recaptcha.net.cn","DNS:recaptcha-cn.net","DNS:*.recaptcha-cn.net","DNS:widevine.cn","DNS:*.widevine.cn","DNS:ampproject.org.cn","DNS:*.ampproject.org.cn","DNS:ampproject.net.cn","DNS:*.ampproject.net.cn","DNS:google-analytics-cn.com","DNS:*.google-analytics-cn.com","DNS:googleadservices-cn.com","DNS:*.googleadservices-cn.com","DNS:googlevads-cn.com","DNS:*.googlevads-cn.com","DNS:googleapis-cn.com","DNS:*.googleapis-cn.com","DNS:googleoptimize-cn.com","DNS:*.googleoptimize-cn.com","DNS:doubleclick-cn.net","DNS:*.doubleclick-cn.net","DNS:*.fls.doubleclick-cn.net","DNS:*.g.doubleclick-cn.net","DNS:doubleclick.cn","DNS:*.doubleclick.cn","DNS:*.fls.doubleclick.cn","DNS:*.g.doubleclick.cn","DNS:dartsearch-cn.net","DNS:*.dartsearch-cn.net","DNS:googletraveladservices-cn.com","DNS:*.googletraveladservices-cn.com","DNS:googletagservices-cn.com","DNS:*.googletagservices-cn.com","DNS:googletagmanager-cn.com","DNS:*.googletagmanager-cn.com","DNS:googlesyndication-cn.com","DNS:*.googlesyndication-cn.com","DNS:*.safeframe.googlesyndication-cn.com","DNS:app-measurement-cn.com","DNS:*.app-measurement-cn.com","DNS:gvt1-cn.com","DNS:*.gvt1-cn.com","DNS:gvt2-cn.com","DNS:*.gvt2-cn.com","DNS:2mdn-cn.net","DNS:*.2mdn-cn.net","DNS:googleflights-cn.net","DNS:*.googleflights-cn.net","DNS:admob-cn.com","DNS:*.admob-cn.com","DNS:*.gemini.cloud.google.com","DNS:googlesandbox-cn.com","DNS:*.googlesandbox-cn.com","DNS:*.safenup.googlesandbox-cn.com","DNS:*.gstatic.com","DNS:*.metric.gstatic.com","DNS:*.gvt1.com","DNS:*.gcpcdn.gvt1.com","DNS:*.gvt2.com","DNS:*.gcp.gvt2.com","DNS:*.url.google.com","DNS:*.youtube-nocookie.com","DNS:*.ytimg.com","DNS:ai.android","DNS:android.com","DNS:*.android.com","DNS:*.flash.android.com","DNS:g.cn","DNS:*.g.cn","DNS:g.co","DNS:*.g.co","DNS:goo.gl","DNS:www.goo.gl","DNS:google-analytics.com","DNS:*.google-analytics.com","DNS:google.com","DNS:googlecommerce.com","DNS:*.googlecommerce.com","DNS:ggpht.cn","DNS:*.ggpht.cn","DNS:urchin.com","DNS:*.urchin.com","DNS:youtu.be","DNS:youtube.com","DNS:*.youtube.com","DNS:music.youtube.com","DNS:*.music.youtube.com","DNS:youtubeeducation.com","DNS:*.youtubeeducation.com","DNS:youtubekids.com","DNS:*.youtubekids.com","DNS:yt.be","DNS:*.yt.be","DNS:android.clients.google.com","DNS:*.android.google.cn","DNS:*.chrome.google.cn","DNS:*.developers.google.cn","DNS:*.aistudio.google.com"],"fingerprint_sha256":"B3:D4:27:15:99:07:11:68:02:2E:99:B1:A2:49:72:AA:3C:7A:B5:AA:E0:E1:F2:BF:0B:6D:81:F2:F6:81:3E:09"},{"bits":2048,"issuer":"C=US, O=Google Trust Services LLC, CN=GTS Root R1","subject":"C=US, O=Google Trust Services, CN=WR2","valid_to":"Feb 20 14:00:00 2029 GMT","valid_from":"Dec 13 09:00:00 2023 GMT","serial_number":"7FF005A07C4CDED100AD9D66A5107B98","subject_alt_names":[],"fingerprint_sha256":"E6:FE:22:BF:45:E4:F0:D3:B8:5C:59:E0:2C:0F:49:54:18:E1:EB:8D:32:10:F7:88:D4:8C:D5:E1:CB:54:7C:D4"},{"bits":4096,"issuer":"C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA","subject":"C=US, O=Google Trust Services LLC, CN=GTS Root R1","valid_to":"Jan 28 00:00:42 2028 GMT","valid_from":"Jun 19 00:00:42 2020 GMT","serial_number":"77BD0D6CDB36F91AEA210FC4F058D30D","subject_alt_names":[],"fingerprint_sha256":"3E:E0:27:8D:F7:1F:A3:C1:25:C4:CD:48:7F:01:D7:74:69:4E:6F:C5:7E:0C:D9:4C:24:EF:D7:69:13:39:18:E5"}]},"properties":{"issues":{"type":"array"},"authorized":{"type":"boolean"},"tls_version":{"type":"string"},"chain_length":{"type":"integer"},"leaf_certificate":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"host","in":"query","required":true,"schema":{"type":"string"}},{"name":"port","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/json-to-pydantic":{"get":{"tags":["x402"],"summary":"JSON to Pydantic (x402)","description":"Convert JSON to Python Pydantic model classes. Handles nested objects, arrays, optional fields. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"root_type":"Root","model_count":1,"pydantic_model":"from pydantic import BaseModel\nfrom typing import Any, List, Optional\n\nclass Root(BaseModel):\n    name: str\n    age: int"},"properties":{"root_type":{"type":"string"},"model_count":{"type":"integer"},"pydantic_model":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"json","in":"query","required":true,"description":"JSON string or object","schema":{"description":"JSON string or object"}},{"name":"root_name","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/pdf-extract":{"post":{"tags":["x402"],"summary":"PDF Data Extraction (x402)","description":"Extract structured data from any PDF document. Accepts a URL or base64-encoded PDF. Works on contracts, reports, forms — any document type. Returns JSON based on your extraction instructions.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"data":{"pages":1,"title":"Dummy PDF file","content":[{"page":1,"text":"Dummy PDF file"}],"document_type":"PDF","extracted_data":{"body_content":"No additional content found","main_heading":"Dummy PDF file"}},"source_url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"properties":{"data":{"type":"object"},"source_url":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to a PDF file"},"base64":{"type":"string","description":"Base64-encoded PDF"},"extract":{"type":"string","description":"What data to extract (natural language)"}}}}}}}},"/x402/v2/sql-generate":{"get":{"tags":["x402"],"summary":"SQL Generate (x402)","description":"Generate SQL queries from natural language descriptions. Provide table schema for best results. Supports PostgreSQL, MySQL, SQLite, MSSQL.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"sql":"SELECT * FROM users WHERE active = true;","dialect":"postgres","joins_used":[],"explanation":"This query retrieves all active users from the users table, selecting all columns (id, name, email, active, created_at) for users where the active flag is set to true.","tables_referenced":["users"],"estimated_complexity":"simple"},"properties":{"sql":{"type":"string"},"explanation":{"type":"string"},"tables_referenced":{"type":"array"},"estimated_complexity":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"dialect","in":"query","required":false,"description":"postgres/mysql/sqlite/mssql","schema":{"type":"string","description":"postgres/mysql/sqlite/mssql"}},{"name":"table_schema","in":"query","required":false,"schema":{"type":"string"}},{"name":"natural_language_query","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/invoice-extract":{"post":{"tags":["x402"],"summary":"Invoice / Receipt Extraction (x402)","description":"Extract structured data from an invoice or receipt image/PDF. Returns line items, totals, dates, vendor info, VAT amounts.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.540000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"iban":null,"currency":null,"due_date":null,"subtotal":null,"vat_rate":null,"buyer_vat":null,"buyer_name":null,"confidence":{"line_items":"low","vat_amount":"low","vendor_name":"low","total_amount":"low"},"line_items":[],"vat_amount":null,"vendor_vat":null,"vendor_name":null,"invoice_date":null,"total_amount":null,"invoice_number":null,"payment_reference":null},"properties":{"iban":{"type":"string"},"currency":{"type":"string"},"due_date":{"type":"string"},"subtotal":{"type":"number"},"vat_rate":{"type":"number"},"buyer_vat":{"type":"string"},"buyer_name":{"type":"string"},"confidence":{"type":"object"},"line_items":{"type":"array"},"vat_amount":{"type":"number"},"vendor_vat":{"type":"string"},"vendor_name":{"type":"string"},"invoice_date":{"type":"string"},"total_amount":{"type":"number"},"invoice_number":{"type":"string"},"payment_reference":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to invoice image or PDF"},"base64":{"type":"string","description":"Base64-encoded invoice file"}}}}}}}},"/x402/v2/openapi-generate":{"get":{"tags":["x402"],"summary":"OpenAPI Generate (x402)","description":"Generate a complete OpenAPI 3.1 specification from a natural language API description.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"spec":"openapi: 3.1.0\ninfo:\n  title: Test API\n  description: This is a test input for automated capability testing.\n  version: 1.0.0\nservers:\n  - url: https://api.example.com\n    description: Production server\npaths:\n  /test:\n    get:\n      summary: Test endpoint\n      description: A simple test endpoint for automated capability testing\n      operationId: getTest\n      responses:\n        '200':\n          description: Successful response\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/TestResponse'\n    post:\n      summary: Create test resource\n      description: Create a new test resource\n      operationId: postTest\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/TestRequest'\n      responses:\n        '201':\n          description: Resource created\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/TestResponse'\ncomponents:\n  schemas:\n    TestRequest:\n      type: object\n      properties:\n        name:\n          type: string\n          description: Test resource name\n        value:\n          type: integer\n          description: Test resource value\n      required:\n        - name\n    TestResponse:\n      type: object\n      properties:\n        id:\n          type: string\n          description: Unique identifier\n        name:\n          type: string\n          description: Test resource name\n        value:\n          type: integer\n          description: Test resource value\n        timestamp:\n          type: string\n          format: date-time\n          description: Creation timestamp\n      required:\n        - id\n        - name","schemas":["TestRequest","TestResponse"],"endpoints":[{"path":"/test","method":"GET","summary":"Test endpoint"},{"path":"/test","method":"POST","summary":"Create test resource"}],"total_paths":1},"properties":{"spec":{"type":"string"},"schemas":{"type":"array"},"endpoints":{"type":"array"},"total_paths":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"description","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/swift-validate":{"get":{"tags":["x402"],"summary":"SWIFT/BIC Validation (x402)","description":"Validate a SWIFT/BIC code. Checks format, length, and country code. Extracts bank code, location, and branch. Pure algorithmic — instant and cheap.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"bank_code":"COBA","swift_code":"COBADEFFXXX","branch_code":"XXX","country_code":"DE","location_code":"FF","is_head_office":true},"properties":{"valid":{"type":"boolean"},"bank_code":{"type":"string"},"swift_code":{"type":"string"},"country_code":{"type":"string"},"is_head_office":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"swift","in":"query","required":true,"description":"SWIFT/BIC code (e.g. DABASESX)","schema":{"type":"string","description":"SWIFT/BIC code (e.g. DABASESX)"}}]}},"/x402/v2/swift-message-parse":{"get":{"tags":["x402"],"summary":"SWIFT Message Parse (x402)","description":"Parse SWIFT MT messages (MT103/MT940/MT202) into structured data. Extracts sender/receiver BIC, amount, currency, beneficiary.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"amount":null,"fields":[],"charges":null,"currency":null,"direction":null,"reference":null,"raw_blocks":{"block1":null,"block2":null,"block3":null,"block4":null},"sender_bic":null,"value_date":null,"beneficiary":null,"message_type":"unknown","receiver_bic":null,"remittance_info":null,"ordering_customer":null,"message_description":null},"properties":{"amount":{"type":"number"},"currency":{"type":"string"},"sender_bic":{"type":"string"},"message_type":{"type":"string"},"receiver_bic":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"message","in":"query","required":true,"description":"Raw SWIFT message text","schema":{"type":"string","description":"Raw SWIFT message text"}}]}},"/x402/v2/financial-year-dates":{"get":{"tags":["x402"],"summary":"Financial Year Dates (x402)","description":"Get fiscal year start/end, tax filing deadlines, VAT filing frequency for 42+ countries.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"notes":"Companies may choose a broken fiscal year (e.g., May-Apr, Sep-Aug). Calendar year is most common. Bolagsverket filing required.","country_code":"SE","country_name":"Sweden","financial_year_end":"12-31","tax_filing_deadline":"May 1 (calendar year companies); 6 months after FY end for broken fiscal years","financial_year_start":"01-01","vat_filing_frequency":"Monthly (turnover >40M SEK), quarterly (1-40M SEK), or annually (<1M SEK)","annual_report_deadline":"7 months after financial year end","fiscal_year_matches_calendar":true},"properties":{"financial_year_end":{"type":"string"},"tax_filing_deadline":{"type":"string"},"financial_year_start":{"type":"string"},"vat_filing_frequency":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"country_code","in":"query","required":true,"description":"ISO 2-letter country code","schema":{"type":"string","description":"ISO 2-letter country code"}}]}},"/x402/v2/usgs-earthquake-search":{"post":{"tags":["x402"],"summary":"USGS Earthquake Search (x402)","description":"Query the USGS earthquake catalogue by magnitude, date range and location radius: magnitude, place, time, coordinates, depth, tsunami flag, alert level and event page.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"count":1,"filters":{"order":"time","end_time":null,"latitude":null,"longitude":null,"start_time":"2026-08-05","max_magnitude":null,"max_radius_km":null,"min_magnitude":5},"earthquakes":[{"id":"us7000te9t","url":"https://earthquake.usgs.gov/earthquakes/eventpage/us7000te9t","time":"2026-09-04T11:59:58.323Z","place":"Kermadec Islands region","status":"reviewed","updated":"2026-09-04T12:19:40.040Z","depth_km":10,"latitude":-28.5616,"longitude":-176.6452,"magnitude":5.4,"event_type":"earthquake","alert_level":null,"felt_reports":null,"significance":449,"magnitude_type":"mww","tsunami_warning":false}]},"properties":{"count":{"type":"number"},"filters":{"type":"object"},"earthquakes":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"type":"integer","description":"Events to return, 1-100. Default: 20"},"order":{"type":"string","description":"time (newest first, default) or magnitude (largest first)"},"end_time":{"type":"string","description":"Latest event time, ISO date or datetime"},"latitude":{"type":"number","description":"Centre latitude for a radius search (requires longitude)"},"longitude":{"type":"number","description":"Centre longitude for a radius search (requires latitude)"},"start_time":{"type":"string","description":"Earliest event time, ISO date or datetime. Default: 30 days ago"},"max_magnitude":{"type":"number","description":"Maximum magnitude"},"max_radius_km":{"type":"number","description":"Search radius around the centre in km. Default: 500"},"min_magnitude":{"type":"number","description":"Minimum magnitude. Default: 4.5"}}}}}}}},"/x402/v2/canadian-company-data":{"get":{"tags":["x402"],"summary":"Canadian Company Data (x402)","description":"Look up Canadian company data from Corporations Canada. Accepts corporation number or fuzzy company name.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.864000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"Active","address":"207 - 32900 SOUTH FRASER WAY, ABBOTSFORD BC, V2S 5A1, CA","industry":null,"company_name":"Abbotsford Chamber of Commerce","jurisdiction":"CA","name_history":[],"business_type":"Boards of Trade Act - Part II","business_number":"106679285","director_limits":{"maximum":30,"minimum":3},"tier_2_available":false,"registration_date":"1947-01-10","corporation_number":"1007","registration_number":"1007","latest_annual_return_year":"2026"},"properties":{"status":{"type":"string"},"company_name":{"type":"string"},"name_history":{"type":"array"},"business_type":{"type":"string"},"business_number":{"type":["string","null"]},"director_limits":{"type":["object","null"]},"ubo_availability":{"type":"string"},"corporation_number":{"type":"string"},"registration_number":{"type":"string"},"tier_2_available_reason":{"type":"string"},"ubo_availability_reason":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"task","in":"query","required":false,"description":"Free-text alias — corporation number or company name","schema":{"type":"string","description":"Free-text alias — corporation number or company name"}},{"name":"company_name","in":"query","required":false,"description":"Company name (resolved via the Corporations Canada site search)","schema":{"type":"string","description":"Company name (resolved via the Corporations Canada site search)"}},{"name":"corporation_number","in":"query","required":false,"description":"Federal corporation number (older corporations have fewer than 7 digits) or 9-digit business number","schema":{"type":"string","description":"Federal corporation number (older corporations have fewer than 7 digits) or 9-digit business number"}}]}},"/x402/v2/uk-companies-house-officers":{"get":{"tags":["x402"],"summary":"UK Companies House Officers (x402)","description":"Look up officers (directors, secretaries) of a UK company via Companies House API. Returns active and resigned officers with appointment dates.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"active_count":1,"company_number":"10766525","resigned_count":0,"total_officers":1,"active_officers":[{"name":"JAVADI, Amir-Homayoun, Dr","role":"director","address":"The Crescent, Canterbury, CT2 7AW","occupation":null,"nationality":"British","resigned_on":null,"appointed_on":"2017-05-11","date_of_birth":"1980-08","country_of_residence":"England"}],"resigned_officers":[]},"properties":{"active_count":{"type":"integer"},"company_number":{"type":"string"},"active_officers":{"type":"array"},"resigned_officers":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"company_name","in":"query","required":false,"schema":{"type":"string"}},{"name":"company_number","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/csv-to-json":{"get":{"tags":["x402"],"summary":"CSV to JSON (x402)","description":"Convert CSV string to JSON array with auto-detected delimiter and type inference. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"data":[],"columns":["test_value"],"row_count":0,"detected_delimiter":","},"properties":{"data":{"type":"array"},"columns":{"type":"array"},"row_count":{"type":"integer"},"detected_delimiter":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"delimiter","in":"query","required":false,"schema":{"type":"string"}},{"name":"csv_string","in":"query","required":true,"schema":{"type":"string"}},{"name":"has_header","in":"query","required":false,"schema":{"type":"boolean"}}]}},"/x402/v2/sql-optimize":{"get":{"tags":["x402"],"summary":"SQL Optimize (x402)","description":"Analyze and optimize a SQL query for performance. Returns rewritten query, index recommendations, and explanation of improvements.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"dialect":"postgres","explanation":"The provided SQL query 'test' is not a valid SQL statement. Please provide a valid SELECT, INSERT, UPDATE, or DELETE query for optimization analysis.","changes_made":[],"original_sql":"test","optimized_sql":"Unable to optimize - invalid input provided","estimated_improvement":"N/A","index_recommendations":[]},"properties":{"improvements":{"type":"array"},"optimized_sql":{"type":"string"},"estimated_improvement":{"type":"string"},"index_recommendations":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"sql","in":"query","required":true,"schema":{"type":"string"}},{"name":"dialect","in":"query","required":false,"schema":{"type":"string"}},{"name":"table_schema","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/country-trade-data":{"get":{"tags":["x402"],"summary":"Country Trade Data (x402)","description":"Get trade data for a country: top exports/imports, trade balance, trading partners. World Bank API + embedded data.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"note":"Product breakdown and partner data are estimates based on 2023 published trade statistics.","year":2025,"data_source":"embedded-trade-data","top_exports":[{"product":"Refined petroleum","value_usd":14000000000,"share_percent":7.2},{"product":"Automobiles (Volvo)","value_usd":12000000000,"share_percent":6.2},{"product":"Pharmaceuticals","value_usd":11000000000,"share_percent":5.6},{"product":"Iron and steel","value_usd":8000000000,"share_percent":4.1},{"product":"Telecommunications equipment (Ericsson)","value_usd":8000000000,"share_percent":4.1}],"top_imports":[{"product":"Crude petroleum","value_usd":12000000000,"share_percent":6.2},{"product":"Automobiles","value_usd":11000000000,"share_percent":5.6},{"product":"Pharmaceuticals","value_usd":5500000000,"share_percent":2.8},{"product":"Broadcasting equipment","value_usd":5000000000,"share_percent":2.6},{"product":"Computers","value_usd":4500000000,"share_percent":2.3}],"country_code":"SE","country_name":"Sweden","top_partners":[{"type":"export","country":"Germany","trade_value_usd":20000000000},{"type":"export","country":"Norway","trade_value_usd":18000000000},{"type":"import","country":"Germany","trade_value_usd":30000000000},{"type":"import","country":"Netherlands","trade_value_usd":15000000000},{"type":"import","country":"China","trade_value_usd":12000000000}],"total_exports_usd":195000000000,"total_imports_usd":195000000000,"trade_balance_usd":0},"properties":{"top_exports":{"type":"array"},"top_imports":{"type":"array"},"total_exports_usd":{"type":"number"},"total_imports_usd":{"type":"number"},"trade_balance_usd":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"number"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/stablecoin-flow-check":{"get":{"tags":["x402"],"summary":"Stablecoin Flow Check (x402)","description":"Check stablecoin supply and flows. Query by chain (stablecoin supply on Ethereum, Base, etc.), by stablecoin (USDC market cap and circulation), or get the overall market summary. Data from DeFi Llama.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"chain":"Ethereum","details":{"circulating_usd":{"peggedAUD":5092703.500965833,"peggedCAD":615086.3225666233,"peggedCHF":34620655.305106424,"peggedCNY":0,"peggedEUR":486302260.82651424,"peggedGBP":13854479.533489645,"peggedJPY":11742272.97466769,"peggedMXN":0,"peggedPHP":2772089.1568532633,"peggedRUB":6706111.115847108,"peggedSGD":12579869.697182218,"peggedTRY":1107277.1805110988,"peggedUSD":165183059225.56757,"peggedVAR":99046873.35275263,"peggedREAL":2702546.125115636},"circulating_prev_day":null,"circulating_prev_week":null,"circulating_prev_month":null},"query_type":"chain","total_supply_usd":165183059225.56757},"properties":{"chain":{"type":"string"},"details":{"type":"object"},"query_type":{"type":"string"},"stablecoin":{"type":"string"},"total_supply_usd":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"chain","in":"query","required":false,"description":"Chain name (e.g., 'Ethereum', 'Base', 'Solana')","schema":{"type":"string","description":"Chain name (e.g., 'Ethereum', 'Base', 'Solana')"}},{"name":"stablecoin","in":"query","required":false,"description":"Stablecoin name (e.g., 'USDC', 'USDT')","schema":{"type":"string","description":"Stablecoin name (e.g., 'USDC', 'USDT')"}}]}},"/x402/v2/screenshot-url":{"get":{"tags":["x402"],"summary":"Screenshot URL (x402)","description":"Take a full-page or viewport screenshot of any URL. Handles cookie banners, lazy loading, SPAs. Returns base64 PNG.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com","viewport":{"width":1280,"height":800},"full_page":true,"base64_png":"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AAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwQAQAQAgEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABB+tm05wAAByJJREFUEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEAQwAAAAQRDAAAAABEEAAwAAEAQBDAAAQBAEMAAAAEEQwAAAAARBAAMAABAEAQwAAEAQBDAAAABBEMAAAAAEQQADAAAQBAEMAABAEP5/AAAA///swoT0AAAABklEQVQDANyhlSg72Yy9AAAAAElFTkSuQmCC","size_bytes":18333,"content_type":"image/png"},"properties":{"viewport":{"type":"object"},"base64_png":{"type":"string"},"size_bytes":{"type":"integer"},"content_type":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to screenshot","schema":{"type":"string","description":"URL to screenshot"}},{"name":"wait_for","in":"query","required":false,"description":"CSS selector or seconds to wait","schema":{"type":"string","description":"CSS selector or seconds to wait"}},{"name":"full_page","in":"query","required":false,"description":"Full page vs viewport (default: true)","schema":{"type":"boolean","description":"Full page vs viewport (default: true)"}},{"name":"viewport_width","in":"query","required":false,"schema":{"type":"integer"}},{"name":"viewport_height","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/protocol-fees-lookup":{"get":{"tags":["x402"],"summary":"Protocol Fees Lookup (x402)","description":"Get fees and revenue data for any DeFi protocol. Returns 24h, 7d, 30d, and all-time fees plus revenue breakdown. Covers 7,000+ protocols via DeFi Llama.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"slug":"parent#uniswap","protocol":"Uniswap","fees_7d_usd":7424515,"fees_24h_usd":1100432,"fees_30d_usd":39302873,"revenue_7d_usd":null,"revenue_24h_usd":null,"revenue_30d_usd":null,"fees_all_time_usd":5497395571,"fees_48h_to_24h_usd":1417183,"revenue_all_time_usd":null},"properties":{"protocol":{"type":"string"},"fees_7d_usd":{"type":"number"},"fees_24h_usd":{"type":"number"},"fees_30d_usd":{"type":"number"},"revenue_7d_usd":{"type":"number"},"revenue_24h_usd":{"type":"number"},"revenue_30d_usd":{"type":"number"},"fees_all_time_usd":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"protocol","in":"query","required":true,"description":"Protocol name or DeFi Llama slug (e.g., 'aave-v3', 'uniswap')","schema":{"type":"string","description":"Protocol name or DeFi Llama slug (e.g., 'aave-v3', 'uniswap')"}}]}},"/x402/v2/api-health-check":{"get":{"tags":["x402"],"summary":"API Health Check (x402)","description":"Test an API endpoint: send request, validate response status and schema. Integration testing as a service.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://strale-production.up.railway.app/v1/health","method":"GET","is_healthy":false,"status_code":404,"content_type":"application/json","schema_valid":null,"status_valid":false,"response_body":{"message":"No route matches GET /v1/health","error_code":"not_found"},"expected_status":"2xx/3xx","response_headers":{"date":"Fri, 03 Apr 2026 01:17:16 GMT","link":"</.well-known/agent-card.json>; rel=\"agent-card\"","vary":"Origin","server":"railway-edge","x-cache":"MISS","connection":"keep-alive","x-served-by":"cache-ewr-kewr1740046-EWR","content-type":"application/json","x-cache-hits":"0","content-length":"70","strale-version":"2026-02-26","x-railway-edge":"railway/us-east4-eqdc4a","referrer-policy":"strict-origin-when-cross-origin","x-frame-options":"DENY","x-xss-protection":"0","permissions-policy":"camera=(), microphone=(), geolocation=()","x-railway-cdn-edge":"fastly/cache-ewr-kewr1740046-EWR","x-railway-request-id":"-1fsM4fBSN6e_MW4Cx5-qw","x-content-type-options":"nosniff","content-security-policy":"default-src 'none'; frame-ancestors 'none'","strict-transport-security":"max-age=63072000; includeSubDomains","access-control-allow-origin":"*"},"response_time_ms":59},"properties":{"is_healthy":{"type":"boolean"},"status_code":{"type":"integer"},"schema_valid":{"type":"boolean"},"response_body":{},"response_time_ms":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"API endpoint URL","schema":{"type":"string","description":"API endpoint URL"}},{"name":"body","in":"query","required":false,"schema":{}},{"name":"method","in":"query","required":false,"schema":{"type":"string"}},{"name":"headers","in":"query","required":false,"schema":{"type":"object"}},{"name":"expected_schema","in":"query","required":false,"schema":{"type":"object"}},{"name":"expected_status","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/cve-lookup":{"get":{"tags":["x402"],"summary":"CVE Lookup (x402)","description":"Look up known vulnerabilities for a package+version via OSV API. Supports npm, PyPI, Maven, Go, Cargo, NuGet. Returns CVEs with severity and fix versions.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"version":"test_value","ecosystem":"npm","package_name":"test_value","recommendation":"No known vulnerabilities for this version.","vulnerabilities":[],"highest_severity":"none","total_vulnerabilities":0},"properties":{"recommendation":{"type":"string"},"vulnerabilities":{"type":"array"},"highest_severity":{"type":"string"},"total_vulnerabilities":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"version","in":"query","required":true,"schema":{"type":"string"}},{"name":"ecosystem","in":"query","required":false,"description":"npm/pypi/maven/go/cargo/nuget","schema":{"type":"string","description":"npm/pypi/maven/go/cargo/nuget"}},{"name":"package_name","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/html-to-pdf":{"get":{"tags":["x402"],"summary":"HTML to PDF (x402)","description":"Convert HTML string or URL to PDF via headless browser. Configurable paper size, margins, landscape mode. Returns base64 PDF.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.108000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"landscape":false,"base64_pdf":"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bQovUyAvTm9uU3RydWN0Ci9QIDEzIDAgUgovUGcgMiAwIFIKL0sgMD4+CmVuZG9iagoxMyAwIG9iago8PC9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9IMQovUCAxMiAwIFIKL0sgMTQgMCBSPj4KZW5kb2JqCjE2IDAgb2JqCjw8L1R5cGUgL1N0cnVjdEVsZW0KL1MgL05vblN0cnVjdAovUCAxNSAwIFIKL1BnIDIgMCBSCi9LIDE+PgplbmRvYmoKMTUgMCBvYmoKPDwvVHlwZSAvU3RydWN0RWxlbQovUyAvUAovUCAxMiAwIFIKL0sgMTYgMCBSPj4KZW5kb2JqCjE5IDAgb2JqCjw8L1R5cGUgL1N0cnVjdEVsZW0KL1MgL05vblN0cnVjdAovUCAxOCAwIFIKL1BnIDIgMCBSCi9LIDI+PgplbmRvYmoKMTggMCBvYmoKPDwvVHlwZSAvU3RydWN0RWxlbQovUyAvTGluawovUCAxNyAwIFIKL0sgWzE5IDAgUiA8PC9UeXBlIC9PQkpSCi9PYmogOCAwIFIKL1BnIDIgMCBSPj5dPj4KZW5kb2JqCjE3IDAgb2JqCjw8L1R5cGUgL1N0cnVjdEVsZW0KL1MgL1AKL1AgMTIgMCBSCi9LIDE4IDAgUj4+CmVuZG9iagoxMiAwIG9iago8PC9UeXBlIC9TdHJ1Y3RFbGVtCi9TIC9Eb2N1bWVudAovTGFuZyAoZW4pCi9QIDExIDAgUgovSyBbMTMgMCBSIDE1IDAgUiAxNyAwIFJdPj4KZW5kb2JqCjIwIDAgb2JqClsxNCAwIFIgMTYgMCBSIDE5IDAgUl0KZW5kb2JqCjIxIDAgb2JqCjw8L1R5cGUgL1BhcmVudFRyZWUKL051bXMgWzAgMjAgMCBSIDEwMDAwMCAxOCAwIFJdPj4KZW5kb2JqCjExIDAgb2JqCjw8L1R5cGUgL1N0cnVjdFRyZWVSb290Ci9LIDEyIDAgUgovUGFyZW50VHJlZU5leHRLZXkgMQovUGFyZW50VHJlZSAyMSAwIFI+PgplbmRvYmoKMjIgMCBvYmoKPDwvVHlwZSAvQ2F0YWxvZwovUGFnZXMgMTAgMCBSCi9NYXJrSW5mbyA8PC9UeXBlIC9NYXJrSW5mbwovTWFya2VkIHRydWU+PgovU3RydWN0VHJlZVJvb3Qg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mVycQ+NpRtSnrUPa4GOMdrKbalu/DyeSjQplbmRzdHJlYW0KZW5kb2JqCjUgMCBvYmoKPDwvVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTAKL0Jhc2VGb250IC9CQUFBQUErVGFob21hCi9FbmNvZGluZyAvSWRlbnRpdHktSAovRGVzY2VuZGFudEZvbnRzIFsyOSAwIFJdCi9Ub1VuaWNvZGUgMzAgMCBSPj4KZW5kb2JqCnhyZWYKMCAzMQowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMTQ1OCAwMDAwMCBuIAowMDAwMDAwMjg0IDAwMDAwIG4gCjAwMDAwMTA1MzEgMDAwMDAgbiAKMDAwMDAyMjU0MyAwMDAwMCBuIAowMDAwMDAwMzIxIDAwMDAwIG4gCjAwMDAwMDAzNTkgMDAwMDAgbiAKMDAwMDAwMTAzNiAwMDAwMCBuIAowMDAwMDAxMjQzIDAwMDAwIG4gCjAwMDAwMDE3MTcgMDAwMDAgbiAKMDAwMDAwMjUwOSAwMDAwMCBuIAowMDAwMDAyMzAzIDAwMDAwIG4gCjAwMDAwMDE4NTAgMDAwMDAgbiAKMDAwMDAwMTc3MyAwMDAwMCBuIAowMDAwMDAxOTkyIDAwMDAwIG4gCjAwMDAwMDE5MTUgMDAwMDAgbiAKMDAwMDAwMjIzOSAwMDAwMCBuIAowMDAwMDAyMTMzIDAwMDAwIG4gCjAwMDAwMDIwNTYgMDAwMDAgbiAKMDAwMDAwMjQwMSAwMDAwMCBuIAowMDAwMDAyNDQwIDAwMDAwIG4gCjAwMDAwMDI2MDEgMDAwMDAgbiAKMDAwMDAwMjc5NyAwMDAwMCBuIAowMDAwMDA5NTgxIDAwMDAwIG4gCjAwMDAwMDk4MjMgMDAwMDAgbiAKMDAwMDAxMDE4MiAwMDAwMCBuIAowMDAwMDEwNjc0IDAwMDAwIG4gCjAwMDAwMjE0NDcgMDAwMDAgbiAKMDAwMDAyMTY4OCAwMDAwMCBuIAowMDAwMDIyMTgyIDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSAzMQovUm9vdCAyMiAwIFIKL0luZm8gMSAwIFI+PgpzdGFydHhyZWYKMjI2ODEKJSVFT0YK","paper_size":"A4","size_bytes":23379,"content_type":"application/pdf"},"properties":{"base64_pdf":{"type":"string"},"paper_size":{"type":"string"},"size_bytes":{"type":"integer"},"content_type":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":false,"description":"URL to convert","schema":{"type":"string","description":"URL to convert"}},{"name":"html","in":"query","required":false,"description":"HTML string to convert","schema":{"type":"string","description":"HTML string to convert"}},{"name":"margins","in":"query","required":false,"schema":{"type":"object"}},{"name":"landscape","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"paper_size","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/env-template-generate":{"get":{"tags":["x402"],"summary":"Env Template Generate (x402)","description":"Scan source code for environment variable references (process.env, os.environ, etc.) and generate a .env template with descriptions and example values.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"variables":[],"env_template":"\n","total_variables":0},"properties":{"variables":{"type":"array"},"env_template":{"type":"string"},"total_variables":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"code","in":"query","required":false,"description":"Source code to scan","schema":{"type":"string","description":"Source code to scan"}},{"name":"project_description","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/timezone-lookup":{"get":{"tags":["x402"],"summary":"Timezone Lookup (x402)","description":"Get timezone information for a country code, city name, or coordinates. Returns IANA timezone, current UTC offset, DST status, and current local time.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"SE","is_dst":true,"timezone":"Europe/Stockholm","utc_offset":"UTC+2","abbreviation":"GMT+2","country_code":"SE","utc_offset_hours":2,"current_local_time":"04/30/2026, 03:03:53 GMT+2"},"properties":{"is_dst":{"type":"boolean"},"timezone":{"type":"string"},"utc_offset":{"type":"string"},"abbreviation":{"type":"string"},"utc_offset_hours":{"type":"number"},"current_local_time":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Country code, city name, or coordinates","schema":{"type":"string","description":"Country code, city name, or coordinates"}}]}},"/x402/v2/base64-encode-url":{"get":{"tags":["x402"],"summary":"Base64 Encode URL (x402)","description":"Fetch a URL and return content as base64. Useful for embedding images, PDFs in API calls. Returns base64, content type, data URI.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://httpbin.org/image/png","base64":"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","data_uri":"data:image/png;base64,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","size_bytes":8090,"content_type":"image/png"},"properties":{"base64":{"type":"string"},"data_uri":{"type":"string"},"size_bytes":{"type":"integer"},"content_type":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to fetch and encode","schema":{"type":"string","description":"URL to fetch and encode"}}]}},"/x402/v2/vat-rate-lookup":{"get":{"tags":["x402"],"summary":"VAT Rate Lookup (x402)","description":"Look up VAT rates for EU/EEA countries. Returns standard, reduced, zero-rated categories. Supports category-specific queries.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"currency":"SEK","country_code":"SE","country_name":"Sweden","parking_rate":null,"reduced_rates":[{"rate":6,"categories":["books","cultural_events","transport"]},{"rate":12,"categories":["food","restaurant_food","accommodation"]}],"standard_rate":25,"super_reduced_rate":null,"zero_rated_categories":[]},"properties":{"reduced_rates":{"type":"array"},"standard_rate":{"type":"number"},"zero_rated_categories":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"category","in":"query","required":false,"description":"standard/food/books/medicine/transport/digital","schema":{"type":"string","description":"standard/food/books/medicine/transport/digital"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/employment-cost-estimate":{"get":{"tags":["x402"],"summary":"Employment Cost Estimate (x402)","description":"Calculate total employer cost and net salary estimate for 20+ countries. Includes social contributions, pension, income tax.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"period":"annual","currency":"EUR","country_code":"SE","country_name":"Sweden","gross_salary":1,"breakdown_notes":["Employer contributions (arbetsgivaravgifter) 31.42% cover pension, health, parental insurance, etc.","Municipal tax varies 29-35%; 32% used as average.","State income tax 20% applies above SEK 614,000 (2024).","Reduced employer contributions for young employees (<23) and seniors (>65)."],"effective_tax_rate":0,"net_salary_estimate":1,"total_employer_cost":1.31,"employer_contributions":{"total_amount":0.31,"other_percent":0,"total_percent":31.42,"pension_percent":0,"social_security_percent":31.42}},"properties":{"effective_tax_rate":{"type":"number"},"net_salary_estimate":{"type":"number"},"total_employer_cost":{"type":"number"},"employer_contributions":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"currency","in":"query","required":false,"schema":{"type":"string"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string"}},{"name":"gross_salary","in":"query","required":true,"schema":{"type":"number"}}]}},"/x402/v2/robots-txt-parse":{"get":{"tags":["x402"],"summary":"Robots.txt Parse (x402)","description":"Fetch and parse a website's robots.txt. Returns rules per user-agent, sitemaps, crawl delays, and whether all crawlers are blocked.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://strale.dev/robots.txt","rules":[{"allow":["/"],"disallow":[],"user_agent":"Googlebot"},{"allow":["/"],"disallow":[],"user_agent":"Bingbot"},{"allow":["/"],"disallow":[],"user_agent":"Twitterbot"},{"allow":["/"],"disallow":[],"user_agent":"facebookexternalhit"},{"allow":["/"],"disallow":[],"user_agent":"GPTBot"},{"allow":["/"],"disallow":[],"user_agent":"Claude-Web"},{"allow":["/"],"disallow":[],"user_agent":"anthropic-ai"},{"allow":["/"],"disallow":[],"user_agent":"Google-Extended"},{"allow":["/"],"disallow":[],"user_agent":"Amazonbot"},{"allow":["/"],"disallow":[],"user_agent":"cohere-ai"},{"allow":["/"],"disallow":[],"user_agent":"PerplexityBot"},{"allow":["/","/.well-known/"],"disallow":[],"user_agent":"*"}],"exists":true,"sitemaps":["https://strale.dev/sitemap.xml"],"raw_length":505,"total_rules":12,"user_agents":["Googlebot","Bingbot","Twitterbot","facebookexternalhit","GPTBot","Claude-Web","anthropic-ai","Google-Extended","Amazonbot","cohere-ai","PerplexityBot","*"],"total_allow_rules":13,"blocks_all_crawlers":false,"total_disallow_rules":0},"properties":{"rules":{"type":"array"},"exists":{"type":"boolean"},"sitemaps":{"type":"array"},"user_agents":{"type":"array"},"blocks_all_crawlers":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/croatian-company-data":{"post":{"tags":["x402"],"summary":"Croatian Company Data (x402)","description":"Look up Croatian company data from the Sudski registar (Ministry of Justice Court Register). Accepts OIB (11 digits) or MBS (court registry number). Returns company name, status, address, legal form, VAT.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"mb":"1414887","mbs":"80266256","oib":"81793146560","email":"ir@t.ht.hr","status":"active","address":"Radnička cesta 21, Zagreb, HR","legal_form":"dioničko društvo","short_name":"HT d.d.","vat_number":"HR81793146560","potpuni_mbs":"080266256","status_code":1,"company_name":"Hrvatski Telekom d.d.","country_code":"HR","legal_form_abbr":"d.d.","registered_date":"1999-01-27","main_activity_code":"6110"},"properties":{"mbs":{"type":"string"},"oib":{"type":"string"},"status":{"type":"string"},"address":{"type":"string"},"legal_form":{"type":"string"},"vat_number":{"type":"string"},"company_name":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["oib"],"properties":{"oib":{"type":"string","description":"Croatian OIB (11 digits) or MBS (court registry number)"}}}}}}}},"/x402/v2/social-profile-check":{"get":{"tags":["x402"],"summary":"Social Profile Check (x402)","description":"Check username availability across 7 platforms: GitHub, YouTube, TikTok, Reddit, Pinterest, npm, PyPI.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"profiles":[{"url":"https://github.com/Google","exists":true,"platform":"GitHub","status_code":200},{"url":"https://www.youtube.com/@Google","exists":true,"platform":"YouTube","status_code":200},{"url":"https://www.tiktok.com/@Google","exists":true,"platform":"TikTok","status_code":200},{"url":"https://www.reddit.com/user/Google/","exists":false,"platform":"Reddit","status_code":403},{"url":"https://www.pinterest.com/Google/","exists":true,"platform":"Pinterest","status_code":200},{"url":"https://www.npmjs.com/~Google","exists":false,"platform":"npm","status_code":403},{"url":"https://pypi.org/user/Google/","exists":true,"platform":"PyPI","status_code":200}],"username":"Google","found_count":5,"not_found_count":2,"available_platforms":[]},"properties":{"profiles":{"type":"array"},"found_count":{"type":"number"},"available_platforms":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"username","in":"query","required":true,"description":"Username/handle to check across platforms (e.g. 'google', 'octocat'). Same string is used for every platform — no per-platform overrides.","schema":{"type":"string","description":"Username/handle to check across platforms (e.g. 'google', 'octocat'). Same string is used for every platform — no per-platform overrides."}}]}},"/x402/v2/privacy-policy-analyze":{"get":{"tags":["x402"],"summary":"Privacy Policy Analyze (x402)","description":"Analyze a company's privacy policy. Extracts data collected, purposes, third parties, user rights, GDPR/CCPA compliance signals.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"purposes":["Service delivery and payment processing","Fraud prevention and security","Artificial intelligence model training","Transaction authentication","Identity verification","Co-marketing of End User Services","Product improvement","Regulatory compliance","Legal obligation fulfillment"],"source_url":"https://stripe.com/privacy-center/legal","dpo_contact":null,"legal_basis":["Contract performance (service delivery)","Legitimate interest","Legal obligation","Consent (implied for some contexts)"],"user_rights":["Access to personal data","Deletion/right to be forgotten","Rectification/correction","Data portability","Objection to processing","Right to exercise data protection rights","Right to honor Global Privacy Control (GPC) signals","Right to opt-out of tracking and advanced fraud signals","Right to lodge complaints (India-specific: mentioned)"],"company_name":"Stripe","cookie_usage":"Stripe uses cookies for fraud detection, payment method storage (Link feature), and potentially advertising. Advanced fraud signals are used but distinguished from ad tracking. Stripe.js is employed. Merchants and Link users have specific obligations regarding cookie technology disclosures.","last_updated":null,"children_data":null,"third_parties":["Sub-processors (list available but not detailed in excerpt)","BNPL providers","Crypto wallet services","Third-party fraud prevention and security providers","Third-party identity verification providers","Advertising partners (for ad targeting)"],"data_collected":["Personal data from Business Users","End Customer personal data (cardholders)","Representative contact information (beneficial owners, shareholders, officers, directors)","Precise location data (context-dependent)","Identity verification data","Transaction history","Authentication and authorization data","Phone verification information","Call recordings (in some instances)","Payment method details","Financial account information (via Financial Connections)"],"missing_elements":["Specific data retention periods (policy states 'not specified' or deferred to details)","DPO contact information (policy asks 'Does Stripe have a DPO?' but answer not provided in excerpt)","Detailed sub-processors list (only referenced, not detailed)","Specific legal basis matching per data type","Automated decision-making and profiling disclosures","Right to lodge complaint with supervisory authority (only mentioned for India)","Specific cookie names and purposes","Last updated/effective date of the policy","Biometric data handling","Details on when data is NOT retained after deletion requests","Specific retention timelines (e.g., '30 days', '7 years')","Explicit children's data policy/age restrictions"],"retention_periods":["not specified"],"ccpa_compliant_signals":["Dedicated CCPA section in Privacy Center","Categories of Personal Information Collected disclosed","Sensitive personal information categories identified","Sale/Share of personal information addressed explicitly","California Privacy Rights Metrics provided","Data retention periods mentioned as CCPA-related topic"],"gdpr_compliant_signals":["Dual role as data controller and processor clearly articulated","Data Processing Agreements (DPAs) available for Business Users","Data Transfer Addendum provided","Multiple legal basis identification","Specific guidance for Business Users as controllers under GDPR","EU-U.S. Data Privacy Framework certification","Standard Contractual Clauses implemented","Sub-processors list published","Privacy by Design implementation mentioned","Clear distinction between user categories","Ireland-based main establishment (Stripe Technology Company Limited) for GDPR compliance","Support for Global Privacy Control (GPC)","Jurisdictional nuances acknowledged (EEA, Switzerland, UK, APAC)"],"international_transfers":["EU-U.S. Data Privacy Framework (DPF) certified","Standard Contractual Clauses (SCCs)","UK Addendum (for UK data transfers)","Cross-border: Americas vs. Non-Americas entities (Stripe LLC vs. STC/SPEL)","Global storage of authentication and authorization data","India: localized data storage options mentioned"]},"properties":{"purposes":{"type":"array"},"user_rights":{"type":"array"},"data_collected":{"type":"array"},"missing_elements":{"type":"array"},"gdpr_compliant_signals":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"Company website URL","schema":{"type":"string","description":"Company website URL"}}]}},"/x402/v2/cz-company-data":{"post":{"tags":["x402"],"summary":"Czech Company Data (x402)","description":"Look up Czech company data from ARES (Czech Ministry of Finance registry). Accepts IČO (8-digit identifier) or fuzzy company name via LLM name-resolution.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ico":{"type":"string"},"status":{"type":"string"},"address":{"type":"string"},"nace_codes":{"type":"array","items":{"type":"string"}},"vat_number":{"type":"string"},"company_name":{"type":"string"},"jurisdiction":{"type":"string"},"last_updated":{"type":"string"},"primary_source":{"type":"string"},"legal_form_code":{"type":"string"},"tier_2_available":{"type":"boolean"},"ubo_availability":{"type":"string"},"registration_date":{"type":"string"},"signing_authority":{"type":["string","null"],"description":"Current \"způsob jednání\" (manner of acting) for the entity — the company-level signing rule from the VR view. Null when ARES does not surface this field for the record."},"legal_representatives":{"type":"array","description":"Active members of the statutory body (Statutární orgán) and prokura from the ARES VR view. Canonical Strale shape: {type, name, role, role_code, role_group, date_of_birth, nationality, start_date}. Excludes supervisory bodies (dozorčí rada — not in statutarniOrgany, not a legal representative). Filters out historic members (datumVymazu present) and ended memberships (zanikClenstvi present). Empty for entities not in the public commercial register (sole traders, associations, foreign branches)."},"tier_2_available_reason":{"type":"string"},"ubo_availability_reason":{"type":"string"},"total_legal_representatives":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ico"],"properties":{"ico":{"type":"string","description":"Czech IČO (8 digits) or company name for fuzzy lookup"}}}}}}}},"/x402/v2/dangerous-goods-classify":{"get":{"tags":["x402"],"summary":"Dangerous Goods Classify (x402)","description":"Classify dangerous goods by UN number or substance name. Returns hazard class, packing group, labels, marine pollutant status. 200+ substances.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"error":"No dangerous goods found matching \"test\". Try a UN number (e.g. 'UN1203') or substance name (e.g. 'Gasoline', 'Lithium', 'Acid').","query":"test","matches":[],"total_matches":0},"properties":{"error":{"type":"string"},"query":{"type":"string"},"matches":{"type":"array"},"total_matches":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"substance","in":"query","required":true,"description":"Substance name or UN number (e.g. UN1203, Gasoline)","schema":{"type":"string","description":"Substance name or UN number (e.g. UN1203, Gasoline)"}}]}},"/x402/v2/docstring-generate":{"get":{"tags":["x402"],"summary":"Docstring Generate (x402)","description":"Add Python docstrings to functions and classes. Supports Google, NumPy, and Sphinx styles.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"note":"Input code is JavaScript, not Python. No Python docstrings can be added to non-Python code.","style":"conventional","documented_code":"function hello() { return 'world'; }","classes_documented":0,"functions_documented":0},"properties":{"style":{"type":"string"},"documented_code":{"type":"string"},"functions_documented":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string"}},{"name":"style","in":"query","required":false,"description":"google/numpy/sphinx","schema":{"type":"string","description":"google/numpy/sphinx"}}]}},"/x402/v2/cve-details":{"post":{"tags":["x402"],"summary":"CVE Details (x402)","description":"Look up one CVE in the NIST National Vulnerability Database: description, CVSS score and vector, CWE ids, CISA known-exploited status, affected products and references.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"cvss":{"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","version":"3.1","severity":"CRITICAL","base_score":10,"impact_score":6,"exploitability_score":3.9},"cve_id":"CVE-2021-44228","source":"security@apache.org","status":"Analyzed","cwe_ids":["CWE-20"],"nvd_url":"https://nvd.nist.gov/vuln/detail/CVE-2021-44228","published":"2021-12-10T10:15:09.143","references":[{"url":"http://packetstormsecurity.com/files/165225/Apache-Log4j2-2.14.1-Remote-Code-Execution.html","tags":["Third Party Advisory"],"source":"security@apache.org"}],"description":"Apache Log4j2 2.0-beta9 through 2.15.0 (excluding security releases 2.12.2, 2.12.3, and 2.3.1) JNDI features...","last_modified":"2026-08-11T19:33:44.513","cisa_kev_added":"2021-12-10","cisa_action_due":"2021-12-24","known_exploited":true,"affected_cpe_count":373,"affected_cpes_sample":["cpe:2.3:o:siemens:6bk1602-0aa12-0tp0_firmware:*:*:*:*:*:*:*:*"]},"properties":{"cvss":{"type":"object"},"cve_id":{"type":"string"},"status":{"type":"string"},"cwe_ids":{"type":"array"},"nvd_url":{"type":"string"},"published":{"type":"string"},"references":{"type":"array"},"description":{"type":"string"},"known_exploited":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cve_id"],"properties":{"cve_id":{"type":"string","description":"CVE identifier, e.g. CVE-2021-44228"}}}}}}}},"/x402/v2/terms-of-service-extract":{"get":{"tags":["x402"],"summary":"Terms of Service Extract (x402)","description":"Extract key clauses from a company's Terms of Service: governing law, arbitration, termination, liability limitations.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"source_url":"https://github.com/en/site-policy/github-terms","user_rights":[],"company_name":null,"key_concerns":["Page not found error - the requested Terms of Service document is not accessible at the provided URL","Unable to extract any substantive ToS content due to 404 error"],"last_updated":null,"governing_law":null,"age_restriction":null,"extraction_status":"FAILED - The URL returns a 404 Page Not Found error. The actual GitHub Terms of Service content is not present in the provided page text. Only navigation menus, login forms, and footer links are visible. The correct URL for GitHub's Terms of Service may be different from the one provided.","readability_score":null,"arbitration_clause":false,"class_action_waiver":false,"liability_limitations":[],"termination_conditions":[],"data_collection_practices":[],"intellectual_property_notes":[]},"properties":{"governing_law":{"type":"string"},"arbitration_clause":{"type":"boolean"},"liability_limitations":{"type":"array"},"termination_conditions":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"Company website URL","schema":{"type":"string","description":"Company website URL"}}]}},"/x402/v2/http-to-curl":{"get":{"tags":["x402"],"summary":"HTTP to cURL (x402)","description":"Convert HTTP request parameters to curl command + equivalent fetch/axios code. Supports auth, headers, body. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com","method":"GET","curl_command":"curl \\\n  'https://example.com'","equivalent_axios":"const response = await axios.get(\"https://example.com\");","equivalent_fetch":"const response = await fetch(\"https://example.com\");"},"properties":{"curl_command":{"type":"string"},"equivalent_axios":{"type":"string"},"equivalent_fetch":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"auth","in":"query","required":false,"schema":{"type":"object"}},{"name":"body","in":"query","required":false,"schema":{}},{"name":"method","in":"query","required":false,"schema":{"type":"string"}},{"name":"headers","in":"query","required":false,"schema":{"type":"object"}}]}},"/x402/v2/job-posting-analyze":{"get":{"tags":["x402"],"summary":"Job Posting Analyze (x402)","description":"Analyze a job posting. Extracts title, skills, salary range, remote policy, benefits, red flags, culture signals. Accepts URL or text.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"title":null,"company":null,"summary":"This posting is invalid and contains no substantive job information. It appears to be a test or placeholder with only repeated Chinese characters (边缘测试 - 'edge testing'). No legitimate job opportunity can be assessed from this content.","benefits":[],"location":null,"red_flags":["Job posting contains only repeated placeholder text","No actual job information provided","Appears to be a test or spam posting"],"source_url":"not-a-valid-url","salary_range":{"max":null,"min":null,"period":"annual","currency":null},"remote_policy":"not-specified","salary_source":"estimated","culture_signals":[],"employment_type":null,"required_skills":[],"seniority_level":null,"experience_years":{"max":null,"min":null},"preferred_skills":[],"education_requirement":null},"properties":{"title":{"type":"string"},"red_flags":{"type":"array"},"salary_range":{"type":"object"},"culture_signals":{"type":"array"},"required_skills":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":false,"schema":{"type":"string"}},{"name":"text","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/sec-edgar-filings":{"post":{"tags":["x402"],"summary":"SEC EDGAR Filings (x402)","description":"List a US public company's recent SEC filings by ticker or CIK, with form type filter, dates, accession numbers, document links, SIC code and business address.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"cik":320193,"name":"Apple Inc.","ticker":"AAPL","filings":[{"url":"https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm","form":"10-K","items":null,"index_url":"https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/","description":"10-K","filing_date":"2025-10-31","report_date":"2025-09-27","accession_number":"0000320193-25-000079","primary_document":"aapl-20250927.htm"}],"tickers":["AAPL"],"returned":1,"sic_code":"3571","edgar_url":"https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000320193","exchanges":["Nasdaq"],"entity_type":"operating","form_filter":"10-K","filer_category":"Large accelerated filer","fiscal_year_end":"0926","sic_description":"Electronic Computers","business_address":{"zip":"95014","city":"CUPERTINO","street":"ONE APPLE PARK WAY","state_or_country":"CA"},"state_of_incorporation":"CA","recent_filings_available":1000},"properties":{"cik":{"type":"number"},"name":{"type":"string"},"filings":{"type":"array"},"returned":{"type":"number"},"edgar_url":{"type":"string"},"sic_description":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","anyOf":[{"required":["ticker"]},{"required":["cik"]}],"properties":{"cik":{"type":"string","description":"SEC Central Index Key, e.g. 320193 (required unless ticker is given)"},"limit":{"type":"integer","description":"Filings to return, 1-50. Default: 20"},"ticker":{"type":"string","description":"Exchange ticker symbol, e.g. AAPL (required unless cik is given)"},"form_type":{"type":"string","description":"Only return this form type, e.g. 10-K, 10-Q, 8-K, 4, S-1"}}}}}}}},"/x402/v2/bank-bic-lookup":{"get":{"tags":["x402"],"summary":"Bank BIC Lookup (x402)","description":"Validate BIC/SWIFT code format and identify the bank. Returns bank name, country, branch info.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"bic":"ESSESESS","valid":true,"country":"Sweden","bank_code":"ESSE","bank_name":"SEB Stockholm","branch_code":"XXX","country_code":"SE","location_code":"SS","is_head_office":true},"properties":{"bic":{"type":"string"},"valid":{"type":"boolean"},"country":{"type":"string"},"bank_name":{"type":"string"},"is_head_office":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"bic","in":"query","required":true,"description":"BIC/SWIFT code (8 or 11 chars)","schema":{"type":"string","description":"BIC/SWIFT code (8 or 11 chars)"}}]}},"/x402/v2/vasp-verify":{"get":{"tags":["x402"],"summary":"VASP Verification (x402)","description":"Check if a crypto-asset service provider (CASP/VASP) is authorized under the EU MiCA regulation. Searches ESMA's official register of authorized CASPs. Returns authorization status, licensed services, home country, and passporting rights.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"note":"ESMA CASP register data is currently unavailable. This does not mean the entity is unauthorized — retry later.","matches":[],"authorized":false,"match_found":false,"entity_name_searched":"Coinbase","register_last_updated":null},"properties":{"matches":{"type":"array"},"authorized":{"type":"boolean"},"match_found":{"type":"boolean"},"entity_name_searched":{"type":"string"},"register_last_updated":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"lei","in":"query","required":false,"description":"Legal Entity Identifier (optional)","schema":{"type":"string","description":"Legal Entity Identifier (optional)"}},{"name":"website","in":"query","required":false,"description":"Entity website domain (optional)","schema":{"type":"string","description":"Entity website domain (optional)"}},{"name":"entity_name","in":"query","required":true,"description":"Company or entity name to search for","schema":{"type":"string","description":"Company or entity name to search for"}}]}},"/x402/v2/ens-reverse-lookup":{"get":{"tags":["x402"],"summary":"ENS Reverse Lookup (x402)","description":"Look up the primary ENS name for a wallet address. Includes forward verification to confirm the name actually points back to the address. Returns null if no ENS name is set.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"address":"0x0000000000000000000000000000000000000001","has_ens":false,"ens_name":null,"verified":false},"properties":{"address":{"type":"string"},"has_ens":{"type":"boolean"},"ens_name":{"type":"string"},"verified":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"address","in":"query","required":true,"description":"Ethereum wallet address (0x...)","schema":{"type":"string","description":"Ethereum wallet address (0x...)"}}]}},"/x402/v2/meeting-notes-extract":{"post":{"tags":["x402"],"summary":"Meeting Notes Extract (x402)","description":"Extract structured meeting notes from a transcript. Returns summary, decisions, action items with owners, key discussion points, follow-ups.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"summary":"Unable to extract meaningful meeting notes. The transcript contains only a test value with no actual meeting content, attendees, decisions, or discussion points.","sentiment":"unclear","word_count":1,"action_items":[],"meeting_type":"other","decisions_made":[],"follow_up_needed":[],"questions_raised":[],"transcript_length":10,"attendees_mentioned":[],"key_discussion_points":[]},"properties":{"summary":{"type":"string"},"action_items":{"type":"array"},"decisions_made":{"type":"array"},"key_discussion_points":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["transcript"],"properties":{"transcript":{"type":"string","description":"Meeting transcript text"}}}}}}}},"/x402/v2/seo-audit":{"get":{"tags":["x402"],"summary":"SEO Audit (x402)","description":"Comprehensive SEO audit of a URL. Checks title, meta description, h1 structure, image alt tags, canonical, robots.txt, sitemap, Open Graph, schema.org, link ratio.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://google.com","checks":{"h1":{"count":0,"values":[],"optimal":false},"links":{"ratio":0.67,"external":4,"internal":6},"title":{"value":"Google","length":6,"optimal":false,"present":true},"images":{"total":1,"with_alt":1,"without_alt":0},"sitemap":{"referenced_in_robots":true},"canonical":{"url":null,"present":false},"open_graph":{"image":false,"title":false,"complete":false,"description":false},"robots_txt":{"present":true},"schema_org":{"present":false,"json_ld_blocks":0},"meta_description":{"value":"Search the world","length":16,"optimal":false,"present":true},"heading_hierarchy":{"count":0,"structure":[]}},"issues":["No H1 tag found"],"overall_score":55,"prioritized_fixes":[{"fix":"Title is 6 chars. Aim for 30-60 characters.","issue":"Title length not optimal","priority":"medium"},{"fix":"Add exactly one H1 tag per page","issue":"Missing H1","priority":"high"},{"fix":"Add a <link rel='canonical'> tag","issue":"No canonical URL","priority":"low"},{"fix":"Add og:title, og:description, and og:image meta tags","issue":"Incomplete Open Graph tags","priority":"medium"},{"fix":"Add JSON-LD schema.org markup","issue":"No structured data","priority":"low"}]},"properties":{"checks":{"type":"object"},"issues":{"type":"array"},"overall_score":{"type":"integer"},"prioritized_fixes":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to audit","schema":{"type":"string","description":"URL to audit"}}]}},"/x402/v2/address-parse":{"get":{"tags":["x402"],"summary":"Address Parse (x402)","description":"Parse a free-text address into structured components. Returns street, city, postal code, state/province, country. Works with addresses worldwide.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"city":"Mountain View","street":"1600 Amphitheatre Parkway","country":"United States","apartment":null,"formatted":"1600 Amphitheatre Parkway, Mountain View, CA","confidence":"medium","postal_code":null,"raw_address":"1600 Amphitheatre Parkway, Mountain View, CA","street_name":"Amphitheatre Parkway","country_code":"US","street_number":"1600","state_province":"CA"},"properties":{"city":{"type":"string"},"street":{"type":"string"},"country":{"type":"string"},"formatted":{"type":"string"},"postal_code":{"type":"string"},"country_code":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"address","in":"query","required":true,"description":"Free-text address to parse","schema":{"type":"string","description":"Free-text address to parse"}}]}},"/x402/v2/price-compare":{"get":{"tags":["x402"],"summary":"Price Compare (x402)","description":"Compare prices across merchants via PriceRunner (Nordic) and Google Shopping. Returns lowest/highest/average prices.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"prices":[],"source":"pricerunner.se","country":"se","details":"Search query 'INVALID_TEST_VALUE_12345' returned 29 results for diagnostic tools and OBD2 scanners, but no exact product match for the search term itself. Results shown are category matches only.","message":"No valid product match found","price_range":null,"lowest_price":null,"product_name":null,"search_query":"INVALID_TEST_VALUE_12345","total_offers":0,"average_price":null,"highest_price":null},"properties":{"prices":{"type":"array"},"lowest_price":{"type":"object"},"average_price":{"type":"number"},"highest_price":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string"}},{"name":"product","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/postal-code-lookup":{"get":{"tags":["x402"],"summary":"Postal Code Lookup (x402)","description":"Look up location information from a postal/ZIP code. Returns city, region/state, and approximate coordinates. Covers 60+ countries via Zippopotam.us.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"places":[{"name":"New York City","state":"New York","latitude":40.7484,"longitude":-73.9967,"state_abbreviation":"NY"}],"postal_code":"10001","country_code":"US","country_name":"United States"},"properties":{"valid":{"type":"boolean"},"places":{"type":"array"},"postal_code":{"type":"string"},"country_code":{"type":"string"},"country_name":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"postal_code","in":"query","required":true,"description":"Postal/ZIP code to look up","schema":{"type":"string","description":"Postal/ZIP code to look up"}},{"name":"country_code","in":"query","required":false,"description":"ISO 2-letter country code (default US)","schema":{"type":"string","description":"ISO 2-letter country code (default US)"}}]}},"/x402/v2/norwegian-company-data":{"get":{"tags":["x402"],"summary":"Norwegian Company Data (x402)","description":"Look up Norwegian company data from the Brønnøysund Register Centre. Accepts org number (9 digits) or fuzzy company name.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"active","address":"Forusbeen 50, 4035 STAVANGER, Norge","org_number":"923609016","company_name":"EQUINOR ASA","business_type":"Allmennaksjeselskap","industry_code":"06.100","employee_count":21412,"registration_date":"1995-03-12","industry_description":"Utvinning av råolje"},"properties":{"status":{"type":"string"},"address":{"type":"string"},"org_number":{"type":"string"},"vat_number":{"type":["string","null"]},"company_name":{"type":"string"},"business_type":{"type":"string"},"industry_code":{"type":["string","null"]},"employee_count":{"type":["integer","null"]},"tier_2_available":{"type":"boolean"},"ubo_availability":{"type":"string"},"registration_date":{"type":["string","null"]},"industry_description":{"type":["string","null"]},"legal_representatives":{"type":"array","description":"Active legal representatives (board members, managing director, signatories, procurists) from the Brreg /roller endpoint. Strale canonical shape: {type, name, role, role_code, role_group, date_of_birth}. role_group is the Brreg rollegruppe code (STYR, DAGL, SIGN, PROK, KOMP, KONT, etc.); role_code is the per-member rolletype code (LEDE, NEST, MEDL, VARA, OBS for STYR; same as the group for single-role groups). Resigned / deregistered roles (fratraadt, avregistrert) are filtered out. Anonymous endpoint — name + birth date only, fnr not exposed."},"tier_2_available_reason":{"type":"string"},"ubo_availability_reason":{"type":"string"},"total_legal_representatives":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name","in":"query","required":false,"description":"Alias for company_name","schema":{"type":"string","description":"Alias for company_name"}},{"name":"task","in":"query","required":false,"description":"Free-text alias — org number or company name","schema":{"type":"string","description":"Free-text alias — org number or company name"}},{"name":"query","in":"query","required":false,"description":"Free-text alias — org number or company name","schema":{"type":"string","description":"Free-text alias — org number or company name"}},{"name":"org_number","in":"query","required":false,"description":"Norwegian org number, 9 digits (e.g. 923609016)","schema":{"type":"string","description":"Norwegian org number, 9 digits (e.g. 923609016)"}},{"name":"company_name","in":"query","required":false,"description":"Company name (e.g. \"Telenor\"). Resolved against Brønnøysundregistrene and accepted only on a confident name match — an ambiguous name is refused rather than resolved to the wrong legal entity.","schema":{"type":"string","description":"Company name (e.g. \"Telenor\"). Resolved against Brønnøysundregistrene and accepted only on a confident name match — an ambiguous name is refused rather than resolved to the wrong legal entity."}},{"name":"company_number","in":"query","required":false,"description":"Alias for org_number","schema":{"type":"string","description":"Alias for org_number"}}]}},"/x402/v2/breach-exposure-check":{"post":{"tags":["x402"],"summary":"Breach Exposure Check (x402)","description":"Known data breaches of a company's own domain: date, accounts exposed, what data classes leaked, and whether credentials were among them. Takes a domain only — no personal data, no secrets.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"domain":"adobe.com","breached":true,"breaches":[{"name":"Adobe","title":"Adobe","domain":"adobe.com","added_date":"2013-12-04T00:00:00Z","is_malware":false,"breach_date":"2013-10-04","is_verified":true,"data_classes":["Email addresses","Password hints","Passwords","Usernames"],"is_sensitive":false,"is_spam_list":false,"is_fabricated":false,"is_stealer_log":false,"accounts_exposed":152445165,"exposed_credentials":true}],"breach_count":1,"total_accounts_exposed":152445165,"credential_breach_count":1,"most_recent_breach_date":"2013-10-04"},"properties":{"domain":{"type":"string"},"breached":{"type":"boolean"},"breaches":{"type":"array"},"breach_count":{"type":"number"},"total_accounts_exposed":{"type":"number"},"credential_breach_count":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Hostname of the company whose breach history you want, such as adobe.com"}}}}}}}},"/x402/v2/age-verify":{"get":{"tags":["x402"],"summary":"Age Verify (x402)","description":"Verify if a person meets a minimum age requirement based on their date of birth. Returns exact age, whether the threshold is met, and days until the threshold (if not met). Accounts for leap years.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"age_days":15,"age_years":36,"age_months":3,"date_of_birth":"1990-01-15","meets_minimum":true,"reference_date":"2026-04-30","days_until_minimum":null,"date_of_birth_valid":true,"minimum_age_checked":18},"properties":{"age_days":{"type":"integer"},"age_years":{"type":"integer"},"age_months":{"type":"integer"},"meets_minimum":{"type":"boolean"},"days_until_minimum":{"type":"integer"},"date_of_birth_valid":{"type":"boolean"},"minimum_age_checked":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"minimum_age","in":"query","required":false,"description":"Minimum age to verify (default 18)","schema":{"type":"integer","description":"Minimum age to verify (default 18)"}},{"name":"date_of_birth","in":"query","required":true,"description":"Date of birth (YYYY-MM-DD)","schema":{"type":"string","description":"Date of birth (YYYY-MM-DD)"}},{"name":"reference_date","in":"query","required":false,"description":"Date to check against (default today)","schema":{"type":"string","description":"Date to check against (default today)"}}]}},"/x402/v2/changelog-generate":{"get":{"tags":["x402"],"summary":"Changelog Generate (x402)","description":"Generate a user-facing changelog from git commits. Groups by type, writes human-readable descriptions. Supports Keep a Changelog, semantic, and bullet formats.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"format":"","sections":[],"commit_count":0,"breaking_changes":[],"changelog_markdown":"## [Unreleased]\n\nNo changes yet.","version_suggestion":"patch"},"properties":{"sections":{"type":"array"},"breaking_changes":{"type":"array"},"changelog_markdown":{"type":"string"},"version_suggestion":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string"}},{"name":"commits","in":"query","required":false,"description":"Array of {message, author, date}","schema":{"type":"array","description":"Array of {message, author, date}"}},{"name":"raw_log","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/forex-history":{"get":{"tags":["x402"],"summary":"Forex History (x402)","description":"Get historical exchange rates between two currencies. Returns daily rates, average, min, max, change percentage.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"max":0.9735,"min":0.8448,"rates":[{"date":"2025-01-15","rate":0.97087},{"date":"2025-01-16","rate":0.97352},{"date":"2025-01-17","rate":0.97106},{"date":"2025-01-20","rate":0.96937},{"date":"2025-01-21","rate":0.96553},{"date":"2025-01-22","rate":0.95758},{"date":"2025-01-23","rate":0.96117},{"date":"2025-01-24","rate":0.95493},{"date":"2025-01-27","rate":0.94967},{"date":"2025-01-28","rate":0.9596},{"date":"2025-01-29","rate":0.96191},{"date":"2025-01-30","rate":0.96126},{"date":"2025-01-31","rate":0.96219},{"date":"2025-02-03","rate":0.97333},{"date":"2025-02-04","rate":0.96759},{"date":"2025-02-05","rate":0.95951},{"date":"2025-02-06","rate":0.96525},{"date":"2025-02-07","rate":0.96367},{"date":"2025-02-10","rate":0.96899},{"date":"2025-02-11","rate":0.96862},{"date":"2025-02-12","rate":0.96432},{"date":"2025-02-13","rate":0.96246},{"date":"2025-02-14","rate":0.95438},{"date":"2025-02-17","rate":0.95484},{"date":"2025-02-18","rate":0.95721},{"date":"2025-02-19","rate":0.95841},{"date":"2025-02-20","rate":0.95758},{"date":"2025-02-21","rate":0.95557},{"date":"2025-02-24","rate":0.95547},{"date":"2025-02-25","rate":0.95265},{"date":"2025-02-26","rate":0.95356},{"date":"2025-02-27","rate":0.95447},{"date":"2025-02-28","rate":0.96052},{"date":"2025-03-03","rate":0.95557},{"date":"2025-03-04","rate":0.94724},{"date":"2025-03-05","rate":0.9351},{"date":"2025-03-06","rate":0.92627},{"date":"2025-03-07","rate":0.92106},{"date":"2025-03-10","rate":0.92208},{"date":"2025-03-11","rate":0.91642},{"date":"2025-03-12","rate":0.91861},{"date":"2025-03-13","rate":0.92336},{"date":"2025-03-14","rate":0.91836},{"date":"2025-03-17","rate":0.91718},{"date":"2025-03-18","rate":0.91592},{"date":"2025-03-19","rate":0.91768},{"date":"2025-03-20","rate":0.92311},{"date":"2025-03-21","rate":0.92362},{"date":"2025-03-24","rate":0.92387},{"date":"2025-03-25","rate":0.92379},{"date":"2025-03-26","rate":0.92696},{"date":"2025-03-27","rate":0.92721},{"date":"2025-03-28","rate":0.92618},{"date":"2025-03-31","rate":0.92464},{"date":"2025-04-01","rate":0.92696},{"date":"2025-04-02","rate":0.92567},{"date":"2025-04-03","rate":0.90114},{"date":"2025-04-04","rate":0.9044},{"date":"2025-04-07","rate":0.91183},{"date":"2025-04-08","rate":0.91324},{"date":"2025-04-09","rate":0.90539},{"date":"2025-04-10","rate":0.90236},{"date":"2025-04-11","rate":0.88137},{"date":"2025-04-14","rate":0.87897},{"date":"2025-04-15","rate":0.88308},{"date":"2025-04-16","rate":0.88067},{"date":"2025-04-17","rate":0.88028},{"date":"2025-04-22","rate":0.87138},{"date":"2025-04-23","rate":0.87604},{"date":"2025-04-24","rate":0.87904},{"date":"2025-04-25","rate":0.88051},{"date":"2025-04-28","rate":0.88044},{"date":"2025-04-29","rate":0.87928},{"date":"2025-04-30","rate":0.87928},{"date":"2025-05-02","rate":0.8816},{"date":"2025-05-05","rate":0.8816},{"date":"2025-05-06","rate":0.883},{"date":"2025-05-07","rate":0.88028},{"date":"2025-05-08","rate":0.88519},{"date":"2025-05-09","rate":0.88873},{"date":"2025-05-12","rate":0.90041},{"date":"2025-05-13","rate":0.89993},{"date":"2025-05-14","rate":0.89174},{"date":"2025-05-15","rate":0.89405},{"date":"2025-05-16","rate":0.89334},{"date":"2025-05-19","rate":0.88794},{"date":"2025-05-20","rate":0.8896},{"date":"2025-05-21","rate":0.88331},{"date":"2025-05-22","rate":0.88425},{"date":"2025-05-23","rate":0.88488},{"date":"2025-05-26","rate":0.87866},{"date":"2025-05-27","rate":0.88059},{"date":"2025-05-28","rate":0.88363},{"date":"2025-05-29","rate":0.88645},{"date":"2025-05-30","rate":0.88191},{"date":"2025-06-02","rate":0.87573},{"date":"2025-06-03","rate":0.87827},{"date":"2025-06-04","rate":0.87843},{"date":"2025-06-05","rate":0.87543},{"date":"2025-06-06","rate":0.87635},{"date":"2025-06-09","rate":0.87642},{"date":"2025-06-10","rate":0.87497},{"date":"2025-06-11","rate":0.87466},{"date":"2025-06-12","rate":0.86252},{"date":"2025-06-13","rate":0.86866},{"date":"2025-06-16","rate":0.86401},{"date":"2025-06-17","rate":0.86445},{"date":"2025-06-18","rate":0.86896},{"date":"2025-06-19","rate":0.87123},{"date":"2025-06-20","rate":0.86843},{"date":"2025-06-23","rate":0.87169},{"date":"2025-06-24","rate":0.86155},{"date":"2025-06-25","rate":0.86222},{"date":"2025-06-26","rate":0.85507},{"date":"2025-06-27","rate":0.85441},{"date":"2025-06-30","rate":0.85324},{"date":"2025-07-01","rate":0.84674},{"date":"2025-07-02","rate":0.8507},{"date":"2025-07-03","rate":0.84875},{"date":"2025-07-04","rate":0.84983},{"date":"2025-07-07","rate":0.85266},{"date":"2025-07-08","rate":0.85339},{"date":"2025-07-09","rate":0.85485},{"date":"2025-07-10","rate":0.85404},{"date":"2025-07-11","rate":0.85594},{"date":"2025-07-14","rate":0.85543},{"date":"2025-07-15","rate":0.85727},{"date":"2025-07-16","rate":0.86192},{"date":"2025-07-17","rate":0.86363},{"date":"2025-07-18","rate":0.85837},{"date":"2025-07-21","rate":0.85712},{"date":"2025-07-22","rate":0.85477},{"date":"2025-07-23","rate":0.85281},{"date":"2025-07-24","rate":0.85063},{"date":"2025-07-25","rate":0.85295},{"date":"2025-07-28","rate":0.85807},{"date":"2025-07-29","rate":0.86708},{"date":"2025-07-30","rate":0.86753},{"date":"2025-07-31","rate":0.87367},{"date":"2025-08-01","rate":0.87689},{"date":"2025-08-04","rate":0.86468},{"date":"2025-08-05","rate":0.8661},{"date":"2025-08-06","rate":0.86177},{"date":"2025-08-07","rate":0.85889},{"date":"2025-08-08","rate":0.85852},{"date":"2025-08-11","rate":0.86044},{"date":"2025-08-12","rate":0.86162},{"date":"2025-08-13","rate":0.8539},{"date":"2025-08-14","rate":0.85543},{"date":"2025-08-15","rate":0.85558},{"date":"2025-08-18","rate":0.85668},{"date":"2025-08-19","rate":0.85602},{"date":"2025-08-20","rate":0.8583},{"date":"2025-08-21","rate":0.85918},{"date":"2025-08-22","rate":0.86147},{"date":"2025-08-25","rate":0.85492},{"date":"2025-08-26","rate":0.85793},{"date":"2025-08-27","rate":0.86259},{"date":"2025-08-28","rate":0.85646},{"date":"2025-08-29","rate":0.85778},{"date":"2025-09-01","rate":0.85361},{"date":"2025-09-02","rate":0.85866},{"date":"2025-09-03","rate":0.85815},{"date":"2025-09-04","rate":0.85859},{"date":"2025-09-05","rate":0.85492},{"date":"2025-09-08","rate":0.85266},{"date":"2025-09-09","rate":0.8515},{"date":"2025-09-10","rate":0.85419},{"date":"2025-09-11","rate":0.8558},{"date":"2025-09-12","rate":0.85339},{"date":"2025-09-15","rate":0.84991},{"date":"2025-09-16","rate":0.84696},{"date":"2025-09-17","rate":0.84481},{"date":"2025-09-18","rate":0.84617},{"date":"2025-09-19","rate":0.85208},{"date":"2025-09-22","rate":0.84882},{"date":"2025-09-23","rate":0.84796},{"date":"2025-09-24","rate":0.85063},{"date":"2025-09-25","rate":0.85186},{"date":"2025-09-26","rate":0.85675},{"date":"2025-09-29","rate":0.85302},{"date":"2025-09-30","rate":0.85172},{"date":"2025-10-01","rate":0.85295},{"date":"2025-10-02","rate":0.85077},{"date":"2025-10-03","rate":0.85222},{"date":"2025-10-06","rate":0.85631},{"date":"2025-10-07","rate":0.85719},{"date":"2025-10-08","rate":0.86007},{"date":"2025-10-09","rate":0.86125},{"date":"2025-10-10","rate":0.86445},{"date":"2025-10-13","rate":0.86438},{"date":"2025-10-14","rate":0.86558},{"date":"2025-10-15","rate":0.86044},{"date":"2025-10-16","rate":0.85844},{"date":"2025-10-17","rate":0.85609},{"date":"2025-10-20","rate":0.858},{"date":"2025-10-21","rate":0.86155},{"date":"2025-10-22","rate":0.86304},{"date":"2025-10-23","rate":0.86259},{"date":"2025-10-24","rate":0.86118},{"date":"2025-10-27","rate":0.85911},{"date":"2025-10-28","rate":0.85985},{"date":"2025-10-29","rate":0.8594},{"date":"2025-10-30","rate":0.8658},{"date":"2025-10-31","rate":0.8655},{"date":"2025-11-03","rate":0.86851},{"date":"2025-11-04","rate":0.87025},{"date":"2025-11-05","rate":0.87017},{"date":"2025-11-06","rate":0.86708},{"date":"2025-11-07","rate":0.86498},{"date":"2025-11-10","rate":0.86423},{"date":"2025-11-11","rate":0.86393},{"date":"2025-11-12","rate":0.86386},{"date":"2025-11-13","rate":0.86066},{"date":"2025-11-14","rate":0.85852},{"date":"2025-11-17","rate":0.86259},{"date":"2025-11-18","rate":0.86281},{"date":"2025-11-19","rate":0.86333},{"date":"2025-11-20","rate":0.86851},{"date":"2025-11-21","rate":0.86806},{"date":"2025-11-24","rate":0.86625},{"date":"2025-11-25","rate":0.86573},{"date":"2025-11-26","rate":0.86378},{"date":"2025-11-27","rate":0.86311},{"date":"2025-11-28","rate":0.8646},{"date":"2025-12-01","rate":0.85866},{"date":"2025-12-02","rate":0.86103},{"date":"2025-12-03","rate":0.85704},{"date":"2025-12-04","rate":0.85719},{"date":"2025-12-05","rate":0.85874},{"date":"2025-12-08","rate":0.858},{"date":"2025-12-09","rate":0.85933},{"date":"2025-12-10","rate":0.85955},{"date":"2025-12-11","rate":0.85368},{"date":"2025-12-12","rate":0.85244},{"date":"2025-12-15","rate":0.85085},{"date":"2025-12-16","rate":0.84918},{"date":"2025-12-17","rate":0.8531},{"date":"2025-12-18","rate":0.85332},{"date":"2025-12-19","rate":0.85383},{"date":"2025-12-22","rate":0.85143},{"date":"2025-12-23","rate":0.84846},{"date":"2025-12-24","rate":0.84839},{"date":"2025-12-29","rate":0.84991},{"date":"2025-12-30","rate":0.85056},{"date":"2025-12-31","rate":0.85106}],"average":0.8837,"end_date":"2025-12-31","start_date":"2025-01-15","data_points":246,"to_currency":"EUR","from_currency":"USD","change_percent":-12.34},"properties":{"max":{"type":"number"},"min":{"type":"number"},"rates":{"type":"array"},"average":{"type":"number"},"change_percent":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"to","in":"query","required":true,"description":"Target currency (e.g. USD)","schema":{"type":"string","description":"Target currency (e.g. USD)"}},{"name":"from","in":"query","required":true,"description":"Source currency (e.g. EUR)","schema":{"type":"string","description":"Source currency (e.g. EUR)"}},{"name":"end_date","in":"query","required":false,"schema":{"type":"string"}},{"name":"start_date","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/startup-domain-check":{"get":{"tags":["x402"],"summary":"Startup Domain Check (x402)","description":"Check domain and handle availability for a startup name. Checks .com/.io/.ai/.co/.dev domains, Twitter, GitHub, npm, PyPI.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"taken":[{"name":"google.com","type":"domain","details":"Redirects to https://www.google.com/"},{"name":"google.io","type":"domain","details":"Redirects to https://io.google/2026/"},{"name":"google.ai","type":"domain","details":"Redirects to https://www.google.com/search?udm=50&aep=11"},{"name":"google.co","type":"domain","details":"Redirects to https://www.google.com/"},{"name":"google.dev","type":"domain","details":"Redirects to https://developers.google.com/program"},{"name":"@google","type":"twitter/x","details":"taken"},{"name":"google","type":"github","details":"taken"},{"name":"google","type":"npm","details":"taken"},{"name":"google","type":"pypi","details":"taken"}],"social":[{"handle":"@google","platform":"Twitter/X","available":false},{"handle":"google","platform":"GitHub","available":false},{"package":"google","platform":"npm","available":false},{"package":"google","platform":"PyPI","available":false}],"domains":[{"domain":"google.com","available":false,"extension":".com","current_owner":"Redirects to https://www.google.com/"},{"domain":"google.io","available":false,"extension":".io","current_owner":"Redirects to https://io.google/2026/"},{"domain":"google.ai","available":false,"extension":".ai","current_owner":"Redirects to https://www.google.com/search?udm=50&aep=11"},{"domain":"google.co","available":false,"extension":".co","current_owner":"Redirects to https://www.google.com/"},{"domain":"google.dev","available":false,"extension":".dev","current_owner":"Redirects to https://developers.google.com/program"}],"keyword":"google","available":[],"taken_count":9,"available_count":0,"best_available_domain":null},"properties":{"taken":{"type":"array"},"social":{"type":"array"},"domains":{"type":"array"},"available":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"company_name","in":"query","required":true,"description":"Company name or keyword","schema":{"type":"string","description":"Company name or keyword"}}]}},"/x402/v2/csv-clean":{"get":{"tags":["x402"],"summary":"CSV Clean (x402)","description":"Clean messy CSV: fix inconsistent delimiters, mixed encodings, BOM, trailing commas, quoted fields. Returns clean CSV with issues report.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"csv":"name,age,city\nAlice,30,Stockholm\nBob,25,Oslo","row_count":3,"column_count":3,"issues_fixed":[],"detected_delimiter":","},"properties":{"csv":{"type":"string"},"row_count":{"type":"integer"},"column_count":{"type":"integer"},"issues_fixed":{"type":"array"},"detected_delimiter":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"csv","in":"query","required":true,"description":"Messy CSV string to clean","schema":{"type":"string","description":"Messy CSV string to clean"}}]}},"/x402/v2/estonian-company-data":{"get":{"tags":["x402"],"summary":"Estonian Company Data (x402)","description":"Look up Estonian company data from the e-Business Register. Accepts registry code (8 digits) or fuzzy company name. Returns legal_representatives[] from RIK Ariregister Open Data (CC BY 4.0).","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"active","address":"Harju maakond, Tallinn, Kesklinna linnaosa, Vana-Lõuna tn 15","zip_code":"10134","company_name":"Bolt App Services AS","jurisdiction":"EE","registry_url":"https://ariregister.rik.ee/est/company/17449106/Bolt-App-Services-AS","business_type":"1","registry_code":"17449106","historical_names":[]},"properties":{"status":{"type":"string"},"address":{"type":"string"},"company_name":{"type":"string"},"jurisdiction":{"type":"string"},"business_type":{"type":"string"},"registry_code":{"type":"string"},"tier_2_available":{"type":"boolean","description":"True when at least one active legal representative is returned from the ee_directors cache."},"ubo_availability":{"type":"string","description":"UBO availability flag. EE is unavailable_no_registry — programmatic UBO access not exposed by Ariregister at v1."},"legal_representatives":{"type":"array","description":"Canonical legal-representatives shape (DEC-20260518-A). Each entry is { type, name, role, role_code, role_group, date_of_birth, start_date }. date_of_birth is always null for EE — redacted upstream by RIK since 2024-11-01."},"tier_2_available_reason":{"type":"string","description":"Explanation of tier-2 availability (source + redacted-PIDs caveat + last cache refresh) or non-availability."},"ubo_availability_reason":{"type":"string"},"total_legal_representatives":{"type":"integer","description":"Count of active legal_representatives returned. 0 when ee_directors cache has no active rows for this registry code."}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name","in":"query","required":false,"description":"Alias for company_name","schema":{"type":"string","description":"Alias for company_name"}},{"name":"task","in":"query","required":false,"description":"Free-text alias — registry code or company name","schema":{"type":"string","description":"Free-text alias — registry code or company name"}},{"name":"query","in":"query","required":false,"description":"Free-text alias — registry code or company name","schema":{"type":"string","description":"Free-text alias — registry code or company name"}},{"name":"company_name","in":"query","required":false,"description":"Company name. Resolved against the Business Register and accepted only on a confident name match — an ambiguous name is refused rather than resolved to the wrong legal entity.","schema":{"type":"string","description":"Company name. Resolved against the Business Register and accepted only on a confident name match — an ambiguous name is refused rather than resolved to the wrong legal entity."}},{"name":"registry_code","in":"query","required":false,"description":"Estonian registry code, 8 digits (e.g. 10238429)","schema":{"type":"string","description":"Estonian registry code, 8 digits (e.g. 10238429)"}}]}},"/x402/v2/arxiv-search":{"post":{"tags":["x402"],"summary":"arXiv Search (x402)","description":"Search arXiv preprints by keyword with optional category filter: title, abstract, authors, dates, categories, DOI and PDF link, sorted by relevance or date.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"transformer attention","papers":[{"doi":null,"title":"Dilated Neighborhood Attention Transformer","abs_url":"http://arxiv.org/abs/2209.15001v3","authors":["Ali Hassani"],"pdf_url":"https://arxiv.org/pdf/2209.15001v3","summary":"Transformers are quickly becoming one of the most heavily applied deep learning architectures...","updated":"2023-01-16T18:58:58Z","version":3,"arxiv_id":"2209.15001","published":"2022-09-29T17:57:08Z","categories":["cs.CV"],"primary_category":"cs.CV"}],"category":null,"returned":1,"total_results":258539},"properties":{"query":{"type":"string"},"papers":{"type":"array"},"returned":{"type":"number"},"total_results":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"sort":{"type":"string","description":"relevance (default), date (newest submitted first) or updated (most recently revised first)"},"limit":{"type":"integer","description":"Results to return, 1-25. Default: 10"},"query":{"type":"string","description":"Free-text search across title, abstract and authors. At least 2 characters."},"category":{"type":"string","description":"Restrict to an arXiv category such as cs.CL, stat.ML or astro-ph.GA"}}}}}}}},"/x402/v2/port-check":{"get":{"tags":["x402"],"summary":"Port Check (x402)","description":"Check if TCP ports are open on a host. Scans up to 20 ports with configurable timeout. Returns open/closed status with latency.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"host":"google.com","open_count":1,"open_ports":[{"open":true,"port":443,"service":"HTTPS","latency_ms":1}],"closed_count":0,"closed_ports":[],"ports_scanned":1,"scan_timeout_ms":3000},"properties":{"host":{"type":"string"},"open_count":{"type":"integer"},"open_ports":{"type":"array"},"closed_count":{"type":"integer"},"closed_ports":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"host","in":"query","required":true,"schema":{"type":"string"}},{"name":"ports","in":"query","required":false,"description":"Array of port numbers or comma-separated string","schema":{"description":"Array of port numbers or comma-separated string"}},{"name":"timeout_ms","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/phone-type-detect":{"get":{"tags":["x402"],"summary":"Phone Type Detect (x402)","description":"Detect whether a phone number is mobile, landline, VOIP, toll-free, or premium rate. Essential for SMS delivery verification and communication routing.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"input":"+46701234567","is_voip":false,"is_mobile":false,"is_premium":false,"phone_type":"unknown","is_landline":false,"sms_capable":false,"country_code":"SE","is_toll_free":false},"properties":{"is_voip":{"type":"boolean"},"is_mobile":{"type":"boolean"},"phone_type":{"type":"string"},"is_landline":{"type":"boolean"},"sms_capable":{"type":"boolean"},"country_code":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"country_code","in":"query","required":false,"description":"ISO 2-letter country code hint (optional)","schema":{"type":"string","description":"ISO 2-letter country code hint (optional)"}},{"name":"phone_number","in":"query","required":true,"description":"Phone number in any format","schema":{"type":"string","description":"Phone number in any format"}}]}},"/x402/v2/data-protection-authority-lookup":{"get":{"tags":["x402"],"summary":"Data Protection Authority Lookup (x402)","description":"Find the data protection authority (DPA) for any EU/EEA country. Returns name, website, complaint URL, contact info.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"phone":"+43 1 52 152-0","address":"Barichgasse 40-42, 1030 Vienna, Austria","website":"https://www.dsb.gv.at","country_code":"AT","country_name":"Austria","complaint_url":"https://www.dsb.gv.at/download-links/dokumente.html","contact_email":"dsb@dsb.gv.at","authority_name":"Österreichische Datenschutzbehörde"},"properties":{"website":{"type":"string"},"complaint_url":{"type":"string"},"contact_email":{"type":"string"},"authority_name":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"country_code","in":"query","required":true,"description":"EU/EEA country code","schema":{"type":"string","description":"EU/EEA country code"}}]}},"/x402/v2/cron-explain":{"get":{"tags":["x402"],"summary":"Cron Explain (x402)","description":"Parse a cron expression into human-readable explanation + next N execution times. Algorithmic — instant.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"is_valid":true,"timezone":"Europe/Stockholm","next_runs":["2026-04-03T09:00:00.000Z","2026-04-06T09:00:00.000Z","2026-04-07T09:00:00.000Z","2026-04-08T09:00:00.000Z","2026-04-09T09:00:00.000Z"],"explanation":"At 9:00, Monday through Friday","cron_expression":"0 9 * * 1-5","field_breakdown":[{"field":"minute","value":"0","meaning":"at 0"},{"field":"hour","value":"9","meaning":"at 9"},{"field":"day of month","value":"*","meaning":"every value"},{"field":"month","value":"*","meaning":"every value"},{"field":"day of week","value":"1-5","meaning":"range 1-5"}]},"properties":{"is_valid":{"type":"boolean"},"next_runs":{"type":"array"},"explanation":{"type":"string"},"field_breakdown":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"num_next","in":"query","required":false,"description":"Number of next runs (default 5)","schema":{"type":"integer","description":"Number of next runs (default 5)"}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string"}},{"name":"cron_expression","in":"query","required":true,"description":"Cron expression (5-7 fields)","schema":{"type":"string","description":"Cron expression (5-7 fields)"}}]}},"/x402/v2/header-security-check":{"get":{"tags":["x402"],"summary":"Header Security Check (x402)","description":"Check HTTP response headers for security best practices: HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy. Returns grade A-F.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"http://1.1.1.1","cors":{"access-control-allow-origin":"*"},"grade":"C","score":65,"server":"cloudflare","missing":[{"header":"strict-transport-security","severity":"high","recommendation":"Add: Strict-Transport-Security: max-age=31536000; includeSubDomains"},{"header":"permissions-policy","severity":"medium","recommendation":"Add Permissions-Policy to restrict browser features (camera, microphone, etc.)"}],"present":[{"value":"default-src 'none'; script-src 'self' 'sha256-qcMXZ/ErgDG9p2Htysz9era6iflv8JXya41zOY0slSc=' 'sha256-ydM8qJ+T0Nd7adK8t34/cs0GvvCG0JBujCWzV3uML8E=' 'sha256-TzTXRDJBcbY1qVQheGb/4iSGqKPqCg6XVoerYf5BYMY=' ","header":"content-security-policy","status":"present"},{"value":"DENY","header":"x-frame-options","status":"present"},{"value":"nosniff","header":"x-content-type-options","status":"present"},{"value":"strict-origin-when-cross-origin","header":"referrer-policy","status":"present"}],"response_status":404},"properties":{"grade":{"type":"string"},"score":{"type":"integer"},"missing":{"type":"array"},"present":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/food-safety-rating-uk":{"get":{"tags":["x402"],"summary":"Food Safety Rating UK (x402)","description":"Look up UK food hygiene ratings via the FSA API. Search by business name and optional location. Returns ratings, scores, addresses.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"location":null,"search_term":"Google","total_results":99,"establishments":[{"scores":{"hygiene":0,"structural":0,"confidence_in_management":0},"address":"1 St Giles High Street, WC2H 8AG","fhrs_id":708537,"rating_date":"2023-11-23T00:00:00","rating_value":"5","business_name":"Google UK Ltd","business_type":"Restaurant/Cafe/Canteen","local_authority":"Camden"},{"scores":{"hygiene":0,"structural":0,"confidence_in_management":0},"address":"Restaurant Associates @ Google, Ground & Lower Ground Floor, 4-5 Bonhill Street, London, EC2A 4BX","fhrs_id":1456337,"rating_date":"2022-10-20T00:00:00","rating_value":"5","business_name":"Restaurant Associates @ Google","business_type":"Other catering premises","local_authority":"Islington"},{"scores":{"hygiene":null,"structural":null,"confidence_in_management":null},"address":"6 King's Boulevard, London, N1C 4BU","fhrs_id":1860499,"rating_date":"1901-01-01T00:00:00","rating_value":"AwaitingInspection","business_name":"KGX1 – Google King’s Cross","business_type":"Retailers - other","local_authority":"Camden"},{"scores":{"hygiene":0,"structural":0,"confidence_in_management":0},"address":"Dove House, Greenbank Road, Eden Business Park, Penrith, CA11 9FB","fhrs_id":1606151,"rating_date":"2025-08-13T00:00:00","rating_value":"5","business_name":"Woggle Goggle","business_type":"Other catering premises","local_authority":"Westmorland and Furness"},{"scores":{"hygiene":null,"structural":null,"confidence_in_management":null},"address":"CF24","fhrs_id":1913051,"rating_date":"1901-01-01T00:00:00","rating_value":"AwaitingInspection","business_name":"Googie Puff","business_type":"Other catering premises","local_authority":"Cardiff"},{"scores":{"hygiene":5,"structural":0,"confidence_in_management":0},"address":"Centenary Road, Goole, East Riding Of Yorkshire, DN14 6AN","fhrs_id":1051419,"rating_date":"2025-03-26T00:00:00","rating_value":"5","business_name":"Goole Academy","business_type":"School/college/university","local_authority":"East Riding of Yorkshire"},{"scores":{"hygiene":0,"structural":0,"confidence_in_management":5},"address":"Marcus Street, Goole, East Riding Of Yorkshire, DN14 6TN","fhrs_id":1867380,"rating_date":"2025-09-09T00:00:00","rating_value":"5","business_name":"Goole AFC","business_type":"Pub/bar/nightclub","local_authority":"East Riding of Yorkshire"},{"scores":{"hygiene":null,"structural":null,"confidence_in_management":null},"address":"123 Pasture Road, Goole, East Riding Of Yorkshire, DN14 6DP","fhrs_id":112152,"rating_date":"2025-05-28T00:00:00","rating_value":"5","business_name":"Goole Spice","business_type":"Takeaway/sandwich shop","local_authority":"East Riding of Yorkshire"},{"scores":{"hygiene":0,"structural":5,"confidence_in_management":5},"address":"Paradise Place, Goole, East Riding Of Yorkshire, DN14 5DL","fhrs_id":272724,"rating_date":"2023-08-16T00:00:00","rating_value":"5","business_name":"Junction Goole","business_type":"Restaurant/Cafe/Canteen","local_authority":"East Riding of Yorkshire"},{"scores":{"hygiene":null,"structural":null,"confidence_in_management":null},"address":"175-177 Pasture Road, Goole, East Riding Of Yorkshire, DN14 6DR","fhrs_id":836696,"rating_date":"2024-10-22T00:00:00","rating_value":"3","business_name":"Londis Goole","business_type":"Retailers - other","local_authority":"East Riding of Yorkshire"}],"returned_count":10,"rating_distribution":{"3":1,"5":7,"AwaitingInspection":2}},"properties":{"total_results":{"type":"integer"},"establishments":{"type":"array"},"rating_distribution":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string"}},{"name":"location","in":"query","required":false,"schema":{"type":"string"}},{"name":"max_results","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/github-actions-generate":{"get":{"tags":["x402"],"summary":"GitHub Actions Generate (x402)","description":"Generate CI/CD workflow YAML for GitHub Actions. Supports multiple languages, frameworks, and deploy targets (Railway, Vercel, Fly).","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"jobs":["install","lint","test","build"],"language":"en","framework":"express","deploy_target":null,"workflow_yaml":"name: CI/CD Pipeline\n\non:\n  push:\n    branches: [ main, develop ]\n  pull_request:\n    branches: [ main, develop ]\n\njobs:\n  install:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-node@v4\n        with:\n          node-version: '18'\n          cache: 'npm'\n      - name: Install dependencies\n        run: npm ci\n      - name: Save node_modules cache\n        uses: actions/cache@v4\n        with:\n          path: node_modules\n          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}\n          restore-keys: |\n            ${{ runner.os }}-node-\n\n  lint:\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-node@v4\n        with:\n          node-version: '18'\n          cache: 'npm'\n      - name: Restore node_modules cache\n        uses: actions/cache@v4\n        with:\n          path: node_modules\n          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}\n      - name: Run linter\n        run: npm run lint --if-present\n\n  test:\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-node@v4\n        with:\n          node-version: '18'\n          cache: 'npm'\n      - name: Restore node_modules cache\n        uses: actions/cache@v4\n        with:\n          path: node_modules\n          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}\n      - name: Run tests\n        run: npm test\n\n  build:\n    needs: [lint, test]\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-node@v4\n        with:\n          node-version: '18'\n          cache: 'npm'\n      - name: Restore node_modules cache\n        uses: actions/cache@v4\n        with:\n          path: node_modules\n          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}\n      - name: Build application\n        run: npm run build --if-present\n","secrets_needed":[],"triggers_configured":["push","pull_request"],"estimated_run_minutes":8},"properties":{"jobs":{"type":"array"},"workflow_yaml":{"type":"string"},"secrets_needed":{"type":"array"},"estimated_run_minutes":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"steps","in":"query","required":false,"schema":{"type":"array"}},{"name":"language","in":"query","required":true,"schema":{"type":"string"}},{"name":"triggers","in":"query","required":false,"schema":{"type":"array"}},{"name":"framework","in":"query","required":false,"schema":{"type":"string"}},{"name":"deploy_target","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/json-to-typescript":{"get":{"tags":["x402"],"summary":"JSON to TypeScript (x402)","description":"Convert JSON to TypeScript interfaces. Handles nested objects, arrays, optional fields. Detects date strings and UUIDs. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"root_type":"Root","typescript":"export interface Root {\n  name: string;\n  age: number;\n}","interface_count":1},"properties":{"root_type":{"type":"string"},"typescript":{"type":"string"},"interface_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"json","in":"query","required":true,"description":"JSON string or object","schema":{"description":"JSON string or object"}},{"name":"export","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"root_name","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/slovak-company-data":{"post":{"tags":["x402"],"summary":"Slovak Company Data (x402)","description":"Look up Slovak company data from RPO (Register právnických osôb), the Slovak Statistical Office's authoritative legal-persons register. Returns name, address, legal form, registration details, and statutory representatives. Free, CC-BY 4.0.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"ico":"36674141","status":"active","address":"Ružová dolina 14, 821 09 Bratislava - mestská časť Ružinov, Slovenská republika","directors":["Dejan Naprudnik"],"nace_code":"4690","legal_form":"Spoločnosť s ručením obmedzeným","legal_name":"SEXES spol. s r. o.","company_name":"SEXES spol. s r. o.","jurisdiction":"SK","last_updated":"2025-07-07","legal_form_code":"112","source_register":"Obchodný register","nace_description":"Nešpecializovaný veľkoobchod","tier_2_available":true,"ubo_availability":"unavailable_no_registry","date_incorporated":"2006-09-13","registration_date":"2006-09-13","registered_address":"Ružová dolina 14, 821 09 Bratislava - mestská časť Ružinov, Slovenská republika","registration_number":"Sro/42251/B","registration_office":"Mestský súd Bratislava III","legal_representatives":[{"name":"Dejan Naprudnik","role":"Konateľ","type":"person","role_code":"3","role_group":"statutory_body","start_date":"2020-09-23","date_of_birth":null}],"primary_registration_id":"Sro/42251/B","tier_2_available_reason":"Legal representatives (role, start date) extracted from the Slovak Register of Legal Persons (RPO).","ubo_availability_reason":"RPVS (Register partnerov verejného sektora) not accessible for foreign users at v1; verification pending public-source confirmation","total_legal_representatives":1},"properties":{"ico":{"type":"string"},"status":{"type":"string"},"address":{"type":"string"},"directors":{"type":"array","items":{"type":"string"}},"nace_code":{"type":"string"},"legal_form":{"type":"string"},"legal_name":{"type":"string"},"company_name":{"type":"string"},"jurisdiction":{"type":"string"},"last_updated":{"type":"string"},"legal_form_code":{"type":"string"},"source_register":{"type":"string"},"nace_description":{"type":"string"},"tier_2_available":{"type":"boolean"},"ubo_availability":{"type":"string"},"date_incorporated":{"type":["string","null"]},"registration_date":{"type":"string"},"registered_address":{"type":["string","null"]},"registration_number":{"type":"string"},"registration_office":{"type":"string"},"legal_representatives":{"type":"array","description":"Current statutory-body members with type (person/organisation), role, role_code, start_date"},"primary_registration_id":{"type":["string","null"]},"tier_2_available_reason":{"type":"string"},"ubo_availability_reason":{"type":"string"},"total_legal_representatives":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ico"],"properties":{"ico":{"type":"string","description":"Slovak IČO (8-digit identifier, zero-padded if shorter)"}}}}}}}},"/x402/v2/release-notes-generate":{"get":{"tags":["x402"],"summary":"Release Notes Generate (x402)","description":"Generate release notes from commit log or changelog. Keep a Changelog format with Added/Changed/Fixed/Removed sections.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"date":"2026-03-09","summary":"Test release with minimal changes","version":"NEXT","markdown":"## Changed\n\n- test_value\n","sections":{"added":[],"fixed":[],"changed":["test_value"],"removed":[],"security":[],"deprecated":[]},"contributors":[],"breaking_changes":[]},"properties":{"summary":{"type":"string"},"version":{"type":"string"},"markdown":{"type":"string"},"sections":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"commits","in":"query","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/classify-text":{"get":{"tags":["x402"],"summary":"Text Classification (x402)","description":"Classify text into categories. Optionally provide custom categories. Returns primary category, confidence scores, topic keywords, and summary.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"summary":"A statement describing sample text used for validating automated testing capabilities and system functionality.","confidence":0.85,"all_categories":[{"category":"Software Testing","confidence":0.85},{"category":"Quality Assurance","confidence":0.72},{"category":"Technical Documentation","confidence":0.58},{"category":"Automation","confidence":0.65}],"topic_keywords":["test input","automated testing","capability testing","QA"],"primary_category":"Software Testing","detected_language":"English"},"properties":{"confidence":{"type":"number"},"all_categories":{"type":"array"},"topic_keywords":{"type":"array"},"primary_category":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"text","in":"query","required":true,"description":"Text to classify","schema":{"type":"string","description":"Text to classify"}},{"name":"categories","in":"query","required":false,"description":"Optional list of categories to classify into","schema":{"type":"array","description":"Optional list of categories to classify into"}}]}},"/x402/v2/business-day-check":{"get":{"tags":["x402"],"summary":"Business Day Check (x402)","description":"Check if a specific date is a business day in a given country. Accounts for weekends and public holidays. Also returns the next business day if the given date is not one.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"date":"2025-12-25","reason":"public_holiday: Christmas Day","country_code":"SE","is_business_day":false,"next_business_day":"2025-12-29","previous_business_day":"2025-12-23"},"properties":{"reason":{"type":"string"},"is_business_day":{"type":"boolean"},"next_business_day":{"type":"string"},"previous_business_day":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"date","in":"query","required":true,"description":"Date to check (YYYY-MM-DD)","schema":{"type":"string","description":"Date to check (YYYY-MM-DD)"}},{"name":"country_code","in":"query","required":true,"description":"ISO 2-letter country code","schema":{"type":"string","description":"ISO 2-letter country code"}}]}},"/x402/v2/german-company-data":{"get":{"tags":["x402"],"summary":"German Company Data (OpenRegister) (x402)","description":"Look up German Handelsregister company data via OpenRegister. Returns name, registration number, court, legal form, status, address, directors, capital, LEI, incorporation and termination dates.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"lei":null,"court":"Mannheim","status":"active","capital":null,"directors":[{"name":"Shivam Navinbhai Suchak","role":"DIRECTOR"},{"name":"Larina Elizaveta","role":"DIRECTOR"},{"name":"Andreas Christian Marco Josef Edte","role":"DIRECTOR"}],"is_active":true,"company_id":"DE-VR-B1601-703935","legal_form":"ev","company_name":"Google Developer Student Club Mannheim e.V.","country_code":"DE","register_type":"VR","terminated_at":null,"industry_codes":[],"incorporated_at":"2024-01-24","registered_address":{"city":"Mannheim","street":null,"country":"DE","co_address":null,"postal_code":null},"registration_number":"VR 703935","business_description":null},"properties":{"lei":{"type":["string","null"]},"court":{"type":["string","null"]},"status":{"enum":["active","terminated","unknown"],"type":"string"},"capital":{"type":["object","null"]},"directors":{"type":"array"},"is_active":{"type":["boolean","null"]},"company_id":{"type":"string"},"legal_form":{"type":["string","null"]},"company_name":{"type":["string","null"]},"country_code":{"type":"string"},"register_type":{"type":["string","null"]},"terminated_at":{"type":["string","null"]},"industry_codes":{"type":"array"},"incorporated_at":{"type":["string","null"]},"registered_address":{"type":["object","null"]},"registration_number":{"type":["string","null"]},"business_description":{"type":["string","null"]}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"court","in":"query","required":false,"description":"Registergericht (German commercial court). Required when providing 'hrb_number'. Example: \"Amtsgericht Landsberg a. Lech\".","schema":{"type":"string","description":"Registergericht (German commercial court). Required when providing 'hrb_number'. Example: \"Amtsgericht Landsberg a. Lech\"."}},{"name":"company_id","in":"query","required":false,"description":"OpenRegister canonical id, e.g. \"DE-HRB-F1103-267645\". Preferred when known — skips name resolution and consumes one fewer API call.","schema":{"type":"string","description":"OpenRegister canonical id, e.g. \"DE-HRB-F1103-267645\". Preferred when known — skips name resolution and consumes one fewer API call."}},{"name":"hrb_number","in":"query","required":false,"description":"Handelsregister number (e.g. \"HRB 2001\"). When provided, 'court' is also required — HRB/HRA numbers are per-court and not globally unique.","schema":{"type":"string","description":"Handelsregister number (e.g. \"HRB 2001\"). When provided, 'court' is also required — HRB/HRA numbers are per-court and not globally unique."}},{"name":"company_name","in":"query","required":false,"description":"Company name for fuzzy search via /v1/autocomplete/company.","schema":{"type":"string","description":"Company name for fuzzy search via /v1/autocomplete/company."}}]}},"/x402/v2/keyword-rank-check":{"post":{"tags":["x402"],"summary":"Keyword Rank Check (x402)","description":"Check where a domain ranks in Google search results for a keyword. Returns the position, page, matching result, and the competitors ranking above it within the scanned depth.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://en.wikipedia.org/wiki/Main_Page","page":1,"found":true,"title":"Wikipedia, the free encyclopedia","domain":"wikipedia.org","country":"us","keyword":"wikipedia","snippet":"Wikipedia is a free online encyclopedia, created and edited by volunteers around the world.","language":"en","position":1,"results_scanned":10,"competitors_above":[],"scan_depth_requested":10},"properties":{"page":{"type":["integer","null"]},"found":{"type":"boolean"},"position":{"type":["integer","null"]},"competitors_above":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain","keyword"],"properties":{"depth":{"type":"integer","description":"Number of results to scan (Serper \"num\" parameter). Defaults to 10, max 100."},"domain":{"type":"string","description":"Domain to check ranking for (e.g. stripe.com). Aliases: url, site."},"country":{"type":"string","description":"Market to check the ranking in, as an ISO 3166-1 alpha-2 code (SE), alpha-3 code (SWE), numeric code (752), or exact country name (Sweden). \"UK\" is accepted as an alias for GB. Unrecognised values are rejected before the search runs rather than silently ignored. Sent to Google as the gl parameter. Defaults to \"us\"."},"keyword":{"type":"string","description":"Search term to check ranking for. Aliases: query, search, term."},"language":{"type":"string","description":"Language for results, as an ISO 639-1 code (\"en\"), optionally with a region (\"pt-BR\"). Validated for shape and rejected before the search runs if malformed, rather than silently ignored. Sent to Google as the hl parameter. Defaults to \"en\"."}}}}}}}},"/x402/v2/json-to-csv":{"get":{"tags":["x402"],"summary":"JSON to CSV (x402)","description":"Convert a JSON array of objects to CSV format. Supports custom delimiters. Pure algorithmic — instant and cheap.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"csv":"","columns":[],"row_count":1,"column_count":0},"properties":{"csv":{"type":"string"},"columns":{"type":"array"},"row_count":{"type":"integer"},"column_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"data","in":"query","required":true,"description":"Array of objects to convert","schema":{"type":"array","description":"Array of objects to convert"}},{"name":"delimiter","in":"query","required":false,"description":"Column delimiter (default: comma)","schema":{"type":"string","description":"Column delimiter (default: comma)"}}]}},"/x402/v2/regex-explain":{"get":{"tags":["x402"],"summary":"Regex Explain (x402)","description":"Explain a regular expression in plain English with token-by-token breakdown. Optionally test against sample strings.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"breakdown":[{"token":"^","explanation":"Anchors the match to the start of the string"},{"token":"[a-zA-Z0-9._%+-]+","explanation":"Matches one or more characters that are letters (upper/lowercase), digits, or the special characters . _ % + -"},{"token":"@","explanation":"Matches the literal @ symbol"},{"token":"[a-zA-Z0-9.-]+","explanation":"Matches one or more letters, digits, dots, or hyphens for the domain name"},{"token":"\\.","explanation":"Matches a literal dot (escaped with backslash)"},{"token":"[a-zA-Z]{2,}","explanation":"Matches 2 or more letters only for the top-level domain (TLD)"},{"token":"$","explanation":"Anchors the match to the end of the string"}],"plain_english":"This regex matches standard email addresses with a local part containing alphanumeric characters and special symbols, followed by an @ symbol, a domain name, and a top-level domain of at least 2 letters.","capture_groups":0,"common_matches":["user@example.com","john.doe+tag@company.co.uk","test_email.123@domain-name.org","a@b.co"],"flags_detected":{"g":false,"i":false,"m":false},"original_regex":"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$","common_non_matches":["invalid.email@.com","user@domain","user name@example.com","@example.com","user@.com","user@domain.c"]},"properties":{"breakdown":{"type":"array"},"plain_english":{"type":"string"},"capture_groups":{"type":"integer"},"common_matches":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"regex","in":"query","required":true,"schema":{"type":"string"}},{"name":"test_strings","in":"query","required":false,"schema":{"type":"array"}}]}},"/x402/v2/code-review":{"post":{"tags":["x402"],"summary":"Code Review (x402)","description":"AI code review. Returns issues with severity, line numbers, fix suggestions. Focus on security, performance, readability, or bugs.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"focus":"all","issues":[{"category":"readability","severity":"low","description":"Function name 'hello' lacks context about what it returns. Naming could be more descriptive.","line_number":1,"fix_suggestion":"Rename to something more specific like 'getGreeting()' or 'getDefaultGreeting()'"},{"category":"style","severity":"low","description":"Missing JSDoc comment for function documentation","line_number":1,"fix_suggestion":"Add JSDoc: /** @returns {string} A greeting message */ above the function"}],"summary":"This is a well-written, secure function with no bugs. Minor improvements would involve adding documentation and considering if a constant might be more appropriate than a function.","quick_wins":["Add JSDoc comment for better code documentation","Consider if this function needs parameters or if it should be a constant","Add semicolon for consistency (if not using automatic formatting)"],"code_length":36,"overall_score":85,"security_flags":[],"positive_aspects":["Simple, focused function with single responsibility","No security vulnerabilities present","Function is pure with no side effects","Clear, concise implementation"],"language_detected":"JavaScript"},"properties":{"issues":{"type":"array"},"quick_wins":{"type":"array"},"overall_score":{"type":"integer"},"security_flags":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"focus":{"type":"string","description":"security/performance/readability/bugs/all"},"language":{"type":"string"}}}}}}}},"/x402/v2/country-economic-indicators":{"post":{"tags":["x402"],"summary":"Country Economic Indicators (x402)","description":"Macroeconomic country-risk indicators (GDP, growth, inflation, unemployment, population) for any country via the World Bank Indicators API. KYB context for counterparty jurisdiction risk assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.086400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"indicators":{"gdp_usd":{"year":"2025","value":668998664082.081},"population":{"year":"2023","value":10521556},"inflation_percent":{"year":"2025","value":1.9},"gdp_growth_percent":{"year":"2025","value":1.2},"unemployment_percent":{"year":"2024","value":8.1}},"country_code":"SE","requested_year":"most_recent","indicator_codes":{"gdp_usd":"NY.GDP.MKTP.CD","population":"SP.POP.TOTL","inflation_percent":"FP.CPI.TOTL.ZG","gdp_growth_percent":"NY.GDP.MKTP.KD.ZG","unemployment_percent":"SL.UEM.TOTL.ZS"}},"properties":{"indicators":{"type":"object"},"country_code":{"type":"string"},"requested_year":{"type":"string"},"indicator_codes":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["country_code"],"properties":{"year":{"type":"string","description":"Optional specific 4-digit year (default is most recent available)"},"indicators":{"type":"array","items":{"type":"string"},"description":"Optional list of indicator keys to fetch instead of the default set. Valid keys: gdp_usd, gdp_growth_percent, gdp_per_capita_usd, inflation_percent, unemployment_percent, population, gni_per_capita_usd, exports_percent_gdp, imports_percent_gdp, fdi_inflow_percent_gdp"},"country_code":{"type":"string","description":"ISO 2-letter or 3-letter country code (e.g. SE, US, DE, SWE)"}}}}}}}},"/x402/v2/lei-lookup":{"get":{"tags":["x402"],"summary":"LEI Lookup (x402)","description":"Look up a Legal Entity Identifier (LEI) via the GLEIF database. Accepts a 20-character LEI or company name. Returns entity name, jurisdiction, addresses, registration status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"lei":"549300MLUDYVRQOOXS22","status":"ACTIVE","category":"GENERAL","legal_form":"YI42","legal_name":"NORDIC CREDIT RATING AS","jurisdiction":"NO","legal_address":{"city":"OSLO","line1":"Ruseløkkveien 34","country":"NO","postal_code":"0251"},"last_update_date":"2025-10-08T11:04:06Z","registration_status":"ISSUED","headquarters_address":{"city":"OSLO","line1":"Ruseløkkveien 34","country":"NO","postal_code":"0251"},"initial_registration_date":"2017-04-29T02:02:00Z"},"properties":{"lei":{"type":"string"},"status":{"type":"string"},"legal_name":{"type":"string"},"jurisdiction":{"type":"string"},"legal_address":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"lei","in":"query","required":false,"description":"20-character LEI code (e.g. 549300MLUDYVRQOOXS22)","schema":{"type":"string","description":"20-character LEI code (e.g. 549300MLUDYVRQOOXS22)"}},{"name":"company_name","in":"query","required":false,"description":"Company name to search for in GLEIF (alternative to LEI code)","schema":{"type":"string","description":"Company name to search for in GLEIF (alternative to LEI code)"}}]}},"/x402/v2/id-number-validate":{"get":{"tags":["x402"],"summary":"ID Number Validate (x402)","description":"Validate national identification number formats. Supports Swedish personnummer, Finnish henkilötunnus, Norwegian fødselsnummer, Danish CPR, UK National Insurance, US SSN format, and German Steuer-ID. Checks format and checksum where applicable. Does NOT verify identity.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"id_type":"personnummer","normalized":"811228-9874","country_code":"SE","checksum_valid":true,"extracted_info":{"gender":"male","birth_date_part":"811228"},"format_correct":true},"properties":{"valid":{"type":"boolean"},"id_type":{"type":"string"},"normalized":{"type":"string"},"country_code":{"type":"string"},"checksum_valid":{"type":"boolean"},"extracted_info":{"type":"object"},"format_correct":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"id_number","in":"query","required":true,"description":"National identification number","schema":{"type":"string","description":"National identification number"}},{"name":"country_code","in":"query","required":true,"description":"ISO 2-letter country code (SE, FI, NO, DK, GB, US, DE)","schema":{"type":"string","description":"ISO 2-letter country code (SE, FI, NO, DK, GB, US, DE)"}}]}},"/x402/v2/wallet-transactions-lookup":{"get":{"tags":["x402"],"summary":"Wallet Transactions Lookup (x402)","description":"Get recent native-coin transfers to and from a wallet on Ethereum, Base, Arbitrum, Optimism or Polygon: up to 50 with hash, value, counterparty, timestamp and direction.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"address":"0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe","chain_id":"1","sent_count":0,"transactions":[{"to":"0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae","from":"0xfb36ee1e268b1b4307c33bc05b210884270db149","hash":"0x48d68cc412bf00b4a37eccd55ac642245f1db423d2557d8b322f2af44d7e4ec6","gas_used":24259,"is_error":false,"direction":"received","timestamp":"2026-03-27T20:40:35.000Z","value_eth":0,"block_number":24751345},{"to":"0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae","from":"0x134c0a639ced2168e3b96ccaaa8a425c462ad171","hash":"0x3cc3dd27c74f5033e2829db9d2401f6fb918941eae9d92d8e84d98cbc935683d","gas_used":24259,"is_error":false,"direction":"received","timestamp":"2026-03-27T20:34:35.000Z","value_eth":0,"block_number":24751315},{"to":"0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae","from":"0x651f3a9a59b69e284f834f4914a6ed206a516371","hash":"0xedc0180c7a4720bcea8c88d998cfe16a54a04f05718163c2687f062db566a689","gas_used":24320,"is_error":false,"direction":"received","timestamp":"2026-03-27T20:14:11.000Z","value_eth":0,"block_number":24751213},{"to":"0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae","from":"0x651f3a9a59b69e284f834f4914a6ed206a516371","hash":"0x664ea2ee718538654e745b687869e46756053779a80c00e1462d88a1223344ad","gas_used":24636,"is_error":false,"direction":"received","timestamp":"2026-03-27T20:11:59.000Z","value_eth":0,"block_number":24751202},{"to":"0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae","from":"0x651f3a9a59b69e284f834f4914a6ed206a516371","hash":"0x23ba0d00f2660004f749cc30c570edde8f346a0b37d3bceb364f3c65a091c3fd","gas_used":23913,"is_error":false,"direction":"received","timestamp":"2026-03-27T20:00:23.000Z","value_eth":0,"block_number":24751144}],"received_count":5,"total_returned":5},"properties":{"note":{"type":"string"},"address":{"type":"string"},"chain_id":{"type":"string"},"sent_count":{"type":"number"},"transactions":{"type":"array"},"native_symbol":{"type":"string"},"received_count":{"type":"number"},"total_returned":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"limit","in":"query","required":false,"description":"Number of transactions (1-50). Default: 20","schema":{"type":"number","description":"Number of transactions (1-50). Default: 20"}},{"name":"address","in":"query","required":true,"description":"Wallet address (0x...)","schema":{"type":"string","description":"Wallet address (0x...)"}},{"name":"chain_id","in":"query","required":false,"description":"Chain ID: 1 (Ethereum), 8453 (Base), 42161 (Arbitrum One), 10 (OP Mainnet) or 137 (Polygon PoS). Default: 1","schema":{"type":"string","description":"Chain ID: 1 (Ethereum), 8453 (Base), 42161 (Arbitrum One), 10 (OP Mainnet) or 137 (Polygon PoS). Default: 1"}}]}},"/x402/v2/company-industry-classify":{"get":{"tags":["x402"],"summary":"Company Industry Classify (x402)","description":"Classify a company's industry using standard codes. Given a company name, description, or website URL, returns SIC, NAICS, and NACE codes with confidence levels.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"sector":"Technology","confidence":"high","description":"Search engine and technology company","company_name":"Google","classifications":[{"code":"7375","system":"SIC","description":"Information Services"},{"code":"519130","system":"NAICS","description":"Internet Publishing and Broadcasting and Web Search Portals"},{"code":"J63.11","system":"NACE","description":"Web portals and internet search engines"}],"primary_industry":"Internet Search Engines and Web Portals"},"properties":{"sector":{"type":"string"},"confidence":{"type":"string"},"company_name":{"type":"string"},"classifications":{"type":"array"},"primary_industry":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"description","in":"query","required":false,"description":"Company description or business activity","schema":{"type":"string","description":"Company description or business activity"}},{"name":"company_name","in":"query","required":false,"description":"Company name","schema":{"type":"string","description":"Company name"}}]}},"/x402/v2/vat-format-validate":{"get":{"tags":["x402"],"summary":"VAT Format Validation (x402)","description":"Validate a European VAT number format against country-specific rules. Pure algorithmic — does NOT check VIES. Use vat-validate for full VIES verification. Supports all 27 EU countries + GB, CH, NO.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"note":"Format is valid. Use vat-validate for full VIES verification.","valid":true,"vat_number":"SE556703748501","country_code":"SE","country_name":"Sweden","format_valid":true,"expected_format":"SE123456789012"},"properties":{"valid":{"type":"boolean"},"vat_number":{"type":"string"},"country_code":{"type":"string"},"country_name":{"type":"string"},"format_valid":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"vat_number","in":"query","required":true,"description":"VAT number including country prefix (e.g. SE556703748501)","schema":{"type":"string","description":"VAT number including country prefix (e.g. SE556703748501)"}}]}},"/x402/v2/gdpr-website-check":{"get":{"tags":["x402"],"summary":"GDPR Website Check (x402)","description":"Scan a website for GDPR compliance indicators: cookie consent, privacy policy, tracking scripts, security headers. Returns score A-F.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.108000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://www.google.com/","grade":"D","findings":["No cookie consent mechanism detected","No privacy policy link found","Missing HSTS header","Cookies set without Secure flag","Cookies set without SameSite attribute"],"gdpr_score":30,"uses_https":true,"cookie_issues":["Cookies set without Secure flag","Cookies set without SameSite attribute"],"tracker_count":0,"security_headers":{"csp":false,"hsts":false},"tracking_scripts":{"hotjar":false,"segment":false,"mixpanel":false,"tiktok_pixel":false,"facebook_pixel":false,"google_analytics":false,"linkedin_insight":false},"has_cookie_policy":false,"has_cookie_consent":false,"has_privacy_policy":false,"has_terms_of_service":false},"properties":{"grade":{"type":"string"},"gdpr_score":{"type":"integer"},"tracking_scripts":{"type":"object"},"has_cookie_consent":{"type":"boolean"},"has_privacy_policy":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/gitignore-generate":{"get":{"tags":["x402"],"summary":"Gitignore Generate (x402)","description":"Generate .gitignore from language/framework/IDE combinations. Covers TypeScript, Python, Go, Rust, Java, React, Next.js, Django, VSCode, IntelliJ. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"sources":["common","typescript","react"],"gitignore":"# Environment & OS\n.env\n.env.local\n.env.*.local\n.DS_Store\nThumbs.db\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n.cache/\ncoverage/\n*.pem\n\n# typescript\n*.js\n*.d.ts\n*.js.map\ndist/\nbuild/\nnode_modules/\n*.tsbuildinfo\n\n# react\n.next/\nout/\n.cache/\n","total_rules":21,"unrecognized":[]},"properties":{"sources":{"type":"array"},"gitignore":{"type":"string"},"total_rules":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"ides","in":"query","required":false,"schema":{"type":"array"}},{"name":"languages","in":"query","required":false,"schema":{"type":"array"}},{"name":"frameworks","in":"query","required":false,"schema":{"type":"array"}}]}},"/x402/v2/social-post-generate":{"get":{"tags":["x402"],"summary":"Social Post Generate (x402)","description":"Generate platform-optimized social media posts. Supports Twitter, LinkedIn, Instagram. Returns post text, hashtags, thread version for Twitter.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"hashtags":["#QualityAssurance","#SoftwareTesting","#DevOps"],"platform":"twitter","post_text":"Testing is essential to delivering quality software. Our commitment to rigorous testing ensures reliability, security, and optimal performance for our users.","thread_version":null,"character_count":279,"engagement_hooks":["Resonates with developers and QA professionals","Demonstrates commitment to quality standards","Relevant to current industry best practices"]},"properties":{"hashtags":{"type":"array"},"post_text":{"type":"string"},"thread_version":{"type":"array"},"character_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":false,"schema":{"type":"string"}},{"name":"tone","in":"query","required":false,"schema":{"type":"string"}},{"name":"content","in":"query","required":false,"schema":{"type":"string"}},{"name":"platform","in":"query","required":false,"schema":{"type":"string"}},{"name":"hashtag_count","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/shipping-track":{"get":{"tags":["x402"],"summary":"Shipping Track (x402)","description":"Detect shipping carrier from tracking number format and provide tracking URLs. Supports UPS, FedEx, USPS, DHL, Royal Mail, PostNord, and more. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"format":{"length":4,"is_alpha":true,"is_numeric":false,"is_alphanumeric":false},"best_match":null,"carrier_count":0,"original_input":"test","tracking_number":"TEST","detected_carriers":[],"universal_tracking_urls":["https://parcelsapp.com/en/tracking/TEST","https://www.17track.net/en/track#nums=TEST"]},"properties":{"best_match":{"type":"object"},"tracking_number":{"type":"string"},"detected_carriers":{"type":"array"},"universal_tracking_urls":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"tracking_number","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/email-deliverability-check":{"get":{"tags":["x402"],"summary":"Email Deliverability Check (x402)","description":"Check email deliverability for a domain: SPF, DKIM, DMARC, MX records, blacklist status. Returns 0-100 score.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"spf":{"valid":true,"exists":true,"record":"v=spf1 -all","mechanism":"-all (hard fail)"},"dkim":{"detected":true,"selector_found":"google"},"dmarc":{"exists":true,"policy":"reject","record":"v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s"},"grade":"A","score":100,"domain":"example.com","issues":[],"mx_records":[{"exchange":"","priority":0}],"blacklisted":false,"recommendations":[],"blacklists_checked":[{"name":"zen.spamhaus.org","listed":false},{"name":"bl.spamcop.net","listed":false},{"name":"b.barracudacentral.org","listed":false}]},"properties":{"spf":{"type":"object"},"dkim":{"type":"object"},"dmarc":{"type":"object"},"grade":{"type":"string"},"score":{"type":"number"},"blacklisted":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/belgian-company-data":{"get":{"tags":["x402"],"summary":"Belgian Company Data (x402)","description":"Look up Belgian company data from the KBO/BCE Crossroads Bank for Enterprises via the CBEAPI.be JSON wrapper. Accepts enterprise number (10 digits, e.g. 0404.616.494), VAT-prefixed form (BE0404170701), or fuzzy company name. Returns name, status, juridical form, address, registration date, establishment count, and derived BE VAT number.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"active","address":"Grand-Place 1 1000 Bruxelles BE","industry":null,"vat_number":"BE0417497106","abbreviation":"A.P.I.","company_name":"ANHEUSER-BUSCH INBEV","jurisdiction":"BE","business_type":"Société anonyme","commercial_name":null,"registration_date":"1977-08-02","registration_number":"0417.497.106","establishments_count":5},"properties":{"status":{"type":"string"},"address":{"type":"string"},"industry":{"type":"string"},"vat_number":{"type":"string"},"abbreviation":{"type":"string"},"company_name":{"type":"string"},"jurisdiction":{"type":"string"},"business_type":{"type":"string"},"commercial_name":{"type":"string"},"registration_date":{"type":"string"},"registration_number":{"type":"string"},"establishments_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name","in":"query","required":false,"description":"Alias for company_name","schema":{"type":"string","description":"Alias for company_name"}},{"name":"task","in":"query","required":false,"description":"Free-text input — first matching enterprise number or name is used","schema":{"type":"string","description":"Free-text input — first matching enterprise number or name is used"}},{"name":"query","in":"query","required":false,"description":"Free-text alias — enterprise number or company name","schema":{"type":"string","description":"Free-text alias — enterprise number or company name"}},{"name":"company_name","in":"query","required":false,"description":"Belgian company name (fuzzy match)","schema":{"type":"string","description":"Belgian company name (fuzzy match)"}},{"name":"enterprise_number","in":"query","required":false,"description":"KBO/BCE enterprise number (e.g. 0404.616.494)","schema":{"type":"string","description":"KBO/BCE enterprise number (e.g. 0404.616.494)"}}]}},"/x402/v2/data-quality-check":{"get":{"tags":["x402"],"summary":"Data Quality Check (x402)","description":"Check data quality with custom rules (email_format, range, pattern, etc.) or auto-detect issues. Returns quality score and field-level report. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"issues":[],"total_rows":1,"valid_rows":1,"issue_count":0,"field_report":[{"field":"0","null_count":0,"completeness":100,"unique_count":1},{"field":"1","null_count":0,"completeness":100,"unique_count":1},{"field":"2","null_count":0,"completeness":100,"unique_count":1},{"field":"3","null_count":0,"completeness":100,"unique_count":1}],"invalid_rows":0,"quality_score":100},"properties":{"issues":{"type":"array"},"valid_rows":{"type":"integer"},"field_report":{"type":"array"},"invalid_rows":{"type":"integer"},"quality_score":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"data","in":"query","required":true,"description":"JSON array of objects","schema":{"type":"array","description":"JSON array of objects"}},{"name":"rules","in":"query","required":false,"description":"Optional validation rules","schema":{"type":"array","description":"Optional validation rules"}}]}},"/x402/v2/package-security-audit":{"get":{"tags":["x402"],"summary":"Package Security Audit (x402)","description":"Composite security audit for npm and PyPI packages with supply chain anomaly detection","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"name":"lodash","license":{"spdx":"MIT","is_copyleft":false,"is_osi_approved":true},"version":"4.18.1","ecosystem":"npm","freshness":{"is_latest":true,"published_at":"2026-04-01T21:01:20.458Z","is_deprecated":false,"latest_version":"4.18.1","version_age_hours":687,"recently_published":false,"days_since_last_release":28},"scorecard":null,"risk_level":"low","risk_score":100,"maintainers":1,"supply_chain":{"provenance":{"has_attestation":false,"attestation_missing":false,"previous_had_attestation":false},"current_publisher":"jdalton","publisher_changed":false,"previous_publisher":"jdalton","has_install_scripts":false,"install_script_names":[]},"vulnerabilities":{"low":0,"high":0,"total":0,"medium":0,"details":[],"critical":0},"dependency_count":0},"properties":{"name":{"type":"string"},"license":{"type":"object"},"version":{"type":"string"},"ecosystem":{"type":"string"},"freshness":{"type":"object"},"risk_level":{"type":"string"},"risk_score":{"type":"integer"},"supply_chain":{"type":"object","description":"Supply chain anomaly signals"},"vulnerabilities":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name","in":"query","required":true,"description":"Package name","schema":{"type":"string","description":"Package name"}},{"name":"version","in":"query","required":false,"description":"Version to audit","schema":{"type":"string","description":"Version to audit"}},{"name":"ecosystem","in":"query","required":false,"description":"npm or pypi","schema":{"type":"string","description":"npm or pypi"}}]}},"/x402/v2/company-tech-stack":{"get":{"tags":["x402"],"summary":"Company Tech Stack (x402)","description":"Deep tech stack analysis of any domain. Analyzes HTTP headers, HTML source, JS libraries, DNS records, meta tags. Returns frontend, analytics, CDN, hosting, CMS, and more.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"cdn":"Stripe CDN (b.stripecdn.com)","cms":null,"domain":"stripe.com","analytics":["Google Analytics","ElevenLabs"],"chat_widget":null,"dns_records":{"a":["52.54.252.87","3.228.62.110","52.86.4.21"],"mx":[{"exchange":"aspmx.l.google.com","priority":10},{"exchange":"alt1.aspmx.l.google.com","priority":20},{"exchange":"aspmx3.googlemail.com","priority":30},{"exchange":"alt2.aspmx.l.google.com","priority":20},{"exchange":"aspmx2.googlemail.com","priority":30}],"txt":["elevenlabs=NpcIkVJW_8Vyd2gLKzPviuaU1g5rz83KiWQQ3sWKGtI","neat-pulse-domain-verification-8GMn8nv=36eba03d-345e-421a-a823-d6d1f28938a4","google-site-verification=ZgGi2-xDdfnaWxdfjn5AqtUS11jKWqSXAV_EHODFzdE","google-site-verification=pmz8ueKvWMPxNlwUDcVroF91-tq6I9VM6wSO_0i7-wc","z4mthhzk10l6qc0rg4211mnnppkh2y5b","fastly-domain-delegation-3c9tdnjzdwy7wfffvyyy-786084-2024-07-08","docker-verification=ccde1a0d-8d2c-44b5-9d20-6c4e19113fc9","liveramp-site-verification=7gyFkTwGYsvgd7IUQwyAOfImETwR06wgKjKiXq90KEY","canva-site-verification=xLypn0D9XANRy-lbwcMfHA","docusign=4a93db58-af07-4632-a881-b569d41a6c57","v=spf1 ip4:198.2.180.60/32 ip4:13.111.2.227/32 include:spf1.stripe.com include:greenhouse-outbound-mail.stripe.com include:_spf.qualtrics.com ~all","google-site-verification=qjP3OAiraClha_40cX9Z9FrG5q3O_0InXSamXOswY-s","v=MCPv1; k=ed25519; p=WMeka0C1fIH9HQLMtsSM9DD9cM6Bz6Wz34mHnK86UcM=","postman-domain-verification=c3b168067b16085c452b04b643ae1000079b095e383b53d1074e409b0e600b6265e1c7963beca1ca87cc63c381dcea332544c92c919651e4cda69f9a6303079c","facebook-domain-verification=m7id9rt8ehlgcg9tt2yggbsi6gro7i","anthropic-domain-verification-zk7x9c=QfN52ECybLPUWh51R9pKF0QO3","h1-domain-verification=KhpNX9YNAc7bX95agGvFsPPKbYTVe1KC6xj7P1zKZrRzxcuS","stripe-verification=82ce82470fb8324e19fa65abdb6fd370da5a8f90bba09712f259760f625d0790","MS=ms80697640","google-site-verification=NLkFgZLHeVMVYlR3t1UZC9_1LzmqCAefJyNDs6ZQqBA","whimsical=253112f9add9790f3a27b9d9893626451fc4cda1","docusign=4c9f5602-1c19-4e4c-bde7-77dc4b9ea8a0","cursor-domain-verification-vncvvm=D0NzeIDbQa8PPgIf1ukp9UPiu","apple-domain-verification=8kIS0gmJTvILWQuI","edcbf4c7-b604-457b-870e-1b05f655e769","asv=8de0c1a866b958297e22a36216e594a6","_mphpl78cv3thhugki4dkknlukgj1du6","google-site-verification=hPfjsDwiisKJ4RP1ExOst9gAOD_0P8Q7-kxdcKUvEcc","atlassian-domain-verification=upLp21qQgja1aHG2gnAb1AmXRqb/zG0UK1a0n3zTSXZg5DgOSttR3i5uzA3T9Cdk","stripe-verification=3D509DD0829BAA9B36103AC825F863BEED6FBD3E0DB00FDC6CC8C8413191B10D","google-site-verification=PrlpJHdk11CIkPsiXoHEAJevWHAk39JRFAqVSe9l7n0"],"cname":[]},"css_framework":null,"email_provider":"Google Workspace","meta_framework":"Next.js","hosting_provider":"AWS","payment_processor":"Stripe","frontend_framework":"React","detected_technologies":[{"name":"Next.js","category":"meta_framework","confidence":"high"},{"name":"React","category":"frontend_framework","confidence":"high"},{"name":"Nginx","category":"web_server","confidence":"high"},{"name":"AWS","category":"hosting_provider","confidence":"high"},{"name":"Google MX Records","category":"email_provider","confidence":"high"},{"name":"Stripe","category":"payment_processor","confidence":"high"},{"name":"Google Site Verification","category":"seo_verification","confidence":"high"},{"name":"Server-Side Rendering","category":"rendering_strategy","confidence":"high"}],"http_headers_analyzed":["server: nginx"]},"properties":{"cdn":{"type":"string"},"analytics":{"type":"array"},"hosting_provider":{"type":"string"},"frontend_framework":{"type":"string"},"detected_technologies":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to analyze (e.g. stripe.com)","schema":{"type":"string","description":"Domain to analyze (e.g. stripe.com)"}}]}},"/x402/v2/job-board-search":{"get":{"tags":["x402"],"summary":"Job Board Search (x402)","description":"Search job listings from national public employment services — Sweden (Arbetsförmedlingen), France (France Travail), US federal jobs (USAJOBS). Returns title, company, location, salary, URL.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"jobs":[{"url":"https://arbetsformedlingen.se/platsbanken/annonser/30648768","title":"Bibliotekarie 10%","source":"arbetsformedlingen.se","company":"Barnens Montessoriakademi Östermalm AB","location":"Solna","posted_date":"2026-02-23T12:48:35","salary_range":"Fast månads- vecko- eller timlön"},{"url":"https://arbetsformedlingen.se/platsbanken/annonser/30568778","title":"Skolkurator 10-15%","source":"arbetsformedlingen.se","company":"Dalbackens Friskola Ekonomisk Fören","location":"Piteå","posted_date":"2026-02-05T10:21:20","salary_range":"Fast månads- vecko- eller timlön"},{"url":"https://arbetsformedlingen.se/platsbanken/annonser/30631336","title":"Finsktalande teknisk kundtjänstmedarbetare - Work From Home","source":"arbetsformedlingen.se","company":"Foundever Sweden AB","location":"","posted_date":"2026-02-18T16:24:55","salary_range":"Fast månads- vecko- eller timlön"},{"url":"https://arbetsformedlingen.se/platsbanken/annonser/30581104","title":"Underläkare till medicinkliniken from sept 2026","source":"arbetsformedlingen.se","company":"REGION SÖRMLAND","location":"Nyköping","posted_date":"2026-02-09T00:01:04","salary_range":"Fast månads- vecko- eller timlön"},{"url":"https://arbetsformedlingen.se/platsbanken/annonser/30687820","title":"Solution architect  SAP FI","source":"arbetsformedlingen.se","company":"Randstad AB","location":"Göteborg","posted_date":"2026-03-03T12:00:11","salary_range":"Hourly"},{"url":"https://arbetsformedlingen.se/platsbanken/annonser/30428071","title":"Senior Active Directory Specialist","source":"arbetsformedlingen.se","company":"Eccera Professionals AB","location":"Stockholm","posted_date":"2025-12-30T11:34:44","salary_range":"Fast månads- vecko- eller timlön"},{"url":"https://arbetsformedlingen.se/platsbanken/annonser/30686968","title":"Stödassistent till Lektorpsvägen 10","source":"arbetsformedlingen.se","company":"Örebro kommun","location":"Örebro","posted_date":"2026-03-03T10:48:41","salary_range":"Individuell lönesättning"},{"url":"https://arbetsformedlingen.se/platsbanken/annonser/30683642","title":"Butikssäljare 10% – Trademax Borlänge","source":"arbetsformedlingen.se","company":"Home Furnishing Nordic AB","location":"Borlänge","posted_date":"2026-03-02T15:40:57","salary_range":"Fast månads- vecko- eller timlön"},{"url":"https://arbetsformedlingen.se/platsbanken/annonser/30341319","title":"Application Support Analyst","source":"arbetsformedlingen.se","company":"Hitachi Energy Sweden AB","location":"Ludvika","posted_date":"2025-12-05T08:43:30","salary_range":"Fast månads- vecko- eller timlön"},{"url":"https://arbetsformedlingen.se/platsbanken/annonser/30628656","title":"Software Engineer, iOS","source":"arbetsformedlingen.se","company":"True Software Scandinavia AB","location":"Stockholm","posted_date":"2026-02-18T11:27:25","salary_range":"Fast månads- vecko- eller timlön"}],"query":"SELECT * FROM users WHERE active = true LIMIT 10","location":null,"total_results":5302,"sources_queried":["arbetsformedlingen.se"]},"properties":{"jobs":{"type":"array"},"attribution":{"type":"string"},"country_code":{"type":"string"},"total_results":{"type":"number"},"sources_queried":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string"}},{"name":"location","in":"query","required":false,"schema":{"type":"string"}},{"name":"remote_only","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"country_code","in":"query","required":false,"description":"se (Sweden, default), fr (France) or us (US federal jobs). For fr, location is a department number (75) or 5-digit INSEE commune code; for us, a place name such as \"Denver, Colorado\".","schema":{"type":"string","description":"se (Sweden, default), fr (France) or us (US federal jobs). For fr, location is a department number (75) or 5-digit INSEE commune code; for us, a place name such as \"Denver, Colorado\"."}}]}},"/x402/v2/json-repair":{"get":{"tags":["x402"],"summary":"JSON Repair (x402)","description":"Repair broken JSON: trailing commas, single quotes, unquoted keys, truncated, comments, mixed with markdown. Returns valid JSON.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"json":"{\n  \"name\": \"Alice\",\n  \"age\": 30\n}","valid":true,"parsed":{"age":30,"name":"Alice"},"fixes_applied":["Added missing closing brackets/braces"]},"properties":{"json":{"type":"string"},"valid":{"type":"boolean"},"parsed":{"type":"object"},"fixes_applied":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"json","in":"query","required":true,"description":"Broken JSON string to repair","schema":{"type":"string","description":"Broken JSON string to repair"}}]}},"/x402/v2/deduplicate":{"get":{"tags":["x402"],"summary":"Deduplicate (x402)","description":"Deduplicate a JSON array of objects using fuzzy string matching (Levenshtein + token sort). Specify match fields and threshold.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"threshold":0.8,"deduplicated":["test"],"match_fields":["0","1","2","3"],"removed_count":0,"original_count":1,"duplicates_found":[],"deduplicated_count":1},"properties":{"deduplicated":{"type":"array"},"original_count":{"type":"integer"},"duplicates_found":{"type":"array"},"deduplicated_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"data","in":"query","required":true,"description":"Array of objects to deduplicate","schema":{"type":"array","description":"Array of objects to deduplicate"}},{"name":"threshold","in":"query","required":false,"description":"Match threshold 0-1 (default 0.8)","schema":{"type":"number","description":"Match threshold 0-1 (default 0.8)"}},{"name":"match_fields","in":"query","required":false,"description":"Fields to compare","schema":{"type":"array","description":"Fields to compare"}}]}},"/x402/v2/agent-trace-analyze":{"get":{"tags":["x402"],"summary":"Agent Trace Analyze (x402)","description":"Analyze AI agent execution traces (LangChain/CrewAI/AutoGen). Identifies failure points, root causes, token waste, and suggests fixes.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"severity":"warning","root_cause":"The trace input 'test_value' is not a valid AI agent execution log. It lacks essential components including: timestamped steps, tool invocations, agent reasoning, state transitions, or error messages. Cannot analyze execution flow without structured trace data.","step_count":0,"failure_type":"none","trace_length":10,"failure_point":"Trace input validation - insufficient execution data provided","steps_summary":[],"suggested_fix":"Provide a complete agent execution trace with: (1) timestamped sequential steps, (2) agent thoughts/reasoning, (3) tool names and parameters, (4) tool outputs/responses, (5) any error messages or exceptions, (6) final state or outcome","patterns_detected":["insufficient_trace_data","missing_execution_steps","cannot_analyze_without_structured_log"],"token_usage_breakdown":{"total":97,"estimated_input_tokens":12,"estimated_output_tokens":85}},"properties":{"root_cause":{"type":"string"},"step_count":{"type":"integer"},"failure_type":{"type":"string"},"failure_point":{"type":"string"},"suggested_fix":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"trace","in":"query","required":true,"description":"Agent log/trace output","schema":{"type":"string","description":"Agent log/trace output"}}]}},"/x402/v2/llm-cost-calculate":{"get":{"tags":["x402"],"summary":"LLM Cost Calculate (x402)","description":"Calculate LLM API cost for a prompt+completion across 14 models. Returns cheaper alternatives with savings percentages. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"model":"gpt-4o","cost_usd":0.000027,"input_tokens":11,"total_tokens":11,"model_pricing":{"input_per_1k":0.0025,"output_per_1k":0.01},"output_tokens":0,"context_window":128000,"cheaper_alternatives":[{"model":"gemini-1.5-flash","cost_usd":0.000001,"context_window":1000000,"savings_percent":97},{"model":"gpt-4o-mini","cost_usd":0.000002,"context_window":128000,"savings_percent":94},{"model":"claude-3-haiku","cost_usd":0.000003,"context_window":200000,"savings_percent":90},{"model":"gpt-3.5-turbo","cost_usd":0.000006,"context_window":16385,"savings_percent":80},{"model":"llama-3-70b","cost_usd":0.000006,"context_window":8192,"savings_percent":76}]},"properties":{"cost_usd":{"type":"number"},"input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"},"cheaper_alternatives":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"model","in":"query","required":true,"schema":{"type":"string"}},{"name":"prompt_text","in":"query","required":false,"schema":{"type":"string"}},{"name":"prompt_tokens","in":"query","required":false,"schema":{"type":"integer"}},{"name":"completion_text","in":"query","required":false,"schema":{"type":"string"}},{"name":"completion_tokens","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/domain-reputation":{"get":{"tags":["x402"],"summary":"Domain Reputation (x402)","description":"Check domain reputation via DNS, HTTP, and security analysis. Checks SPF, DMARC, HSTS, HTTPS, suspicious TLD, and domain patterns. Score 0-100.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"grade":"D","checks":{"has_mx":false,"has_spf":false,"mx_count":0,"resolves":false,"has_dmarc":false,"https_works":false},"domain":"this-domain-does-not-exist-abc123xyz.com","issues":["Domain does not resolve to any IP address","HTTPS connection failed","Unusually long domain name","Domain contains many hyphens"],"issue_count":4,"reputation_score":40},"properties":{"grade":{"type":"string"},"checks":{"type":"object"},"domain":{"type":"string"},"issues":{"type":"array"},"reputation_score":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/backlink-check":{"get":{"tags":["x402"],"summary":"Backlink Check (x402)","description":"Check backlinks for a domain via CommonCrawl and Google search. Returns linking domains, anchor text, dofollow/nofollow counts.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"domain":"google.com","backlinks":[],"top_anchors":[],"total_backlinks":0,"dofollow_estimate":null,"nofollow_estimate":null,"referring_domains_count":0},"properties":{"backlinks":{"type":"array"},"top_anchors":{"type":"array"},"total_backlinks":{"type":"number"},"referring_domains_count":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/company-id-detect":{"get":{"tags":["x402"],"summary":"Company ID Detection (x402)","description":"Identify the type and country of a company registration number. Detects Swedish org numbers, Finnish business IDs, German HRB numbers, LEIs, DUNS, and 20+ other formats. Pure algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"input":"test","matches":[],"message":"Could not identify the format of this company ID.","detected":false},"properties":{"input":{"type":"string"},"matches":{"type":"array"},"message":{"type":"string"},"detected":{"type":"boolean"},"best_match":{"type":"object"},"all_matches":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"id","in":"query","required":true,"description":"Company registration number to identify","schema":{"type":"string","description":"Company registration number to identify"}}]}},"/x402/v2/fear-greed-index":{"get":{"tags":["x402"],"summary":"Fear & Greed Index (x402)","description":"Get the Crypto Fear & Greed Index — a market sentiment indicator from 0 (Extreme Fear) to 100 (Extreme Greed). Includes current value, classification, and optional historical data up to 30 days. Powered by Alternative.me.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"timestamp":"2026-04-03T00:00:00.000Z","current_value":9,"classification":"Extreme Fear"},"properties":{"trend":{"type":"string"},"average":{"type":"number"},"history":{"type":"array"},"timestamp":{"type":"string"},"attribution":{"type":"string"},"current_value":{"type":"number"},"classification":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"days","in":"query","required":false,"description":"Number of days of history (1-30). Default: 1","schema":{"type":"number","description":"Number of days of history (1-30). Default: 1"}}]}},"/x402/v2/cookie-scan":{"get":{"tags":["x402"],"summary":"Cookie Scan (x402)","description":"Scan a website for cookies, tracking scripts, and consent banners. Categorizes cookies as necessary/analytics/marketing.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://google.com","cookies":[{"name":"__Secure-STRP","path":"/","domain":".google.com","secure":true,"expires":"Fri, 03-Apr-2026 03:43:02 GMT","category":"necessary","httponly":false,"samesite":"strict","known_service":null},{"name":"AEC","path":"/","domain":".google.com","secure":true,"expires":"Wed, 30-Sep-2026 03:38:02 GMT","category":"functional","httponly":true,"samesite":"lax","known_service":null},{"name":"NID","path":"/","domain":".google.com","secure":true,"expires":"Sat, 03-Oct-2026 03:38:02 GMT","category":"marketing","httponly":true,"samesite":"none","known_service":"Google Ads"}],"total_cookies":3,"potential_issues":["No cookie consent banner visible in provided page text","Google's own tracking mechanisms (kEI, kEXPI parameters) present without explicit consent disclosure in visible content","Privacy policy link present but no consent mechanism shown in page excerpt","Tracking pixels/logging via google.log() function detected in inline scripts without visible consent flow","Missing explicit cookie disclosure for tracking identifiers (kEI, kOPI, cshid parameters)"],"tracking_scripts":[],"first_party_count":3,"third_party_count":0,"consent_banner_text":null,"third_party_domains":[],"consent_banner_detected":false},"properties":{"cookies":{"type":"array"},"total_cookies":{"type":"number"},"tracking_scripts":{"type":"array"},"consent_banner_detected":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/gas-price-check":{"get":{"tags":["x402"],"summary":"Gas Price Check (x402)","description":"Current gas fees on Ethereum, Polygon or BNB Chain: safe, proposed and fast prices in Gwei plus the base fee, computed from the priority fees actually paid over the last 20 blocks.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"chain_id":"1","base_fee_gwei":0.111812277,"fast_gas_gwei":0.122993504,"safe_gas_gwei":0.111812277,"gas_used_ratio":"0.79543645,0.18742179029228,0.0750681879814453,0.97324925,0.586948583333333","proposed_gas_gwei":0.112812277},"properties":{"chain_id":{"type":"string"},"base_fee_gwei":{"type":"number"},"fast_gas_gwei":{"type":"number"},"safe_gas_gwei":{"type":"number"},"blocks_sampled":{"type":"number"},"gas_used_ratio":{"type":"string"},"proposed_gas_gwei":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"chain_id","in":"query","required":false,"description":"Chain ID: 1 (Ethereum), 137 (Polygon PoS) or 56 (BNB Smart Chain). Rollups are refused. Default: 1","schema":{"type":"string","description":"Chain ID: 1 (Ethereum), 137 (Polygon PoS) or 56 (BNB Smart Chain). Rollups are refused. Default: 1"}}]}},"/x402/v2/swiss-company-data":{"get":{"tags":["x402"],"summary":"Swiss Company Data (x402)","description":"Look up Swiss company data from the Zefix PublicREST API (Federal Office of Justice). Accepts UID (e.g. CHE-101.602.521), EHRAID, or fuzzy company name.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"uid":"CHE105805977","ch_id":null,"canton":"VD","ehraid":218570,"status":"ACTIVE","address":"Avenue Nestlé 55, 1800 Vevey","purpose":null,"legal_form":"Association","data_source":"Zefix, Federal Office of Justice, Switzerland","company_name":"Nestlé SA","municipality":"Vevey","data_source_url":"https://www.zefix.admin.ch/","data_attribution":"Data from Zefix, Federal Office of Justice, Switzerland","registration_date":null},"properties":{"uid":{"type":"string"},"ch_id":{"type":"integer"},"canton":{"type":"string"},"ehraid":{"type":"integer"},"status":{"type":"string"},"address":{"type":"string"},"purpose":{"type":"string"},"legal_form":{"type":"string"},"vat_number":{"type":["string","null"]},"data_source":{"type":"string"},"company_name":{"type":"string"},"municipality":{"type":"string"},"deletion_date":{"type":"string"},"legal_form_id":{"type":"integer"},"data_source_url":{"type":"string"},"data_attribution":{"type":"string"},"registration_date":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"uid","in":"query","required":false,"description":"Swiss UID (CHE-xxx.xxx.xxx) or EHRAID","schema":{"type":"string","description":"Swiss UID (CHE-xxx.xxx.xxx) or EHRAID"}},{"name":"company_name","in":"query","required":false,"description":"Company name. Zefix matches diacritics literally, so use the exact registered spelling (e.g. \"Nestlé\"). Accepted only on a confident name match.","schema":{"type":"string","description":"Company name. Zefix matches diacritics literally, so use the exact registered spelling (e.g. \"Nestlé\"). Accepted only on a confident name match."}}]}},"/x402/v2/link-extract":{"get":{"tags":["x402"],"summary":"Link Extract (x402)","description":"Extract all links from a page with context. Filter by internal/external. Returns URL, anchor text, rel attributes.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"links":[],"filter":"both","source_url":"https://strale.dev","total_links":0},"properties":{"links":{"type":"array"},"source_url":{"type":"string"},"total_links":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to extract links from","schema":{"type":"string","description":"URL to extract links from"}},{"name":"filter","in":"query","required":false,"description":"internal, external, or both (default)","schema":{"type":"string","description":"internal, external, or both (default)"}}]}},"/x402/v2/dockerfile-generate":{"get":{"tags":["x402"],"summary":"Dockerfile Generate (x402)","description":"Generate optimized, production-ready Dockerfiles. Multi-stage builds, Alpine base, non-root user, layer caching. Supports Node, Python, Go, Rust, Java.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"stages":["dependencies","builder","runtime"],"language":"en","framework":"express","build_args":[],"dockerfile":"# Stage 1: Dependencies\nFROM node:18-alpine AS dependencies\nWORKDIR /app\nCOPY package*.json ./\nRUN npm ci --only=production && npm cache clean --force\n\n# Stage 2: Builder\nFROM node:18-alpine AS builder\nWORKDIR /app\nCOPY package*.json ./\nRUN npm ci\nCOPY . .\nRUN npm run build --if-present\n\n# Stage 3: Runtime\nFROM node:18-alpine AS runtime\nWORKDIR /app\n\n# Install dumb-init for proper signal handling\nRUN apk add --no-cache dumb-init\n\n# Create non-root user\nRUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001\n\n# Copy production dependencies from dependencies stage\nCOPY --from=dependencies --chown=nodejs:nodejs /app/node_modules ./node_modules\n\n# Copy application code from builder stage\nCOPY --from=builder --chown=nodejs:nodejs /app/package*.json ./\nCOPY --from=builder --chown=nodejs:nodejs /app/dist ./dist\nCOPY --from=builder --chown=nodejs:nodejs /app/public ./public\n\n# Switch to non-root user\nUSER nodejs\n\n# Expose port\nEXPOSE 3000\n\n# Healthcheck\nHEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \\\n  CMD node -e \"require('http').get('http://localhost:3000/health', (r) => {if (r.statusCode !== 200) throw new Error(r.statusCode)})\"\n\n# Use dumb-init to handle signals properly\nENTRYPOINT [\"dumb-init\", \"--\"]\n\n# Start application\nCMD [\"node\", \"dist/index.js\"]","multi_stage":true,"security_notes":["Non-root user (nodejs:1001) runs the application","Multi-stage build reduces final image size by excluding dev dependencies","Alpine Linux base image minimizes attack surface","dumb-init handles PID 1 and signal forwarding correctly","Only production dependencies copied to final stage","Read-only filesystem recommended in production via security context","No package manager or build tools in final image","HEALTHCHECK validates application responsiveness"],"estimated_image_size":"120-150MB","dockerignore_recommended":["node_modules","npm-debug.log",".git",".gitignore",".env",".env.local",".DS_Store","dist","build",".next","coverage",".nyc_output","*.log",".vscode",".idea","*.swp","*.swo","*~",".eslintcache","yarn-error.log",".npm",".eslintignore","README.md","LICENSE",".editorconfig","docker-compose*.yml","Dockerfile*",".dockerignore",".github",".gitlab-ci.yml",".circleci","test","tests","jest.config.js","vitest.config.js",".mocharc.json"]},"properties":{"stages":{"type":"array"},"dockerfile":{"type":"string"},"security_notes":{"type":"array"},"estimated_image_size":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"alpine","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"language","in":"query","required":true,"schema":{"type":"string"}},{"name":"framework","in":"query","required":false,"schema":{"type":"string"}},{"name":"multi_stage","in":"query","required":false,"schema":{"type":"boolean"}}]}},"/x402/v2/timezone-meeting-find":{"get":{"tags":["x402"],"summary":"Timezone Meeting Finder (x402)","description":"Find optimal meeting times across time zones. Returns ranked slots by fairness, with local times for each participant. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"timezones":[{"timezone":"Europe/Stockholm","utc_offset":"UTC+01:00"},{"timezone":"America/New_York","utc_offset":"UTC-04:00"},{"timezone":"Asia/Tokyo","utc_offset":"UTC+09:00"}],"optimal_slots":[],"preferred_hours":"09:00-17:00","duration_minutes":60,"total_viable_slots":0},"properties":{"timezones":{"type":"array"},"optimal_slots":{"type":"array"},"total_viable_slots":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"timezones","in":"query","required":true,"description":"List of IANA timezone names","schema":{"type":"array","description":"List of IANA timezone names"}},{"name":"preferred_hours","in":"query","required":false,"description":"Preferred hours (e.g. 09:00-17:00)","schema":{"type":"string","description":"Preferred hours (e.g. 09:00-17:00)"}},{"name":"duration_minutes","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/au-company-data":{"get":{"tags":["x402"],"summary":"Australian Company Data (ABR) (x402)","description":"Look up Australian company data from the Australian Business Register (ABR). Accepts an ABN (11 digits). Returns entity name, status, type, GST registration, and address details. Free government API — fast and reliable.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"abn":"51824753556","acn":null,"state":"NSW","status":"Active","postcode":"2640","data_source":"Australian Business Register (ABR)","entity_type":"Commonwealth Government Entity","company_name":"AUSTRALIAN TAXATION OFFICE","last_updated":"1999-11-01","retrieved_at":"2026-03-20T10:00:00.000Z","business_names":null,"gst_registered":true,"data_source_url":"https://abr.business.gov.au/"},"properties":{"abn":{"type":"string"},"acn":{"type":"string"},"state":{"type":"string"},"status":{"type":"string"},"postcode":{"type":"string"},"vat_number":{"type":["string","null"]},"data_source":{"type":"string"},"entity_type":{"type":"string"},"company_name":{"type":"string"},"last_updated":{"type":"string"},"retrieved_at":{"type":"string"},"business_names":{"type":"array","items":{"type":"string"}},"gst_registered":{"type":"boolean"},"data_source_url":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"abn","in":"query","required":true,"description":"Australian Business Number (11 digits)","schema":{"type":"string","description":"Australian Business Number (11 digits)"}}]}},"/x402/v2/sitemap-parse":{"get":{"tags":["x402"],"summary":"Sitemap Parse (x402)","description":"Fetch and parse a website's XML sitemap. Returns URL count, top path segments, lastmod dates, and sample URLs.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://strale.dev/sitemap.xml","type":"urlset","total_urls":433,"has_lastmod":true,"sample_urls":[{"loc":"https://strale.dev/","lastmod":"2026-04-02","priority":"1.0","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities","lastmod":"2026-04-02","priority":"0.9","changefreq":"daily"},{"loc":"https://strale.dev/solutions","lastmod":"2026-04-02","priority":"0.9","changefreq":"weekly"},{"loc":"https://strale.dev/trust","lastmod":"2026-04-02","priority":"0.8","changefreq":"weekly"},{"loc":"https://strale.dev/pricing","lastmod":"2026-04-02","priority":"0.8","changefreq":"monthly"},{"loc":"https://strale.dev/docs","lastmod":"2026-04-02","priority":"0.8","changefreq":"weekly"},{"loc":"https://strale.dev/signup","lastmod":"2026-04-02","priority":"0.7","changefreq":"monthly"},{"loc":"https://strale.dev/security","lastmod":"2026-04-02","priority":"0.7","changefreq":"monthly"},{"loc":"https://strale.dev/capabilities/linkedin-url-validate","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities/job-board-search","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities/protocol-tvl-lookup","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities/vasp-non-compliant-check","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities/vasp-verify","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities/gas-price-check","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities/dockerfile-generate","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities/image-resize","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities/base64-encode-url","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities/sanctions-check","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities/ted-procurement","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"},{"loc":"https://strale.dev/capabilities/charity-lookup-uk","lastmod":"2026-04-02","priority":"0.6","changefreq":"weekly"}],"has_priority":true,"has_changefreq":true,"newest_lastmod":"2026-04-02","oldest_lastmod":"2026-04-02","top_path_segments":[{"count":274,"segment":"capabilities"},{"count":102,"segment":"solutions"},{"count":51,"segment":"learn"},{"count":1,"segment":"/"},{"count":1,"segment":"trust"},{"count":1,"segment":"pricing"},{"count":1,"segment":"docs"},{"count":1,"segment":"signup"},{"count":1,"segment":"security"}]},"properties":{"type":{"type":"string"},"total_urls":{"type":"integer"},"sample_urls":{"type":"array"},"top_path_segments":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/ens-resolve":{"get":{"tags":["x402"],"summary":"ENS Resolve (x402)","description":"Resolve an ENS name to its Ethereum address. Supports all ENS names including .eth, DNS names on ENS, and subdomains. Also returns avatar URL and resolver contract.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"name":"thisdoesnotexist99999.eth","address":null,"resolved":false,"resolver":null,"avatar_url":null},"properties":{"name":{"type":"string"},"address":{"type":"string"},"resolved":{"type":"boolean"},"avatar_url":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name","in":"query","required":true,"description":"ENS name to resolve (e.g., 'vitalik.eth')","schema":{"type":"string","description":"ENS name to resolve (e.g., 'vitalik.eth')"}}]}},"/x402/v2/pep-check":{"get":{"tags":["x402"],"summary":"PEP Check (x402)","description":"Screens an individual against the Politically Exposed Persons (PEP) database via Dilisense. Coverage spans 230+ geopolitical territories aligned with EU C/2023/724 PEP function definitions and includes Relatives and Close Associates (RCAs). Returns audit-grade evidence: match results with classification, position history, jurisdictions, and named source attribution.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"Angela Merkel","is_pep":true,"source":"dilisense","matches":[{"name":"Angela Dorothea Merkel","datasets":["dilisense_pep"],"countries":["DE"],"entity_id":"dilisense_pep","positions":["Chancellor of Germany","Member of the Bundestag"],"classification":"head_of_state","last_updated_at":null}],"match_count":1,"screened_at":"2026-04-27T13:00:00.000Z","lists_queried":{"version":null,"collection":"dilisense/consolidated-pep","major_lists":["EU C/2023/724 — Member-State PEP function definitions","DE Bundestag, Bundesrat, Bundespräsident, Bundesbank, state-owned enterprises","(plus 228+ national parliament/government/central-bank/judiciary sources)"],"source_count":230,"freshness_note":"Dilisense PEP coverage spans 230+ geopolitical territories and aligns with EU C/2023/724 PEP function definitions. The publisher refreshes the index multiple times daily; per-list timestamps are not exposed via the screening API.","last_updated_at":null,"source_catalog_url":"https://dilisense.com/en/sources/politically-exposed-persons-list"},"total_results":1,"country_filter":"DE","birth_date_filter":"1954-07-17"},"properties":{"query":{"type":"string"},"is_pep":{"type":"boolean"},"source":{"enum":["dilisense"],"type":"string"},"matches":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"datasets":{"type":"array"},"countries":{"type":"array"},"entity_id":{"type":"string"},"positions":{"type":"array"},"classification":{"type":["string","null"],"description":"Dilisense pep_type passthrough (EU C/2023/724 function type when present)"},"last_updated_at":{"type":["string","null"]}}}},"match_count":{"type":"integer"},"screened_at":{"type":"string"},"lists_queried":{"type":"object","properties":{"version":{"type":["string","null"]},"collection":{"type":"string"},"major_lists":{"type":"array"},"source_count":{"type":"integer"},"freshness_note":{"type":"string"},"last_updated_at":{"type":["string","null"]},"source_catalog_url":{"type":"string"}}},"total_results":{"type":"integer"},"country_filter":{"type":["string","null"]},"birth_date_filter":{"type":["string","null"]}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name","in":"query","required":true,"description":"Full name of person to screen","schema":{"type":"string","description":"Full name of person to screen"}},{"name":"country","in":"query","required":false,"description":"ISO country code filter (optional)","schema":{"type":"string","description":"ISO country code filter (optional)"}},{"name":"birth_date","in":"query","required":false,"description":"Alias for date_of_birth (optional)","schema":{"type":"string","format":"date","description":"Alias for date_of_birth (optional)"}},{"name":"date_of_birth","in":"query","required":false,"description":"ISO date of birth (YYYY-MM-DD) for disambiguation, reduces false positives on common names (optional)","schema":{"type":"string","format":"date","description":"ISO date of birth (YYYY-MM-DD) for disambiguation, reduces false positives on common names (optional)"}}]}},"/x402/v2/swedish-company-data":{"get":{"tags":["x402"],"summary":"Swedish Company Data (x402)","description":"Look up Swedish company registry data via Bolagsverket's Värdefulla datamängder API. Returns name, legal form, status, registered address, SNI industry codes, registration date, and ongoing insolvency/liquidation procedures.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"active","is_active":true,"sni_codes":[{"code":"60100","description":"Radiosändning och distribution av ljudinspelningar"}],"legal_form":"Övriga aktiebolag","org_number":"556703-7485","vat_number":"SE556703748501","company_name":"Spotify AB","company_type":"Aktiebolag","country_code":"SE","legal_form_code":"49","registered_date":"2006-05-10","alternative_names":[],"company_type_code":"AB","deregistered_date":null,"ongoing_procedures":[],"registered_address":{"city":"STOCKHOLM","street":"Regeringsgatan 19","country":"Sverige","co_address":null,"postal_code":"11153"},"business_description":"Bolaget har till föremål för sin verksamhet att bedriva Internetrelaterade tjänster...","deregistration_reason":null},"properties":{"status":{"enum":["active","deregistered","unknown"],"type":"string"},"is_active":{"type":["boolean","null"]},"sni_codes":{"type":"array"},"legal_form":{"type":["string","null"]},"org_number":{"type":"string"},"vat_number":{"type":"string"},"company_name":{"type":"string"},"company_type":{"type":"string"},"country_code":{"type":"string"},"legal_form_code":{"type":["string","null"]},"registered_date":{"type":["string","null"]},"alternative_names":{"type":"array"},"company_type_code":{"type":"string"},"deregistered_date":{"type":["string","null"]},"ongoing_procedures":{"type":"array"},"registered_address":{"type":["object","null"]},"business_description":{"type":["string","null"]},"deregistration_reason":{"type":["string","null"]}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"org_number","in":"query","required":true,"description":"Swedish organisationsnummer (10 digits, e.g. 556703-7485)","schema":{"type":"string","description":"Swedish organisationsnummer (10 digits, e.g. 556703-7485)"}}]}},"/x402/v2/json-schema-validate":{"get":{"tags":["x402"],"summary":"JSON Schema Validate (x402)","description":"Validate a JSON object against a JSON Schema. Returns validation result with detailed error paths and messages. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"errors":[],"error_count":0},"properties":{"valid":{"type":"boolean"},"errors":{"type":"array"},"error_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"data","in":"query","required":true,"description":"JSON data to validate","schema":{"description":"JSON data to validate"}},{"name":"schema","in":"query","required":true,"description":"JSON Schema to validate against","schema":{"type":"object","description":"JSON Schema to validate against"}}]}},"/x402/v2/skill-gap-analyze":{"get":{"tags":["x402"],"summary":"Skill Gap Analyze (x402)","description":"Compare required skills against candidate skills with fuzzy matching. Returns matched, missing, extra, and match score.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"extra":[],"matched":[{"exact":true,"found":"test","required":"test"}],"missing":[],"summary":"All required skills are matched by the candidate.","fuzzy_matches":[],"total_required":1,"total_candidate":1,"match_score_percent":100},"properties":{"extra":{"type":"array"},"matched":{"type":"array"},"missing":{"type":"array"},"match_score_percent":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"required_skills","in":"query","required":true,"schema":{"type":"array"}},{"name":"candidate_skills","in":"query","required":true,"schema":{"type":"array"}}]}},"/x402/v2/invoice-validate":{"post":{"tags":["x402"],"summary":"Invoice Validate (x402)","description":"Validate invoice data: VAT number format, line item math, tax calculations, EU compliance requirements.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":false,"errors":[{"field":"invoice_number","issue":"Required field 'invoice_number' is missing."},{"field":"invoice_date","issue":"Required field 'invoice_date' is missing."},{"field":"vendor_vat","issue":"Required field 'vendor_vat' is missing."},{"field":"vendor_name","issue":"Required field 'vendor_name' is missing."},{"field":"vendor_address","issue":"Required field 'vendor_address' is missing."},{"field":"line_items","issue":"Required field 'line_items' is missing."},{"field":"amounts","issue":"Required field 'amounts' is missing."}],"warnings":[{"field":"buyer_name","issue":"Recommended field 'buyer_name' is missing for full EU compliance."},{"field":"buyer_vat","issue":"Recommended field 'buyer_vat' is missing for full EU compliance."},{"field":"buyer_address","issue":"Recommended field 'buyer_address' is missing for full EU compliance."},{"field":"due_date","issue":"Recommended field 'due_date' is missing for full EU compliance."},{"field":"currency","issue":"Recommended field 'currency' is missing for full EU compliance."}],"eu_compliant":false,"line_items_check":{"failed":0,"passed":0,"total_checked":0},"tax_calculation_check":{"pass":true,"actual_tax":null,"difference":null,"expected_tax":null}},"properties":{"valid":{"type":"boolean"},"errors":{"type":"array"},"warnings":{"type":"array"},"eu_compliant":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["invoice"],"properties":{"invoice":{"type":"object","description":"Invoice JSON with vendor_vat, buyer_vat, amounts, line_items"}}}}}}}},"/x402/v2/work-permit-requirements":{"get":{"tags":["x402"],"summary":"Work Permit Requirements (x402)","description":"Check work permit requirements by nationality and destination. Covers EU free movement, Schengen, Nordic rules.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"notes":[],"purpose":"work","eu_citizen":false,"source_url":null,"destination":"TEST_VALUE","nationality":"TEST_VALUE","permit_type":"none","free_movement":true,"max_stay_days":null,"visa_required":false,"destination_name":"TEST_VALUE","nationality_name":"TEST_VALUE","requirements_summary":"TEST_VALUE citizens have the right to work in their own country.","eu_blue_card_eligible":false},"properties":{"permit_type":{"type":"string"},"free_movement":{"type":"boolean"},"visa_required":{"type":"boolean"},"eu_blue_card_eligible":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"purpose","in":"query","required":false,"schema":{"type":"string"}},{"name":"destination","in":"query","required":true,"description":"Country code","schema":{"type":"string","description":"Country code"}},{"name":"nationality","in":"query","required":true,"description":"Country code","schema":{"type":"string","description":"Country code"}}]}},"/x402/v2/translate":{"get":{"tags":["x402"],"summary":"Translate Text (x402)","description":"Translate text between languages. Auto-detects source language. Supports all major languages. Returns translated text with confidence.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"confidence":"high","source_language":"en","target_language":"en","translated_text":"This is a test input for automated capability testing."},"properties":{"confidence":{"type":"string"},"source_language":{"type":"string"},"target_language":{"type":"string"},"translated_text":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"text","in":"query","required":true,"description":"Text to translate","schema":{"type":"string","description":"Text to translate"}},{"name":"source_language","in":"query","required":false,"description":"Source language (optional, auto-detected)","schema":{"type":"string","description":"Source language (optional, auto-detected)"}},{"name":"target_language","in":"query","required":true,"description":"Target language (e.g. English, Swedish, French)","schema":{"type":"string","description":"Target language (e.g. English, Swedish, French)"}}]}},"/x402/v2/redirect-trace":{"get":{"tags":["x402"],"summary":"Redirect Trace (x402)","description":"Trace the full HTTP redirect chain for a URL. Shows each hop with status code, location header, server, and latency.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"chain":[{"url":"https://httpbin.org/redirect/2","step":1,"server":"gunicorn/19.9.0","location":"/relative-redirect/1","latency_ms":17,"status_code":302,"status_text":"FOUND"},{"url":"https://httpbin.org/relative-redirect/1","step":2,"server":"gunicorn/19.9.0","location":"/get","latency_ms":4,"status_code":302,"status_text":"FOUND"},{"url":"https://httpbin.org/get","step":3,"server":"gunicorn/19.9.0","location":null,"latency_ms":5,"status_code":200,"status_text":"OK"}],"issues":[],"final_url":"https://httpbin.org/get","uses_https":true,"same_domain":true,"original_url":"https://httpbin.org/redirect/2","redirect_count":2,"total_latency_ms":26,"final_status_code":200},"properties":{"chain":{"type":"array"},"issues":{"type":"array"},"final_url":{"type":"string"},"original_url":{"type":"string"},"redirect_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"max_redirects","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/protocol-tvl-lookup":{"get":{"tags":["x402"],"summary":"Protocol TVL Lookup (x402)","description":"Get the current Total Value Locked (TVL), chain distribution, category, audit status, and metadata for any DeFi protocol. Covers 7,000+ protocols across 500+ chains via DeFi Llama.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://aave.com","name":"Aave V3","slug":"aave-v3","audits":2,"chains":["Fantom","Harmony","Base","Avalanche","Soneium","Scroll","Ethereum","Metis","Arbitrum","Binance","MegaETH","Sonic","Plasma","Optimism","Celo","Mantle","Linea","xDai","zkSync Era","Polygon","X Layer"],"github":[],"symbol":"AAVE","tvl_usd":23352261394,"twitter":"aave","category":"Lending","chain_tvls":{"Base":707862049,"Celo":10691092,"xDai":63524255,"Linea":45262753,"Metis":542728,"Sonic":11482126,"Fantom":3646,"Mantle":547803793,"Plasma":1429883904,"Scroll":6733463,"Binance":179301495,"Harmony":0,"MegaETH":22645982,"Polygon":142978163,"Soneium":462151,"X Layer":88377,"Arbitrum":733702906,"Ethereum":19017359023,"Optimism":53605103,"Avalanche":376136796,"zkSync Era":2191578},"audit_links":["https://aave.com/security"],"description":"Earn interest, borrow assets, and build applications","listed_since":"2022-04-01T01:34:37.000Z","is_open_source":false,"tvl_change_1d_pct":null,"tvl_change_7d_pct":null},"properties":{"url":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"audits":{"type":"number"},"chains":{"type":"array"},"tvl_usd":{"type":"number"},"twitter":{"type":"string"},"category":{"type":"string"},"audit_links":{"type":"array"},"listed_since":{"type":"string"},"is_open_source":{"type":"boolean"},"tvl_change_1d_pct":{"type":"number"},"tvl_change_7d_pct":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"protocol","in":"query","required":true,"description":"Protocol name or DeFi Llama slug (e.g., 'aave', 'uniswap', 'compound')","schema":{"type":"string","description":"Protocol name or DeFi Llama slug (e.g., 'aave', 'uniswap', 'compound')"}}]}},"/x402/v2/skill-extract":{"get":{"tags":["x402"],"summary":"Skill Extract (x402)","description":"Extract skills from job descriptions or CVs. Categorizes 500+ skills into technical, soft skills, tools, certifications, languages.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"tools":[],"languages":[],"soft_skills":[],"certifications":[],"technical_skills":[],"seniority_signals":[],"total_skills_found":0,"experience_levels_mentioned":[]},"properties":{"tools":{"type":"array"},"languages":{"type":"array"},"soft_skills":{"type":"array"},"certifications":{"type":"array"},"technical_skills":{"type":"array"},"seniority_signals":{"type":"array"},"total_skills_found":{"type":"integer"},"experience_levels_mentioned":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"text","in":"query","required":true,"description":"Job description or CV text","schema":{"type":"string","description":"Job description or CV text"}}]}},"/x402/v2/tool-call-validate":{"get":{"tags":["x402"],"summary":"Tool Call Validate (x402)","description":"Validate an LLM tool call against a JSON Schema. Auto-fixes type mismatches (string '42' → number 42). Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"errors":[],"tool_name":"test","error_count":0,"corrected_input":null,"corrections_applied":null},"properties":{"valid":{"type":"boolean"},"errors":{"type":"array"},"corrected_input":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"tool_name","in":"query","required":true,"schema":{"type":"string"}},{"name":"tool_input","in":"query","required":true,"schema":{"type":"object"}},{"name":"expected_schema","in":"query","required":true,"schema":{"type":"object"}}]}},"/x402/v2/url-to-text":{"get":{"tags":["x402"],"summary":"URL to Text (x402)","description":"Lightweight text extraction from URL. No JS rendering — just HTTP GET + HTML parse. Fast and cheap for most content sites.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://strale.dev","text":"Strale — Trust and Quality Infrastructure for AI Agents","title":"Strale — Trust and Quality Infrastructure for AI Agents","language":"en","meta_description":"Your agent calls strale.do() and gets company data, compliance checks, financial validation — structured JSON with audit trails. 250+ capabilities, one API key."},"properties":{"text":{"type":"string"},"title":{"type":"string"},"language":{"type":"string"},"meta_description":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to extract text from","schema":{"type":"string","description":"URL to extract text from"}}]}},"/x402/v2/fake-data-generate":{"get":{"tags":["x402"],"summary":"Fake Data Generate (x402)","description":"Generate realistic fake data matching a schema. Locale-aware: Swedish names for 'sv', Japanese for 'ja'. Up to 1000 records.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"USR-2024-7834","city":"Portland","email":"marcus.chen@techmail.com","phone":"+1-415-628-3947","state":"OR","address":"742 Maple Street","zipCode":"97214","lastName":"Chen","firstName":"Marcus","dateOfBirth":"1987-03-15","accountStatus":"active","lastLoginDate":"2024-12-18","registrationDate":"2023-11-22"}],"locale":"","schema_used":"json_schema","record_count":1},"properties":{"data":{"type":"array"},"locale":{"type":"string"},"record_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer"}},{"name":"fields","in":"query","required":false,"description":"Array of {name, type}","schema":{"type":"array","description":"Array of {name, type}"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string"}},{"name":"schema","in":"query","required":false,"description":"JSON Schema","schema":{"type":"object","description":"JSON Schema"}}]}},"/x402/v2/wallet-age-check":{"get":{"tags":["x402"],"summary":"Wallet Age Check (x402)","description":"Check when a wallet was first active on Ethereum, Base, Arbitrum, Optimism or Polygon: the earliest transfer to or from it, and its age in days. A new wallet moving large amounts is a red flag.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"address":"0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe","age_days":3890,"chain_id":"1","has_activity":true,"first_tx_date":"2015-08-08T15:44:00.000Z","first_tx_hash":"0x9c81f44c29ff0226f835cd0a8a2f2a7eca6db52a711f8211b566fd15d3e0e8d4"},"properties":{"address":{"type":"string"},"age_days":{"type":"number"},"chain_id":{"type":"string"},"has_activity":{"type":"boolean"},"first_tx_date":{"type":"string"},"first_tx_hash":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address (0x...)","schema":{"type":"string","description":"Wallet address (0x...)"}},{"name":"chain_id","in":"query","required":false,"description":"Chain ID: 1 (Ethereum), 8453 (Base), 42161 (Arbitrum One), 10 (OP Mainnet) or 137 (Polygon PoS). Default: 1","schema":{"type":"string","description":"Chain ID: 1 (Ethereum), 8453 (Base), 42161 (Arbitrum One), 10 (OP Mainnet) or 137 (Polygon PoS). Default: 1"}}]}},"/x402/v2/commit-message-generate":{"get":{"tags":["x402"],"summary":"Commit Message Generate (x402)","description":"Generate conventional commit messages from git diffs or change descriptions. Returns subject, body, type, scope.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"body":null,"type":"test","scope":null,"subject":"test: add or update test cases","conventional":"test: test: add or update test cases","full_message":"test: test: add or update test cases","files_summary":"Test files modified or added","breaking_change":false},"properties":{"body":{"type":"string"},"type":{"type":"string"},"subject":{"type":"string"},"conventional":{"type":"string"},"full_message":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"diff","in":"query","required":true,"schema":{"type":"string"}},{"name":"style","in":"query","required":false,"description":"conventional/angular/simple","schema":{"type":"string","description":"conventional/angular/simple"}}]}},"/x402/v2/gdpr-fine-lookup":{"get":{"tags":["x402"],"summary":"GDPR Fine Lookup (x402)","description":"Look up GDPR enforcement fines by company name or country. Returns fine amounts, authorities, articles violated.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"fines":[{"date":null,"company":"Meta Platforms Ireland Limited","country":"IE","authority":"Irish DPA (DPC)","amount_eur":1200000000,"description":"Unlawfully transferring personal data to the United States","article_violated":null}],"total_fines":1,"total_amount_eur":1200000000},"properties":{"fines":{"type":"array"},"total_fines":{"type":"number"},"total_amount_eur":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"company","in":"query","required":false,"schema":{"type":"string"}},{"name":"country_code","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/web-extract":{"post":{"tags":["x402"],"summary":"Web Page Data Extraction (x402)","description":"Extract structured data from any web page with full JavaScript rendering. Handles SPAs, dynamic content, and pages that require JS to load.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"data":{"url":"https://example.com","links":[{"url":null,"text":"Learn more"}],"title":"Example Domain","headings":[{"text":"Example Domain","level":1}],"paragraphs":[{"text":"This domain is for use in documentation examples without needing permission. Avoid use in operations."}],"main_content":"This domain is for use in documentation examples without needing permission. Avoid use in operations."},"page_title":"Example Domain","source_url":"https://example.com"},"properties":{"data":{"type":"object"},"page_title":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"URL to extract data from"},"extract":{"type":"string","description":"What data to extract (natural language)"}}}}}}}},"/x402/v2/academic-paper-search":{"post":{"tags":["x402"],"summary":"Academic Paper Search (x402)","description":"Search 250M+ scholarly works via OpenAlex: title, DOI, authors, venue, citation count, open-access PDF link and abstract. Filter by year and open access.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"large language models","papers":[{"doi":"https://doi.org/10.1016/j.lindif.2023.102274","type":"article","title":"ChatGPT for good? On opportunities and challenges of large language models for education","venue":"Learning and Individual Differences","authors":["Enkelejda Kasneci"],"abstract":null,"openalex_id":"https://openalex.org/W4323655724","cited_by_count":6326,"is_open_access":true,"open_access_url":"https://epub.ub.uni-muenchen.de/125071/1/ChatGPT_for_Good_v3.pdf","landing_page_url":"https://doi.org/10.1016/j.lindif.2023.102274","publication_date":"2023-03-09","publication_year":2023}],"returned":1,"total_results":4370190},"properties":{"query":{"type":"string"},"papers":{"type":"array"},"returned":{"type":"number"},"total_results":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"sort":{"type":"string","description":"relevance (default), cited (most cited first) or date (newest first)"},"limit":{"type":"integer","description":"Results to return, 1-25. Default: 10"},"query":{"type":"string","description":"Free-text search (title, abstract, full text). At least 2 characters."},"year_to":{"type":"integer","description":"Latest publication year (inclusive)"},"year_from":{"type":"integer","description":"Earliest publication year (inclusive)"},"open_access_only":{"type":"boolean","description":"Only return works with a free full-text copy"}}}}}}}},"/x402/v2/austrian-company-data":{"get":{"tags":["x402"],"summary":"Austrian Company Data (x402)","description":"Official Austrian Firmenbuch lookup via the JustizOnline HVD API: company core data, current officers, and registry legal facts, by Firmenbuchnummer or name.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"euid":"ATBRA.093363-000","seat":"Wien","court":"Handelsgericht Wien","status":"active","homepage":"www.omv.com","directors":["Beispiel-Prokuristin Dr. Anna Muster (EXAMPLE)"],"is_active":true,"court_code":"007","legal_form":"Aktiengesellschaft","legal_name":"OMV Aktiengesellschaft","legal_facts":[],"status_note":null,"company_name":"OMV Aktiengesellschaft","country_code":"AT","resolved_via":"registration_number","source_as_of":"2026-08-27T21:03:11.284+02:00","legal_form_code":"AG","source_checksum":"AE5C3FA050D3B445A9488BF39C4CA3EE","tier_2_available":true,"ubo_availability":"unavailable_no_registry","date_incorporated":"1944-03-10","registered_address":"Trabrennstraße 6-8, 1020 Wien","registration_number":"FN 93363 z","first_registered_date":"1944-03-10","legal_representatives":[{"name":"Beispiel-Prokuristin Dr. Anna Muster (EXAMPLE)","role":"PROKURIST/IN","type":"person","role_code":"PR","role_group":"management","start_date":"2023-03-15","date_of_birth":"1970-12-16","representation":"vertritt seit 15.03.2023 gemeinsam mit einem Vorstandsmitglied oder einer/einem weiteren Prokuristin/Prokuristen"}],"primary_registration_id":"FN 93363 z","tier_2_available_reason":"Current officers (role, representation authority, start date) extracted from the Firmenbuch Kurzinformation extract.","ubo_availability_reason":"Austrian UBO data lives in the WiEReg, which has no free public API; access requires a paid BMF account.","total_legal_representatives":10,"historical_registration_number":"HRB 29493"},"properties":{"euid":{"type":["string","null"]},"seat":{"type":["string","null"]},"court":{"type":["string","null"]},"status":{"enum":["active","dissolved"],"type":"string"},"homepage":{"type":["string","null"]},"directors":{"type":"array"},"is_active":{"type":"boolean"},"court_code":{"type":["string","null"]},"legal_form":{"type":["string","null"]},"legal_name":{"type":"string"},"legal_facts":{"type":"array"},"status_note":{"type":["string","null"]},"company_name":{"type":"string"},"country_code":{"type":"string"},"resolved_via":{"enum":["registration_number","company_name"],"type":"string"},"source_as_of":{"type":["string","null"]},"legal_form_code":{"type":["string","null"]},"source_checksum":{"type":["string","null"]},"tier_2_available":{"type":"boolean"},"ubo_availability":{"type":"string"},"date_incorporated":{"type":["string","null"]},"registered_address":{"type":["string","null"]},"registration_number":{"type":"string"},"first_registered_date":{"type":["string","null"]},"legal_representatives":{"type":"array"},"primary_registration_id":{"type":"string"},"tier_2_available_reason":{"type":"string"},"ubo_availability_reason":{"type":"string"},"total_legal_representatives":{"type":"integer"},"historical_registration_number":{"type":["string","null"]}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"company_name","in":"query","required":false,"description":"Company name for a registry search. Must resolve to exactly one Firmenbuch entry; ambiguous names return a candidate list and require a follow-up call with registration_number.","schema":{"type":"string","description":"Company name for a registry search. Must resolve to exactly one Firmenbuch entry; ambiguous names return a candidate list and require a follow-up call with registration_number."}},{"name":"registration_number","in":"query","required":false,"description":"Austrian Firmenbuchnummer, up to 6 digits plus a check letter (e.g. \"FN 93363 z\" or \"93363z\").","schema":{"type":"string","description":"Austrian Firmenbuchnummer, up to 6 digits plus a check letter (e.g. \"FN 93363 z\" or \"93363z\")."}}]}},"/x402/v2/ted-procurement":{"get":{"tags":["x402"],"summary":"EU Procurement Tender Search (x402)","description":"Search EU public procurement tenders on TED (Tenders Electronic Daily). Filter by keyword, country, and CPV code. Returns tender titles, authorities, values, deadlines, and links.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.540000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":{"country":"US","keyword":"test","cpv_code":null},"tenders":[],"result_count":0},"properties":{"query":{"type":"object"},"tenders":{"type":"array"},"result_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"country","in":"query","required":false,"description":"ISO country code filter (e.g. SE, DE)","schema":{"type":"string","description":"ISO country code filter (e.g. SE, DE)"}},{"name":"keyword","in":"query","required":true,"description":"Search keyword for tenders","schema":{"type":"string","description":"Search keyword for tenders"}},{"name":"cpv_code","in":"query","required":false,"description":"CPV code filter","schema":{"type":"string","description":"CPV code filter"}}]}},"/x402/v2/exchange-rate":{"get":{"tags":["x402"],"summary":"Exchange Rate (x402)","description":"Get current exchange rate between two currencies using ECB data. Supports all major currencies. Returns rate, inverse rate, and date.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"to":"EUR","date":"2026-03-06","from":"USD","rate":0.864977,"inverse_rate":1.1561},"properties":{"to":{"type":"string"},"date":{"type":"string"},"from":{"type":"string"},"rate":{"type":"number"},"inverse_rate":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"to","in":"query","required":true,"description":"Target currency (ISO 4217, e.g. EUR)","schema":{"type":"string","description":"Target currency (ISO 4217, e.g. EUR)"}},{"name":"from","in":"query","required":true,"description":"Source currency (ISO 4217, e.g. USD)","schema":{"type":"string","description":"Source currency (ISO 4217, e.g. USD)"}}]}},"/x402/v2/serp-analyze":{"get":{"tags":["x402"],"summary":"SERP Analyze (x402)","description":"Analyze Google search results for a keyword. Returns organic results, featured snippet, People Also Ask, SERP features.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"country":"us","keyword":"test","language":"en","top_domains":[{"domain":"speedtest.net","position":1},{"domain":"fast.com","position":2},{"domain":"merriam-webster.com","position":3},{"domain":"en.wikipedia.org","position":4},{"domain":"speed.measurementlab.net","position":5},{"domain":"testmy.net","position":6},{"domain":"link.springer.com","position":7},{"domain":"youtube.com","position":8},{"domain":"spectrum.com","position":9},{"domain":"imdb.com","position":10}],"serp_features":["people_also_ask","related_searches"],"total_results":null,"organic_results":[{"url":"https://www.speedtest.net/","title":"Speedtest by Ookla - The Global Broadband Speed Test","domain":"speedtest.net","snippet":"Speedtest is better with the app. Download the Speedtest app for more metrics, video testing, mobile coverage maps, and more. Get it on Google Play.","position":1},{"url":"https://fast.com/","title":"Fast.com: Internet Speed Test","domain":"fast.com","snippet":"How fast is your download speed? In seconds, FAST.com's simple Internet speed test will estimate your ISP speed.","position":2},{"url":"https://www.merriam-webster.com/dictionary/test","title":"TEST Definition & Meaning - Merriam-Webster","domain":"merriam-webster.com","snippet":"1. a : a means of testing: such as (1) : something (such as a series of questions or exercises) for measuring the skill, knowledge, intelligence, capacities, ...","position":3},{"url":"https://en.wikipedia.org/wiki/Test","title":"Test - Wikipedia","domain":"en.wikipedia.org","snippet":"Test(s), testing, or TEST may refer to: Test (assessment), an educational assessment intended to measure the respondents' knowledge or other abilities ...","position":4},{"url":"https://speed.measurementlab.net/","title":"Speed Test by Measurement Lab","domain":"speed.measurementlab.net","snippet":"Test Your Speed. M-Lab's Speed Test provides advanced diagnostics of the performance of your broadband connection through quick measurements.","position":5},{"url":"https://testmy.net/","title":"Internet Speed Test","domain":"testmy.net","snippet":"Accurately test your Internet connection speed with this powerful broadband speed test. Improve your bandwidth speed with the truth.","position":6},{"url":"https://link.springer.com/journal/11749","title":"TEST | Springer Nature Link","domain":"link.springer.com","snippet":"Journal TEST focuses on cutting-edge research in all areas of Statistics and Probability with significant theoretical, methodological, and applied impact.","position":7},{"url":"https://www.youtube.com/watch?v=q0zaEGbs-cE","title":"What is a Test? - YouTube","domain":"youtube.com","snippet":"This is the first video to provide a testing term explanation. It's the first and probably the biggest term of all. It sets the scene for ...","position":8},{"url":"https://www.spectrum.com/internet/speed-test","title":"Spectrum Internet Speed Test: Broadband Internet Speed Check","domain":"spectrum.com","snippet":"Test your broadband Internet and WiFi speed with the Internet Speed Test. Check your upload and download speeds for your home Internet network.","position":9},{"url":"https://www.imdb.com/title/tt2407380/","title":"Test (2013) - IMDb","domain":"imdb.com","snippet":"In 1985, a gay dance understudy hopes for his on-stage chance while fearing the growing AIDS epidemic.","position":10}],"people_also_ask":["What diseases can a blood test detect?","How do I pass a test?"],"featured_snippet":null,"related_searches":["Test speed","Internet speed test","Speed test WiFi","Ookla speed test","Mbps test","Run speed test","Fast speed test","Test 2"]},"properties":{"serp_features":{"type":"array"},"organic_results":{"type":"array"},"people_also_ask":{"type":"array"},"featured_snippet":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"country","in":"query","required":false,"description":"Market to analyse the SERP for, as an ISO 3166-1 alpha-2 code (SE), alpha-3 code (SWE), numeric code (752), or exact country name (Sweden). \"UK\" is accepted as an alias for GB. Unrecognised values are rejected before the search runs rather than silently ignored. Sent to Google as the gl parameter. Defaults to \"us\".","schema":{"type":"string","description":"Market to analyse the SERP for, as an ISO 3166-1 alpha-2 code (SE), alpha-3 code (SWE), numeric code (752), or exact country name (Sweden). \"UK\" is accepted as an alias for GB. Unrecognised values are rejected before the search runs rather than silently ignored. Sent to Google as the gl parameter. Defaults to \"us\"."}},{"name":"keyword","in":"query","required":true,"schema":{"type":"string"}},{"name":"language","in":"query","required":false,"description":"Language for results, as an ISO 639-1 code (\"en\"), optionally with a region (\"pt-BR\"). Validated for shape and rejected before the search runs if malformed, rather than silently ignored. Defaults to \"en\".","schema":{"type":"string","description":"Language for results, as an ISO 639-1 code (\"en\"), optionally with a region (\"pt-BR\"). Validated for shape and rejected before the search runs if malformed, rather than silently ignored. Defaults to \"en\"."}}]}},"/x402/v2/insolvency-check":{"get":{"tags":["x402"],"summary":"Insolvency Check (x402)","description":"Check if a company has any insolvency, bankruptcy, or winding-up proceedings. Currently covers UK (via Companies House). Returns status and key dates.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"Tesco PLC","data_source":"companies-house-uk","proceedings":[],"country_code":"GB","company_number":"00445790","supported_country":true,"has_insolvency_proceedings":false},"properties":{"found":{"type":"boolean","description":"Present on the UK path when name/number resolution was attempted. `false` indicates the company could not be resolved."},"data_source":{"type":["string","null"]},"proceedings":{"type":["array","null"],"description":"Array of proceedings on the success path (may be empty when the company is found but has no insolvency cases). Absent entirely on `found: false` and `supported_country: false` envelopes."},"supported_country":{"type":"boolean"},"has_insolvency_proceedings":{"type":["boolean","null"],"description":"Boolean on the success path (company resolved). Absent entirely on `found: false` and `supported_country: false` envelopes — discriminated runtime shape; check the discriminator before reading."}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"company_name","in":"query","required":true,"description":"Company name","schema":{"type":"string","description":"Company name"}},{"name":"country_code","in":"query","required":true,"description":"Country code (ISO 2-letter)","schema":{"type":"string","description":"Country code (ISO 2-letter)"}},{"name":"company_number","in":"query","required":false,"description":"Company registration number if known (optional)","schema":{"type":"string","description":"Company registration number if known (optional)"}}]}},"/x402/v2/summarize":{"get":{"tags":["x402"],"summary":"Summarize Text (x402)","description":"Summarize text into a concise format. Supports paragraph, bullet points, or one-sentence styles. Configurable max length.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"style":"conventional","summary":"This text is a brief test input designed for automated capability testing purposes.","key_points":["Text serves as a test input","Intended for automated capability testing","Brief and straightforward in nature"],"word_count":18,"detected_language":"English"},"properties":{"style":{"type":"string"},"summary":{"type":"string"},"key_points":{"type":"array"},"word_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"text","in":"query","required":true,"description":"Text to summarize","schema":{"type":"string","description":"Text to summarize"}},{"name":"style","in":"query","required":false,"description":"Summary style: paragraph, bullets, or one_sentence","schema":{"type":"string","description":"Summary style: paragraph, bullets, or one_sentence"}},{"name":"max_length","in":"query","required":false,"description":"Approximate max word count","schema":{"type":"integer","description":"Approximate max word count"}}]}},"/x402/v2/image-to-text":{"get":{"tags":["x402"],"summary":"Image to Text (OCR) (x402)","description":"OCR on any image via Claude vision. Works on screenshots, photos of documents, handwritten notes. Returns text with confidence.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"text":"","text_type":null,"confidence":"high","language_detected":null},"properties":{"text":{"type":"string"},"text_type":{"type":"string"},"confidence":{"type":"string"},"language_detected":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"base64","in":"query","required":false,"description":"Base64-encoded image","schema":{"type":"string","description":"Base64-encoded image"}},{"name":"image_url","in":"query","required":false,"description":"URL to image","schema":{"type":"string","description":"URL to image"}}]}},"/x402/v2/incoterms-explain":{"get":{"tags":["x402"],"summary":"Incoterms Explain (x402)","description":"Explain any Incoterms 2020 rule. Returns seller/buyer obligations, risk/cost transfer points, suitability.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"error":"Unknown Incoterm: \"test\". Must be one of the 11 Incoterms 2020 rules.","available_codes":["EXW","FCA","CPT","CIP","DAP","DPU","DDP","FAS","FOB","CFR","CIF"],"available_terms":[{"code":"EXW","full_name":"Ex Works","suitable_for":"any"},{"code":"FCA","full_name":"Free Carrier","suitable_for":"any"},{"code":"CPT","full_name":"Carriage Paid To","suitable_for":"any"},{"code":"CIP","full_name":"Carriage and Insurance Paid To","suitable_for":"any"},{"code":"DAP","full_name":"Delivered at Place","suitable_for":"any"},{"code":"DPU","full_name":"Delivered at Place Unloaded","suitable_for":"any"},{"code":"DDP","full_name":"Delivered Duty Paid","suitable_for":"any"},{"code":"FAS","full_name":"Free Alongside Ship","suitable_for":"sea_and_inland_waterway_only"},{"code":"FOB","full_name":"Free On Board","suitable_for":"sea_and_inland_waterway_only"},{"code":"CFR","full_name":"Cost and Freight","suitable_for":"sea_and_inland_waterway_only"},{"code":"CIF","full_name":"Cost, Insurance and Freight","suitable_for":"sea_and_inland_waterway_only"}]},"properties":{"error":{"type":"string"},"version":{"type":"string"},"incoterm":{"type":"object"},"published_by":{"type":"string"},"available_codes":{"type":"array"},"available_terms":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"incoterm","in":"query","required":true,"description":"Incoterm code (EXW/FOB/CIF/DDP/etc)","schema":{"type":"string","description":"Incoterm code (EXW/FOB/CIF/DDP/etc)"}}]}},"/x402/v2/crontab-generate":{"get":{"tags":["x402"],"summary":"Crontab Generate (x402)","description":"Convert natural language schedule to cron expression, or explain an existing cron expression. Returns next run times.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"next_5_runs":[],"timezone_note":"Cannot calculate without a valid cron expression or schedule details","human_readable":"No valid schedule information provided in the description","cron_expression":"Unable to determine - no schedule specified","input_description":"This is a test input for automated capability testing."},"properties":{"next_5_runs":{"type":"array"},"human_readable":{"type":"string"},"cron_expression":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"description","in":"query","required":true,"description":"Schedule in natural language or cron expression","schema":{"type":"string","description":"Schedule in natural language or cron expression"}}]}},"/x402/v2/eu-trademark-search":{"get":{"tags":["x402"],"summary":"EU Trademark Search (x402)","description":"Search the EUIPO trademark database for registered and pending EU trademarks. Returns trademark names, numbers, status, owners.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.540000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"test","source_url":"https://euipo.europa.eu/eSearch/#basic/test","trademarks":[],"total_results":null},"properties":{"trademarks":{"type":"array"},"total_results":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string"}},{"name":"nice_class","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/beneficial-ownership-lookup":{"post":{"tags":["x402"],"summary":"Beneficial Ownership Lookup (x402)","description":"Look up UK beneficial ownership (UBO / PSC) information for a company. Returns individuals who ultimately own or control the entity, their ownership percentage, and the ownership chain. Uses Companies House Persons of Significant Control. UK-only — non-GB inputs return a clear coverage notice rather than a fabricated result.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.270000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"data_source":"UK Companies House PSC Register","company_name":"TESCO PLC","has_psc_data":true,"jurisdiction":"gb","company_number":"00445790","company_status":"active","beneficial_owners":[],"total_beneficial_owners":0},"properties":{"message":{"type":"string"},"data_source":{"type":"string"},"company_name":{"type":"string"},"has_psc_data":{"type":"boolean"},"jurisdiction":{"type":"string"},"company_number":{"type":"string"},"company_status":{"type":"string"},"beneficial_owners":{"type":"array"},"supported_jurisdiction":{"type":"boolean"},"supported_jurisdictions":{"type":"array"},"total_beneficial_owners":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"company_name":{"type":"string","description":"Company name"},"jurisdiction":{"type":"string","description":"Country code (ISO 2-letter) for narrowing results (optional)"},"company_number":{"type":"string","description":"Company registration number if known (optional)"}}}}}}}},"/x402/v2/container-track":{"get":{"tags":["x402"],"summary":"Container Track (x402)","description":"Track shipping containers by ISO 6346 number. Validates format, detects carrier, provides tracking status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"error":"Invalid container number format. Expected ISO 6346: 4 letters (3 owner code + U/J/Z) + 6 digits + 1 check digit. Example: MAEU1234567.","carrier":"unknown","category":"","owner_code":"","check_digit":"","valid_format":false,"serial_number":"","tracking_urls":{"searates":"https://www.searates.com/container/tracking/?number=TEST_VALUE","track_trace":"https://www.track-trace.com/container?number=TEST_VALUE"},"tracking_status":"Container number format is invalid. Cannot track.","container_number":"TEST_VALUE","check_digit_valid":false,"expected_check_digit":null},"properties":{"events":{"type":"array"},"status":{"type":"string"},"carrier":{"type":"string"},"valid_format":{"type":"boolean"},"container_number":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"carrier","in":"query","required":false,"schema":{"type":"string"}},{"name":"container_number","in":"query","required":true,"description":"Container number (e.g. MAEU1234567)","schema":{"type":"string","description":"Container number (e.g. MAEU1234567)"}}]}},"/x402/v2/eori-validate":{"get":{"tags":["x402"],"summary":"EORI Validation (x402)","description":"Validate an EORI (Economic Operators Registration and Identification) number against the EU customs validation service. Returns trader name and address if valid.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"city":null,"valid":false,"street":null,"country":null,"eori_number":"DE123456789012345","postal_code":null,"trader_name":null,"country_code":"DE","trader_address":null},"properties":{"valid":{"type":"boolean"},"eori_number":{"type":"string"},"trader_name":{"type":"string"},"country_code":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"eori","in":"query","required":true,"description":"EORI number (e.g. DE123456789012345)","schema":{"type":"string","description":"EORI number (e.g. DE123456789012345)"}}]}},"/x402/v2/contract-extract":{"post":{"tags":["x402"],"summary":"Contract Extract (x402)","description":"Extract key terms from a contract/legal document. Returns parties, dates, obligations, payment terms, liability caps, termination clauses. Not legal advice.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.540000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"parties":[],"summary":"Insufficient contract text provided. The document contains only a generic statement that parties agree to terms without specifying the contract type, parties involved, or substantive terms and conditions.","disclaimer":"AI-extracted summary. Not legal advice. Verify all terms against the original document.","document_type":null,"governing_law":null,"payment_terms":{"amount":null,"due_date":null,"frequency":null},"renewal_terms":null,"effective_date":null,"liability_caps":[],"confidentiality":null,"key_obligations":[],"unusual_clauses":[],"termination_date":null,"termination_clauses":[]},"properties":{"parties":{"type":"array"},"payment_terms":{"type":"object"},"effective_date":{"type":"string"},"key_obligations":{"type":"array"},"termination_clauses":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"base64":{"type":"string"},"pdf_url":{"type":"string"}}}}}}}},"/x402/v2/domain-contact-extract":{"post":{"tags":["x402"],"summary":"Domain Contact Extract (x402)","description":"Find a company's contact info — email address, phone number, and mailing address — by extracting it from the company's own website given its domain. Returns role emails (info@, sales@, support@), phone numbers, postal address, contact-page URL, and social links. Organisation-level contacts only, not a specific person's email address (see email-finder) and not employee discovery.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"domain":"stripe.com","phones":[],"role_emails":["sales@stripe.com"],"fetched_urls":["https://stripe.com/","https://stripe.com/contact/sales"],"social_links":{"twitter":"https://twitter.com/stripe","youtube":"https://youtube.com/@stripe","facebook":"https://www.facebook.com/StripeHQ","linkedin":"https://www.linkedin.com/company/stripe/","instagram":"https://www.instagram.com/stripehq/"},"postal_address":null,"contact_page_url":"https://stripe.com/contact/sales","has_contact_page":true,"published_personal_addresses":[]},"properties":{"domain":{"type":"string"},"phones":{"type":"array"},"role_emails":{"type":"array"},"fetched_urls":{"type":"array"},"social_links":{"type":"object"},"postal_address":{"type":"string"},"contact_page_url":{"type":"string"},"has_contact_page":{"type":"boolean"},"published_personal_addresses":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"url":{"type":"string","description":"Alias for domain — full URL, hostname is extracted"},"site":{"type":"string","description":"Alias for domain"},"domain":{"type":"string","description":"Company domain (e.g. stripe.com)"},"website":{"type":"string","description":"Alias for domain"}}}}}}}},"/x402/v2/address-validate":{"get":{"tags":["x402"],"summary":"Address Validate (x402)","description":"Validate and standardize a postal address. Returns structured components, validity confidence, and suggested corrections. Works for 200+ countries via OpenStreetMap Nominatim.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"latitude":51.5034878,"longitude":-0.1276965,"components":{"city":"City of Westminster","state":"England","street":"Downing Street","country":"United Kingdom","postal_code":"SW1A 2AA","country_code":"GB","house_number":"10"},"confidence":0.66,"match_type":"approximate","input_address":"10 Downing Street, London, UK","formatted_address":"10 Downing Street, 10, Downing Street, Westminster, Covent Garden, City of Westminster, Greater London, England, SW1A 2AA, United Kingdom"},"properties":{"valid":{"type":"boolean"},"latitude":{"type":"number"},"longitude":{"type":"number"},"components":{"type":"object"},"confidence":{"type":"number"},"match_type":{"type":"string"},"formatted_address":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"address","in":"query","required":true,"description":"Full address as free text","schema":{"type":"string","description":"Full address as free text"}},{"name":"country_code","in":"query","required":false,"description":"ISO 2-letter country code hint (optional)","schema":{"type":"string","description":"ISO 2-letter country code hint (optional)"}}]}},"/x402/v2/mx-lookup":{"get":{"tags":["x402"],"summary":"MX Lookup (x402)","description":"DNS lookup for MX, A, AAAA, NS, TXT, SOA records. Detects email provider (Google, Microsoft, etc.), SPF, and DMARC records.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"soa":null,"domain":"127.0.0.1","has_mx":false,"has_spf":false,"has_ipv6":false,"a_records":[],"has_dmarc":false,"mx_records":[],"spf_record":null,"nameservers":[],"aaaa_records":[],"dmarc_record":null,"email_provider":"unknown"},"properties":{"domain":{"type":"string"},"has_spf":{"type":"boolean"},"has_dmarc":{"type":"boolean"},"mx_records":{"type":"array"},"email_provider":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/paper-details":{"post":{"tags":["x402"],"summary":"Paper Details (x402)","description":"Look up one scholarly work by DOI or OpenAlex id: full author list with institutions, venue, open-access status and PDF, citations, topics and abstract.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"doi":"https://doi.org/10.1038/s41586-020-2649-2","type":"article","title":"Array programming with NumPy","venue":"Nature","topics":["Computational Physics and Python Applications"],"authors":[{"name":"Charles R. Harris","orcid":null,"institutions":[]}],"pdf_url":"https://www.nature.com/articles/s41586-020-2649-2.pdf","abstract":"Array programming provides a powerful, compact and expressive syntax for accessing, manipulating and operating on data...","keywords":["Python (programming language)"],"language":"en","venue_type":"journal","openalex_id":"https://openalex.org/W3035965352","author_count":26,"is_retracted":false,"cited_by_count":23533,"is_open_access":true,"landing_page_url":"https://doi.org/10.1038/s41586-020-2649-2","publication_date":"2020-09-16","publication_year":2020,"open_access_status":"hybrid","referenced_works_count":41},"properties":{"title":{"type":"string"},"venue":{"type":"string"},"authors":{"type":"array"},"abstract":{"type":"string"},"openalex_id":{"type":"string"},"author_count":{"type":"number"},"cited_by_count":{"type":"number"},"is_open_access":{"type":"boolean"},"publication_year":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["doi"],"properties":{"doi":{"type":"string","description":"A DOI (10.1038/s41586-020-2649-2 or https://doi.org/...), or an OpenAlex work id such as W3035965352"}}}}}}}},"/x402/v2/schema-infer":{"get":{"tags":["x402"],"summary":"Schema Infer (x402)","description":"Infer schema from JSON array or CSV. Returns field types, nullability, uniqueness, completeness, min/max/mean for numeric fields. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"fields":[{"max":30,"min":30,"mean":30,"name":"age","type":"number","unique":true,"nullable":false,"sample_values":[30],"completeness_percent":100},{"name":"name","type":"string","unique":true,"nullable":false,"sample_values":["Alice"],"completeness_percent":100}],"total_rows":1,"total_fields":2,"format_detected":"json"},"properties":{"fields":{"type":"array"},"total_rows":{"type":"integer"},"total_fields":{"type":"integer"},"format_detected":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"data","in":"query","required":true,"description":"JSON array or CSV string","schema":{"description":"JSON array or CSV string"}}]}},"/x402/v2/prompt-optimize":{"post":{"tags":["x402"],"summary":"Prompt Optimize (x402)","description":"Analyze and improve a prompt. Returns improved version with changes and reasoning, clarity score comparison, and techniques applied.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"changes_made":[{"change":"Added explicit role definition and system context","reasoning":"Clarifies the purpose and expected behavior, reducing ambiguity about what the prompt should accomplish"},{"change":"Restructured vague input into clear task with specific output requirements","reasoning":"Provides measurable evaluation criteria rather than implicit expectations"},{"change":"Added numbered output format expectations","reasoning":"Enables consistent, structured responses that can be programmatically evaluated"},{"change":"Included meta-analysis request (confidence, limitations)","reasoning":"Makes the testing process more comprehensive and diagnostic for capability assessment"}],"issues_found":["Extremely vague - unclear what should happen with 'test_value'","No explicit task definition or expected output format","Cannot be effectively evaluated or reproduced","No context for what 'automated capability testing' means","Insufficient for meaningful testing purposes"],"clarity_score":{"improved":9,"original":1},"improved_prompt":"You are an automated capability testing system. Process the following test input and provide structured feedback on your ability to handle it: 'test_value'. Return your analysis including: (1) successful parsing of the input, (2) any constraints or limitations encountered, (3) confidence level in handling this input type, and (4) recommendations for improvement.","techniques_applied":["Role-based prompting","Task decomposition with numbered steps","Explicit output structure definition","Context clarification","Meta-cognitive prompting for self-assessment"],"improved_token_estimate":65,"original_token_estimate":2},"properties":{"changes_made":{"type":"array"},"clarity_score":{"type":"object"},"improved_prompt":{"type":"string"},"techniques_applied":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["current_prompt"],"properties":{"bad_examples":{"type":"array"},"good_examples":{"type":"array"},"current_prompt":{"type":"string"},"task_description":{"type":"string"}}}}}}}},"/x402/v2/iso-country-lookup":{"get":{"tags":["x402"],"summary":"ISO Country Lookup (x402)","description":"Look up any country by name, ISO code (alpha-2/3/numeric). Returns region, capital, currency, EU/Schengen/Eurozone membership.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"error":"No country found matching \"test\".","query":"test","matches":[],"total_matches":0},"properties":{"error":{"type":"string"},"match":{"type":"object"},"query":{"type":"string"},"matches":{"type":"array"},"total_matches":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Country name, alpha-2, alpha-3, or numeric code","schema":{"type":"string","description":"Country name, alpha-2, alpha-3, or numeric code"}}]}},"/x402/v2/brazilian-company-data":{"get":{"tags":["x402"],"summary":"Brazilian Company Data (x402)","description":"Look up Brazilian company data from the Receita Federal CNPJ register via the ReceitaWS JSON wrapper. Requires CNPJ (14 digits). Returns company name, trade name, status, address, activity codes, and partners.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"cnpj":"11.222.333/0001-81","size":"DEMAIS","type":"MATRIZ","status":"ATIVA","address":"R GARIBALDI, 070, VILA RICA, 95.760-000 SAO SEBASTIAO DO CAI, RS","partners":[{"name":"CLAUDIA KICH DA SILVA","role":"16-Presidente"}],"trade_name":"CAIXA ESCOLA DA ESCOLA ESTADUAL DE ENSINO FUNDAMENTAL J","company_name":"CAIXA ESCOLAR DA ESCOLA ESTADUAL DE ENSINO FUNDAMENTAL JOSEFINA JACQUES NORONHA","legal_nature":"399-9 - Associação Privada","opening_date":"02/09/2009","share_capital":"0.00","activity_codes":[{"code":"85.50-3-01","description":"Administração de caixas escolares"}]},"properties":{"cnpj":{"type":"string"},"status":{"type":"string"},"address":{"type":"string"},"company_name":{"type":"string"},"activity_codes":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"cnpj","in":"query","required":true,"description":"CNPJ number (14 digits, e.g. 11222333000181)","schema":{"type":"string","description":"CNPJ number (14 digits, e.g. 11222333000181)"}}]}},"/x402/v2/receipt-categorize":{"get":{"tags":["x402"],"summary":"Receipt Categorize (x402)","description":"Extract and categorize receipt data. Returns vendor, date, amount, tax, currency, expense category, line items. Ready for expense reports.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"date":"2024-01-15","category":"meals","currency":"USD","subtotal":5.5,"line_items":[{"amount":5.5,"quantity":1,"unit_price":5.5,"description":"Caffe Latte"}],"tax_amount":null,"tip_amount":null,"vendor_name":"Starbucks Coffee","total_amount":5.5,"card_last_four":"4242","payment_method":"card","expense_report_fields":{"date":"2024-01-15","amount":5.5,"vendor":"Starbucks Coffee","category":"meals","currency":"USD","description":"Caffe Latte"}},"properties":{"category":{"type":"string"},"currency":{"type":"string"},"line_items":{"type":"array"},"vendor_name":{"type":"string"},"total_amount":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"text","in":"query","required":false,"schema":{"type":"string"}},{"name":"base64","in":"query","required":false,"schema":{"type":"string"}},{"name":"image_url","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/french-company-data":{"get":{"tags":["x402"],"summary":"French Company Data (x402)","description":"Look up French company data from the SIRENE registry. Accepts SIREN (9 digits), SIRET (14 digits), or fuzzy company name. Returns company name, address, activity code, directors.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"city":"COURBEVOIE","siren":"542051180","siret":"54205118000066","status":"active","address":"LA DEFENSE 6 2 PLACE JEAN MILLIER 92400 COURBEVOIE","directors":["EXEMPLE PREMIER DIRIGEANT (Administrateur)","EXEMPLE DEUXIEME DIRIGEANT (Administrateur)","EXEMPLE TROISIEME DIRIGEANT (Administrateur)"],"postal_code":"92400","company_name":"TOTALENERGIES SE (TOTALENERGIE SE)","activity_code":"70.10Z","business_type":"5800","creation_date":"1954-01-01","employee_range":"51"},"properties":{"siren":{"type":["string","null"]},"siret":{"type":"string"},"status":{"type":"string"},"address":{"type":"string"},"directors":{"type":"array","description":"Up to 50 directors from the registry (slice cap for payload). When the registry lists more than 50, `directors_truncated` is true and `total_directors` carries the full count. Typical major French entities have 15-20 directors; the cap protects against pathological state-entity / mutuelle payloads."},"company_name":{"type":["string","null"]},"activity_code":{"type":"string"},"total_directors":{"type":"integer"},"directors_truncated":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"siren","in":"query","required":true,"description":"SIREN (9 digits), SIRET (14 digits), or company name","schema":{"type":"string","description":"SIREN (9 digits), SIRET (14 digits), or company name"}}]}},"/x402/v2/unit-convert":{"get":{"tags":["x402"],"summary":"Unit Convert (x402)","description":"Convert between units: length, weight, volume, temperature, area, speed, data storage. Algorithmic — instant.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"value":100,"result":62.1371,"formula":"km → m → mi","to_unit":"mi","category":"length","from_unit":"km"},"properties":{"value":{"type":"number"},"result":{"type":"number"},"formula":{"type":"string"},"to_unit":{"type":"string"},"category":{"type":"string"},"from_unit":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"value","in":"query","required":true,"description":"Value to convert","schema":{"type":"number","description":"Value to convert"}},{"name":"to_unit","in":"query","required":true,"description":"Target unit (e.g. mi, kg, °F)","schema":{"type":"string","description":"Target unit (e.g. mi, kg, °F)"}},{"name":"from_unit","in":"query","required":true,"description":"Source unit (e.g. km, lb, °C)","schema":{"type":"string","description":"Source unit (e.g. km, lb, °C)"}}]}},"/x402/v2/phone-normalize":{"get":{"tags":["x402"],"summary":"Phone Normalize (x402)","description":"Parse and normalize phone numbers to E.164 format. Detects country, carrier type, validates format. Uses libphonenumber.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"e164":"+46701234567","type":null,"input":"+46701234567","valid":true,"is_possible":true,"calling_code":"+46","country_code":"SE","national_format":"070-123 45 67","international_format":"+46 70 123 45 67"},"properties":{"e164":{"type":"string"},"type":{"type":"string"},"valid":{"type":"boolean"},"country_code":{"type":"string"},"national_format":{"type":"string"},"international_format":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"phone_string","in":"query","required":true,"description":"Phone number to normalize","schema":{"type":"string","description":"Phone number to normalize"}},{"name":"default_country","in":"query","required":false,"description":"ISO country code (e.g. SE)","schema":{"type":"string","description":"ISO country code (e.g. SE)"}}]}},"/x402/v2/port-lookup":{"get":{"tags":["x402"],"summary":"Port Lookup (x402)","description":"Look up world ports by name or UN/LOCODE. Returns coordinates, country, timezone. 175+ major ports.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"SELECT * FROM users WHERE active = true LIMIT 10","matches":[],"total_matches":0},"properties":{"matches":{"type":"array"},"total_matches":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Port name or UN/LOCODE (e.g. SEGOT, NLRTM)","schema":{"type":"string","description":"Port name or UN/LOCODE (e.g. SEGOT, NLRTM)"}}]}},"/x402/v2/charity-lookup-uk":{"get":{"tags":["x402"],"summary":"Charity Lookup UK (x402)","description":"Look up UK charities via the Charity Commission API. Search by registration number or name. Returns status, income, activities.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"registered","website":"http://www.oxfam.org.uk","description":"Oxfam's objects are to prevent and relieve poverty and protect the vulnerable anywhere in the world.  Oxfam furthers its objects through interlinked activities of humanitarian relief, development work and advocacy and campaigning.  Oxfam is an affiliate member of Oxfam International.  Details of Oxfam's mission and ways of working can be found at www.oxfam.org.uk","charity_name":"OXFAM","latest_income":339366903,"trustee_count":10,"charity_number":"202918","company_number":"00612172","date_of_removal":null,"latest_spending":362636196,"latest_employees":4084,"latest_volunteers":28920,"date_of_registration":"1965-09-07","latest_financial_year_end":"2025-03-31"},"properties":{"income":{"type":"number"},"status":{"type":"string"},"charity_name":{"type":"string"},"charity_number":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name","in":"query","required":false,"schema":{"type":"string"}},{"name":"charity_number","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/public-holiday-lookup":{"get":{"tags":["x402"],"summary":"Public Holiday Lookup (x402)","description":"Get public holidays by country and year for the 200+ countries covered by Nager.Date. Returns holiday dates, names, and next upcoming.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"year":2025,"holidays":[{"date":"2025-01-01","name":"New Year's Day","type":"Public","fixed":false,"global":true,"local_name":"New Year's Day"},{"date":"2025-01-20","name":"Martin Luther King, Jr. Day","type":"Public","fixed":false,"global":true,"local_name":"Martin Luther King, Jr. Day"},{"date":"2025-02-12","name":"Lincoln's Birthday","type":"Observance","fixed":false,"global":false,"local_name":"Lincoln's Birthday"},{"date":"2025-02-17","name":"Presidents Day","type":"Public","fixed":false,"global":true,"local_name":"Washington's Birthday"},{"date":"2025-04-18","name":"Good Friday","type":"Public","fixed":false,"global":false,"local_name":"Good Friday"},{"date":"2025-04-18","name":"Good Friday","type":"Optional","fixed":false,"global":false,"local_name":"Good Friday"},{"date":"2025-05-08","name":"Truman Day","type":"School, Authorities","fixed":false,"global":false,"local_name":"Truman Day"},{"date":"2025-05-26","name":"Memorial Day","type":"Public","fixed":false,"global":true,"local_name":"Memorial Day"},{"date":"2025-06-19","name":"Juneteenth National Independence Day","type":"Public","fixed":false,"global":true,"local_name":"Juneteenth National Independence Day"},{"date":"2025-07-04","name":"Independence Day","type":"Public","fixed":false,"global":true,"local_name":"Independence Day"},{"date":"2025-09-01","name":"Labour Day","type":"Public","fixed":false,"global":true,"local_name":"Labor Day"},{"date":"2025-10-13","name":"Columbus Day","type":"Public","fixed":false,"global":false,"local_name":"Columbus Day"},{"date":"2025-10-13","name":"Indigenous Peoples' Day","type":"Public","fixed":false,"global":false,"local_name":"Indigenous Peoples' Day"},{"date":"2025-11-11","name":"Veterans Day","type":"Public","fixed":false,"global":true,"local_name":"Veterans Day"},{"date":"2025-11-27","name":"Thanksgiving Day","type":"Public","fixed":false,"global":true,"local_name":"Thanksgiving Day"},{"date":"2025-12-25","name":"Christmas Day","type":"Public","fixed":false,"global":true,"local_name":"Christmas Day"}],"country_code":"US","next_upcoming":null,"total_holidays":16},"properties":{"holidays":{"type":"array"},"next_upcoming":{"type":"object"},"total_holidays":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"number"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/return-policy-extract":{"get":{"tags":["x402"],"summary":"Return Policy Extract (x402)","description":"Extract return/refund policy from a retailer website. Returns window, conditions, exclusions, process steps.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com/returns","conditions":["Item must be unused","Original packaging required"],"exceptions":["Sale items are final sale"],"store_name":"Example Store","free_returns":false,"refund_method":"Original payment method","exchange_available":true,"return_window_days":30},"properties":{"conditions":{"type":"array"},"free_returns":{"type":"boolean"},"refund_method":{"type":"string"},"return_window_days":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"Retailer website URL","schema":{"type":"string","description":"Retailer website URL"}}]}},"/x402/v2/eu-regulation-search":{"get":{"tags":["x402"],"summary":"EU Regulation Search (x402)","description":"Search EU regulations, directives, and decisions by topic. Official Publications Office data with titles, CELEX numbers, dates, in-force status, and EUR-Lex links.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"general data protection","regulations":[{"date":"2016-04-27","type":"Regulation","title":"Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)","in_force":true,"eur_lex_url":"https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679","celex_number":"32016R0679"}],"result_count":1,"matched_terms":["general","data","protection"]},"properties":{"query":{"type":"string"},"regulations":{"type":"array"},"result_count":{"type":"integer"},"matched_terms":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"type","in":"query","required":false,"description":"Optional filter — regulation, directive, or decision","schema":{"type":"string","description":"Optional filter — regulation, directive, or decision"}},{"name":"year","in":"query","required":false,"description":"Optional 4-digit year of adoption (e.g. \"2024\")","schema":{"type":"string","description":"Optional 4-digit year of adoption (e.g. \"2024\")"}},{"name":"query","in":"query","required":true,"description":"Search topic or keywords (e.g. \"artificial intelligence\", \"data protection\")","schema":{"type":"string","description":"Search topic or keywords (e.g. \"artificial intelligence\", \"data protection\")"}}]}},"/x402/v2/blog-post-outline":{"get":{"tags":["x402"],"summary":"Blog Post Outline (x402)","description":"Generate a structured blog post outline. Returns title options, sections with subsections and key points, estimated word count, SEO keywords. JSON, not prose.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"tone":"","topic":"🎯🔥💡","sections":[{"heading":"Introduction: The Power Trio of Success","key_points":["Connection between goals, motivation, and innovation","Real-world applications","Expected outcomes"],"subsections":["Why these three elements matter","How they work together","What you'll learn"],"estimated_words":400},{"heading":"🎯 Setting Goals That Actually Matter","key_points":["Specific, measurable, achievable criteria","Emotional connection to goals","Milestone mapping","Avoiding vague objectives"],"subsections":["SMART goal framework","Defining your why","Breaking down big ambitions","Common goal-setting mistakes"],"estimated_words":600},{"heading":"🔥 Fueling Your Passion and Maintaining Momentum","key_points":["Intrinsic vs. extrinsic motivation","Daily rituals for energy","Managing setbacks","Support networks and partnerships"],"subsections":["Building genuine motivation","Sustaining energy over time","Overcoming burnout","Creating accountability systems"],"estimated_words":700},{"heading":"💡 Fostering Innovative Thinking","key_points":["Brainstorming methodologies","Cross-disciplinary thinking","Experimentation culture","Curiosity-driven development"],"subsections":["Creative problem-solving techniques","Embracing unconventional approaches","Learning from failures","Building an innovative mindset"],"estimated_words":650},{"heading":"Integrating All Three: An Action Plan","key_points":["Practical integration steps","Measurement metrics","Adjustment protocols","Progress tracking tools"],"subsections":["Weekly planning template","Monthly review process","Quarterly evolution strategy","Annual goal assessment"],"estimated_words":550},{"heading":"Case Studies: Real Success Stories","key_points":["How each element contributed","Challenges overcome","Lessons learned","Replicable strategies"],"subsections":["Entrepreneur breakthrough","Career transformation","Creative project success","Team achievement example"],"estimated_words":500},{"heading":"Conclusion: Your Next Step","key_points":["Summary of core concepts","Call to action","Encouragement and inspiration"],"subsections":["Key takeaways","Implementation timeline","Resources for continued growth"],"estimated_words":300}],"hook_ideas":["Most people fail at their goals not because they lack ambition, but because they overlook one critical element that separates achievers from dreamers.","What if the secret to extraordinary success wasn't working harder, but mastering the intersection of three powerful forces?","You've set goals before. You've felt motivated before. But have you ever combined focus, passion, and bold innovation into an unstoppable system?"],"seo_keywords":["goal setting strategies","motivation and passion","innovative thinking","personal development","success mindset","creative problem solving","goal achievement","productivity tips","motivation techniques","innovation skills"],"title_options":["🎯🔥💡 The Ultimate Guide to Goal Setting, Motivation, and Innovative Thinking","Master Your Goals: Combining Focus, Passion, and Creative Problem-Solving","From Idea to Impact: How Ambition, Energy, and Innovation Transform Results"],"target_audience":"","meta_description":"Learn how to combine ambitious goal-setting, sustained motivation, and creative innovation to achieve breakthrough results. Complete action plan included.","estimated_total_words":3700},"properties":{"sections":{"type":"array"},"seo_keywords":{"type":"array"},"title_options":{"type":"array"},"estimated_total_words":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"tone","in":"query","required":false,"schema":{"type":"string"}},{"name":"topic","in":"query","required":true,"schema":{"type":"string"}},{"name":"keywords","in":"query","required":false,"schema":{"type":"array"}},{"name":"target_audience","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/currency-convert":{"get":{"tags":["x402"],"summary":"Currency Convert (x402)","description":"Convert an amount between currencies using ECB exchange rates. Supports all major currencies. Returns converted amount and rate.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"to":"EUR","date":"2026-04-02","from":"USD","rate":0.867679,"amount":100,"converted_amount":86.77},"properties":{"to":{"type":"string"},"date":{"type":"string"},"from":{"type":"string"},"rate":{"type":"number"},"amount":{"type":"number"},"converted_amount":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"to","in":"query","required":true,"description":"Target currency (ISO 4217)","schema":{"type":"string","description":"Target currency (ISO 4217)"}},{"name":"from","in":"query","required":true,"description":"Source currency (ISO 4217)","schema":{"type":"string","description":"Source currency (ISO 4217)"}},{"name":"amount","in":"query","required":true,"description":"Amount to convert","schema":{"type":"number","description":"Amount to convert"}}]}},"/x402/v2/holiday-calendar":{"get":{"tags":["x402"],"summary":"Holiday Calendar (x402)","description":"Get public holidays by country and year for the 200+ countries covered by Nager.Date. Returns holiday names, dates, types (public/bank/optional), and whether they are fixed or variable.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"year":2026,"holidays":[{"date":"2026-01-01","name":"New Year's Day","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Nyårsdagen"},{"date":"2026-01-06","name":"Epiphany","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Trettondedag jul"},{"date":"2026-04-03","name":"Good Friday","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Långfredagen"},{"date":"2026-04-05","name":"Easter Sunday","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Påskdagen"},{"date":"2026-04-06","name":"Easter Monday","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Annandag påsk"},{"date":"2026-05-01","name":"International Workers' Day","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Första maj"},{"date":"2026-05-14","name":"Ascension Day","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Kristi himmelsfärdsdag"},{"date":"2026-05-24","name":"Pentecost","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Pingstdagen"},{"date":"2026-06-06","name":"National Day of Sweden","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Sveriges nationaldag"},{"date":"2026-06-19","name":"Midsummer Eve","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Midsommarafton"},{"date":"2026-06-20","name":"Midsummer Day","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Midsommardagen"},{"date":"2026-10-31","name":"All Saints' Day","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Alla helgons dag"},{"date":"2026-12-24","name":"Christmas Eve","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Julafton"},{"date":"2026-12-25","name":"Christmas Day","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Juldagen"},{"date":"2026-12-26","name":"St. Stephen's Day","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Annandag jul"},{"date":"2026-12-31","name":"New Year's Eve","type":"Public","fixed":false,"global":true,"counties":null,"local_name":"Nyårsafton"}],"country_code":"SE","total_holidays":16},"properties":{"year":{"type":"integer"},"holidays":{"type":"array"},"country_code":{"type":"string"},"total_holidays":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"year","in":"query","required":false,"description":"Year (default current year)","schema":{"type":"integer","description":"Year (default current year)"}},{"name":"country_code","in":"query","required":true,"description":"ISO 2-letter country code","schema":{"type":"string","description":"ISO 2-letter country code"}}]}},"/x402/v2/structured-scrape":{"post":{"tags":["x402"],"summary":"Structured Scrape (x402)","description":"Extract structured data from any URL using a caller-defined JSON schema. Browserless renders the page, AI maps content to your schema.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com","data":{"name":null,"email":null}},"properties":{"url":{"type":"string"},"data":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","schema"],"properties":{"url":{"type":"string","description":"URL to scrape"},"schema":{"type":"object","description":"JSON schema describing the data to extract"}}}}}}}},"/x402/v2/accessibility-audit":{"get":{"tags":["x402"],"summary":"Accessibility Audit (x402)","description":"WCAG 2.1 accessibility audit of a URL. Checks color contrast, alt text, form labels, ARIA roles, heading hierarchy, link text, language. Mostly deterministic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com","score":95,"passes":["Heading hierarchy is sequential","All links have descriptive text","Page language is declared","Viewport meta tag present"],"summary":{"low":1,"medium":0,"critical":0,"passed_checks":4},"violations":[{"fix":"Use semantic HTML5 elements (nav, main, header, footer) or ARIA landmark roles","rule":"WCAG 1.3.1 - Landmark Regions","element":"page structure","severity":"low","description":"No landmark regions found (nav, main, header, footer elements or ARIA roles)"}],"violation_count":1,"manual_review_needed":["Keyboard navigation and focus management","Screen reader compatibility","Color contrast for all text (not just inline styles)","Dynamic content accessibility","Video captions and audio descriptions"]},"properties":{"score":{"type":"integer"},"passes":{"type":"array"},"violations":{"type":"array"},"manual_review_needed":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to audit","schema":{"type":"string","description":"URL to audit"}}]}},"/x402/v2/openapi-validate":{"get":{"tags":["x402"],"summary":"OpenAPI Validate (x402)","description":"Validate an OpenAPI 3.x specification. Checks required fields, endpoint definitions, schema references. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"errors":[],"warnings":[{"path":"/servers","message":"No 'servers' defined — consumers won't know the base URL"}],"error_count":0,"schema_count":0,"warning_count":1,"endpoint_count":0,"version_detected":"3.0.0"},"properties":{"stats":{"type":"object"},"valid":{"type":"boolean"},"errors":{"type":"array"},"warnings":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"spec","in":"query","required":true,"description":"OpenAPI spec as JSON string or object","schema":{"description":"OpenAPI spec as JSON string or object"}}]}},"/x402/v2/github-repo-analyze":{"get":{"tags":["x402"],"summary":"GitHub Repo Analyze (x402)","description":"Analyze a public GitHub repository. Returns tech stack, documentation quality, activity level, bus factor, maintenance health score. Uses GitHub API + AI analysis.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://github.com/microsoft/vscode","repo":"microsoft/vscode","forks":38930,"stars":183375,"license":"MIT","purpose":"Visual Studio Code is a free, open-source code editor with built-in debugging, Git integration, and extensive extension support.","summary":"Visual Studio Code is an exceptionally well-maintained, highly active open-source project with excellent documentation and strong community engagement. Despite a large backlog of issues, the project demonstrates robust engineering practices, frequent updates, and clear governance, making it one of the most successful developer tool repositories on GitHub.","concerns":["High open issue count (15,941) indicates backlog challenges","Low contributor count (10) relative to project size suggests concentration of control","Complex build process with multiple compilation steps","Dependency on proprietary telemetry systems in recent commits","Large codebase may create barriers to new contributors"],"languages":{"C":818,"R":362,"C#":864,"F#":634,"Go":652,"C++":2745,"CSS":1491550,"Lua":252,"PHP":998,"Pug":654,"TeX":1602,"Cuda":3634,"Dart":324,"HLSL":184,"HTML":379773,"Hack":16,"Java":599,"Less":1029,"Perl":1922,"Raku":761,"Roff":351,"Ruby":1703,"Rust":528743,"SCSS":6732,"Julia":940,"Shell":129381,"Swift":284,"Groovy":3928,"Python":4146,"Scilab":202892,"Clojure":1206,"Makefile":2307,"Batchfile":30639,"ShaderLab":330,"Dockerfile":6795,"Handlebars":1064,"Inno Setup":329558,"JavaScript":821608,"PowerShell":16774,"TypeScript":88116170,"Objective-C":1387,"CoffeeScript":590,"Objective-C++":1387,"Jupyter Notebook":929,"Tree-sitter Query":14260,"Visual Basic .NET":893},"strengths":["Extremely high community engagement (183K+ stars)","Rapid development cycle with frequent updates and commits","Comprehensive test coverage with multiple test suites","Well-documented contribution guidelines and development processes","Polyglot codebase supporting diverse language ecosystems","Active roadmap and transparent development planning","MIT license enabling broad adoption and customization"],"tech_stack":["TypeScript","JavaScript","Rust","CSS","HTML","Node.js","Electron","Playwright"],"open_issues":15941,"activity_level":"very-active","dependency_count":null,"primary_language":"TypeScript","top_contributors":[{"login":"bpasero","contributions":14686},{"login":"jrieken","contributions":12629},{"login":"Tyriar","contributions":12495},{"login":"mjbvz","contributions":10156},{"login":"joaomoreno","contributions":8763},{"login":"sandy081","contributions":8677},{"login":"alexdima","contributions":7776},{"login":"isidorn","contributions":6145},{"login":"roblourens","contributions":5758},{"login":"aeschli","contributions":5074}],"bus_factor_estimate":3,"documentation_quality":"excellent","maintenance_health_score":92},"properties":{"stars":{"type":"integer"},"tech_stack":{"type":"array"},"activity_level":{"type":"string"},"top_contributors":{"type":"array"},"maintenance_health_score":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"GitHub repo URL (e.g. https://github.com/owner/repo)","schema":{"type":"string","description":"GitHub repo URL (e.g. https://github.com/owner/repo)"}}]}},"/x402/v2/clinical-trials-search":{"post":{"tags":["x402"],"summary":"Clinical Trials Search (x402)","description":"Search registered clinical trials on ClinicalTrials.gov: phase, recruitment status, conditions, interventions, enrollment, sponsor and dates. Filter by recruitment status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"crispr cas9","studies":[{"url":"https://clinicaltrials.gov/study/NCT03872479","title":"Single Ascending Dose Study in Participants With LCA10","nct_id":"NCT03872479","phases":["PHASE1","PHASE2"],"status":"UNKNOWN","conditions":["Leber Congenital Amaurosis 10"],"enrollment":34,"start_date":"2019-09-26","study_type":"INTERVENTIONAL","lead_sponsor":"Editas Medicine, Inc.","interventions":[{"name":"EDIT-101","type":"DRUG"}],"location_count":5,"completion_date":"2025-05-23","enrollment_type":"ESTIMATED","lead_sponsor_class":"INDUSTRY"}],"returned":1,"status_filter":null,"total_results":103},"properties":{"query":{"type":"string"},"studies":{"type":"array"},"returned":{"type":"number"},"status_filter":{"type":"string"},"total_results":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"limit":{"type":"integer","description":"Studies to return, 1-20. Default: 10"},"query":{"type":"string","description":"Search terms — a condition, intervention, sponsor or free text"},"status":{"type":"string","description":"Optional recruitment filter: recruiting, not_yet_recruiting, active_not_recruiting, completed, terminated, withdrawn, suspended"}}}}}}}},"/x402/v2/customs-duty-lookup":{"get":{"tags":["x402"],"summary":"Customs Duty Lookup (x402)","description":"Look up EU customs duty rates by HS code and origin country. Returns duty rate, preferential rates, anti-dumping status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"notes":"The provided page content does not contain information for HS code 847130. The page displays TARIC measure information for Chapter 1 (Live Animals) codes only, specifically codes in the 0101-0102 range. HS code 847130 falls under Chapter 84 (Machinery) and is not present in the displayed content.","hs_code":"847130","vat_rate":null,"duty_rate":null,"duty_type":null,"description":null,"destination":null,"anti_dumping":false,"origin_country":"not specified","additional_duties":[],"preferential_rates":[]},"properties":{"duty_rate":{"type":"string"},"duty_type":{"type":"string"},"anti_dumping":{"type":"boolean"},"preferential_rates":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"hs_code","in":"query","required":true,"schema":{"type":"string"}},{"name":"origin_country","in":"query","required":false,"schema":{"type":"string"}},{"name":"destination_country","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/hacker-news-search":{"post":{"tags":["x402"],"summary":"Hacker News Search (x402)","description":"Search Hacker News stories and comments via the official Algolia API: title, URL, points, author, comment count, date and text, by relevance or date.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"sort":"relevance","type":"story","query":"deno","results":[{"id":"23172483","url":"https://deno.land/v1","text":null,"type":"story","title":"Deno 1.0","author":3803,"hn_url":"https://news.ycombinator.com/item?id=23172483","points":2081,"story_id":23172483,"created_at":"2020-05-13T22:18:14Z","num_comments":583}],"returned":1,"total_results":34746},"properties":{"type":{"type":"string"},"query":{"type":"string"},"results":{"type":"array"},"returned":{"type":"number"},"total_results":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"sort":{"type":"string","description":"relevance (default) or date"},"type":{"type":"string","description":"story (default), comment, or all"},"limit":{"type":"integer","description":"Results to return, 1-30. Default: 10"},"query":{"type":"string","description":"Search terms. At least 2 characters."},"since_days":{"type":"integer","description":"Only items created within the last N days"}}}}}}}},"/x402/v2/c2pa-inspect":{"post":{"tags":["x402"],"summary":"C2PA Content Credentials Inspect (x402)","description":"Inspect a media URL for C2PA Content Credentials. Parses the embedded manifest, verifies the cryptographic signature, and extracts claim generator, signer, edit assertions, and AI-generation flags. Pure parsing — no external API.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.108000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"has_c2pa":true,"bytes_size":184320,"media_type":"image/jpeg","source_url":"https://example.com/photo.jpg","manifest_count":1,"active_manifest":{"label":"urn:uuid:1234...","title":"photo.jpg","format":"image/jpeg","signer":{"time":"2024-06-15T10:30:00Z","issuer":"C=US, O=Adobe Inc., CN=Adobe Photoshop CS Test Cert"},"vendor":"Adobe","assertions":[{"kind":"Json","label":"c2pa.actions"},{"kind":"Json","label":"c2pa.hash.data"}],"ai_generated":false,"claim_generator":"Adobe Photoshop 25.0","signature_valid":true,"assertions_count":4,"ingredients_count":0},"validation_status":[]},"properties":{"has_c2pa":{"type":"boolean"},"bytes_size":{"type":"integer"},"media_type":{"type":"string"},"source_url":{"type":"string"},"manifest_count":{"type":"integer"},"active_manifest":{"type":["object","null"]},"validation_status":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"HTTP(S) URL of an image (JPEG, PNG, WebP, AVIF, HEIF, TIFF, DNG) to inspect for C2PA manifests"}}}}}}}},"/x402/v2/us-company-data":{"get":{"tags":["x402"],"summary":"US Company Data (x402)","description":"Look up US company data from SEC EDGAR. Accepts CIK number, ticker symbol, or fuzzy company name. Returns company name, CIK, SIC code, state, filings summary.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"cik":"0001418121","ein":"261379210","sic":"6798","state":"VA","status":"active","ticker":"APLE","address":"814 EAST MAIN STREET, RICHMOND, VA, 23219","exchange":"NYSE","entity_type":"operating","company_name":"Apple Hospitality REIT, Inc.","searched_name":null,"is_exact_match":true,"fiscal_year_end":"1231","sic_description":"Real Estate Investment Trusts","match_confidence":"exact","resolution_method":"ticker"},"properties":{"cik":{"type":"string"},"state":{"type":"string"},"status":{"type":["string","null"]},"sic_code":{"type":"string"},"vat_number":{"type":["string","null"]},"company_name":{"type":"string"},"searched_name":{"type":["string","null"],"description":"The company name that was resolved and searched; null when a CIK was supplied directly"},"is_exact_match":{"type":"boolean","description":"True only when the resolved company name matches the queried name after normalization (or a CIK was supplied directly)"},"fiscal_year_end":{"type":"string"},"match_confidence":{"enum":["exact","high","low"],"type":"string","description":"Confidence that the returned entity is the one asked for. \"low\" means the name search may have matched a different filer that merely mentions the name"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"cik","in":"query","required":false,"description":"SEC CIK number. Alternate to 'company' — same resolution rules apply.","schema":{"type":"string","description":"SEC CIK number. Alternate to 'company' — same resolution rules apply."}},{"name":"ticker","in":"query","required":false,"description":"Stock ticker symbol. Alternate to 'company' — same resolution rules apply.","schema":{"type":"string","description":"Stock ticker symbol. Alternate to 'company' — same resolution rules apply."}},{"name":"company","in":"query","required":false,"description":"CIK number, ticker symbol, or company name. Resolution order: exact CIK match, then exact ticker match, then exact company-name match (both via the SEC ticker/title map — no LLM call), then a best-effort LLM name extraction + SEC full-text filing search as a last resort (gated by match_confidence / allow_low_confidence below).","schema":{"type":"string","description":"CIK number, ticker symbol, or company name. Resolution order: exact CIK match, then exact ticker match, then exact company-name match (both via the SEC ticker/title map — no LLM call), then a best-effort LLM name extraction + SEC full-text filing search as a last resort (gated by match_confidence / allow_low_confidence below)."}},{"name":"company_name","in":"query","required":false,"description":"US company name. Alternate to 'company' — same resolution rules apply.","schema":{"type":"string","description":"US company name. Alternate to 'company' — same resolution rules apply."}},{"name":"allow_low_confidence","in":"query","required":false,"description":"If true, return the best-effort match even when the name could not be confidently resolved (match_confidence \"low\"). Default false — a low-confidence name lookup errors instead of returning a possibly-wrong company identity, so it can't silently feed downstream screening. Only relevant to the LLM+full-text-search fallback path; exact CIK/ticker/title-map resolutions are always match_confidence \"exact\" and are never gated by this flag.","schema":{"type":"boolean","description":"If true, return the best-effort match even when the name could not be confidently resolved (match_confidence \"low\"). Default false — a low-confidence name lookup errors instead of returning a possibly-wrong company identity, so it can't silently feed downstream screening. Only relevant to the LLM+full-text-search fallback path; exact CIK/ticker/title-map resolutions are always match_confidence \"exact\" and are never gated by this flag."}}]}},"/x402/v2/uk-company-data":{"get":{"tags":["x402"],"summary":"UK Company Data (x402)","description":"Look up UK company data from Companies House. Accepts company number (8 digits) or fuzzy company name. Returns company name, status, incorporation date, SIC codes, registered address.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"active","address":"424 London Road, Westcliff-On-Sea, SS0 9LA, England","sic_codes":["82911"],"has_charges":false,"company_name":"FALSE DEMANDS - DO NOT PAY AS SOMEONE ELSE USING COMPANY NAME LTD","jurisdiction":"england-wales","business_type":"ltd","company_number":"10843886","dissolution_date":null,"incorporation_date":"2017-06-30"},"properties":{"status":{"type":"string"},"address":{"type":"string"},"sic_codes":{"type":"array","items":{"type":"string"}},"has_charges":{"type":"boolean"},"company_name":{"type":"string"},"jurisdiction":{"type":["string","null"]},"business_type":{"type":"string"},"company_number":{"type":"string"},"tier_2_available":{"type":"boolean"},"ubo_availability":{"type":"string"},"incorporation_date":{"type":"string"},"legal_representatives":{"type":"array","description":"Active officers with type (person/organisation), role, role_code, start_date; date_of_birth deliberately null (see uk-companies-house-officers for partial DOB)"},"tier_2_available_reason":{"type":"string"},"ubo_availability_reason":{"type":"string"},"total_legal_representatives":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"company_number","in":"query","required":true,"description":"UK Companies House number (8 digits) or company name","schema":{"type":"string","description":"UK Companies House number (8 digits) or company name"}}]}},"/x402/v2/token-count":{"get":{"tags":["x402"],"summary":"Token Count (x402)","description":"Estimate token count and cost for text across LLM models (GPT-4o, Claude, Gemini, Mistral, Llama). Algorithmic — no API calls.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"model":"gpt-4o","text_length":24,"token_count":6,"model_recognized":true,"cost_per_1k_tokens":0.0025,"estimated_cost_usd":0.000015,"fits_context_window":true,"chars_per_token_used":4,"max_context_for_model":128000},"properties":{"token_count":{"type":"integer"},"estimated_cost_usd":{"type":"number"},"fits_context_window":{"type":"boolean"},"max_context_for_model":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"text","in":"query","required":true,"schema":{"type":"string"}},{"name":"model","in":"query","required":false,"description":"gpt-4o, claude-3-haiku, etc.","schema":{"type":"string","description":"gpt-4o, claude-3-haiku, etc."}}]}},"/x402/v2/flatten-json":{"get":{"tags":["x402"],"summary":"Flatten JSON (x402)","description":"Flatten nested JSON to dot-notation keys. E.g. {a:{b:[1,2]}} → {'a.b.0':1,'a.b.1':2}. Configurable delimiter and array handling. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"delimiter":".","flattened":{"user.name":"John","user.address.city":"Stockholm"},"key_count":2,"array_handling":"index","max_depth_found":3},"properties":{"flattened":{"type":"object"},"key_count":{"type":"integer"},"max_depth_found":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"data","in":"query","required":true,"description":"Nested JSON object","schema":{"description":"Nested JSON object"}},{"name":"delimiter","in":"query","required":false,"description":"Default '.'","schema":{"type":"string","description":"Default '.'"}},{"name":"array_handling","in":"query","required":false,"description":"'index' or 'stringify'","schema":{"type":"string","description":"'index' or 'stringify'"}}]}},"/x402/v2/latvian-company-data":{"get":{"tags":["x402"],"summary":"Latvian Company Data (x402)","description":"Look up Latvian company data from the Enterprise Register (Uzņēmumu reģistrs) via the data.gov.lv open-data CKAN API. Accepts registration number (11 digits) or fuzzy company name. Returns name, status, type, address, registration date, SEPA creditor ID, and ATVK administrative code.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"Reģistrēts","address":"Mārupes nov., Mārupes pag., Lidosta \"Rīga\", Tehnikas iela 3","atvk_code":"807600","reg_number":"40003245752","company_name":"Air Baltic Corporation AS","company_type":"Akciju sabiedrība","jurisdiction":"LV","postal_index":"1053","register_type":"Komercreģistrs","sepa_creditor_id":"LV78ZZZ40003245752","termination_date":null,"company_type_code":"AS","registration_date":"1995-02-08"},"properties":{"status":{"type":"string"},"address":{"type":"string"},"atvk_code":{"type":"string"},"legal_form":{"type":["string","null"]},"legal_name":{"type":"string"},"reg_number":{"type":"string"},"vat_number":{"type":["string","null"]},"company_name":{"type":"string"},"company_type":{"type":"string"},"jurisdiction":{"type":"string"},"postal_index":{"type":"string"},"register_type":{"type":"string"},"sepa_creditor_id":{"type":"string"},"termination_date":{"type":"string"},"tier_2_available":{"type":"boolean"},"ubo_availability":{"type":"string"},"company_type_code":{"type":"string"},"date_incorporated":{"type":["string","null"]},"registration_date":{"type":"string"},"registered_address":{"type":["string","null"]},"legal_representatives":{"type":["array","null"],"description":"Current board members / representation-entitled persons (UR officers dataset); null when the officers query failed"},"primary_registration_id":{"type":["string","null"]},"tier_2_available_reason":{"type":"string"},"ubo_availability_reason":{"type":"string"},"total_legal_representatives":{"type":["integer","null"],"description":"True total from the registry (may exceed the returned array's length of 50); null when the officers query failed"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"task","in":"query","required":false,"description":"Free-text input — first matching registration number or company name is used","schema":{"type":"string","description":"Free-text input — first matching registration number or company name is used"}},{"name":"reg_number","in":"query","required":false,"description":"Latvian registration number (11 digits)","schema":{"type":"string","description":"Latvian registration number (11 digits)"}},{"name":"company_name","in":"query","required":false,"description":"Latvian company name (fuzzy match)","schema":{"type":"string","description":"Latvian company name (fuzzy match)"}}]}},"/x402/v2/country-tax-rates":{"get":{"tags":["x402"],"summary":"Country Tax Rates (x402)","description":"Get corporate tax, VAT, personal income tax, capital gains, and social security rates for 45+ countries.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"notes":"Municipal tax ~32% + state tax 20% above SEK 598k","currency":"SEK","tax_year":"2024/2025","country_code":"SE","country_name":"Sweden","last_updated":"2025-01","social_security":{"employee":7,"employer":31.42},"withholding_tax":{"royalty":0,"dividend":30,"interest":0},"vat_reduced_rates":[12,6],"vat_standard_rate":25,"capital_gains_rate":30,"corporate_tax_rate":20.6,"personal_income_tax_top_rate":52},"properties":{"vat_standard_rate":{"type":"number"},"capital_gains_rate":{"type":"number"},"corporate_tax_rate":{"type":"number"},"personal_income_tax_top_rate":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"country_code","in":"query","required":true,"description":"ISO 2-letter country code","schema":{"type":"string","description":"ISO 2-letter country code"}}]}},"/x402/v2/paid-api-preflight":{"get":{"tags":["x402"],"summary":"Paid API Pre-flight Check (x402)","description":"Verify any paid API endpoint before your agent spends money. Checks reachability, SSL, response time, and validates the payment protocol handshake (L402, x402, MPP). Returns a proceed/caution/avoid recommendation with parsed payment details. Use this before calling any paid external API to avoid wasting funds on broken, misconfigured, or fraudulent endpoints.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://api.example.com/v1/data","issues":[],"server":"nginx","ssl_valid":true,"status_code":402,"is_reachable":true,"recommendation":"proceed","payment_details":{"amount":"1000000","scheme":"exact","network":"base-sepolia","has_pay_to":true,"has_accepts":true},"payment_protocol":"x402","response_time_ms":340,"facilitator_reachable":true,"payment_handshake_valid":true},"properties":{"url":{"type":"string"},"issues":{"type":"array","items":{"type":"string"}},"server":{"type":"string"},"ssl_valid":{"type":"boolean"},"status_code":{"type":"integer"},"is_reachable":{"type":"boolean"},"recommendation":{"type":"string"},"payment_details":{"type":"object"},"payment_protocol":{"type":"string"},"response_time_ms":{"type":"integer"},"facilitator_reachable":{"type":"boolean"},"payment_handshake_valid":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"The paid API endpoint URL to check before paying","schema":{"type":"string","description":"The paid API endpoint URL to check before paying"}}]}},"/x402/v2/email-validate":{"get":{"tags":["x402"],"summary":"Email Validation (x402)","description":"Validate an email address: RFC 5322 syntax, MX records, 5,361 disposable domain detection, role-based address detection (35 patterns), free provider detection, and typo suggestion for common providers (gmial.com ? gmail.com). Returns deliverability assessment with per-check breakdown.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"email":"maria.santos@exemplo.com.br","valid":false,"domain":"exemplo.com.br","mx_records":[],"format_valid":true,"is_disposable":false,"has_mx_records":false,"is_role_address":false,"is_free_provider":false},"properties":{"email":{"type":"string"},"valid":{"type":"boolean"},"domain":{"type":"string","description":"Domain part of the email address"},"is_disposable":{"type":"boolean"},"has_mx_records":{"type":"boolean"},"is_role_address":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"email","in":"query","required":true,"description":"Email address to validate","schema":{"type":"string","description":"Email address to validate"}}]}},"/x402/v2/sepa-xml-validate":{"get":{"tags":["x402"],"summary":"SEPA XML Validate (x402)","description":"Validate SEPA XML files (pain.001 credit transfer, pain.008 direct debit). Checks structure, IBANs, BICs, amounts, transaction counts.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":false,"debtor":{"bic":null,"iban":null,"name":null},"errors":[{"path":"Document/@xmlns","message":"Missing or invalid SEPA namespace. Expected urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 or pain.008.001.02."},{"path":"Document","message":"Cannot determine SEPA message type. Expected pain.001 (credit transfer) or pain.008 (direct debit)."},{"path":"GrpHdr/MsgId","message":"Missing MsgId (Message Identification)."},{"path":"GrpHdr/CreDtTm","message":"Missing CreDtTm (Creation Date Time)."},{"path":"GrpHdr/NbOfTxs","message":"Missing NbOfTxs (Number of Transactions)."},{"path":"PmtInf","message":"No PmtInf (Payment Information) blocks found."}],"schema":null,"currency":"EUR","warnings":[],"message_id":null,"message_type":null,"total_amount":0,"creation_date":null,"payment_count":0,"creditor_count":0},"properties":{"valid":{"type":"boolean"},"errors":{"type":"array"},"message_type":{"type":"string"},"total_amount":{"type":"number"},"payment_count":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"xml","in":"query","required":true,"description":"SEPA XML string","schema":{"type":"string","description":"SEPA XML string"}}]}},"/x402/v2/sentiment-analyze":{"get":{"tags":["x402"],"summary":"Sentiment Analysis (x402)","description":"Analyze the sentiment of text. Returns overall sentiment (positive/negative/neutral/mixed), confidence scores, and aspect-level sentiment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"scores":{"neutral":0.95,"negative":0,"positive":0.05},"aspects":[{"aspect":"purpose of the text","sentiment":"neutral","text_span":"test input for automated capability testing"}],"summary":"The text is neutral in sentiment, describing a technical testing scenario without expressing any emotional valence.","sentiment":"neutral","confidence":0.95,"detected_language":"English"},"properties":{"scores":{"type":"object"},"aspects":{"type":"array"},"sentiment":{"type":"string"},"confidence":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"text","in":"query","required":true,"description":"Text to analyze","schema":{"type":"string","description":"Text to analyze"}}]}},"/x402/v2/uk-disqualified-director-check":{"post":{"tags":["x402"],"summary":"UK Disqualified Director Check (x402)","description":"Search the UK Companies House Disqualified Officers register by name, or fetch full disqualification detail by officer_id. Returns disqualification dates, court, reason, and companies involved.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.108000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"mode":"search","query":"Smith","candidates":[{"name":"SMITH, John","snippet":null,"officer_id":"AbC123xYZ","date_of_birth":"1970-01","address_snippet":"123 Example Street, London"}],"total_results":42},"properties":{"mode":{"type":"string"},"name":{"type":"string"},"found":{"type":"boolean"},"query":{"type":"string"},"candidates":{"type":"array"},"officer_id":{"type":"string"},"total_results":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","anyOf":[{"required":["name"]},{"required":["officer_id"]},{"required":["task"]}],"required":[],"properties":{"name":{"type":"string","description":"Individual's name to search for in the disqualified officers register"},"task":{"type":"string","description":"Free-text alias for name"},"officer_id":{"type":"string","description":"Companies House disqualified-officer ID (from a prior search's candidates[].officer_id) — fetches full disqualification detail"}}}}}}}},"/x402/v2/marketplace-fee-calculate":{"get":{"tags":["x402"],"summary":"Marketplace Fee Calculate (x402)","description":"Calculate seller fees for Amazon, eBay, Etsy, Shopify. Returns total fees, net revenue, fee breakdown.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"fees":{"other_fees":null,"closing_fee":null,"listing_fee":null,"referral_fee":8,"transaction_fee":null,"payment_processing_fee":null},"category":"electronics","currency":"USD","sale_price":100,"total_fees":8,"fee_percent":8,"marketplace":"amazon","net_revenue":92,"breakdown_notes":["Referral fee: 8.0% of sale price","Professional seller plan ($39.99/month not included in per-item calculation)","FBA fulfillment fees not included (varies by size/weight)"]},"properties":{"fees":{"type":"object"},"total_fees":{"type":"number"},"fee_percent":{"type":"number"},"net_revenue":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string"}},{"name":"sale_price","in":"query","required":true,"schema":{"type":"number"}},{"name":"marketplace","in":"query","required":true,"description":"amazon/ebay/etsy/shopify","schema":{"type":"string","description":"amazon/ebay/etsy/shopify"}}]}},"/x402/v2/og-image-check":{"get":{"tags":["x402"],"summary":"OG Image Check (x402)","description":"Validate Open Graph and Twitter Card images for a URL. Checks dimensions, file size, format, alt text.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"og":{"alt":null,"title":"Strale — Trust and Quality Infrastructure for AI Agents","width":null,"height":null,"image_url":"https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/40c97463-fb0c-4144-aa8c-9db65573a574/id-preview-5c2a5484--51ddd28d-009f-48ba-9c99-c76ee3e05d53.lovable.app-1772307174433.png","description":"Your agent calls strale.do() and gets company data, compliance checks, financial validation — structured JSON with audit trails. 250+ capabilities, one API key."},"url":"https://strale.dev","score":67,"issues":["Missing og:image:width and og:image:height","Missing og:image:alt text"],"image_format":"png","twitter_card":{"alt":null,"type":"summary_large_image","image_url":"https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/40c97463-fb0c-4144-aa8c-9db65573a574/id-preview-5c2a5484--51ddd28d-009f-48ba-9c99-c76ee3e05d53.lovable.app-1772307174433.png"},"image_size_kb":252,"recommendations":["Add og:image:width (1200) and og:image:height (630) for faster rendering.","Add og:image:alt for accessibility and SEO.","Add twitter:image:alt for accessibility on Twitter."]},"properties":{"og":{"type":"object"},"score":{"type":"number"},"issues":{"type":"array"},"twitter_card":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/dns-lookup":{"get":{"tags":["x402"],"summary":"DNS Lookup (x402)","description":"Perform a comprehensive DNS lookup for a domain. Returns A, AAAA, MX, NS, TXT, CNAME records plus SPF and DMARC detection.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"domain":"example.com","has_spf":true,"a_records":["104.18.27.120","104.18.26.120"],"has_dmarc":true,"mx_records":[{"exchange":"","priority":0}],"ns_records":["elliott.ns.cloudflare.com","hera.ns.cloudflare.com"],"txt_records":["_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9","v=spf1 -all"],"aaaa_records":["2606:4700::6812:1b78","2606:4700::6812:1a78"],"dmarc_record":"v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s","cname_records":[]},"properties":{"domain":{"type":"string"},"has_spf":{"type":"boolean"},"a_records":{"type":"array"},"has_dmarc":{"type":"boolean"},"mx_records":{"type":"array"},"ns_records":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain name (e.g. example.com)","schema":{"type":"string","description":"Domain name (e.g. example.com)"}}]}},"/x402/v2/aml-risk-score":{"get":{"tags":["x402"],"summary":"AML Risk Score (x402)","description":"Calculate a composite Anti-Money Laundering (AML) risk score for a person or company. Aggregates sanctions screening, PEP status, and jurisdiction risk into a single 0-100 risk score with risk level classification.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"scored_at":"2026-04-30T01:03:59.897Z","risk_level":"low","risk_score":0,"entity_name":"Test Company","entity_type":"person","country_code":"SE","risk_factors":[],"recommendation":"Standard Due Diligence (SDD) sufficient. Review per normal schedule.","inputs_received":{"pep_match":false,"sanctions_match":false,"adverse_media_match":false},"jurisdiction_risk":"standard"},"properties":{"risk_level":{"type":"string"},"risk_score":{"type":"integer"},"entity_name":{"type":"string"},"risk_factors":{"type":"array"},"recommendation":{"type":"string"},"jurisdiction_risk":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"pep_match","in":"query","required":false,"description":"Whether entity is a Politically Exposed Person","schema":{"type":"boolean","description":"Whether entity is a Politically Exposed Person"}},{"name":"entity_name","in":"query","required":true,"description":"Name of person or company","schema":{"type":"string","description":"Name of person or company"}},{"name":"entity_type","in":"query","required":false,"description":"Type of entity: person or company (default: person)","schema":{"type":"string","description":"Type of entity: person or company (default: person)"}},{"name":"country_code","in":"query","required":true,"description":"ISO 2-letter country code","schema":{"type":"string","description":"ISO 2-letter country code"}},{"name":"sanctions_match","in":"query","required":false,"description":"Whether entity appears on sanctions lists","schema":{"type":"boolean","description":"Whether entity appears on sanctions lists"}},{"name":"adverse_media_match","in":"query","required":false,"description":"Whether adverse media was found","schema":{"type":"boolean","description":"Whether adverse media was found"}}]}},"/x402/v2/markdown-to-html":{"get":{"tags":["x402"],"summary":"Markdown to HTML (x402)","description":"Convert markdown to styled HTML with inline CSS. Supports light, dark, and plain themes. Algorithmic — instant.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"html":"<!DOCTYPE html>\n<html lang=\"en\">\n<head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><style>body{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;line-height:1.6;max-width:800px;margin:0 auto;padding:2rem}\ncode{font-family:\"SF Mono\",Monaco,Consolas,monospace;font-size:0.9em;padding:0.2em 0.4em;border-radius:3px}\npre{padding:1rem;border-radius:6px;overflow-x:auto}pre code{padding:0}\nblockquote{border-left:4px solid;padding-left:1rem;margin-left:0}\nimg{max-width:100%;height:auto}\ntable{border-collapse:collapse;width:100%}th,td{border:1px solid;padding:0.5rem;text-align:left}\nhr{border:none;border-top:1px solid}\nbody{background:#fff;color:#333}a{color:#0366d6}code{background:#f6f8fa}pre{background:#f6f8fa}blockquote{border-color:#dfe2e5;color:#6a737d}th,td{border-color:#ddd}hr{border-color:#eee}</style></head>\n<body><h1>Hello World</h1>\n\n<p>This is a <strong>test</strong> document.</p></body>\n</html>","theme":"light","body_html":"<h1>Hello World</h1>\n\n<p>This is a <strong>test</strong> document.</p>"},"properties":{"html":{"type":"string"},"theme":{"type":"string"},"body_html":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"theme","in":"query","required":false,"description":"light, dark, or plain","schema":{"type":"string","description":"light, dark, or plain"}},{"name":"markdown","in":"query","required":true,"description":"Markdown text to convert","schema":{"type":"string","description":"Markdown text to convert"}}]}},"/x402/v2/prompt-compress":{"get":{"tags":["x402"],"summary":"Prompt Compress (x402)","description":"Compress a prompt to be shorter while preserving semantic meaning. Specify target reduction percentage (10-70%).","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"original_tokens":14,"removed_content":["This is a test","for"],"compressed_prompt":"Automated capability testing input.","compressed_tokens":9,"preserved_instructions":["Identify this as test input","Recognize it's for automated capability testing"],"actual_reduction_percent":36},"properties":{"original_tokens":{"type":"integer"},"compressed_prompt":{"type":"string"},"compressed_tokens":{"type":"integer"},"actual_reduction_percent":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"prompt_text","in":"query","required":true,"schema":{"type":"string"}},{"name":"target_reduction_percent","in":"query","required":false,"description":"Default 30","schema":{"type":"integer","description":"Default 30"}}]}},"/x402/v2/company-enrich":{"get":{"tags":["x402"],"summary":"Company Enrichment (x402)","description":"Enrich company data from a domain, email, or company name. Scrapes the company website to extract: industry, employee estimate, HQ location, description, social links, tech stack.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.540000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"domain":"strale.dev","industry":"Software / AI Infrastructure","location":"Sweden","description":"Data layer for AI agents","company_name":"Strale","founded_year":2026,"employee_count":null,"social_profiles":{}},"properties":{"industry":{"type":"string"},"tech_stack":{"type":"array"},"description":{"type":"string"},"hq_location":{"type":"string"},"company_name":{"type":"string"},"employee_estimate":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"domain","in":"query","required":true,"description":"Company domain (e.g. spotify.com), email, or name","schema":{"type":"string","description":"Company domain (e.g. spotify.com), email, or name"}}]}},"/x402/v2/json-to-zod":{"get":{"tags":["x402"],"summary":"JSON to Zod (x402)","description":"Convert JSON to Zod validation schemas. Auto-detects emails, URLs, UUIDs, dates for refined validators. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"zod_schema":"import { z } from \"zod\";\n\nconst rootSchema = z.object({\n  name: z.string(),\n  age: z.number().int(),\n});","root_schema":"rootSchema","schema_count":1},"properties":{"zod_schema":{"type":"string"},"root_schema":{"type":"string"},"schema_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"json","in":"query","required":true,"description":"JSON string or object","schema":{"description":"JSON string or object"}},{"name":"root_name","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/meta-extract":{"get":{"tags":["x402"],"summary":"Meta Extract (x402)","description":"Extract all metadata from a URL: Open Graph, Twitter cards, JSON-LD, favicon, canonical URL, RSS feeds, robots directives.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"og":{"url":null,"type":"website","image":"https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/40c97463-fb0c-4144-aa8c-9db65573a574/id-preview-5c2a5484--51ddd28d-009f-48ba-9c99-c76ee3e05d53.lovable.app-1772307174433.png","title":"Strale — Trust and Quality Infrastructure for AI Agents","site_name":null,"description":"Your agent calls strale.do() and gets company data, compliance checks, financial validation — structured JSON with audit trails. 250+ capabilities, one API key."},"url":"https://strale.dev","feeds":[],"title":"Strale — Trust and Quality Infrastructure for AI Agents","robots":null,"favicon":"https://strale.dev/favicon.ico","json_ld":[{"url":"https://strale.dev","name":"Strale","@type":"SoftwareApplication","author":{"url":"https://strale.dev","name":"Strale","@type":"Organization","email":"hello@strale.io","sameAs":["https://x.com/strale_io","https://github.com/petterlindstrom79/strale","https://dev.to/strale"]},"offers":{"@type":"Offer","price":"0","description":"Free tier available with IBAN validation. Paid capabilities from €0.03/call.","priceCurrency":"EUR"},"@context":"https://schema.org","description":"One API call. Verified data your agent can trust. 250+ independently tested and scored capabilities across 27 countries, accessible via MCP, A2A, REST API, and x402.","featureList":["IBAN validation","VAT number validation across EU","Company data lookup in 27 countries","Sanctions screening","SSL certificate checking","Currency exchange rates","Invoice and receipt extraction","MCP server with 250+ tools","A2A Agent Card for agent-to-agent communication","x402 pay-per-request micropayments","Strale Quality Score (SQS) trust ratings"],"operatingSystem":"Any (API/MCP)","applicationCategory":"DeveloperApplication","softwareRequirements":"MCP client (Claude, Cursor, Windsurf) or HTTP client"},{"url":"https://strale.dev","logo":"https://strale.dev/logo.png","name":"Strale","@type":"Organization","sameAs":["https://x.com/strale_io","https://github.com/petterlindstrom79/strale"],"@context":"https://schema.org","description":"One API call. Verified data your agent can trust.","contactPoint":{"@type":"ContactPoint","email":"hello@strale.io","contactType":"customer service"}}],"twitter":{"card":"summary_large_image","site":null,"image":"https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/40c97463-fb0c-4144-aa8c-9db65573a574/id-preview-5c2a5484--51ddd28d-009f-48ba-9c99-c76ee3e05d53.lovable.app-1772307174433.png","title":"Strale — Trust and Quality Infrastructure for AI Agents","creator":null,"description":"Your agent calls strale.do() and gets company data, compliance checks, financial validation — structured JSON with audit trails. 250+ capabilities, one API key."},"language":"en","description":"Your agent calls strale.do() and gets company data, compliance checks, financial validation — structured JSON with audit trails. 250+ capabilities, one API key.","canonical_url":null},"properties":{"og":{"type":"object"},"feeds":{"type":"array"},"title":{"type":"string"},"json_ld":{"type":"array"},"twitter":{"type":"object"},"description":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to extract metadata from","schema":{"type":"string","description":"URL to extract metadata from"}}]}},"/x402/v2/whois-lookup":{"get":{"tags":["x402"],"summary":"WHOIS Lookup (x402)","description":"Perform a WHOIS lookup for a domain. Returns registrar, creation date, expiry date, name servers, registrant info, and raw WHOIS data.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"domain":"google.com","created":"1997-09-15T04:00:00Z","expires":"2028-09-14T04:00:00Z","updated":"2019-09-09T15:39:04Z","statuses":["clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited","clientTransferProhibited https://icann.org/epp#clientTransferProhibited","clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited","serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited","serverTransferProhibited https://icann.org/epp#serverTransferProhibited","serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited","//icann.org/epp"],"raw_whois":"   Domain Name: GOOGLE.COM\r\n   Registry Domain ID: 2138514_DOMAIN_COM-VRSN\r\n   Registrar WHOIS Server: whois.markmonitor.com\r\n   Registrar URL: http://www.markmonitor.com\r\n   Updated Date: 2019-09-09T15:39:04Z\r\n   Creation Date: 1997-09-15T04:00:00Z\r\n   Registry Expiry Date: 2028-09-14T04:00:00Z\r\n   Registrar: MarkMonitor Inc.\r\n   Registrar IANA ID: 292\r\n   Registrar Abuse Contact Email: abusecomplaints@markmonitor.com\r\n   Registrar Abuse Contact Phone: +1.2086851750\r\n   Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited\r\n   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited\r\n   Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited\r\n   Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited\r\n   Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited\r\n   Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited\r\n   Name Server: NS1.GOOGLE.COM\r\n   Name Server: NS2.GOOGLE.COM\r\n   Name Server: NS3.GOOGLE.COM\r\n   Name Server: NS4.GOOGLE.COM\r\n   DNSSEC: unsigned\r\n   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/\r\n>>> Last update of whois database: 2026-04-03T00:33:57Z <<<\r\n\r\nFor more information on Whois status codes, please visit https://icann.org/epp\r\n\r\nNOTICE: The expiration date displayed in this record is the date the\r\nregistrar's sponsorship of the domain name registration in the registry is\r\ncurrently set to expire. This date does not necessarily reflect the expiration\r\ndate of the domain name registrant's agreement with the sponsoring\r\nregistrar.  Users may consult the sponsoring registrar's Whois database to\r\nview the registrar's reported date of expiration for this registration.\r\n\r\nTERMS OF USE: You are not authorized to access or query our Whois\r\ndatabase through the use of electronic processes that are high-volume and\r\nautomated except as reasonably necessary to register domain names or\r\nmodify existing registrations; the Data in VeriSign Global Registry\r\nServices' (\"VeriSign\") Whois database is provided by VeriSign for\r\ninformation purposes only, and to assist persons in obtaining information\r\nabout or related to a domain name registration record. VeriSign does not\r\nguarantee its accuracy. By submitting a Whois query, you agree to abide\r\nby the following terms of use: You agree that you may use this Data only\r\nfor lawful purposes and that under no circumstances will you use this Data\r\nto: (1) allow, enable, or otherwise support the transmission of mass\r\nunsolicited, commercial advertising or solicitations via e-mail, telephone,\r\nor facsimile; or (2) enable high volume, automated, electronic processes\r\nthat apply to VeriSign (or its computer systems). The compilation,\r\nrepackaging, dissemination or other use of this Data is expressly\r\nprohibited without the prior written consent of VeriSign. You agree not to\r\nuse electronic processes","registrar":"whois.markmonitor.com","name_servers":["ns1.google.com","ns2.google.com","ns3.google.com","ns4.google.com"]},"properties":{"domain":{"type":"string"},"created":{"type":"string"},"expires":{"type":"string"},"registrar":{"type":"string"},"name_servers":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain name (e.g. example.com)","schema":{"type":"string","description":"Domain name (e.g. example.com)"}}]}},"/x402/v2/spanish-company-data":{"get":{"tags":["x402"],"summary":"Spanish Company Data (x402)","description":"Look up Spanish company data from the BORME-derived OpenMercantil register. Accepts CIF/NIF or company name. Returns identity, status, legal form, current officers (cargos) with roles, and BORME activity history for 2.8M+ Spanish companies.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"nif":"A20072302","status":"active","address":null,"province":"Gipuzkoa","status_raw":"Activa","vat_number":"ESA20072302","company_name":"CONSTRUCCIONES AMENABAR SA","company_type":"S.A.","jurisdiction":"ES","borme_acts_count":79,"tier_2_available":true,"registration_date":null,"last_borme_activity":"2026-01-15","first_borme_activity":"2009-04-16","total_legal_representatives":22},"properties":{"nif":{"type":["string","null"],"description":"CIF; can be null on name-path lookups when the BORME record carries no published CIF"},"status":{"enum":["active","inactive","unknown",null],"type":["string","null"]},"address":{"type":["string","null"]},"province":{"type":["string","null"],"description":"Province with the most BORME filings for this company — an activity-location proxy, NOT the registered office"},"legal_form":{"type":["string","null"]},"legal_name":{"type":"string"},"status_raw":{"type":["string","null"],"description":"Native Spanish register status (Activa, Extinguida, ...)"},"vat_number":{"type":["string","null"]},"company_name":{"type":"string"},"company_type":{"type":["string","null"]},"jurisdiction":{"type":"string"},"borme_acts_count":{"type":["integer","null"]},"tier_2_available":{"type":"boolean"},"ubo_availability":{"type":"string"},"date_incorporated":{"type":["string","null"]},"recent_borme_acts":{"type":"array","description":"Most recent BORME acts with per-act registral references (Sección/Hoja/Inscripción) — the primary-source trace for officer and status facts"},"registration_date":{"type":["string","null"]},"registered_address":{"type":["string","null"]},"last_borme_activity":{"type":["string","null"]},"first_borme_activity":{"type":["string","null"]},"legal_representatives":{"type":["array","null"],"description":"Current officers (cargos vigentes) with type (person/organisation), native Spanish role (Apoderado, Adm. Unico, Consejero...), role_group (management_board/procuration/liquidation/other), and start date. Null (not empty) when the officers block was unavailable on this call."},"primary_registration_id":{"type":["string","null"]},"tier_2_available_reason":{"type":"string"},"ubo_availability_reason":{"type":"string"},"total_legal_representatives":{"type":["integer","null"]}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"cif","in":"query","required":false,"description":"Alias for nif","schema":{"type":"string","description":"Alias for nif"}},{"name":"nif","in":"query","required":false,"description":"Spanish CIF/NIF (letter + 7 digits + check char, e.g. A28015865); ES-prefixed VAT accepted","schema":{"type":"string","description":"Spanish CIF/NIF (letter + 7 digits + check char, e.g. A28015865); ES-prefixed VAT accepted"}},{"name":"name","in":"query","required":false,"description":"Alias for company_name","schema":{"type":"string","description":"Alias for company_name"}},{"name":"task","in":"query","required":false,"description":"Free-text alias — CIF/NIF or company name","schema":{"type":"string","description":"Free-text alias — CIF/NIF or company name"}},{"name":"query","in":"query","required":false,"description":"Free-text alias — CIF/NIF or company name","schema":{"type":"string","description":"Free-text alias — CIF/NIF or company name"}},{"name":"identifier","in":"query","required":false,"description":"Alias for nif","schema":{"type":"string","description":"Alias for nif"}},{"name":"vat_number","in":"query","required":false,"description":"Alias for nif — ES-prefix VAT format accepted (ESA28015865)","schema":{"type":"string","description":"Alias for nif — ES-prefix VAT format accepted (ESA28015865)"}},{"name":"company_name","in":"query","required":false,"description":"Spanish company name (scored match — ambiguous names are refused, never guessed)","schema":{"type":"string","description":"Spanish company name (scored match — ambiguous names are refused, never guessed)"}}]}},"/x402/v2/page-exists":{"post":{"tags":["x402"],"summary":"Page Exists (x402)","description":"Check whether a URL still exists — catches hard 404s, soft-404 pages, dead links, and removed listings that still return HTTP 200.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com","title":"Example Domain","exists":true,"reason":"ok","signals":[],"final_url":"https://example.com/","checked_at":"2026-08-12T12:00:00.000Z","confidence":"medium","redirected":false,"status_code":200,"content_length":559},"properties":{"url":{"type":"string"},"error":{"type":"string","description":"Present only on network/timeout failures."},"title":{"type":["string","null"]},"exists":{"type":["boolean","null"],"description":"Three-state. true = page appears to exist; false = page appears gone (hard or soft 404); null = indeterminate (blocked by bot detection, server error, or network failure) — treat as \"unknown\", not as either answer."},"reason":{"enum":["ok","non_html_content","hard_404","soft_404_title","soft_404_body","soft_404_body_and_redirect","redirected_to_generic","thin_content","access_blocked","server_error","unexpected_status","timeout","redirect_loop","dns_error","network_error"],"type":"string"},"signals":{"type":"array","items":{"enum":["soft_404_title","soft_404_body","redirected_to_generic","thin_content"],"type":"string"},"description":"Every heuristic that fired, independent of the final verdict."},"final_url":{"type":["string","null"]},"checked_at":{"type":"string"},"confidence":{"enum":["high","medium","low",null],"type":["string","null"],"description":"null whenever exists is null. Do not act on \"low\" alone."},"redirected":{"type":"boolean","description":"Compared against the normalized input URL, so trailing-slash/fragment normalization does not count as a redirect."},"status_code":{"type":["integer","null"]},"content_length":{"type":["integer","null"],"description":"Decoded bytes actually fetched, capped at 20000 — exact for small pages, a lower bound for larger ones. Not the Content-Length header."}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"URL to check for content-level existence"},"timeout_ms":{"type":"integer","description":"Request timeout in milliseconds (clamped to 1000-30000, default 10000)"}}}}}}}},"/x402/v2/email-validate-bulk":{"post":{"tags":["x402"],"summary":"Bulk Email Validation (x402)","description":"Validate up to 100 email addresses in one call. Checks format, MX records, disposable domain detection, and role-based address detection per address, plus an aggregate summary. No email is sent.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"total":2,"results":[{"email":"test@google.com","valid":true,"domain":"google.com","mx_records":["smtp.google.com"],"format_valid":true,"is_disposable":false,"has_mx_records":true,"is_role_address":false,"is_free_provider":false},{"email":"not-an-email","valid":false,"reason":"Invalid email format.","format_valid":false}],"summary":{"by_domain":{"google.com":{"total":1,"valid":1}},"disposable_count":0,"role_address_count":0,"free_provider_count":0},"valid_count":1,"invalid_count":1},"properties":{"total":{"type":"number"},"results":{"type":"array"},"summary":{"type":"object"},"valid_count":{"type":"number"},"invalid_count":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Newline- or comma-separated string of email addresses (alias for 'emails')"},"emails":{"type":"array","items":{"type":"string"},"description":"Array of email addresses to validate (max 100, deduplicated)"},"email_addresses":{"type":"array","items":{"type":"string"},"description":"Alias for 'emails'"}}}}}}}},"/x402/v2/sql-explain":{"get":{"tags":["x402"],"summary":"SQL Explain (x402)","description":"Explain a SQL query in plain language. Identifies tables, joins, filters, aggregations, and potential performance issues.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"steps":["Parser encounters the word 'test'","No SQL keywords (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.) are recognized","Query fails to parse and returns a syntax error"],"dialect":"postgres","sql_length":4,"explanation":"The input 'test' is not a valid SQL query. It appears to be a plain text string with no SQL syntax or commands.","potential_issues":["Invalid SQL syntax - not a valid SQL statement","Query will fail execution with a PostgreSQL syntax error"],"tables_referenced":[],"optimization_suggestions":["Provide a valid SQL query to analyze","Ensure the query contains proper SQL syntax with keywords like SELECT, INSERT, UPDATE, or DELETE"]},"properties":{"tables":{"type":"array"},"operations":{"type":"array"},"plain_english":{"type":"string"},"potential_issues":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"sql","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/context-window-optimize":{"get":{"tags":["x402"],"summary":"Context Window Optimize (x402)","description":"Rank and select document chunks by relevance to fit within a token budget. Returns selected/excluded chunks with scores.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"SELECT * FROM users WHERE active = true LIMIT 10","excluded":[{"reason":"low relevance"}],"selected":[],"max_tokens":4000,"selected_count":0,"total_documents":1,"tokens_remaining":4000,"total_tokens_used":0},"properties":{"excluded":{"type":"array"},"selected":{"type":"array"},"tokens_remaining":{"type":"integer"},"total_tokens_used":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string"}},{"name":"documents","in":"query","required":true,"description":"Array of {id, text}","schema":{"type":"array","description":"Array of {id, text}"}},{"name":"max_tokens","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/pypi-package-info":{"get":{"tags":["x402"],"summary":"PyPI Package Info (x402)","description":"Fetch Python package metadata from PyPI: version, dependencies, Python compatibility, release history, license.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"name":"requests","author":"Kenneth Reitz <me@kennethreitz.org>","license":"Apache Software License","summary":"Python HTTP for Humans.","version":"2.33.1","homepage":"https://pypi.org/project/requests/","keywords":[],"package_url":"https://pypi.org/project/requests/","dependencies":["charset_normalizer<4,>=2","idna<4,>=2.5","urllib3<3,>=1.26","certifi>=2023.5.7","PySocks!=1.5.7,>=1.5.6; extra == \"socks\"","chardet<8,>=3.0.2; extra == \"use-chardet-on-py3\""],"project_urls":{"Source":"https://github.com/psf/requests","Documentation":"https://requests.readthedocs.io"},"total_releases":159,"python_versions":["3","Only","3.10","3.11","3.12","3.13","3.14","CPython","PyPy"],"recent_releases":[{"version":"2.9.2","upload_date":"2016-04-29T21:57:23.021820Z","python_requires":null},{"version":"2.9.1","upload_date":"2015-12-21T14:55:10.646407Z","python_requires":null},{"version":"2.9.0","upload_date":"2015-12-15T15:30:34.276097Z","python_requires":null},{"version":"2.8.1","upload_date":"2015-10-13T12:56:41.375848Z","python_requires":null},{"version":"2.8.0","upload_date":"2015-10-06T14:47:57.677398Z","python_requires":null},{"version":"2.7.0","upload_date":"2015-05-03T15:01:28.821871Z","python_requires":null},{"version":"2.6.2","upload_date":"2015-04-23T16:30:52.318157Z","python_requires":null},{"version":"2.6.1","upload_date":"2015-04-23T02:27:04.893535Z","python_requires":null},{"version":"2.6.0","upload_date":"2015-03-14T16:44:37.146829Z","python_requires":null},{"version":"2.5.3","upload_date":"2015-02-24T16:33:49.703522Z","python_requires":null}],"requires_python":">=3.10","description_content_type":"text/markdown"},"properties":{"name":{"type":"string"},"summary":{"type":"string"},"version":{"type":"string"},"dependencies":{"type":"array"},"recent_releases":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"package","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/eth-address-validate":{"post":{"tags":["x402"],"summary":"Ethereum Address Validation (x402)","description":"Validate an Ethereum address. Checks 0x-prefixed 40-hex format and EIP-55 mixed-case checksum to catch single-character typos. Returns checksummed (canonical) form. Pure algorithmic — fast and cheap.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"input":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","valid":true,"normalized":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","format_valid":true,"checksum_valid":true,"is_zero_address":false,"checksum_present":true},"properties":{"input":{"type":"string"},"valid":{"type":"boolean"},"normalized":{"type":["string","null"]},"format_valid":{"type":"boolean"},"checksum_valid":{"type":["boolean","null"]},"is_zero_address":{"type":"boolean"},"checksum_present":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Ethereum address (e.g. 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045)"}}}}}}}},"/x402/v2/wallet-balance-lookup":{"get":{"tags":["x402"],"summary":"Wallet Balance Lookup (x402)","description":"Get a wallet's native balance and the ERC-20 tokens it most recently sent or received, on Ethereum, Base, Arbitrum, Optimism or Polygon.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"note":"recent_tokens is derived from the last 100 token transfers, not actual balances.","address":"0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe","chain_id":"1","recent_tokens":[{"name":"HEX","symbol":"HEX","address":"0x2b591e99afe9f32eaa6214f7b7629768c40eeb39"},{"name":"PointZ","symbol":"PTZ","address":"0xb9e9f8de030be4585c65cb4b14af3a3acf1f92b1"},{"name":"Strait of Hormuz","symbol":"HORMUZ","address":"0x9a145c5ef4e045008e3e56566ef80a9739dd5981"},{"name":"Yee Token","symbol":"Yee","address":"0x9ac9468e7e3e1d194080827226b45d0b892c77fd"},{"name":"QAI","symbol":"QAI","address":"0xafc628ae96e4d964222a3c7c4fad92bac72c26cd"},{"name":"AIG","symbol":"AIG","address":"0xbfb5d3e6d835bef660fee47877ad07ff780c88f3"},{"name":"Orbitshield","symbol":"OBS","address":"0x5a52b7c9ee14a6740f6a3563013054b3de4c6f65"},{"name":"星火通证","symbol":"SPARK","address":"0xe92ec83d8ea27f802393f084004491e463209acb"},{"name":"DubAI","symbol":"DubAI","address":"0x60b69a1dfc78a67c72a616f213b3e256e1ecce5b"},{"name":"B Zero X","symbol":"B0x","address":"0x1f8f212540b31b37f40d8c57b5c7d8b55bf25919"},{"name":"Malamute.Finance","symbol":"MALLY","address":"0xa3e7833775a9cc022db2c72eb900378f90ce89b4"},{"name":"Tether USD","symbol":"USDT","address":"0x4c592e723e5adf7ab9227043824d25fc77d6980e"},{"name":"AILife","symbol":"AILife","address":"0xc26cdfca6999d2aa45ab09ae2e4e9458b2fa18a2"},{"name":"Tether USD","symbol":"USDT","address":"0xdac17f958d2ee523a2206206994597c13d831ec7"},{"name":"GLOBAL RESERVE SYSTEM","symbol":"GLOB","address":"0x45f2ab0ca2116b2e1a70bf5e13293947b25d0272"},{"name":"Ethereum Hyper","symbol":"eHYPER","address":"0x6396b6eede0af69d8371a7520aee72bd979c3e6d"},{"name":"Nicolas Maduro","symbol":"MADURO","address":"0xf9b09a5f1b34b42a484050ddcf052bec00c5acec"},{"name":"Nexo","symbol":"NEXO","address":"0xb62132e35a6c13ee1ee0f84dc5d40bad8d815206"},{"name":"Binance Wrapped BTC","symbol":"BBTC","address":"0x9be89d2a4cd102d8fecc6bf9da793be995c22541"},{"name":"Life USD","symbol":"LUSD","address":"0xdc53cc918c925beb02ef5eca4d83449913bb7f5a"}],"native_balance_eth":10774.450568,"native_balance_wei":"10774450567588229957307","token_transfer_count":100},"properties":{"address":{"type":"string"},"chain_id":{"type":"string"},"native_symbol":{"type":"string"},"recent_tokens":{"type":"array"},"native_balance_eth":{"type":"number"},"native_balance_wei":{"type":"string"},"token_transfer_count":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address (0x...)","schema":{"type":"string","description":"Wallet address (0x...)"}},{"name":"chain_id","in":"query","required":false,"description":"Chain ID: 1 (Ethereum), 8453 (Base), 42161 (Arbitrum One), 10 (OP Mainnet) or 137 (Polygon PoS). Default: 1","schema":{"type":"string","description":"Chain ID: 1 (Ethereum), 8453 (Base), 42161 (Arbitrum One), 10 (OP Mainnet) or 137 (Polygon PoS). Default: 1"}}]}},"/x402/v2/doi-resolve":{"post":{"tags":["x402"],"summary":"DOI Resolve (x402)","description":"Resolve a DOI to canonical publication metadata: title, authors, journal, publisher, date, volume/issue/pages, ISSN, licence and citation count. Falls back to DataCite for dataset DOIs.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"doi":"10.1038/nature12373","url":"https://doi.org/10.1038/nature12373","issn":["0028-0836"],"type":"journal-article","issue":"7460","pages":"54-58","title":"Nanometre-scale thermometry in a living cell","volume":"500","authors":["G. Kucsko","P. C. Maurer"],"abstract":null,"language":"en","published":"2013-07-31","publisher":"Springer Science and Business Media LLC","license_url":"http://www.springer.com/tdm","container_title":"Nature","reference_count":30,"referenced_by_count":1815,"registration_agency":"Crossref"},"properties":{"doi":{"type":"string"},"url":{"type":"string"},"title":{"type":"string"},"authors":{"type":"array"},"referenced_by_count":{"type":"number"},"registration_agency":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["doi"],"properties":{"doi":{"type":"string","description":"A bare DOI (10.1038/nature12373), a doi: prefixed string, or any doi.org URL"}}}}}}}},"/x402/v2/image-resize":{"get":{"tags":["x402"],"summary":"Image Resize (x402)","description":"Resize, crop, and convert images. Supports PNG, JPEG, WebP. Configurable dimensions, quality, fit mode. Uses Sharp.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"width":100,"base64":"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","format":"png","height":100,"size_bytes":6947,"content_type":"image/png"},"properties":{"width":{"type":"integer"},"base64":{"type":"string"},"height":{"type":"integer"},"size_bytes":{"type":"integer"},"content_type":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"fit","in":"query","required":false,"description":"cover, contain, fill, inside, outside","schema":{"enum":["cover","contain","fill","inside","outside"],"type":"string","description":"cover, contain, fill, inside, outside"}},{"name":"base64","in":"query","required":false,"schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"png, jpeg, or webp","schema":{"enum":["png","jpeg","webp"],"type":"string","description":"png, jpeg, or webp"}},{"name":"quality","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1}},{"name":"image_url","in":"query","required":false,"schema":{"type":"string"}},{"name":"target_width","in":"query","required":false,"schema":{"type":"integer"}},{"name":"target_height","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/isbn-validate":{"get":{"tags":["x402"],"summary":"ISBN Validation (x402)","description":"Validate an ISBN-10 or ISBN-13 number. Checks format, length, and checksum. Converts ISBN-10 to ISBN-13. Pure algorithmic — instant.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"type":"ISBN-13","valid":true,"isbn13":"9780134685991","ean_prefix":"978","isbn_input":"978-0-13-468599-1","isbn_cleaned":"9780134685991"},"properties":{"type":{"type":"string"},"valid":{"type":"boolean"},"isbn13":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"isbn","in":"query","required":true,"description":"ISBN-10 or ISBN-13 (e.g. 978-3-16-148410-0)","schema":{"type":"string","description":"ISBN-10 or ISBN-13 (e.g. 978-3-16-148410-0)"}}]}},"/x402/v2/payment-reference-generate":{"get":{"tags":["x402"],"summary":"Payment Reference Generate (x402)","description":"Generate valid payment reference numbers with check digits: Swedish OCR, Norwegian KID, Finnish reference, ISO 11649 RF.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"type":"ocr_se","formatted":"668865801","reference":"668865801","check_digit":"1","algorithm_used":"luhn"},"properties":{"type":{"type":"string"},"formatted":{"type":"string"},"reference":{"type":"string"},"check_digit":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"type","in":"query","required":true,"description":"ocr_se/ocr_no/ocr_fi/iso11649/rf","schema":{"type":"string","description":"ocr_se/ocr_no/ocr_fi/iso11649/rf"}},{"name":"base_number","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/npm-package-info":{"get":{"tags":["x402"],"summary":"npm Package Info (x402)","description":"Fetch npm package metadata: version, dependencies, downloads, repository, license. Includes weekly download count.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"name":"express","author":"TJ Holowaychuk","created":"2010-12-29T19:38:25.450Z","license":"MIT","homepage":"https://expressjs.com/","keywords":["express","framework","sinatra","web","http","rest","restful","router","app","api"],"dist_tags":{"latest":"5.2.1","latest-4":"4.22.1"},"repository":"git+https://github.com/expressjs/express.git","description":"Fast, unopinionated, minimalist web framework","dependencies":["qs","depd","etag","once","send","vary","debug","fresh","cookie","router","accepts","type-is","parseurl","statuses","encodeurl","mime-types","proxy-addr","body-parser","escape-html","http-errors","on-finished","content-type","finalhandler","range-parser","serve-static","cookie-signature","merge-descriptors","content-disposition"],"last_modified":"2026-04-01T22:24:38.828Z","latest_version":"5.2.1","total_versions":287,"recent_versions":[{"version":"4.22.1","published":"2025-12-01T20:50:41.122Z"},{"version":"5.2.1","published":"2025-12-01T20:49:43.268Z"},{"version":"5.2.0","published":"2025-12-01T16:23:57.541Z"},{"version":"4.22.0","published":"2025-12-01T16:23:07.582Z"},{"version":"5.1.0","published":"2025-03-31T14:01:22.509Z"}],"dev_dependencies":["ejs","hbs","nyc","after","mocha","vhost","eslint","marked","morgan","supertest","connect-redis","cookie-parser","cookie-session","express-session","method-override","pbkdf2-password"],"weekly_downloads":95603758},"properties":{"name":{"type":"string"},"license":{"type":"string"},"dependencies":{"type":"array"},"latest_version":{"type":"string"},"weekly_downloads":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"package","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/risk-narrative-generate":{"get":{"tags":["x402"],"summary":"Risk Narrative Generator (x402)","description":"Generates a plain-language risk narrative from structured check results. Designed for non-technical users reviewing AI agent output. Supports KYB and invoice fraud contexts.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"flags":[{"finding":"The company domain is only 15 days old","severity":"high","recommendation":"Verify the company through additional channels before proceeding"}],"summary":"1 of 3 checks flagged an issue. The domain age is under 30 days, which warrants attention.","raw_checks":{"company_exists":{"pass":true},"domain_age_days":{"data":{"age_days":15},"pass":false},"sanctions_clear":{"pass":true}},"risk_level":"low","risk_score":25,"passed_checks":["company exists","sanctions clear"],"checks_performed":3,"data_sources_consulted":["Claude Sonnet risk assessment"]},"properties":{"flags":{"type":"array"},"summary":{"type":"string"},"raw_checks":{"type":"object"},"risk_level":{"type":"string"},"risk_score":{"type":"number"},"passed_checks":{"type":"array"},"checks_performed":{"type":"integer"},"data_sources_consulted":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"context","in":"query","required":true,"description":"Context for the risk assessment (kyb or invoice_fraud)","schema":{"enum":["kyb","invoice_fraud"],"type":"string","description":"Context for the risk assessment (kyb or invoice_fraud)"}},{"name":"check_results","in":"query","required":true,"description":"Structured check results from upstream capabilities","schema":{"type":"object","description":"Structured check results from upstream capabilities"}}]}},"/x402/v2/shipping-cost-estimate":{"get":{"tags":["x402"],"summary":"Shipping Cost Estimate (x402)","description":"Estimate shipping costs for PostNord, DHL, UPS by origin/destination, weight, and service level.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"zone":"domestic","notes":"Estimates based on published rate guides. Get exact quotes from carrier websites. Prices in EUR, actual currency may vary by carrier and route.","origin":"TE","fastest":{"carrier":"DHL","service":"express","delivery_days":"1"},"cheapest":{"price":5,"carrier":"DHL","service":"economy"},"estimates":[{"price":5,"carrier":"DHL","service":"economy","currency":"EUR","delivery_days":"3-5"},{"price":8,"carrier":"DHL","service":"standard","currency":"EUR","delivery_days":"2-3"},{"price":15,"carrier":"DHL","service":"express","currency":"EUR","delivery_days":"1"},{"price":6,"carrier":"UPS","service":"economy","currency":"EUR","delivery_days":"3-5"},{"price":9,"carrier":"UPS","service":"standard","currency":"EUR","delivery_days":"2-3"},{"price":16,"carrier":"UPS","service":"express","currency":"EUR","delivery_days":"1"}],"weight_kg":1,"destination":"TE"},"properties":{"fastest":{"type":"object"},"cheapest":{"type":"object"},"estimates":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"service","in":"query","required":false,"schema":{"type":"string"}},{"name":"weight_kg","in":"query","required":true,"schema":{"type":"number"}},{"name":"origin_country","in":"query","required":true,"schema":{"type":"string"}},{"name":"destination_country","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/diff-json":{"get":{"tags":["x402"],"summary":"Diff JSON (x402)","description":"Compare two JSON objects and return structured diff. Shows added, removed, and changed fields with paths and values. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"added":[],"changed":[{"path":"/version","new_value":2,"old_value":1}],"removed":[],"identical":false,"added_count":0,"changed_count":1,"removed_count":0},"properties":{"added":{"type":"array"},"changed":{"type":"array"},"removed":{"type":"array"},"identical":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"after","in":"query","required":true,"description":"Modified JSON","schema":{"description":"Modified JSON"}},{"name":"before","in":"query","required":true,"description":"Original JSON","schema":{"description":"Original JSON"}}]}},"/x402/v2/domain-age-check":{"get":{"tags":["x402"],"summary":"Domain Age Check (x402)","description":"Quick domain registration age lookup. Returns creation date, age in days, registrar, and expiry date. Useful for fraud detection — newly registered domains are higher risk.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"domain":"google.com","is_new":false,"age_days":10454,"age_years":28.6,"registrar":"MarkMonitor Inc.","expiry_date":"2028-09-14","created_date":"1997-09-15","risk_indicator":"low"},"properties":{"domain":{"type":"string"},"is_new":{"type":"boolean"},"age_days":{"type":"integer"},"age_years":{"type":"number"},"registrar":{"type":"string"},"expiry_date":{"type":"string"},"created_date":{"type":"string"},"risk_indicator":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain name to check (e.g., google.com)","schema":{"type":"string","description":"Domain name to check (e.g., google.com)"}}]}},"/x402/v2/vasp-non-compliant-check":{"get":{"tags":["x402"],"summary":"VASP Non-Compliant Check (x402)","description":"Check if a crypto-asset service provider is on ESMA's non-compliant entities list under MiCA regulation. Flags entities that have been identified for regulatory infringement.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"note":"ESMA's non-compliant CASP register is not currently available or may not yet be published. This does not confirm compliance.","matches":[],"data_available":false,"entity_name_searched":"Google","on_non_compliant_list":false,"register_last_updated":null},"properties":{"matches":{"type":"array"},"data_available":{"type":"boolean"},"entity_name_searched":{"type":"string"},"on_non_compliant_list":{"type":"boolean"},"register_last_updated":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"website","in":"query","required":false,"description":"Entity website (optional)","schema":{"type":"string","description":"Entity website (optional)"}},{"name":"entity_name","in":"query","required":true,"description":"Company or entity name to check","schema":{"type":"string","description":"Company or entity name to check"}}]}},"/x402/v2/secret-scan":{"get":{"tags":["x402"],"summary":"Secret Scan (x402)","description":"Scan code/config/logs for leaked secrets: AWS keys, GitHub tokens, Stripe keys, API keys, private keys, DB URLs, JWTs. Algorithmic regex matching.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"clean":true,"findings":[],"lines_scanned":1,"total_findings":0,"severity_summary":{"high":0,"medium":0,"critical":0}},"properties":{"clean":{"type":"boolean"},"findings":{"type":"array"},"total_findings":{"type":"integer"},"severity_summary":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"text","in":"query","required":true,"description":"Code, config, or log output","schema":{"type":"string","description":"Code, config, or log output"}}]}},"/x402/v2/url-health-check":{"get":{"tags":["x402"],"summary":"URL Health Check (x402)","description":"Check if a URL is alive. Returns status code, response time, redirect chain, SSL validity, content type, server header.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://strale.dev","is_up":true,"server":"cloudflare","final_url":"https://strale.dev","ssl_valid":true,"status_code":200,"content_type":"text/html","redirect_chain":[],"response_time_ms":227},"properties":{"is_up":{"type":"boolean"},"ssl_valid":{"type":"boolean"},"status_code":{"type":"integer"},"redirect_chain":{"type":"array"},"response_time_ms":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to check","schema":{"type":"string","description":"URL to check"}},{"name":"timeout","in":"query","required":false,"schema":{"type":"integer"}},{"name":"follow_redirects","in":"query","required":false,"schema":{"type":"boolean"}}]}},"/x402/v2/license-compatibility-check":{"get":{"tags":["x402"],"summary":"License Compatibility Check (x402)","description":"Check software license compatibility for a given use case","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"summary":"All 1 licenses are compatible for commercial use.","use_case":"commercial","warnings":[],"conflicts":[],"compatible":true,"license_count":1,"licenses_analyzed":[{"type":"permissive","input":"MIT","spdx_id":"MIT","osi_approved":true,"compatible_with_use_case":true}]},"properties":{"summary":{"type":"string"},"use_case":{"type":"string"},"warnings":{"type":"array"},"conflicts":{"type":"array"},"compatible":{"type":"boolean"},"license_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"licenses","in":"query","required":true,"description":"SPDX license identifiers","schema":{"type":"array","items":{"type":"string"},"description":"SPDX license identifiers"}},{"name":"use_case","in":"query","required":false,"description":"commercial, open-source, saas, internal","schema":{"type":"string","description":"commercial, open-source, saas, internal"}}]}},"/x402/v2/phone-validate":{"get":{"tags":["x402"],"summary":"Phone Validate (x402)","description":"Validate a phone number and classify its type. Returns E.164 format, country, carrier name, and whether it is mobile, landline, or VOIP. Covers 200+ countries.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"e164":"+46701234567","input":"+46701234567","valid":true,"carrier":null,"phone_type":"unknown","is_possible":true,"country_code":"SE","country_name":"Sweden","national_format":"070-123 45 67","international_format":"+46 70 123 45 67"},"properties":{"e164":{"type":"string"},"valid":{"type":"boolean"},"phone_type":{"type":"string"},"is_possible":{"type":"boolean"},"country_code":{"type":"string"},"national_format":{"type":"string"},"international_format":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"country_code","in":"query","required":false,"description":"ISO 2-letter country code hint (optional)","schema":{"type":"string","description":"ISO 2-letter country code hint (optional)"}},{"name":"phone_number","in":"query","required":true,"description":"Phone number in any format","schema":{"type":"string","description":"Phone number in any format"}}]}},"/x402/v2/language-detect":{"get":{"tags":["x402"],"summary":"Language Detect (x402)","description":"Detect the language of input text. Returns top language with confidence score, plus alternative possibilities. Supports 170+ languages via trigram analysis.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"confidence":0.59,"text_length":59,"alternatives":[{"confidence":0.91,"language_code":"sco","language_name":"sco"},{"confidence":0.74,"language_code":"fra","language_name":"French"},{"confidence":0.65,"language_code":"nob","language_name":"nob"},{"confidence":0.65,"language_code":"dan","language_name":"Danish"}],"language_code":"eng","language_name":"English","script_detected":"Latin"},"properties":{"confidence":{"type":"number"},"text_length":{"type":"integer"},"alternatives":{"type":"array"},"language_code":{"type":"string"},"language_name":{"type":"string"},"script_detected":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"text","in":"query","required":true,"description":"Text to detect language of","schema":{"type":"string","description":"Text to detect language of"}},{"name":"min_length","in":"query","required":false,"description":"Minimum text length for reliable detection (default 10)","schema":{"type":"integer","description":"Minimum text length for reliable detection (default 10)"}}]}},"/x402/v2/tech-stack-detect":{"get":{"tags":["x402"],"summary":"Tech Stack Detection (x402)","description":"Detect technologies used by a website. Identifies CMS, frameworks, analytics, CDN, payment providers and marketing tools from HTTP headers and HTML patterns.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"cdn":null,"cms":null,"url":"https://google.com","hosting":null,"analytics":["Google Analytics"],"confidence":"low","css_framework":null,"meta_framework":null,"frontend_framework":null,"other_technologies":["Custom JavaScript","Schema.org markup","Nonce-based CSP"]},"properties":{"cms":{"type":"string"},"url":{"type":"string"},"hosting":{"type":"string"},"analytics":{"type":"array"},"css_framework":{"type":"string"},"frontend_framework":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":false,"description":"Website URL (e.g. https://example.com)","schema":{"type":"string","description":"Website URL (e.g. https://example.com)"}},{"name":"domain","in":"query","required":false,"description":"Domain name (e.g. example.com) — use this or url","schema":{"type":"string","description":"Domain name (e.g. example.com) — use this or url"}}]}},"/x402/v2/page-speed-test":{"get":{"tags":["x402"],"summary":"Page Speed Test (x402)","description":"Test page speed using Google PageSpeed Insights API. Returns performance score, Core Web Vitals, optimization opportunities.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com","grade":"A","metrics":{"fcp_ms":755,"lcp_ms":755,"tbt_ms":0,"ttfb_ms":1,"cls_score":0,"speed_index":755},"strategy":"mobile","diagnostics":[],"opportunities":[],"performance_score":100},"properties":{"grade":{"type":"string"},"metrics":{"type":"object"},"opportunities":{"type":"array"},"performance_score":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"strategy","in":"query","required":false,"description":"mobile or desktop (default: mobile)","schema":{"type":"string","description":"mobile or desktop (default: mobile)"}}]}},"/x402/v2/email-reputation-score":{"get":{"tags":["x402"],"summary":"Email Reputation Score (x402)","description":"Calculate a trust score for an email address. Assesses domain age, MX configuration, disposable domain detection, and email provider reputation. Returns a 0-100 risk score.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"email":"test@google.com","domain":"google.com","factors":[{"detail":"Custom domain — likely corporate email","factor":"custom_domain","impact":5},{"detail":"1 MX record(s) found","factor":"valid_mx","impact":10},{"detail":"Local part suggests non-personal address","factor":"suspicious_local","impact":-10}],"risk_level":"medium","email_valid":true,"provider_type":"custom","reputation_score":55},"properties":{"email":{"type":"string"},"factors":{"type":"array"},"risk_level":{"type":"string"},"email_valid":{"type":"boolean"},"reputation_score":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"email","in":"query","required":true,"description":"Email address to score","schema":{"type":"string","description":"Email address to score"}}]}},"/x402/v2/credit-score-band":{"get":{"tags":["x402"],"summary":"Credit Score Band (x402)","description":"Convert and interpret credit scores between different scoring systems. Maps FICO, VantageScore, Experian, Equifax scores to universal risk bands with percentile estimates.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"band":"Good","score":700,"system":"fico","score_range":{"max":850,"min":300},"system_name":"FICO Score","next_band_name":"Very Good","points_to_next":40,"next_band_threshold":740,"percentile_estimate":"40-59th","universal_risk_level":"moderate","typical_characteristics":"Acceptable to most lenders"},"properties":{"band":{"type":"string"},"score":{"type":"number"},"system":{"type":"string"},"system_name":{"type":"string"},"next_band_threshold":{"type":"integer"},"percentile_estimate":{"type":"string"},"universal_risk_level":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"score","in":"query","required":true,"description":"Credit score value","schema":{"type":"number","description":"Credit score value"}},{"name":"system","in":"query","required":false,"description":"Scoring system: fico, vantagescore, experian, equifax (default: fico)","schema":{"type":"string","description":"Scoring system: fico, vantagescore, experian, equifax (default: fico)"}}]}},"/x402/v2/pii-redact":{"get":{"tags":["x402"],"summary":"PII Redaction (x402)","description":"Detect and redact personally identifiable information (PII) from text. Identifies names, emails, phone numbers, national ID numbers (Swedish personnummer, Finnish henkilötunnus, etc.), addresses, and more.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"entities":[{"end":12,"type":"PERSON_NAME","start":8,"redacted_as":"[REDACTED_PERSON_NAME]"},{"end":42,"type":"EMAIL","start":20,"redacted_as":"[REDACTED_EMAIL]"},{"end":59,"type":"SSN","start":48,"redacted_as":"[REDACTED_SSN]"}],"entity_counts":{"SSN":1,"IBAN":0,"EMAIL":1,"PHONE":0,"ADDRESS":0,"PASSPORT":0,"ID_NUMBER":0,"CREDIT_CARD":0,"PERSON_NAME":1},"redacted_text":"Contact [REDACTED_PERSON_NAME] at [REDACTED_EMAIL], SSN [REDACTED_SSN]"},"properties":{"entities":{"type":"array"},"entity_counts":{"type":"object"},"redacted_text":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"text","in":"query","required":true,"description":"Text to redact PII from","schema":{"type":"string","description":"Text to redact PII from"}}]}},"/x402/v2/pubmed-search":{"post":{"tags":["x402"],"summary":"PubMed Search (x402)","description":"Search PubMed biomedical literature via NCBI: title, authors, journal, publication date, DOI, PMC id and link. Supports PubMed field syntax and date ranges.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"crispr","articles":[{"doi":"10.1111/febs.13110","url":"https://pubmed.ncbi.nlm.nih.gov/25315507/","pmid":"25315507","issue":"23","pages":"5186-93","title":"Genome modification by CRISPR/Cas9.","pmc_id":null,"volume":"281","authors":["Ma Y"],"journal":"The FEBS journal","pub_date":"2014 Dec","epub_date":"2014 Nov 7","languages":["eng"],"journal_abbrev":"FEBS J","publication_types":["Journal Article"]}],"returned":1,"total_results":70584},"properties":{"query":{"type":"string"},"articles":{"type":"array"},"returned":{"type":"number"},"total_results":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"sort":{"type":"string","description":"relevance (default) or date"},"limit":{"type":"integer","description":"Results to return, 1-20. Default: 10"},"query":{"type":"string","description":"Search terms; PubMed field tags such as crispr[Title] AND 2024[dp] are accepted"},"max_date":{"type":"string","description":"Latest publication date as YYYY, YYYY/MM or YYYY/MM/DD"},"min_date":{"type":"string","description":"Earliest publication date as YYYY, YYYY/MM or YYYY/MM/DD"}}}}}}}},"/x402/v2/weather-lookup":{"get":{"tags":["x402"],"summary":"Weather Lookup (x402)","description":"Get current weather and 7-day forecast for any location. Uses Open-Meteo API. Search by city name or coordinates.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"current":{"condition":"Overcast","feels_like_c":31.9,"temperature_c":27.2,"wind_speed_kmh":11.1,"humidity_percent":84,"precipitation_mm":0,"wind_direction_deg":234},"location":"-1, -1","timezone":"Etc/GMT","coordinates":{"latitude":-1,"longitude":-1},"forecast_7day":[{"date":"2026-04-03","low_c":27.1,"high_c":28.5,"condition":"Thunderstorm","precipitation_mm":15.8},{"date":"2026-04-04","low_c":27.8,"high_c":28.7,"condition":"Slight rain showers","precipitation_mm":1.7},{"date":"2026-04-05","low_c":27.8,"high_c":28.4,"condition":"Slight rain showers","precipitation_mm":5.3},{"date":"2026-04-06","low_c":28.4,"high_c":29.2,"condition":"Overcast","precipitation_mm":0.3},{"date":"2026-04-07","low_c":28.4,"high_c":29.1,"condition":"Overcast","precipitation_mm":1.2},{"date":"2026-04-08","low_c":28,"high_c":29,"condition":"Slight rain showers","precipitation_mm":2.8},{"date":"2026-04-09","low_c":27.9,"high_c":28.6,"condition":"Thunderstorm","precipitation_mm":5.5}]},"properties":{"current":{"type":"object"},"location":{"type":"string"},"forecast_7day":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"city","in":"query","required":false,"schema":{"type":"string"}},{"name":"latitude","in":"query","required":false,"schema":{"type":"number"}},{"name":"longitude","in":"query","required":false,"schema":{"type":"number"}}]}},"/x402/v2/xml-to-json":{"get":{"tags":["x402"],"summary":"XML to JSON (x402)","description":"Parse XML string to JSON. Preserves attributes (as @attr), handles CDATA, auto-types values. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"json":{"root":{"item":"test"}},"root_element":"root","element_count":2,"attributes_preserved":false},"properties":{"json":{"type":"object"},"root_element":{"type":"string"},"element_count":{"type":"integer"},"attributes_preserved":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"xml_string","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/tax-id-validate":{"get":{"tags":["x402"],"summary":"Tax ID Validate (x402)","description":"Validate tax identification number (TIN) formats for 40+ countries. Checks format rules and checksum algorithms where applicable. Does not verify with tax authorities.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"tax_id":"SE556703748501","normalized":"SE556703748501","format_name":"Momsregistreringsnummer","country_code":"SE","checksum_valid":null},"properties":{"valid":{"type":"boolean"},"normalized":{"type":"string"},"format_name":{"type":"string"},"country_code":{"type":"string"},"checksum_valid":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"tax_id","in":"query","required":true,"description":"Tax identification number (with or without country prefix)","schema":{"type":"string","description":"Tax identification number (with or without country prefix)"}},{"name":"country_code","in":"query","required":false,"description":"ISO 2-letter country code (auto-detected from prefix if omitted)","schema":{"type":"string","description":"ISO 2-letter country code (auto-detected from prefix if omitted)"}}]}},"/x402/v2/password-strength":{"get":{"tags":["x402"],"summary":"Password Strength (x402)","description":"Analyze password strength: entropy, crack time estimate, character class diversity, common password check, keyboard pattern detection. Password is NOT stored. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"score":80,"issues":[],"length":10,"strength":"very_strong","suggestions":["Use at least 12 characters for better security","Add uppercase letters","Add numbers"],"entropy_bits":29.22,"character_classes":{"count":2,"digits":false,"special":true,"lowercase":true,"uppercase":false},"crack_time_estimate":"2 years"},"properties":{"score":{"type":"integer"},"issues":{"type":"array"},"strength":{"type":"string"},"suggestions":{"type":"array"},"crack_time_estimate":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"password","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/greek-company-data":{"post":{"tags":["x402"],"summary":"Greek Company Data (x402)","description":"Look up Greek company data from the GEMI Open Data API (Γενικό Εμπορικό Μητρώο). Accepts a GEMI registry number or Greek tax ID (AFM, 9 digits). Returns name, legal form, address, status, primary activity, directors, and the derived VAT number (EL + AFM).","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"afm":"094014201","status":"active","address":"ΠΛΑΤΕΙΑ ΠΑΡΚΟΥ, 35100 ΛΑΜΙΑ, ΛΑΜΙΕΩΝ / ΦΘΙΩΤΙΔΑΣ","directors":[],"is_branch":true,"org_number":"237954001","vat_number":"EL094014201","company_name":"ΕΘΝΙΚΗ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ Α.Ε.","business_type":"ΑΕ","industry_code":null,"registration_date":"1941-01-01","industry_description":null},"properties":{"afm":{"type":"string","description":"Greek tax ID"},"status":{"type":"string"},"address":{"type":"string"},"directors":{"type":"array","items":{"type":"string"}},"is_branch":{"type":"boolean"},"org_number":{"type":"string","description":"GEMI registry number"},"vat_number":{"type":"string","description":"VIES VAT number, format EL{AFM}"},"company_name":{"type":"string"},"business_type":{"type":"string"},"industry_code":{"type":"string"},"registration_date":{"type":"string"},"industry_description":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"afm":{"type":"string","description":"Greek tax ID (AFM, 9 digits) — used as fallback when GEMI number is not known"},"gemi_number":{"type":"string","description":"Greek GEMI registry number (6-14 digits)"}}}}}}}},"/x402/v2/regex-generate":{"get":{"tags":["x402"],"summary":"Regex Generate (x402)","description":"Describe what you want to match in natural language, get a tested regex back. Optionally provide test strings for validation.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"flags":"g","regex":"This is a test input for automated capability testing\\.","explanation":"Matches the literal string 'This is a test input for automated capability testing.' - 'This is a test input for automated capability testing' matches the exact phrase, and '\\.' matches the literal period at the end. The 'g' flag finds all occurrences.","test_results":[{"input":"This is a test input for automated capability testing.","match":"This is a test input for automated capability testing.","matches":true},{"input":"This is a test input for automated capability testing","match":null,"matches":false},{"input":"this is a test input for automated capability testing.","match":null,"matches":false},{"input":"This is a test input for automated capability testing. This is a test input for automated capability testing.","match":"This is a test input for automated capability testing.","matches":true}]},"properties":{"flags":{"type":"string"},"regex":{"type":"string"},"explanation":{"type":"string"},"test_results":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"description","in":"query","required":true,"description":"What to match in natural language","schema":{"type":"string","description":"What to match in natural language"}},{"name":"test_strings","in":"query","required":false,"description":"Optional strings to test against","schema":{"type":"array","description":"Optional strings to test against"}}]}},"/x402/v2/slovenian-company-data":{"post":{"tags":["x402"],"summary":"Slovenian Company Data (x402)","description":"Look up Slovenian company data from the Poslovni register Slovenije (PRS) via the data.gov.si CKAN datastore. Returns registration number, full name, legal form, registry authority, and address. Free, CC-BY 4.0.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"hseid":"100400000138816776","address":"Šmarješka cesta 006, Novo mesto, 8000 Novo mesto, SLOVENIJA","country":"SLOVENIJA","legal_form":"Delniška družba d.d.","reg_number":"5043611000","settlement":"Novo mesto","post_office":"Novo mesto","postal_code":"8000","company_name":"KRKA, tovarna zdravil, d.d., Novo mesto","jurisdiction":"SI","registration_office":"Okrožno sodišče Novo mesto"},"properties":{"hseid":{"type":"string"},"address":{"type":"string"},"country":{"type":"string"},"legal_form":{"type":"string"},"reg_number":{"type":"string"},"settlement":{"type":"string"},"post_office":{"type":"string"},"postal_code":{"type":"string"},"company_name":{"type":"string"},"jurisdiction":{"type":"string"},"registration_office":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["reg_number"],"properties":{"task":{"type":"string","description":"Free-text input — first matching matična številka or company name is used"},"reg_number":{"type":"string","description":"Slovenian matična številka (7-digit base or 10-digit including 3-digit branch suffix; main entity is suffix 000)"},"company_name":{"type":"string","description":"Slovenian company name (fuzzy keyword match; first hit returned)"}}}}}}}},"/x402/v2/google-search":{"get":{"tags":["x402"],"summary":"Google Search (x402)","description":"Perform a Google search and return structured results. Returns title, URL, snippet, position for each result.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.108000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"Stripe payment processing","results":[{"url":"https://stripe.com/payments","date":null,"title":"Stripe Payments | Global Payment Processing Platform","snippet":"Accept payments online, in person, and around the world with a payments solution built for any business—from scaling startups to global enterprises ...","position":1,"sitelinks":[{"link":"https://stripe.com/guides/introduction-to-online-payments","title":"Collecting online payments"},{"link":"https://stripe.com/payments/payment-methods","title":"Stripe Payment Methods"},{"link":"https://docs.stripe.com/payments","title":"Payments"},{"link":"https://stripe.com/payments/features","title":"Features"},{"link":"https://stripe.com/resources/more/card-payments","title":"Card payments explained"}]},{"url":"https://stripe.com/resources/more/payment-processing-explained","date":"Jan 21, 2025","title":"How payment processing works | Stripe","snippet":"Payment processing is the sequence of actions that securely transfer funds between a payer and a payee.","position":2,"sitelinks":null},{"url":"https://stripe.com/","date":null,"title":"Stripe | Financial Infrastructure to Grow Your Revenue","snippet":"Stripe is a financial services platform that helps all types of businesses accept payments, build flexible billing models, and manage money movement.","position":3,"sitelinks":null},{"url":"https://stripe.com/pricing","date":null,"title":"Pricing & Fees - Stripe","snippet":"Find Stripe fees and pricing information. Find our processing fees for credit cards, pricing models and pay-as-you-go fees for businesses.","position":4,"sitelinks":null},{"url":"https://stripe.com/resources/more/payment-processor-vs-payment-gateway","date":"Jan 23, 2025","title":"Payment processor vs. payment gateway | Stripe","snippet":"Payment processors and payment gateways play different but complementary roles in facilitating secure and efficient electronic transactions for businesses and ...","position":5,"sitelinks":null},{"url":"https://stripe.com/resources/more/how-payment-transaction-processing-works","date":"Jan 22, 2025","title":"How payment transaction processing works: A quick guide - Stripe","snippet":"Payment transaction processing is the series of steps that occur when a customer initiates a financial transaction with a business.","position":6,"sitelinks":null},{"url":"https://www.nerdwallet.com/business/software/learn/what-is-stripe","date":"Mar 20, 2026","title":"What Is Stripe, and How Does It Work to Accept Payments?","snippet":"Stripe is a payment service provider that accepts credit cards, digital wallets and many other payment methods.","position":7,"sitelinks":null}],"answer_box":null,"result_count":7,"knowledge_graph":null,"people_also_ask":[{"link":"https://tipalti.com/resources/learn/stripe-fee-calculator/","snippet":"Stripe Fee Examples Transaction Amount Fee $10 $0.59 $50 $1.75 $100 $3.20\nTransaction Amount\nFee\n$10\n$0.59\n$50\n$1.75\n$100\n$3.20","question":"How much is the Stripe fee for $100?"},{"link":"https://en.wikipedia.org/wiki/Stripe,_Inc.","snippet":"In May 2011, Stripe received a $2 million investment from venture capitalists Peter Thiel, Elon Musk, Sequoia Capital, SV Angel, and Andreessen Horowitz. Stripe launched publicly in September 2011 after an extensive private beta.","question":"Is Stripe owned by Elon Musk?"}],"search_parameters":{"country":null,"language":null}},"properties":{"query":{"type":"string"},"results":{"type":"array"},"total_results_estimate":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Search query","schema":{"type":"string","description":"Search query"}},{"name":"country","in":"query","required":false,"description":"Country to scope results to, as an ISO 3166-1 alpha-2 code (MX), alpha-3 code (MEX), numeric code (484), or exact country name (Mexico). \"UK\" is accepted as an alias for GB. Unrecognised values are rejected before the search runs rather than silently ignored. Omit for unscoped global results.","schema":{"type":"string","description":"Country to scope results to, as an ISO 3166-1 alpha-2 code (MX), alpha-3 code (MEX), numeric code (484), or exact country name (Mexico). \"UK\" is accepted as an alias for GB. Unrecognised values are rejected before the search runs rather than silently ignored. Omit for unscoped global results."}},{"name":"language","in":"query","required":false,"description":"Language for results, as an ISO 639-1 code (\"en\"), optionally with a region (\"pt-BR\"). Validated for shape and rejected before the search runs if malformed, rather than silently ignored. Omit for Google's default.","schema":{"type":"string","description":"Language for results, as an ISO 639-1 code (\"en\"), optionally with a region (\"pt-BR\"). Validated for shape and rejected before the search runs if malformed, rather than silently ignored. Omit for Google's default."}},{"name":"num_results","in":"query","required":false,"description":"Number of results (default 10, max 20)","schema":{"type":"integer","description":"Number of results (default 10, max 20)"}}]}},"/x402/v2/dependency-audit":{"get":{"tags":["x402"],"summary":"Dependency Audit (x402)","description":"Audit npm or Python dependencies. Checks each package against registry for latest version, deprecation, vulnerabilities. Verifiable against actual registries.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"summary":{"total":2,"errors":0,"outdated":2,"deprecated":0,"up_to_date":0},"ecosystem":"npm","dependencies":[{"name":"express","is_outdated":true,"is_deprecated":false,"last_published":"2025-12-01T20:49:43.268Z","latest_version":"5.2.1","current_version":"4.18.0","is_dev_dependency":false},{"name":"lodash","is_outdated":true,"is_deprecated":false,"last_published":"2026-01-21T17:29:52.831Z","latest_version":"4.17.23","current_version":"4.17.21","is_dev_dependency":false}],"outdated_count":2,"critical_updates":[],"deprecated_count":0,"total_dependencies":2},"properties":{"summary":{"type":"object"},"ecosystem":{"type":"string"},"dependencies":{"type":"array"},"outdated_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"package_json","in":"query","required":false,"description":"package.json contents","schema":{"type":"string","description":"package.json contents"}},{"name":"requirements_txt","in":"query","required":false,"description":"requirements.txt contents","schema":{"type":"string","description":"requirements.txt contents"}}]}},"/x402/v2/website-carbon-estimate":{"get":{"tags":["x402"],"summary":"Website Carbon Estimate (x402)","description":"Estimate CO2 emissions per page view using the Website Carbon methodology. Returns rating A-F, annual estimate.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://strale.dev","rating":"A","methodology":"Website Carbon / Sustainable Web Design model","page_size_kb":3,"annual_co2_kg":0.1,"green_hosting":"unknown","page_size_bytes":3239,"recommendations":["This page is already lightweight. Maintain current optimization practices."],"transfer_encoding":"gzip","co2_grams_per_view":0.0008,"annual_co2_kg_custom":null,"cleaner_than_percent":100},"properties":{"rating":{"type":"string"},"page_size_kb":{"type":"number"},"annual_co2_kg":{"type":"number"},"co2_grams_per_view":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/vat-validate":{"get":{"tags":["x402"],"summary":"EU VAT Validation + VIES Enrichment (x402)","description":"Validate a European VAT number against the VIES database. Returns company name, address, and validity. Caches results for 24 hours for instant responses on repeated lookups. Serves cached data when VIES is down.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"vat_number":"SE556703748501","company_name":"Spotify AB","country_code":"SE","request_date":"2026-04-03+02:00","company_address":"REGERINGSGATAN 19 \n111 53 STOCKHOLM"},"properties":{"valid":{"type":"boolean"},"vat_number":{"type":"string"},"company_name":{"type":"string"},"country_code":{"type":"string"},"company_address":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"vat_number","in":"query","required":true,"description":"EU VAT number including country prefix (e.g. SE556703748501)","schema":{"type":"string","description":"EU VAT number including country prefix (e.g. SE556703748501)"}}]}},"/x402/v2/company-name-match":{"get":{"tags":["x402"],"summary":"Company Name Match (x402)","description":"Fuzzy match and normalize company names. Compares two names accounting for Ltd/Limited, AB/Aktiebolag, Inc/Incorporated, GmbH, etc. Returns match confidence using Levenshtein, Jaro-Winkler, and token overlap algorithms.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"match":true,"name_a":"Google Inc","name_b":"Google Incorporated","confidence":1,"normalized_a":"google","normalized_b":"google","suffixes_removed":{"a":["inc"],"b":["incorporated"]},"similarity_scores":{"levenshtein":1,"jaro_winkler":1,"token_overlap":1}},"properties":{"match":{"type":"boolean"},"confidence":{"type":"number"},"normalized_a":{"type":"string"},"normalized_b":{"type":"string"},"suffixes_removed":{"type":"object"},"similarity_scores":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name_a","in":"query","required":true,"description":"First company name","schema":{"type":"string","description":"First company name"}},{"name":"name_b","in":"query","required":true,"description":"Second company name to compare","schema":{"type":"string","description":"Second company name to compare"}}]}},"/x402/v2/product-reviews-extract":{"get":{"tags":["x402"],"summary":"Product Reviews Extract (x402)","description":"Extract product reviews from a product or review page. Returns rating distribution, pros/cons, sentiment. Trustpilot is not supported (their ToS forbids automated access).","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.270000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://www.amazon.com/dp/B0CHX3QBCH","source":"amazon.com","common_cons":null,"common_pros":null,"product_name":"Apple iPhone 15 Plus FineWoven Case with MagSafe - Pacific Blue","review_count":null,"average_rating":null,"recent_reviews":[],"sentiment_summary":"No customer reviews available on this product page","rating_distribution":{"1_star":null,"2_star":null,"3_star":null,"4_star":null,"5_star":null}},"properties":{"common_cons":{"type":"array"},"common_pros":{"type":"array"},"review_count":{"type":"number"},"average_rating":{"type":"number"},"rating_distribution":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"Product or review page URL. Sites whose Terms of Service forbid automated access (Trustpilot, Glassdoor, LinkedIn) are rejected without being fetched.","schema":{"type":"string","description":"Product or review page URL. Sites whose Terms of Service forbid automated access (Trustpilot, Glassdoor, LinkedIn) are rejected without being fetched."}}]}},"/x402/v2/jwt-decode":{"get":{"tags":["x402"],"summary":"JWT Decode (x402)","description":"Decode a JWT token without verification. Returns header, payload, claims, expiry status, and time until expiry. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"claims":["sub"],"header":{"alg":"none"},"issuer":null,"payload":{"sub":"test"},"subject":"test","audience":null,"algorithm":"none","issued_at":null,"expires_at":null,"is_expired":null,"not_before":null,"token_type":null,"time_until_expiry_seconds":null},"properties":{"header":{"type":"object"},"payload":{"type":"object"},"algorithm":{"type":"string"},"expires_at":{"type":"string"},"is_expired":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/curl-to-code":{"get":{"tags":["x402"],"summary":"cURL to Code (x402)","description":"Convert a curl command to equivalent code in TypeScript, Python, Go, Rust, Java, or PHP.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"code":"import requests\n\nresponse = requests.get('https://example.com')\nprint(response.text)","notes":["This is a basic GET request. Install requests with: pip install requests"],"language":"python","dependencies_needed":["requests"]},"properties":{"code":{"type":"string"},"notes":{"type":"array"},"language":{"type":"string"},"dependencies_needed":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"curl_command","in":"query","required":true,"schema":{"type":"string"}},{"name":"target_language","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/email-auth-check":{"post":{"tags":["x402"],"summary":"Email Authentication Check (x402)","description":"A domain's email authentication posture from live DNS: SPF, DMARC policy, MX hosts, and DKIM selector probing — the pre-send deliverability check for outreach agents.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"domain":"google.com","has_mx":true,"mx_hosts":["smtp.google.com"],"dkim_note":"DKIM probed via common selectors only — a miss does not prove the domain has no DKIM; pass dkim_selector for an exact check","dmarc_pct":null,"dkim_found":[{"selector":"google","record_present":true}],"spf_record":"v=spf1 include:_spf.google.com ~all","spf_status":"present","auth_summary":"enforced","dmarc_policy":"reject","dmarc_record":"v=DMARC1; p=reject; rua=mailto:...","dmarc_status":"present","dmarc_present":true,"dmarc_inherited_from":null,"dkim_checked_selectors":["default","google","selector1","selector2","k1","s1","dkim"],"dmarc_effective_policy":"reject","dmarc_subdomain_policy":null},"properties":{"domain":{"type":"string"},"has_mx":{"type":"boolean"},"mx_hosts":{"type":"array"},"dkim_note":{"type":["string","null"]},"dkim_found":{"type":"array"},"spf_record":{"type":["string","null"]},"spf_status":{"enum":["present","missing","invalid_multiple"],"type":"string"},"auth_summary":{"enum":["enforced","partially_enforced","configured_monitor_only","incomplete"],"type":"string"},"dmarc_policy":{"type":["string","null"]},"dmarc_record":{"type":["string","null"]},"dmarc_status":{"enum":["present","missing","invalid_multiple"],"type":"string"},"dmarc_present":{"type":"boolean"},"dmarc_inherited_from":{"type":["string","null"],"description":"Set when DMARC was inherited from a parent (organizational) domain"},"dkim_checked_selectors":{"type":"array"},"dmarc_effective_policy":{"type":["string","null"],"description":"The policy actually governing this domain's mail — includes RFC 7489 organizational-domain inheritance for subdomains (sp= aware)"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","anyOf":[{"required":["domain"]},{"required":["email"]},{"required":["task"]}],"required":[],"properties":{"task":{"type":"string","description":"Free-text alias — domain or email address"},"email":{"type":"string","description":"Alias — a full email address; its domain is checked"},"domain":{"type":"string","description":"Domain to check (e.g. example.com)"},"dkim_selector":{"type":"string","description":"Optional exact DKIM selector to probe (otherwise common selectors are tried)"}}}}}}}},"/x402/v2/url-to-markdown":{"get":{"tags":["x402"],"summary":"URL to Markdown (x402)","description":"Convert any URL to clean, article-quality markdown. Extracts main content and strips navigation, ads, and boilerplate. Handles static sites instantly and JavaScript-rendered pages via fallback rendering. Supports blogs, documentation, news articles, and most public web pages.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com?foo=bar&baz=qux","title":"Example Domain","markdown":"This domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)","word_count":17},"properties":{"title":{"type":"string"},"markdown":{"type":"string"},"word_count":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to convert","schema":{"type":"string","description":"URL to convert"}},{"name":"include_links","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"include_images","in":"query","required":false,"schema":{"type":"boolean"}}]}},"/x402/v2/stock-quote":{"get":{"tags":["x402"],"summary":"Stock Quote (x402)","description":"Get real-time stock quote data for any publicly traded company. Accepts ticker symbols (e.g. AAPL, VOLV-B.ST). Returns price, change, volume, market state.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"low":287.57,"high":295.9,"name":"Alphabet Inc.","open":288.99,"price":294.46,"change":-0.44,"symbol":"GOOG","volume":13410400,"currency":"USD","exchange":"NMS","market_state":null,"trading_date":"2026-04-02","change_percent":-0.15,"previous_close":294.9},"properties":{"name":{"type":"string"},"price":{"type":"number"},"change":{"type":"number"},"symbol":{"type":"string"},"volume":{"type":"integer"},"change_percent":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"symbol","in":"query","required":true,"description":"Stock ticker symbol (e.g. AAPL, TSLA, VOLV-B.ST)","schema":{"type":"string","description":"Stock ticker symbol (e.g. AAPL, TSLA, VOLV-B.ST)"}}]}},"/x402/v2/landing-page-roast":{"get":{"tags":["x402"],"summary":"Landing Page Roast (x402)","description":"AI conversion expert analyzes any landing page. Returns overall score, headline effectiveness, CTA clarity, value proposition, trust signals, issues, and suggestions.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.540000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com","issues":["This is a default placeholder page with no commercial purpose","Headline 'Example Domain' is generic and non-compelling","No clear value proposition or benefit statement","CTA 'Learn more' is vague with no link context or destination clarity","No trust indicators (testimonials, credentials, certifications, social proof)","No persuasive copy or emotional connection to audience","Minimal content with no explanation of what the business/service offers","No contact information, pricing, or next steps","No imagery, visuals, or brand identity","Massive amounts of whitespace with no content hierarchy"],"summary":"This is a default placeholder domain page with virtually no conversion optimization elements. It lacks any commercial intent, value proposition, compelling messaging, or trust signals necessary for conversion. A complete redesign with actual business content, persuasive copy, and clear CTAs is essential.","disclaimer":"AI-generated analysis. Results reflect automated assessment, not guaranteed conversion outcomes.","cta_clarity":20,"suggestions":["Replace entire page with actual business landing page content","Create compelling, benefit-driven headline that addresses customer pain points","Add specific, action-oriented CTA with clear value (e.g., 'Start Free Trial' or 'Get Demo')","Include clear value proposition explaining unique benefits","Add trust signals: customer testimonials, case studies, certifications, or social proof","Develop supporting copy that explains offerings and differentiation","Include relevant hero imagery aligned with target audience","Add contact information and multiple conversion paths","Implement proper information architecture with clear sections"],"overall_score":15,"trust_signals":[],"mobile_readiness":"fair","headline_effectiveness":25,"value_proposition_score":10},"properties":{"issues":{"type":"array"},"cta_clarity":{"type":"integer"},"suggestions":{"type":"array"},"overall_score":{"type":"integer"},"trust_signals":{"type":"array"},"headline_effectiveness":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"Landing page URL to analyze","schema":{"type":"string","description":"Landing page URL to analyze"}}]}},"/x402/v2/competitor-compare":{"get":{"tags":["x402"],"summary":"Competitor Compare (x402)","description":"Compare two company websites. Analyzes positioning, pricing model, features, target audience, trust signals, content strategy. Returns structured comparison + strategic analysis.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.080000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"company_a":{"name":"GitHub","domain":"github.com","tagline":"The future of building happens together"},"company_b":{"name":"GitLab","domain":"gitlab.com","tagline":"Finally, AI for the entire software lifecycle"},"comparison":{"positioning":{"analysis":"GitHub leads with AI-powered coding and seamless collaboration experience, while GitLab positions as comprehensive platform consolidating multiple tools into single unified system with stronger security/compliance focus","company_a":"AI-first development platform emphasizing collaboration, code creation, and developer experience with Copilot as hero product","company_b":"End-to-end DevSecOps orchestration platform with agentic AI for entire software lifecycle and unified data plane"},"pricing_model":{"company_a":"Freemium model with GitHub Copilot, Codespaces, and Advanced Security as premium add-ons","company_b":"Freemium model with tiered plans (Premium/Ultimate); offers free trial and contact sales for enterprise"},"trust_signals":{"company_a":["Fortune 500 customers (American Airlines, Ford, Shopify, Spotify, Mercedes-Benz)","2025 Gartner Magic Quadrant for AI Code Assistants","70% MTTR reduction with Copilot Autofix","8.3M secret leaks stopped in 12 months","25% developer speed boost (Duolingo case study)"],"company_b":["50+ million users","Industry-specific case studies","Multiple quantified metrics (4 hours saved/engineer/week, 82% cycle time reduction)","Compliance certifications for regulated industries","AI Transparency Center mentioned","6x faster time to market claims"]},"target_audience":{"analysis":"GitHub targets broader developer audience with ease-of-use focus; GitLab targets enterprise procurement with regulatory/compliance requirements and industry-specific solutions","company_a":"Individual developers, small to medium teams, enterprises prioritizing development velocity and AI-assisted coding","company_b":"Enterprises and regulated industries (financial services, public sector, aerospace) requiring end-to-end governance, compliance, and security scanning"},"content_strategy":{"company_a":"Hero narrative around Copilot AI capabilities; customer success stories; industry reports; emphasis on developer speed and ease of use; heavy visual demonstrations of AI features","company_b":"Platform consolidation and business value narrative; industry-specific solutions; quantified ROI metrics; compliance and governance emphasis; technical documentation focus"},"feature_emphasis":{"company_a":["GitHub Copilot (AI code creation)","GitHub Actions (CI/CD automation)","GitHub Codespaces (cloud dev environments)","Advanced Security & Dependabot","Code Review & Collaboration"],"company_b":["GitLab Duo Agent Platform (agentic AI)","End-to-end DevSecOps platform","Unified CI/CD pipeline","Application Security Testing (SAST/SCA/DAST)","Value Stream Management","Software Compliance automation"]}},"disclaimer":"AI-generated competitive analysis. Verify specific claims independently.","strategic_analysis":"GitHub and GitLab represent two different market strategies within the DevOps platform space. GitHub has positioned itself as the AI-first developer platform, betting heavily on GitHub Copilot as the differentiating force that appeals to individual developers and organizations prioritizing engineering velocity. Their messaging emphasizes collaboration, ease of use, and the power of AI-assisted coding, supported by impressive customer names and Gartner recognition. Conversely, GitLab has taken the platform consolidation approach, emphasizing their ability to replace multiple point solutions with one unified system that includes security scanning, compliance automation, and value stream measurement. This appeals directly to enterprise procurement teams and regulated industries where tool sprawl and compliance burden are major pain points.\n\nThe target audience divergence is striking. GitHub's homepage converts toward individual developers and tech-forward teams with a focus on \"try Copilot free,\" while GitLab's messaging immediately addresses compliance, security scanning consolidation, and industry-specific regulatory needs. GitLab specifically calls out financial services, public sector, aerospace, and automotive—markets where security and compliance certifications are procurement requirements. GitHub's trust signals lean toward developer velocity metrics and AI quality (Gartner, customer stories), while GitLab leads with business metrics (time savings, cycle time reduction, developer happiness) and industry compliance capabilities.\n\nFrom a competitive perspective, GitHub is winning the mindshare battle among developers and younger tech companies, while GitLab is better positioned for enterprise sales in regulated industries. GitHub's Copilot creates stickiness at the individual developer level; GitLab's unified platform and compliance features create stickiness at the enterprise procurement level. The strategic question for each is whether their positioned advantage can cross into the other's territory—can GitHub's AI capabilities drive enterprise adoption despite fragmented tooling, and can GitLab's platform comprehensiveness overcome GitHub's dominance in developer mindshare?","key_differentiators":["AI positioning: GitHub focuses on Copilot as hero product; GitLab positions agentic AI as part of larger orchestration platform","Platform philosophy: GitHub emphasizes modular, best-of-breed approach; GitLab emphasizes unified single-platform consolidation","Security model: GitHub has Advanced Security as add-on; GitLab has security scanning (SAST/SCA/DAST) built into platform","Target buyer: GitHub targets CTOs/developers; GitLab targets enterprise security/compliance officers","Industry focus: GitHub generalist approach; GitLab specific solutions for financial services, public sector, aerospace","Compliance emphasis: GitHub minimal compliance mention; GitLab highlights audit trails, regulatory standards, supply chain security","Marketing metrics: GitHub emphasizes speed/velocity; GitLab emphasizes cycle time, security, and business value","Deployment model: GitHub primarily cloud SaaS; GitLab offers flexibility (cloud, on-premise, air-gapped)"],"competitive_advantages":{"company_a":["Market dominance and developer mindshare in version control (de facto standard)","Superior AI/Copilot technology and consumer-grade UX","Ease of onboarding and low learning curve for new developers","Strong branding and emotional connection with developer community","Gartner recognition for AI capabilities","Strong customer brand recognition (American Airlines, Spotify, Ford)","GitHub Marketplace ecosystem for extensions"],"company_b":["Unified platform reducing tool sprawl and integration complexity","Built-in security scanning (SAST/SCA/DAST/Secret Detection) eliminating need for separate tools","Stronger compliance and audit readiness capabilities for regulated industries","Value stream management and visibility features missing from GitHub","Better deployment flexibility (cloud, on-premise, air-gapped environments)","Industry-specific solutions and regulatory expertise","More attractive TCO for enterprises managing multiple point solutions","Agentic AI platform for orchestrating teams + agents with guardrails"]}},"properties":{"company_a":{"type":"object"},"company_b":{"type":"object"},"comparison":{"type":"object"},"strategic_analysis":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"domain1","in":"query","required":true,"description":"First company domain","schema":{"type":"string","description":"First company domain"}},{"name":"domain2","in":"query","required":true,"description":"Second company domain","schema":{"type":"string","description":"Second company domain"}}]}},"/x402/v2/polish-company-data":{"get":{"tags":["x402"],"summary":"Polish Company Data (x402)","description":"Look up Polish company data from KRS (Krajowy Rejestr Sądowy). Accepts KRS number (10 digits) or fuzzy company name. Returns company name, legal form, address, registration date.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"active","address":null,"krs_number":"0000033945","legal_form":"SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ","company_name":"PRZEDSIĘBIORSTWO PRODUKCYJNE I HANDLOWO-USŁUGOWE \"MARTOM\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ","jurisdiction":"PL","share_capital":"90000,00 PLN","registration_date":null},"properties":{"nip":{"type":["string","null"]},"status":{"type":"string"},"address":{"type":"string"},"krs_number":{"type":"string"},"legal_form":{"type":"string"},"vat_number":{"type":["string","null"]},"company_name":{"type":"string"},"jurisdiction":{"type":"string"},"register_type":{"type":["string","null"]},"share_capital":{"type":["string","null"]},"registration_date":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"krs_number","in":"query","required":true,"description":"KRS number (10 digits) or company name","schema":{"type":"string","description":"KRS number (10 digits) or company name"}}]}},"/x402/v2/pr-description-generate":{"get":{"tags":["x402"],"summary":"PR Description Generate (x402)","description":"Generate pull request descriptions from diffs or commit logs. Returns title, summary, changes list, testing steps.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"title":"Test Document Title","changes":["Changed const x from 1 to 2","Updated return statement to use new constant value"],"summary":"Updates the constant value of x from 1 to 2. This change affects the return value of the function.","testing":["Verify that the function returns 2 instead of 1","Run existing unit tests to ensure no regressions"],"markdown":"## Description\nUpdates the constant value of x from 1 to 2. This change affects the return value of the function.\n\n## Changes\n- Changed const x from 1 to 2\n- Updated return statement to use new constant value\n\n## Testing\n- Verify that the function returns 2 instead of 1\n- Run existing unit tests to ensure no regressions\n","related_issues":[],"breaking_changes":[]},"properties":{"title":{"type":"string"},"changes":{"type":"array"},"summary":{"type":"string"},"testing":{"type":"array"},"markdown":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"diff","in":"query","required":true,"schema":{"type":"string"}},{"name":"title","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/log-parse":{"get":{"tags":["x402"],"summary":"Log Parse (x402)","description":"Parse log files — auto-detects format (JSON, syslog, ISO, logfmt, Laravel). Extracts timestamps, levels, messages. Returns error/warning summary. Algorithmic.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"errors":[],"warnings":[],"time_range":{"last":null,"first":null},"error_count":0,"total_lines":1,"level_counts":{},"parsed_sample":[{"raw":"INVALID_TEST_VALUE_12345","format":"unknown","message":"INVALID_TEST_VALUE_12345","line_number":1}],"warning_count":0,"detected_format":"unknown"},"properties":{"errors":{"type":"array"},"error_count":{"type":"integer"},"total_lines":{"type":"integer"},"level_counts":{"type":"object"},"detected_format":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"logs","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/date-parse":{"get":{"tags":["x402"],"summary":"Date Parse (x402)","description":"Parse ambiguous date strings into ISO 8601. Handles '3/4/25', 'March 4th', '4. mars 2025', '2025-W14'. Detects ambiguity.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"day":4,"year":2025,"input":"2025-03-04","month":3,"parsed":true,"iso_date":"2025-03-04","day_of_week":"Tuesday","is_ambiguous":false},"properties":{"day":{"type":"integer"},"year":{"type":"integer"},"month":{"type":"integer"},"iso_date":{"type":"string"},"day_of_week":{"type":"string"},"is_ambiguous":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"date_string","in":"query","required":true,"description":"Date string to parse","schema":{"type":"string","description":"Date string to parse"}},{"name":"preferred_format","in":"query","required":false,"description":"DMY, MDY, or YMD (for ambiguous dates)","schema":{"type":"string","description":"DMY, MDY, or YMD (for ambiguous dates)"}}]}},"/x402/v2/iban-validate":{"get":{"tags":["x402"],"summary":"IBAN Validation (x402)","description":"Validate an IBAN number. Checks format, length, and mod-97 checksum. Extracts country code, bank identifier, and branch code. Pure algorithmic — fast and cheap.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"bban":"50000000058398257466","valid":true,"bank_code":"500","branch_code":null,"check_digits":"45","country_code":"SE","expected_length":24},"properties":{"error":{"type":"string"},"valid":{"type":"boolean"},"bank_code":{"type":"string"},"branch_code":{"type":"string"},"country_code":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"iban","in":"query","required":true,"description":"IBAN to validate (e.g. SE3550000000054910000003)","schema":{"type":"string","description":"IBAN to validate (e.g. SE3550000000054910000003)"}}]}},"/x402/v2/uptime-check":{"get":{"tags":["x402"],"summary":"Uptime Check (x402)","description":"Check if a URL is up or down. Returns status code, latency, redirect info, TLS status, and server headers.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"tls":true,"url":"https://strale.dev","status":"up","headers":{"server":"cloudflare","content_type":"text/html","x_powered_by":null},"final_url":"https://strale.dev/","checked_at":"2026-04-03T00:51:57.218Z","latency_ms":571,"redirected":false,"status_code":200,"status_text":"OK"},"properties":{"status":{"type":"string"},"latency_ms":{"type":"integer"},"redirected":{"type":"boolean"},"status_code":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"method","in":"query","required":false,"schema":{"type":"string"}},{"name":"timeout_ms","in":"query","required":false,"schema":{"type":"integer"}}]}},"/x402/v2/finnish-company-data":{"get":{"tags":["x402"],"summary":"Finnish Company Data (x402)","description":"Look up Finnish company data from PRH (Patent and Registration Office). Accepts Business ID (e.g. 0112038-9) or fuzzy company name.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"active","address":"Karakaari, 7, 02610 ESBO","website":"www.nokia.com","business_id":"0112038-9","company_name":"Nokia Oyj","business_type":"Public limited company","industry_code":"70100","registration_date":"1896-12-19","industry_description":"Activities of head offices"},"properties":{"status":{"type":"string"},"address":{"type":"string"},"website":{"type":["string","null"]},"vat_number":{"type":["string","null"]},"business_id":{"type":"string"},"company_name":{"type":"string"},"business_type":{"type":"string"},"industry_code":{"type":"string"},"registration_date":{"type":"string"},"industry_description":{"type":["string","null"]}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"name","in":"query","required":false,"description":"Alias for company_name","schema":{"type":"string","description":"Alias for company_name"}},{"name":"task","in":"query","required":false,"description":"Free-text alias — business ID or company name","schema":{"type":"string","description":"Free-text alias — business ID or company name"}},{"name":"query","in":"query","required":false,"description":"Free-text alias — business ID or company name","schema":{"type":"string","description":"Free-text alias — business ID or company name"}},{"name":"org_number","in":"query","required":false,"description":"Alias for business_id","schema":{"type":"string","description":"Alias for business_id"}},{"name":"business_id","in":"query","required":false,"description":"Finnish Business ID (e.g. 0112038-9)","schema":{"type":"string","description":"Finnish Business ID (e.g. 0112038-9)"}},{"name":"company_name","in":"query","required":false,"description":"Finnish company name (resolved via scored PRH search)","schema":{"type":"string","description":"Finnish company name (resolved via scored PRH search)"}}]}},"/x402/v2/japanese-company-data":{"get":{"tags":["x402"],"summary":"Japanese Company Data (x402)","description":"Look up Japanese company data from the National Tax Agency corporate number system. Accepts 13-digit corporate number or fuzzy company name.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.864000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"status":"active","address":"Toyota City, Aichi, Japan","industry":"Automotive","directors":[],"company_name":"Toyota Motor Corporation","business_type":"Kabushiki Kaisha","registration_date":"1937-08-28","registration_number":"0100-01-008846"},"properties":{"status":{"type":"string"},"vat_number":{"type":"string","description":"EU VAT number (auto-derived from national ID when possible)"},"company_name":{"type":"string"},"jurisdiction":{"type":"string","description":"ISO 3166-1 alpha-2 country code"},"business_type":{"type":"string"},"corporate_number":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"corporate_number","in":"query","required":true,"description":"13-digit corporate number or company name","schema":{"type":"string","description":"13-digit corporate number or company name"}}]}},"/x402/v2/test-case-generate":{"get":{"tags":["x402"],"summary":"Test Case Generate (x402)","description":"Generate test cases from a function description or signature. Includes happy path, edge cases, boundary tests, and error cases.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.162000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"test_cases":[{"name":"Empty function call","input":{},"category":"happy_path","description":"Tests calling test() with no arguments","expected_output":null},{"name":"Null input","input":null,"category":"edge_case","description":"Tests behavior when null is passed","expected_output":null},{"name":"Undefined input","input":"undefined","category":"edge_case","description":"Tests behavior when undefined is passed","expected_output":null},{"name":"Empty string input","input":"","category":"boundary","description":"Tests behavior with empty string","expected_output":null},{"name":"Empty array input","input":[],"category":"boundary","description":"Tests behavior with empty array","expected_output":null},{"name":"Empty object input","input":{},"category":"boundary","description":"Tests behavior with empty object","expected_output":null},{"name":"Invalid parameter type","input":"invalid_type","category":"error_case","description":"Tests behavior with unexpected parameter type","expected_output":null}],"total_cases":7,"coverage_notes":"Limited coverage due to insufficient function signature information. The function name 'test' is generic with no parameters defined. Test cases cover basic null/undefined handling, boundary conditions with empty values, and type validation. Actual coverage would improve with concrete parameter types and return type specification. Consider providing the full function implementation for comprehensive testing.","language_detected":"JavaScript/TypeScript"},"properties":{"test_cases":{"type":"array"},"total_cases":{"type":"integer"},"coverage_notes":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"language","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_edge_cases","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"function_description","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/jsdoc-generate":{"get":{"tags":["x402"],"summary":"JSDoc Generate (x402)","description":"Add JSDoc comments to JavaScript/TypeScript functions and classes. Infers param types, return types, and throws.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"tags_used":["@returns"],"documented_code":"/**\n * Returns a greeting string.\n * @returns {string} The string 'world'.\n */\nfunction hello() { return 'world'; }","functions_documented":1,"type_annotations_added":1},"properties":{"tags_used":{"type":"array"},"documented_code":{"type":"string"},"functions_documented":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/readme-generate":{"get":{"tags":["x402"],"summary":"README Generate (x402)","description":"Generate comprehensive README.md from project description. Includes installation, usage, API docs, contributing sections.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"markdown":"# Automated Capability Testing Project\n\n## Overview\n\nThis project is designed to test and validate automated capabilities through comprehensive testing frameworks and protocols. It serves as a foundation for capability assessment and quality assurance in automated systems.\n\n## Features\n\n- Automated test execution and validation\n- Comprehensive capability assessment\n- Detailed reporting and metrics\n- Modular and extensible architecture\n- CI/CD integration support\n\n## Installation\n\n### Prerequisites\n\n- Python 3.8 or higher\n- pip package manager\n- Git\n\n### Setup Instructions\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/yourusername/automated-capability-testing.git\ncd automated-capability-testing\n```\n\n2. Create a virtual environment:\n```bash\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n```\n\n3. Install dependencies:\n```bash\npip install -r requirements.txt\n```\n\n## Usage\n\n### Basic Usage\n\n```bash\npython main.py --test all\n```\n\n### Running Specific Tests\n\n```bash\npython main.py --test unit\npython main.py --test integration\npython main.py --test capability\n```\n\n### Configuration\n\nEdit `config.yaml` to customize test parameters:\n\n```yaml\ntest_mode: automated\ntimeout: 300\nverbose: true\nreport_format: json\n```\n\n### Examples\n\n```bash\n# Run all tests with verbose output\npython main.py --test all --verbose\n\n# Generate HTML report\npython main.py --test all --report html\n\n# Run with custom configuration\npython main.py --config custom_config.yaml\n```\n\n## API Documentation\n\n### Core Functions\n\n#### `run_capability_test(test_name, timeout=300)`\n\nExecutes a capability test with specified parameters.\n\n**Parameters:**\n- `test_name` (str): Name of the test to execute\n- `timeout` (int): Maximum execution time in seconds\n\n**Returns:**\n- `TestResult`: Object containing test results and metrics\n\n**Example:**\n```python\nfrom capability_tester import run_capability_test\n\nresult = run_capability_test('authentication', timeout=60)\nprint(result.status)\nprint(result.metrics)\n```\n\n#### `TestRunner` Class\n\n```python\nfrom capability_tester import TestRunner\n\nrunner = TestRunner(config_path='config.yaml')\nresults = runner.run_all_tests()\nrunner.generate_report(format='json')\n```\n\n### Response Format\n\n```json\n{\n  \"test_name\": \"string\",\n  \"status\": \"PASSED|FAILED|SKIPPED\",\n  \"duration\": \"number (seconds)\",\n  \"metrics\": {\n    \"execution_time\": \"number\",\n    \"memory_usage\": \"number\",\n    \"success_rate\": \"number\"\n  },\n  \"details\": \"string\"\n}\n```\n\n## Contributing\n\nWe welcome contributions to this project! Please follow the guidelines below.\n\n### Getting Started\n\n1. Fork the repository\n2. Create a feature branch:\n```bash\ngit checkout -b feature/your-feature-name\n```\n\n3. Make your changes and commit:\n```bash\ngit commit -m 'Add your feature description'\n```\n\n4. Push to the branch:\n```bash\ngit push origin feature/your-feature-name\n```\n\n5. Open a Pull Request\n\n### Code Standards\n\n- Follow PEP 8 style guidelines\n- Write unit tests for new features\n- Maintain minimum 80% code coverage\n- Update documentation accordingly\n\n### Testing Requirements\n\n```bash\n# Run tests\npytest tests/ -v\n\n# Check code coverage\npytest tests/ --cov=src\n\n# Lint code\npylint src/\n```\n\n### Pull Request Process\n\n1. Update README.md with relevant changes\n2. Ensure all tests pass\n3. Add/update documentation\n4. Request review from maintainers\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Support\n\nFor issues and questions, please open an issue on the GitHub repository.\n\n## Authors\n\n- Project Team\n\n## Changelog\n\n### Version 1.0.0\n- Initial release\n- Core testing framework\n- Basic capability assessment\n- Report generation\n","sections":["Overview","Features","Installation","Usage","API Documentation","Contributing","License","Support","Authors","Changelog"],"has_usage":true,"has_api_docs":true,"badges_suggested":["[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)","[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)","[![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)](https://github.com)","[![Code Coverage](https://img.shields.io/badge/coverage-80%25-brightgreen.svg)](https://codecov.io)","[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg)](CONTRIBUTING.md)"],"has_contributing":true,"has_installation":true},"properties":{"markdown":{"type":"string"},"sections":{"type":"array"},"has_usage":{"type":"boolean"},"has_installation":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"tech_stack","in":"query","required":false,"schema":{"type":"string"}},{"name":"project_name","in":"query","required":false,"schema":{"type":"string"}},{"name":"project_description","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/llm-output-validate":{"get":{"tags":["x402"],"summary":"LLM Output Validate (x402)","description":"Validate and auto-repair LLM output. Parse JSON, validate against schema, attempt fixes for common LLM mistakes. Algorithmic — no LLM needed.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"errors":[],"auto_fixed":false,"error_count":0,"parse_error":null,"parsed_output":{"age":30,"name":"Alice"}},"properties":{"valid":{"type":"boolean"},"errors":{"type":"array"},"auto_fixed":{"type":"boolean"},"parsed_output":{},"auto_fixed_output":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"llm_output","in":"query","required":true,"description":"Raw LLM output string","schema":{"type":"string","description":"Raw LLM output string"}},{"name":"strict_mode","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"expected_schema","in":"query","required":false,"description":"JSON Schema to validate against","schema":{"type":"object","description":"JSON Schema to validate against"}}]}},"/x402/v2/iban-to-bank":{"get":{"tags":["x402"],"summary":"IBAN to Bank (x402)","description":"Extract bank name and branch information from an IBAN. Returns bank name, BIC/SWIFT code, branch, and country. Pure algorithmic — uses bank code lookup tables.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"bic":"COBADEFFXXX","iban":"DE89370400440532013000","branch":null,"bank_code":"37040044","bank_name":"Commerzbank","valid_iban":true,"country_code":"DE","country_name":"Germany"},"properties":{"bic":{"type":"string"},"bank_code":{"type":"string"},"bank_name":{"type":"string"},"valid_iban":{"type":"boolean"},"country_code":{"type":"string"},"country_name":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"iban","in":"query","required":true,"description":"IBAN number to look up","schema":{"type":"string","description":"IBAN number to look up"}}]}},"/x402/v2/code-convert":{"post":{"tags":["x402"],"summary":"Code Convert (x402)","description":"Convert code between programming languages. Uses idiomatic patterns for the target language. Supports all major languages.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"confidence":"high","converted_code":"function hello() { return 'world'; }","source_language":"en","target_language":"en","conversion_notes":["Source and target languages are identical; no conversion needed"],"dependencies_needed":[]},"properties":{"confidence":{"type":"string"},"converted_code":{"type":"string"},"source_language":{"type":"string"},"target_language":{"type":"string"},"dependencies_needed":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["code","to_language"],"properties":{"code":{"type":"string"},"to_language":{"type":"string"},"from_language":{"type":"string"}}}}}}}},"/x402/v2/api-docs-generate":{"get":{"tags":["x402"],"summary":"API Docs Generate (x402)","description":"Generate markdown API documentation from an OpenAPI spec or natural language description. Returns documentation with parameters, examples, error codes.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"markdown":"# API Documentation\n\n## Description\n\nThis is a test input for automated capability testing.\n\n## Authentication\n\nNo authentication is currently configured for this API.\n\n## Endpoints\n\nNo endpoints have been specified in the provided specification.\n\n## Parameters\n\nNo parameters are defined.\n\n## Request Example\n\n```\nNo examples available\n```\n\n## Response Example\n\n```\nNo examples available\n```\n\n## Error Codes\n\nNo error codes are documented.","source_type":"natural_language","total_endpoints":0,"authentication_type":"none","endpoints_documented":[]},"properties":{"markdown":{"type":"string"},"total_endpoints":{"type":"integer"},"endpoints_documented":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"openapi_spec","in":"query","required":false,"schema":{"type":"string"}},{"name":"endpoint_description","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/pricing-page-extract":{"get":{"tags":["x402"],"summary":"Pricing Page Extract (x402)","description":"Extract structured pricing data from any SaaS pricing page. Returns plan names, prices, features per plan, billing periods, trial/guarantee info.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://stripe.com/pricing","plans":[{"name":"Standard","price":"2.9% + 30¢ per transaction","currency":"USD","features":["Global access to 195 countries","135+ currencies","100+ payment methods","Built-in fraud prevention","Fraud analytics","Flexible UI components","Pre-built payment forms","Accelerated checkout","No-code payments","Real-time retries","Auto-updated cards","Customer authentication","Embedded payments for platforms","Fast, predictable payouts","Flexible payout options","24x7 phone, chat, and email support","Industry-leading documentation","Technical support on Discord","99.999% average historical uptime","PCI compliant","Regulatory licenses globally"],"highlighted":true,"price_amount":null,"billing_period":"per-transaction"},{"name":"Custom","price":"Custom pricing","currency":null,"features":["IC+ pricing","Volume discounts","Multi-product discounts","Country-specific rates"],"highlighted":false,"price_amount":null,"billing_period":null}],"pricing_model":"usage-based","enterprise_cta":true,"annual_discount":null,"free_tier_available":false,"free_trial_available":false,"money_back_guarantee":false},"properties":{"plans":{"type":"array"},"pricing_model":{"type":"string"},"enterprise_cta":{"type":"boolean"},"free_trial_available":{"type":"boolean"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"description":"Pricing page URL","schema":{"type":"string","description":"Pricing page URL"}}]}},"/x402/v2/address-geocode":{"get":{"tags":["x402"],"summary":"Address Geocode (x402)","description":"Convert an address to geographic coordinates (latitude/longitude). Also returns structured address components and bounding box via OpenStreetMap Nominatim.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.021600"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"found":true,"latitude":48.8582599,"longitude":2.2945006,"place_type":"tower","bounding_box":{"east":2.2956897,"west":2.2933119,"north":48.8590453,"south":48.8574753},"display_name":"Tour Eiffel, 5, Avenue Anatole France, Quartier du Gros-Caillou, Paris 7e Arrondissement, Paris, Île-de-France, France métropolitaine, 75007, France","input_address":"Eiffel Tower, Paris","importance_score":0.6205937724353116},"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"place_type":{"type":"string"},"bounding_box":{"type":"object"},"display_name":{"type":"string"},"importance_score":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"address","in":"query","required":true,"description":"Address or place name to geocode","schema":{"type":"string","description":"Address or place name to geocode"}}]}},"/x402/v2/github-repo-compare":{"get":{"tags":["x402"],"summary":"GitHub Repo Compare (x402)","description":"Compare two GitHub repositories side-by-side: stars, forks, activity, language, topics, license. Returns detailed comparison.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"repo_a":{"forks":61340,"stars":226630,"topics":[],"is_fork":false,"license":"NOASSERTION","size_kb":6097250,"has_wiki":false,"language":"C","watchers":8135,"full_name":"torvalds/linux","has_pages":false,"pushed_at":"2026-04-02T17:37:29Z","created_at":"2011-09-04T22:48:12Z","updated_at":"2026-04-03T00:51:07Z","description":"Linux kernel source tree","is_archived":false,"open_issues":3,"default_branch":"master"},"repo_b":{"forks":61340,"stars":226630,"topics":[],"is_fork":false,"license":"NOASSERTION","size_kb":6097250,"has_wiki":false,"language":"C","watchers":8135,"full_name":"torvalds/linux","has_pages":false,"pushed_at":"2026-04-02T17:37:29Z","created_at":"2011-09-04T22:48:12Z","updated_at":"2026-04-03T00:51:07Z","description":"Linux kernel source tree","is_archived":false,"open_issues":3,"default_branch":"master"},"comparison":{"forks":{"repo_a":61340,"repo_b":61340,"winner":"tie"},"stars":{"repo_a":226630,"repo_b":226630,"winner":"tie"},"size_kb":{"repo_a":6097250,"repo_b":6097250,"winner":"tie"},"watchers":{"repo_a":8135,"repo_b":8135,"winner":"tie"},"last_push":{"repo_a":"2026-04-02T17:37:29Z","repo_b":"2026-04-02T17:37:29Z","winner":"tie"},"open_issues":{"repo_a":3,"repo_b":3,"winner":"tie"}},"common_topics":[],"same_language":true,"age_difference_days":0},"properties":{"repo_a":{"type":"object"},"repo_b":{"type":"object"},"comparison":{"type":"object"},"common_topics":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"repo_a","in":"query","required":true,"description":"owner/repo","schema":{"type":"string","description":"owner/repo"}},{"name":"repo_b","in":"query","required":true,"description":"owner/repo","schema":{"type":"string","description":"owner/repo"}}]}},"/x402/v2/hs-code-lookup":{"get":{"tags":["x402"],"summary":"HS Code Lookup (x402)","description":"AI-suggested HS commodity codes for a product description, with alternatives and confidence. Not an official customs classification.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.032400"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"notes":"Knitted cotton T-shirts classify under 6109.10. Blended-fabric shirts may fall under 6109.90 depending on fibre composition. Verify with binding tariff information for customs filings.","query":"cotton t-shirt","chapter":"61","section":"Section XI — Textiles and textile articles","confidence":"high","primary_hs_code":"6109.10","alternative_codes":[{"hs_code":"6109.90","confidence":"medium","description":"T-shirts of other textile materials (if not pure cotton)"}],"chapter_description":"Articles of apparel and clothing accessories, knitted or crocheted","primary_description":"T-shirts, singlets and other vests, knitted or crocheted, of cotton"},"properties":{"chapter":{"type":"string"},"confidence":{"type":"string"},"primary_hs_code":{"type":"string"},"alternative_codes":{"type":"array"},"primary_description":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"product","in":"query","required":true,"description":"Product description to classify","schema":{"type":"string","description":"Product description to classify"}}]}},"/x402/v2/barcode-lookup":{"get":{"tags":["x402"],"summary":"Barcode Lookup (x402)","description":"Look up product information by UPC/EAN barcode. Uses Open Food Facts and UPC ItemDB. Returns product name, brand, nutrition, images.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"brand":"Nutella","found":true,"source":"open_food_facts","barcode":"3017620422003","quantity":"400 g","allergens":"en:milk,en:nuts,en:soybeans","countries":"Belgique,France,Allemagne,Inde,Italie,Luxembourg,Maroc,Pays-Bas,Philippines,Pologne,Roumanie,Espagne,Suisse,Turquie,Royaume-Uni,États-Unis","image_url":"https://images.openfoodfacts.org/images/products/301/762/042/2003/front_en.820.400.jpg","nutrition":{"fat_g":30.9,"salt_g":0.107,"carbs_g":57.5,"sugar_g":56.3,"protein_g":6.3,"energy_kcal":539},"categories":"Pâtes à tartiner au chocolat","nova_group":4,"ingredients":"Sucre, huile de palme, NOISETTES 13%, cacao maigre 7,4%, LAIT écrémé en poudre 6,6%, LACTOSERUM en poudre, émulsifiants: lécithines [SOJA), vanilline. Sans gluten.","product_name":"Nutella","ecoscore_grade":"unknown","nutriscore_grade":"e"},"properties":{"brand":{"type":"string"},"found":{"type":"boolean"},"barcode":{"type":"string"},"nutrition":{"type":"object"},"product_name":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"barcode","in":"query","required":true,"schema":{"type":"string"}}]}},"/x402/v2/email-draft":{"get":{"tags":["x402"],"summary":"Email Draft (x402)","description":"Draft a professional email. Specify context, intent (cold outreach/follow-up/apology/etc), and tone. Returns subject line options, body, and key phrases.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"body":"Dear Recipient,\n\nI hope this message finds you well. I am reaching out to connect regarding our automated capability testing initiative.\n\nThis communication serves as a demonstration of our professional email communication standards and formatting protocols. We are committed to maintaining clear, concise, and effective correspondence.\n\nShould you have any questions or require additional information, please do not hesitate to contact me directly.\n\nThank you for your time and consideration.\n\nBest regards,\nSender","word_count":78,"tone_applied":"professional","intent_applied":"general","key_phrases_used":["I hope this message finds you well","reaching out to connect","do not hesitate to contact me","Thank you for your time and consideration","Best regards"],"subject_line_options":["Professional Outreach - Testing Capabilities","Inquiry Regarding Automated Communication Systems","Test Message - Professional Communication Framework"]},"properties":{"body":{"type":"string"},"word_count":{"type":"integer"},"key_phrases_used":{"type":"array"},"subject_line_options":{"type":"array"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"tone","in":"query","required":false,"schema":{"type":"string"}},{"name":"intent","in":"query","required":false,"schema":{"type":"string"}},{"name":"context","in":"query","required":true,"schema":{"type":"string"}},{"name":"recipient_context","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/error-explain":{"get":{"tags":["x402"],"summary":"Error Explain (x402)","description":"Explain an error message or stack trace in plain English. Identifies root cause, suggests fixes with code examples.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"fixes":[{"description":"Declare and initialize the variable before use","code_example":"test_value = 'some_value'\nprint(test_value)"},{"description":"Check variable name spelling and scope","code_example":"# Ensure the variable is defined in the correct scope\nclass MyClass:\n    def __init__(self):\n        self.test_value = 'initialized_value'"},{"description":"Import the variable if it's from another module","code_example":"from module_name import test_value"}],"error_type":"Undefined Variable / Missing Value Error","prevention":"Always declare variables before use, use consistent naming conventions, enable linting tools to catch undefined variables, and use type hints to clarify expected values.","root_cause":"The variable 'test_value' was referenced without being declared, initialized, or imported first. This is commonly caused by typos in variable names, missing variable declarations, or attempting to access a variable outside its scope.","search_terms":["undefined variable error","NameError Python","variable not defined","scope error"],"related_errors":["NameError: name is not defined","AttributeError: object has no attribute","UnboundLocalError: local variable referenced before assignment","ReferenceError (JavaScript equivalent)"],"plain_explanation":"The system encountered a reference to 'test_value' that was not defined, initialized, or assigned before being used. This indicates the variable doesn't exist in the current scope or context."},"properties":{"fixes":{"type":"array"},"error_type":{"type":"string"},"root_cause":{"type":"string"},"plain_explanation":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"error","in":"query","required":true,"schema":{"type":"string"}},{"name":"context","in":"query","required":false,"schema":{"type":"string"}},{"name":"language","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/api-mock-response":{"get":{"tags":["x402"],"summary":"API Mock Response (x402)","description":"Generate a realistic mock API response with proper headers, status codes, and schema-matching body data.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com","body":{"data":{"id":"user_123456","name":"John Doe","email":"john.doe@example.com","status":"active","profile":{"bio":"Software Engineer","location":"San Francisco, CA","avatar_url":"https://example.com/avatars/user_123456.jpg"},"created_at":"2023-06-15T08:30:00Z","updated_at":"2024-01-10T14:32:15Z"},"meta":{"version":"1.0","timestamp":"2024-01-10T14:32:15Z"},"success":true},"method":"GET","headers":{"Date":"Wed, 10 Jan 2024 14:32:15 GMT","ETag":"W/\"33a64df551425fcc55e4d42a148795d9f25f89d4\"","Server":"nginx/1.24.0","Connection":"keep-alive","Content-Type":"application/json","X-Request-Id":"550e8400-e29b-41d4-a716-446655440000","Cache-Control":"public, max-age=300","X-RateLimit-Limit":"5000","X-RateLimit-Reset":"1699564800","X-RateLimit-Remaining":"4999"},"status_code":200,"content_type":"application/json"},"properties":{"body":{},"headers":{"type":"object"},"status_code":{"type":"integer"},"content_type":{"type":"string"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"method","in":"query","required":false,"schema":{"type":"string"}},{"name":"status_code","in":"query","required":false,"schema":{"type":"integer"}},{"name":"response_schema","in":"query","required":false,"schema":{"type":"object"}}]}},"/x402/v2/brand-mention-search":{"get":{"tags":["x402"],"summary":"Brand Mention Search (x402)","description":"Search Google for brand mentions. Returns URLs, titles, snippets, sentiment, and source type. Every result is a clickable, verifiable URL.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"\"Stripe\"","mentions":[{"url":"https://stripe.com/","title":"Stripe | Financial Infrastructure to Grow Your Revenue","snippet":"Stripe is a financial services platform that helps all types of businesses accept payments, build flexible billing models, and manage money movement.","relevance":"high","sentiment":"positive","source_type":"directory"},{"url":"https://en.wikipedia.org/wiki/Stripe,_Inc.","title":"Stripe, Inc. - Wikipedia","snippet":"Stripe is the largest privately owned financial technology company with a valuation of about $159 billion and over $1.9 trillion in payment volume processed in ...","relevance":"high","sentiment":"positive","source_type":"directory"},{"url":"https://play.google.com/store/apps/details?id=com.stripe.android.dashboard&hl=en_US","title":"Stripe Dashboard - Apps on Google Play","snippet":"Run your business on the go with the Stripe Dashboard app. Monitor your Stripe accounts securely in real-time and accept payments anywhere.","relevance":"high","sentiment":"positive","source_type":"directory"},{"url":"https://www.linkedin.com/company/stripe","title":"Stripe | LinkedIn","snippet":"Stripe is a financial infrastructure platform for businesses. Millions of companies—from the world's largest enterprises to the most ambitious ...","relevance":"high","sentiment":"positive","source_type":"social"},{"url":"https://www.reddit.com/r/stripe/","title":"r/stripe - Reddit","snippet":"r/stripe: Stripe is a technology company that builds economic infrastructure for the internet. Businesses of every size—from new startups to public…","relevance":"high","sentiment":"neutral","source_type":"forum"},{"url":"https://apps.apple.com/us/app/stripe-dashboard/id978516833","title":"Stripe Dashboard - App Store - Apple","snippet":"Run your business on the go with the Stripe Dashboard app. Monitor your Stripe accounts securely in real-time and accept payments anywhere.","relevance":"high","sentiment":"positive","source_type":"directory"},{"url":"https://stripe.dev/","title":"Stripe Dot Dev","snippet":"Learn how to build web and mobile applications to accept payments, send payouts, and manage your business online with Stripe.","relevance":"high","sentiment":"positive","source_type":"directory"}],"brand_name":"Stripe","total_results_found":7},"properties":{"mentions":{"type":"array"},"brand_name":{"type":"string"},"total_results_found":{"type":"integer"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"brand_name","in":"query","required":true,"schema":{"type":"string"}},{"name":"max_results","in":"query","required":false,"schema":{"type":"integer"}},{"name":"exclude_own_domain","in":"query","required":false,"schema":{"type":"string"}}]}},"/x402/v2/resume-parse":{"post":{"tags":["x402"],"summary":"Resume Parse (x402)","description":"Extract structured data from a CV/resume. Accepts PDF URL, base64, or text. Returns name, contact, experience, education, skills, certifications.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"name":"Jane Doe","email":"jane@example.com","phone":"+1 555-0100","skills":["TypeScript","Node.js","PostgreSQL","Docker"],"summary":"Software Engineer with 5 years experience in TypeScript and Node.js.","website":null,"linkedin":null,"location":null,"education":[{"gpa":null,"degree":"B.Sc. Computer Science","end_date":"2019","start_date":null,"institution":"Uppsala University"}],"languages":[],"experience":[{"title":"Senior Developer","company":"Acme Corp","end_date":"2024","highlights":["Built REST APIs using Node.js","Led team of 3 engineers"],"start_date":"2020"}],"certifications":[],"total_experience_years":5},"properties":{"name":{"type":"string"},"skills":{"type":"array"},"education":{"type":"array"},"experience":{"type":"array"},"total_experience_years":{"type":"number"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"base64":{"type":"string"},"pdf_url":{"type":"string"}}}}}}}},"/x402/v2/ticker-lookup":{"get":{"tags":["x402"],"summary":"Ticker Lookup (x402)","description":"Find stock ticker symbols by company name. Returns matches with symbol, exchange, and type.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.054000"}},"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","example":{"query":"SELECT * FROM users WHERE active = true LIMIT 10","matches":[{"name":"iShares Staked Ethereum Trust ETF Shares of Fractional Undivided Beneficial Interest","type":"equity","score":100002,"symbol":"ETHB","exchange":"NASDAQ"},{"name":"Nasdaq 100 Jun 26","type":"future","score":31271,"symbol":"NQ=F","exchange":"Chicago Mercantile Exchange"},{"name":"Micro E-mini Nasdaq-100 Index F","type":"future","score":30016,"symbol":"MNQ=F","exchange":"Chicago Mercantile Exchange"},{"name":"10-Year Yield Futures,Mar-2026","type":"future","score":30011,"symbol":"10Y=F","exchange":"Chicago Board of Trade"},{"name":"10-Year T-Note Futures,Jun-2026","type":"future","score":30009,"symbol":"ZN=F","exchange":"Chicago Board of Trade"},{"name":"U.S. Treasury Bond Futures,Jun-","type":"future","score":30004,"symbol":"ZB=F","exchange":"Chicago Board of Trade"},{"name":"E-mini Financial Select Sector ","type":"future","score":30002,"symbol":"XAF=F","exchange":"Chicago Mercantile Exchange"}],"top_match":{"name":"iShares Staked Ethereum Trust ETF Shares of Fractional Undivided Beneficial Interest","symbol":"ETHB","exchange":"NASDAQ"},"total_results":7},"properties":{"matches":{"type":"array"},"top_match":{"type":"object"}}}}}},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Company name (e.g. 'Spotify', 'Tesla')","schema":{"type":"string","description":"Company name (e.g. 'Spotify', 'Tesla')"}}]}},"/x402/v2/solutions/kyc-finland":{"post":{"tags":["x402"],"summary":"Nordic KYC — Finland (x402 solution)","description":"Check if a Finnish company is real and safe to do business with. Official registry data, VAT validation, sanctions screening, PEP check, and adverse media scan in one call.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["business_id"],"properties":{"business_id":{"type":"string","description":"Finnish business ID (Y-tunnus)"}}}}}}}},"/x402/v2/solutions/defi-risk-check":{"post":{"tags":["x402"],"summary":"DeFi Protocol Risk Check (x402 solution)","description":"Before your agent deposits funds into a DeFi protocol, verify the team isn't sanctioned, the domain is legitimate, and the SSL certificate is valid. The off-chain risk layer for on-chain DeFi.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["protocol_url","protocol_name"],"properties":{"protocol_url":{"type":"string","format":"uri","description":"DeFi protocol website URL"},"protocol_name":{"type":"string","description":"Protocol name (e.g. Aave, Compound)"}}}}}}}},"/x402/v2/solutions/gdpr-audit":{"post":{"tags":["x402"],"summary":"Website GDPR Audit (x402 solution)","description":"Is this website GDPR compliant? Scans cookies, consent mechanisms, privacy policy, SSL, and identifies the relevant data protection authority.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.080000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 (for DPA lookup)"}}}}}}}},"/x402/v2/solutions/kyb-essentials-se":{"post":{"tags":["x402"],"summary":"KYB Essentials — Sweden (x402 solution)","description":"Quick company verification for Sweden. Confirms the company exists in the official registry, validates VAT registration (from registry data or a VAT number you provide), screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["org_number"],"properties":{"org_number":{"type":"string","description":"Swedish organization number"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. ATU14189108). Optional — used for VIES validation when the registry lookup does not return one (e.g. AT, SK); auto-derived from registry data where possible."}}}}}}}},"/x402/v2/solutions/hr-candidate-screen":{"post":{"tags":["x402"],"summary":"HR Candidate Screening (x402 solution)","description":"Screen a job candidate: parse their resume, validate their email and phone, and run sanctions and PEP checks. Returns structured candidate data with verification status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.864000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["resume_text"],"properties":{"email":{"type":"string","description":"Candidate email (optional)"},"resume_text":{"type":"string","description":"Resume/CV text content"},"phone_number":{"type":"string","description":"Candidate phone (optional)"}}}}}}}},"/x402/v2/solutions/kyb-essentials-fr":{"post":{"tags":["x402"],"summary":"KYB Essentials — France (x402 solution)","description":"Quick company verification for France. Confirms the company exists in the official registry, validates VAT registration (from registry data or a VAT number you provide), screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["siren"],"properties":{"siren":{"type":"string","description":"French SIREN/SIRET number"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. ATU14189108). Optional — used for VIES validation when the registry lookup does not return one (e.g. AT, SK); auto-derived from registry data where possible."}}}}}}}},"/x402/v2/solutions/web3-counterparty-kyb":{"post":{"tags":["x402"],"summary":"Web3 Counterparty KYB (x402 solution)","description":"Counterparty due diligence for Web3 companies, DAOs, and token projects. Sanctions screening on the entity plus full domain infrastructure audit. Answers \"should we transact with this counterparty?\"","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.756000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["entity_name","domain"],"properties":{"domain":{"type":"string","description":"Counterparty website domain"},"entity_name":{"type":"string","description":"Company, DAO, or project name for sanctions screening"}}}}}}}},"/x402/v2/solutions/lead-enrich":{"post":{"tags":["x402"],"summary":"Lead Enrichment & Qualification (x402 solution)","description":"Everything your sales agent needs from one email address — validation, domain intel, reputation, registrar, and tech stack detection.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.291600"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email","description":"Prospect email address"}}}}}}}},"/x402/v2/solutions/invoice-verify-uk":{"post":{"tags":["x402"],"summary":"Invoice Verify — United Kingdom (x402 solution)","description":"Invoice fraud detection for United Kingdom. Verifies the invoicing company exists, validates payment details (IBAN, BIC, VAT), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_number"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"},"company_number":{"type":"string","description":"UK Companies House number"}}}}}}}},"/x402/v2/solutions/kyb-complete-fr":{"post":{"tags":["x402"],"summary":"KYB Complete — France (x402 solution)","description":"Comprehensive company verification for France. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["siren"],"properties":{"siren":{"type":"string","description":"French SIREN/SIRET number"},"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"}}}}}}}},"/x402/v2/solutions/kyb-complete-us":{"post":{"tags":["x402"],"summary":"KYB Complete — United States (x402 solution)","description":"Comprehensive company verification for United States. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"company_name":{"type":"string","description":"US company name or EIN"},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"}}}}}}}},"/x402/v2/solutions/prospect-profile":{"post":{"tags":["x402"],"summary":"Prospect Company Profile (x402 solution)","description":"Everything your sales agent researches before a call: SEC data, tech stack, web presence, and domain credibility — delivered in seconds.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.583200"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company","url"],"properties":{"url":{"type":"string","description":"Company website URL"},"company":{"type":"string","description":"Company name, CIK, or ticker"}}}}}}}},"/x402/v2/solutions/web3-vasp-check":{"post":{"tags":["x402"],"summary":"Web3 VASP Compliance Check (x402 solution)","description":"Before interacting with a crypto service provider, verify they're licensed under EU MiCA regulation. Checks the ESMA register of authorized CASPs, the non-compliant entity list, sanctions status, and domain reputation.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.108000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["entity_name"],"properties":{"website":{"type":"string","description":"Entity website domain"},"entity_name":{"type":"string","description":"CASP/VASP name or company name"}}}}}}}},"/x402/v2/solutions/domain-intel":{"post":{"tags":["x402"],"summary":"Domain Intelligence (x402 solution)","description":"Everything your agent needs to evaluate a domain: registration details, DNS setup, SSL health, and reputation score.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.378000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"}}}}}}}},"/x402/v2/solutions/kyb-complete-no":{"post":{"tags":["x402"],"summary":"KYB Complete — Norway (x402 solution)","description":"Comprehensive company verification for Norway. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["org_number"],"properties":{"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"org_number":{"type":"string","description":"Norwegian org number (9 digits)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"}}}}}}}},"/x402/v2/solutions/kyb-complete-be":{"post":{"tags":["x402"],"summary":"KYB Complete — Belgium (x402 solution)","description":"Comprehensive company verification for Belgium. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["enterprise_number"],"properties":{"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"},"enterprise_number":{"type":"string","description":"Belgian enterprise number"}}}}}}}},"/x402/v2/solutions/invoice-verify-no":{"post":{"tags":["x402"],"summary":"Invoice Verify — Norway (x402 solution)","description":"Invoice fraud detection for Norway. Verifies the invoicing company exists, validates payment details (IBAN, BIC, VAT), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["org_number"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"org_number":{"type":"string","description":"Norwegian org number (9 digits)"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"}}}}}}}},"/x402/v2/solutions/kyb-complete-uk":{"post":{"tags":["x402"],"summary":"KYB Complete — United Kingdom (x402 solution)","description":"Comprehensive company verification for United Kingdom. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_number"],"properties":{"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"},"company_number":{"type":"string","description":"UK Companies House number"}}}}}}}},"/x402/v2/solutions/contact-verify":{"post":{"tags":["x402"],"summary":"Contact Verification (x402 solution)","description":"Verify a contact's email, phone number, and address in parallel. Returns validation status for each channel. Essential for CRM hygiene and lead qualification.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.270000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Email address to verify"},"address":{"type":"string","description":"Postal address to verify (optional)"},"phone_number":{"type":"string","description":"Phone number to verify (optional)"}}}}}}}},"/x402/v2/solutions/verify-us-company":{"post":{"tags":["x402"],"summary":"US Company Verify (x402 solution)","description":"Look up any US company using SEC EDGAR data, screen against international sanctions lists, check for politically exposed persons (PEP), and scan for adverse media coverage. Filing data, company status, sanctions, PEP, and media check.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.404000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company"],"properties":{"company":{"type":"string","description":"CIK number, ticker symbol, or company name"}}}}}}}},"/x402/v2/solutions/invoice-process":{"post":{"tags":["x402"],"summary":"Invoice Processing Pipeline (x402 solution)","description":"End-to-end invoice verification: extract structured data from the invoice, validate the vendor's VAT number, verify the payment IBAN, and convert currency if needed. Returns everything an AP automation agent needs.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.540000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Invoice text or OCR output"},"target_currency":{"type":"string","description":"Convert amounts to this currency (optional)"}}}}}}}},"/x402/v2/solutions/website-security-audit":{"post":{"tags":["x402"],"summary":"Website Security Audit (x402 solution)","description":"Is this website secure? SSL, HTTP headers, DNS, and tech stack — the security audit your agent runs before trusting any URL.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"URL to audit"}}}}}}}},"/x402/v2/solutions/vendor-onboard":{"post":{"tags":["x402"],"summary":"Vendor Onboarding Check (x402 solution)","description":"Everything a procurement agent needs to onboard a new vendor: company verification, VAT validation, bank account verification, sanctions screening, and address validation. One call replaces a 45-minute manual check.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name","country_code"],"properties":{"iban":{"type":"string","description":"Vendor bank IBAN (optional)"},"address":{"type":"string","description":"Vendor address (optional)"},"vat_number":{"type":"string","description":"Vendor VAT number (optional)"},"company_name":{"type":"string","description":"Vendor company name"},"country_code":{"type":"string","description":"Vendor country code"}}}}}}}},"/x402/v2/solutions/invoice-verify-fr":{"post":{"tags":["x402"],"summary":"Invoice Verify — France (x402 solution)","description":"Invoice fraud detection for France. Verifies the invoicing company exists, validates payment details (IBAN, BIC, VAT), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["siren"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"siren":{"type":"string","description":"French SIREN/SIRET number"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"}}}}}}}},"/x402/v2/solutions/vendor-risk-assess":{"post":{"tags":["x402"],"summary":"Vendor Risk Assessment (x402 solution)","description":"SEC data, sanctions screening, domain security — answers 'should we do business with this company?' in one call.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.944000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company","domain"],"properties":{"domain":{"type":"string","description":"Company domain to assess"},"company":{"type":"string","description":"Company name, CIK, or ticker"}}}}}}}},"/x402/v2/solutions/domain-trust":{"post":{"tags":["x402"],"summary":"Domain Trust Check (x402 solution)","description":"Given a domain, answer 'is this domain trustworthy?' — registration age, DNS, SSL, reputation score, and HTTP security headers.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.432000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain to check"}}}}}}}},"/x402/v2/solutions/email-audit":{"post":{"tags":["x402"],"summary":"Email Deliverability Audit (x402 solution)","description":"Will emails to this domain actually arrive? SPF, DKIM, DMARC, MX records, SSL, and blacklist status — the complete deliverability audit.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.270000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"}}}}}}}},"/x402/v2/solutions/crypto-counterparty-kyb":{"post":{"tags":["x402"],"summary":"Crypto Counterparty KYB (x402 solution)","description":"Know Your Business for crypto counterparties. Verify the legal entity exists, check sanctions lists, validate their web presence, and assess domain trust. The compliance layer agents need before transacting with a new counterparty.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.944000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["entity_name","entity_website"],"properties":{"entity_name":{"type":"string","description":"Legal entity or company name"},"entity_website":{"type":"string","format":"uri","description":"Entity's website URL"}}}}}}}},"/x402/v2/solutions/sepa-readiness":{"post":{"tags":["x402"],"summary":"SEPA Payment Readiness (x402 solution)","description":"Everything your agent needs before initiating a SEPA transfer: IBAN validation, bank identification, VAT verification, and current exchange rate.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["iban","vat_number"],"properties":{"iban":{"type":"string"},"vat_number":{"type":"string"},"source_currency":{"type":"string","description":"ISO 4217 currency code, omit if EUR"}}}}}}}},"/x402/v2/solutions/customer-risk-screen":{"post":{"tags":["x402"],"summary":"Customer Risk Screen (x402 solution)","description":"AML screening for customer onboarding: sanctions check, PEP screening, and adverse media analysis in one call. The essential compliance screen for every new customer.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.080000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Person or company name to screen"},"birth_date":{"type":"string","description":"Date of birth for person screening (optional)"},"country_code":{"type":"string","description":"Country code (optional)"}}}}}}}},"/x402/v2/solutions/token-project-dd":{"post":{"tags":["x402"],"summary":"Token Project Due Diligence (x402 solution)","description":"Evaluates a token project's legitimacy before investment or integration. Checks domain infrastructure, security posture, sanctions status, and technology stack. The answer to \"is this token project real?\"","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.669600"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain","entity_name"],"properties":{"domain":{"type":"string","description":"Token project website domain (e.g. uniswap.org)"},"entity_name":{"type":"string","description":"Project or company name for sanctions screening"}}}}}}}},"/x402/v2/solutions/invoice-verify-es":{"post":{"tags":["x402"],"summary":"Invoice Verify — Spain (x402 solution)","description":"Invoice fraud detection for Spain. Verifies the invoicing company exists, validates payment details (IBAN, BIC, VAT), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"company_name":{"type":"string","description":"Spanish company name or CIF"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"}}}}}}}},"/x402/v2/solutions/lead-email-verify":{"post":{"tags":["x402"],"summary":"Lead Email Verify (x402 solution)","description":"Your agent found a prospect's email — is it real? Deliverability check, DNS, and domain reputation in one call.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}}}},"/x402/v2/solutions/ai-act-assess":{"post":{"tags":["x402"],"summary":"EU AI Act Risk Assessment (x402 solution)","description":"Classify your AI system's risk level under the EU AI Act before the August 2026 deadline. Risk classification, obligations, and supervisory authority.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.864000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["description","deployment_country"],"properties":{"company":{"type":"string"},"description":{"type":"string","description":"Describe what your AI system does"},"deployment_country":{"type":"string","description":"ISO 3166-1 alpha-2 country code"}}}}}}}},"/x402/v2/solutions/web3-protocol-health":{"post":{"tags":["x402"],"summary":"Web3 Protocol Health Report (x402 solution)","description":"Full health snapshot of any DeFi protocol. TVL, fee revenue, stablecoin exposure, plus infrastructure trust assessment. Answers: is this protocol real AND healthy?","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.086400"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["protocol"],"properties":{"protocol":{"type":"string","description":"Protocol name or DeFi Llama slug (e.g., 'aave-v3', 'uniswap')"},"protocol_domain":{"type":"string","description":"Protocol website domain for infrastructure check"}}}}}}}},"/x402/v2/solutions/payment-validate":{"post":{"tags":["x402"],"summary":"B2B Payment Validation (x402 solution)","description":"Verify bank details and tax IDs before your agent processes a payment. IBAN validation, bank identification, and counterparty VAT check.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.270000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["iban","vat_number"],"properties":{"iban":{"type":"string"},"vat_number":{"type":"string"}}}}}}}},"/x402/v2/solutions/competitor-snapshot":{"post":{"tags":["x402"],"summary":"Competitive Intelligence Snapshot (x402 solution)","description":"Tech stack, SEO, landing page analysis, social presence — the competitive read your agent can run in seconds.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.663200"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["competitor_url"],"properties":{"brand_username":{"type":"string","description":"Social media username (optional)"},"competitor_url":{"type":"string","format":"uri"}}}}}}}},"/x402/v2/solutions/enhanced-due-diligence":{"post":{"tags":["x402"],"summary":"Enhanced Due Diligence (x402 solution)","description":"Comprehensive due diligence on a company: registry verification, beneficial ownership, sanctions screening, PEP screening, and adverse media analysis. Returns everything a compliance officer needs in one call.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"3.240000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name","country_code"],"properties":{"company_name":{"type":"string","description":"Company name to investigate"},"country_code":{"type":"string","description":"ISO 2-letter country code"},"company_number":{"type":"string","description":"Company registration number (optional)"}}}}}}}},"/x402/v2/solutions/web-extract-clean":{"post":{"tags":["x402"],"summary":"Web Extract & Clean (x402 solution)","description":"Fetch any web page — even behind anti-bot walls — convert to clean markdown, and strip PII automatically. Ready for your RAG pipeline.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}}}}}}},"/x402/v2/solutions/page-seo-check":{"post":{"tags":["x402"],"summary":"Page SEO Check (x402 solution)","description":"Is this page technically fit to rank? Metadata, social preview, load performance, and availability in one call.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}}}}}}},"/x402/v2/solutions/invoice-verify-us":{"post":{"tags":["x402"],"summary":"Invoice Verify — United States (x402 solution)","description":"Invoice fraud detection for United States. Verifies the invoicing company exists, validates payment details (IBAN, BIC), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"company_name":{"type":"string","description":"US company name or EIN"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"}}}}}}}},"/x402/v2/solutions/kyb-essentials-us":{"post":{"tags":["x402"],"summary":"KYB Essentials — United States (x402 solution)","description":"Quick company verification for United States. Confirms the company exists in the official registry, screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"company_name":{"type":"string","description":"US company name or EIN"}}}}}}}},"/x402/v2/solutions/kyb-complete-de":{"post":{"tags":["x402"],"summary":"KYB Complete — Germany (x402 solution)","description":"Comprehensive company verification for Germany. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"company_name":{"type":"string","description":"German company name or registration number"},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"}}}}}}}},"/x402/v2/solutions/kyb-essentials-be":{"post":{"tags":["x402"],"summary":"KYB Essentials — Belgium (x402 solution)","description":"Quick company verification for Belgium. Confirms the company exists in the official registry, validates VAT registration (from registry data or a VAT number you provide), screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["enterprise_number"],"properties":{"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. ATU14189108). Optional — used for VIES validation when the registry lookup does not return one (e.g. AT, SK); auto-derived from registry data where possible."},"enterprise_number":{"type":"string","description":"Belgian enterprise number"}}}}}}}},"/x402/v2/solutions/kyb-essentials-ch":{"post":{"tags":["x402"],"summary":"KYB Essentials — Switzerland (x402 solution)","description":"Quick company verification for Switzerland. Confirms the company exists in the official registry, validates VAT registration (from registry data or a VAT number you provide), screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. ATU14189108). Optional — used for VIES validation when the registry lookup does not return one (e.g. AT, SK); auto-derived from registry data where possible."},"company_name":{"type":"string","description":"Swiss company name or UID"}}}}}}}},"/x402/v2/solutions/kyb-essentials-pl":{"post":{"tags":["x402"],"summary":"KYB Essentials — Poland (x402 solution)","description":"Quick company verification for Poland. Confirms the company exists in the official registry, validates VAT registration (from registry data or a VAT number you provide), screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["krs_number"],"properties":{"krs_number":{"type":"string","description":"Polish KRS number"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. ATU14189108). Optional — used for VIES validation when the registry lookup does not return one (e.g. AT, SK); auto-derived from registry data where possible."}}}}}}}},"/x402/v2/solutions/kyc-sweden":{"post":{"tags":["x402"],"summary":"Nordic KYC — Sweden (x402 solution)","description":"Check if a Swedish company is real and safe to do business with. Official registry data, VAT validation, sanctions screening, PEP check, and adverse media scan in one call.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["org_number"],"properties":{"org_number":{"type":"string","description":"Swedish organization number"}}}}}}}},"/x402/v2/solutions/kyb-essentials-no":{"post":{"tags":["x402"],"summary":"KYB Essentials — Norway (x402 solution)","description":"Quick company verification for Norway. Confirms the company exists in the official registry, validates VAT registration (from registry data or a VAT number you provide), screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["org_number"],"properties":{"org_number":{"type":"string","description":"Norwegian org number (9 digits)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. ATU14189108). Optional — used for VIES validation when the registry lookup does not return one (e.g. AT, SK); auto-derived from registry data where possible."}}}}}}}},"/x402/v2/solutions/kyb-complete-es":{"post":{"tags":["x402"],"summary":"KYB Complete — Spain (x402 solution)","description":"Comprehensive company verification for Spain. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"company_name":{"type":"string","description":"Spanish company name or CIF"},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"}}}}}}}},"/x402/v2/solutions/kyb-complete-ch":{"post":{"tags":["x402"],"summary":"KYB Complete — Switzerland (x402 solution)","description":"Comprehensive company verification for Switzerland. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"company_name":{"type":"string","description":"Swiss company name or UID"},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"}}}}}}}},"/x402/v2/solutions/kyb-complete-pl":{"post":{"tags":["x402"],"summary":"KYB Complete — Poland (x402 solution)","description":"Comprehensive company verification for Poland. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["krs_number"],"properties":{"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"krs_number":{"type":"string","description":"Polish KRS number"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"}}}}}}}},"/x402/v2/solutions/invoice-verify-be":{"post":{"tags":["x402"],"summary":"Invoice Verify — Belgium (x402 solution)","description":"Invoice fraud detection for Belgium. Verifies the invoicing company exists, validates payment details (IBAN, BIC, VAT), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["enterprise_number"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"},"enterprise_number":{"type":"string","description":"Belgian enterprise number"}}}}}}}},"/x402/v2/solutions/kyb-essentials-es":{"post":{"tags":["x402"],"summary":"KYB Essentials — Spain (x402 solution)","description":"Quick company verification for Spain. Confirms the company exists in the official registry, validates VAT registration (from registry data or a VAT number you provide), screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. ATU14189108). Optional — used for VIES validation when the registry lookup does not return one (e.g. AT, SK); auto-derived from registry data where possible."},"company_name":{"type":"string","description":"Spanish company name or CIF"}}}}}}}},"/x402/v2/solutions/prospect-brief":{"post":{"tags":["x402"],"summary":"Prospect Brief (x402 solution)","description":"Profile the domain behind a prospect's email: address validity, mail-server setup, domain reputation, and the tech stack running on that domain.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.324000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}}}},"/x402/v2/solutions/kyb-complete-au":{"post":{"tags":["x402"],"summary":"KYB Complete — Australia (x402 solution)","description":"Comprehensive company verification for Australia. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["abn"],"properties":{"abn":{"type":"string","description":"Australian Business Number (11 digits)"},"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"}}}}}}}},"/x402/v2/solutions/website-health":{"post":{"tags":["x402"],"summary":"Website Health Check (x402 solution)","description":"Quick technical health check on any website: SSL certificate chain, email deliverability configuration, and page load performance.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.432000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"}}}}}}}},"/x402/v2/solutions/kyc-norway":{"post":{"tags":["x402"],"summary":"Nordic KYC — Norway (x402 solution)","description":"Check if a Norwegian company is real and safe to do business with. Official registry data, VAT validation, sanctions screening, PEP check, and adverse media scan in one call.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["org_number"],"properties":{"org_number":{"type":"string","description":"Norwegian organization number"}}}}}}}},"/x402/v2/solutions/kyc-denmark":{"post":{"tags":["x402"],"summary":"Nordic KYC — Denmark (x402 solution)","description":"Check if a Danish company is real and safe to do business with. Official registry data, VAT validation, sanctions screening, PEP check, and adverse media scan in one call.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cvr_number"],"properties":{"cvr_number":{"type":"string","description":"Danish CVR number"}}}}}}}},"/x402/v2/solutions/kyb-complete-fi":{"post":{"tags":["x402"],"summary":"KYB Complete — Finland (x402 solution)","description":"Comprehensive company verification for Finland. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["business_id"],"properties":{"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"business_id":{"type":"string","description":"Finnish business ID"},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"}}}}}}}},"/x402/v2/solutions/defi-protocol-risk":{"post":{"tags":["x402"],"summary":"DeFi Protocol Risk Check (x402 solution)","description":"Evaluates a DeFi protocol's infrastructure security before interaction. Checks SSL certificate health, HTTP security headers, DNS configuration, domain reputation, and technology surface area. Answers \"is this protocol's infrastructure secure?\"","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.259200"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"DeFi protocol domain (e.g. app.aave.com)"}}}}}}}},"/x402/v2/solutions/kyb-essentials-uk":{"post":{"tags":["x402"],"summary":"KYB Essentials — United Kingdom (x402 solution)","description":"Quick company verification for United Kingdom. Confirms the company exists in the official registry, validates VAT registration (from registry data or a VAT number you provide), screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_number"],"properties":{"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. ATU14189108). Optional — used for VIES validation when the registry lookup does not return one (e.g. AT, SK); auto-derived from registry data where possible."},"company_number":{"type":"string","description":"UK Companies House number"}}}}}}}},"/x402/v2/solutions/competitor-read":{"post":{"tags":["x402"],"summary":"Competitor Read (x402 solution)","description":"What is this competitor running, and how do they present themselves? Tech stack, page metadata, and social preview in one call.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.216000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}}}}}}},"/x402/v2/solutions/kyb-essentials-de":{"post":{"tags":["x402"],"summary":"KYB Essentials — Germany (x402 solution)","description":"Quick company verification for Germany. Confirms the company exists in the official registry, validates VAT registration (from registry data or a VAT number you provide), screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. ATU14189108). Optional — used for VIES validation when the registry lookup does not return one (e.g. AT, SK); auto-derived from registry data where possible."},"company_name":{"type":"string","description":"German company name or registration number"}}}}}}}},"/x402/v2/solutions/invoice-verify-pl":{"post":{"tags":["x402"],"summary":"Invoice Verify — Poland (x402 solution)","description":"Invoice fraud detection for Poland. Verifies the invoicing company exists, validates payment details (IBAN, BIC, VAT), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["krs_number"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"krs_number":{"type":"string","description":"Polish KRS number"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"}}}}}}}},"/x402/v2/solutions/kyb-essentials-au":{"post":{"tags":["x402"],"summary":"KYB Essentials — Australia (x402 solution)","description":"Quick company verification for Australia. Confirms the company exists in the official registry, screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["abn"],"properties":{"abn":{"type":"string","description":"Australian Business Number (11 digits)"}}}}}}}},"/x402/v2/solutions/invoice-verify-ca":{"post":{"tags":["x402"],"summary":"Invoice Verify — Canada (x402 solution)","description":"Invoice fraud detection for Canada. Verifies the invoicing company exists, validates payment details (IBAN, BIC), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"company_name":{"type":"string","description":"Canadian company name or corporation number"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"}}}}}}}},"/x402/v2/solutions/invoice-verify-au":{"post":{"tags":["x402"],"summary":"Invoice Verify — Australia (x402 solution)","description":"Invoice fraud detection for Australia. Verifies the invoicing company exists, validates payment details (IBAN, BIC), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["abn"],"properties":{"abn":{"type":"string","description":"Australian Business Number (11 digits)"},"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"}}}}}}}},"/x402/v2/solutions/invoice-verify-ch":{"post":{"tags":["x402"],"summary":"Invoice Verify — Switzerland (x402 solution)","description":"Invoice fraud detection for Switzerland. Verifies the invoicing company exists, validates payment details (IBAN, BIC, VAT), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"company_name":{"type":"string","description":"Swiss company name or UID"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"}}}}}}}},"/x402/v2/solutions/invoice-verify-fi":{"post":{"tags":["x402"],"summary":"Invoice Verify — Finland (x402 solution)","description":"Invoice fraud detection for Finland. Verifies the invoicing company exists, validates payment details (IBAN, BIC, VAT), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["business_id"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"business_id":{"type":"string","description":"Finnish business ID"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"}}}}}}}},"/x402/v2/solutions/invoice-verify-de":{"post":{"tags":["x402"],"summary":"Invoice Verify — Germany (x402 solution)","description":"Invoice fraud detection for Germany. Verifies the invoicing company exists, validates payment details (IBAN, BIC, VAT), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"company_name":{"type":"string","description":"German company name or registration number"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"}}}}}}}},"/x402/v2/solutions/kyb-complete-ca":{"post":{"tags":["x402"],"summary":"KYB Complete — Canada (x402 solution)","description":"Comprehensive company verification for Canada. Full compliance check including registry verification, sanctions screening, PEP screening, adverse media search, digital presence analysis, and a plain-language risk narrative.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"domain":{"type":"string","description":"Company website domain (e.g., example.com)"},"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. DE811128135). Auto-derived from registry data when possible."},"company_name":{"type":"string","description":"Canadian company name or corporation number"},"contact_name":{"type":"string","description":"Name of contact person for PEP screening"},"contact_email":{"type":"string","description":"Contact email for validation"}}}}}}}},"/x402/v2/solutions/invoice-verify-se":{"post":{"tags":["x402"],"summary":"Invoice Verify — Sweden (x402 solution)","description":"Invoice fraud detection for Sweden. Verifies the invoicing company exists, validates payment details (IBAN, BIC, VAT), screens for sanctions and adverse media, analyzes sender domain trustworthiness, and produces a plain-language fraud assessment.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"2.700000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["org_number"],"properties":{"bic":{"type":"string","description":"BIC/SWIFT code from the invoice"},"iban":{"type":"string","description":"IBAN from the invoice payment details"},"org_number":{"type":"string","description":"Swedish organization number"},"sender_url":{"type":"string","description":"URL from the invoice for redirect tracing"},"vat_number":{"type":"string","description":"VAT number from the invoice"},"invoice_data":{"type":"object","description":"Structured invoice data for validation"},"sender_email":{"type":"string","description":"Email address of the invoice sender"},"sender_domain":{"type":"string","description":"Domain of the invoice sender"}}}}}}}},"/x402/v2/solutions/kyb-essentials-ca":{"post":{"tags":["x402"],"summary":"KYB Essentials — Canada (x402 solution)","description":"Quick company verification for Canada. Confirms the company exists in the official registry, screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company_name"],"properties":{"company_name":{"type":"string","description":"Canadian company name or corporation number"}}}}}}}},"/x402/v2/solutions/kyb-essentials-fi":{"post":{"tags":["x402"],"summary":"KYB Essentials — Finland (x402 solution)","description":"Quick company verification for Finland. Confirms the company exists in the official registry, validates VAT registration (from registry data or a VAT number you provide), screens against international sanctions lists, and checks LEI status.","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"1.620000"}},"security":[],"responses":{"200":{"description":"Success"},"402":{"description":"Payment required (x402 — pay with USDC on Base)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["business_id"],"properties":{"vat_number":{"type":"string","description":"EU VAT number with country prefix (e.g. ATU14189108). Optional — used for VIES validation when the registry lookup does not return one (e.g. AT, SK); auto-derived from registry data where possible."},"business_id":{"type":"string","description":"Finnish business ID"}}}}}}}}}}