{"id":499146,"name":"Spending Authority","description":"Proof-of-concept spending authority for buyer agents. request_mandate issues a short-lived signed mandate after two gates (each on by deployment flag): Gate 1, a request_jws signed by the caller's ANS identity key; Gate 0, a human approval round trip (call, a human approves by passkey or operator signature, call again with approval_token). mandate_format=ap2 returns an open AP2 v0.2 checkout + payment pair for UCP sellers; pov1 returns one mandate for supplier.webmesh.ai book_flight. Both are capped per trip. delegate_mandate attenuates an AP2 pair; get_policy returns the caps.","card_url":"https://authority.webmesh.ai/.well-known/agent-card.json","endpoint":"https://authority.webmesh.ai","protocol_version":"1.0","first_seen":"2026-10-28T15:34:59.899896+00:00","last_verified":"2026-10-28T15:34:59.899896+00:00","card":{"url":"https://authority.webmesh.ai","name":"Spending Authority","skills":[{"id":"request_mandate","name":"Issue Mandate","tags":["mandate","authorization","ap2","human-approval","requester-signature"],"examples":["request_mandate mandate_format=ap2 quote_id=<item id> total=420.0 total_minor=42000 currency=EUR merchant_ans=ans://v1.0.7.supplier.webmesh.ai scope_hint=purchase:flight:MAD-SIN:2026-12-15 subject_ans=<your ans name> traveler_dpop_jwk=<P-256 JWK> request_jws=<EdDSA JWS>","request_mandate <same arguments> approval_token=<approval token>","issue AP2 mandate for UCP purchase","AP2 spending authority UCP 2026-08-25"],"inputModes":["application/json"],"description":"MCP tool request_mandate, two rounds. Round 1: send quote_id, total, currency, merchant_ans, scope_hint (purchase:flight:ORIG-DEST:YYYY-MM-DD), subject_ans (your ans:// name), traveler_dpop_jwk (your public JWK as JSON; for ap2 the P-256 key that becomes the mandate cnf), request_jws, and for ap2 also mandate_format=ap2, merchant_id, offer_id, total_minor (= total x 100), issuer_mode. Reply: status=pending_approval, challenge, prompt, approval_method, approve_url, passkey_available, approval_instructions. approval_method passkey: a human completes the passkey assertion at approve_url, and approval_token is then the challenge. approval_method operator_signature: this authority's operator approves the reply and returns approval_token, an EdDSA JWS by the operator approval key over the challenge and the prompt fields. The challenge alone is refused APPROVAL_INVALID; with no approver configured every purchase is refused GATE0_APPROVER_NOT_CONFIGURED. Round 2: identical arguments plus approval_token and a fresh request_jws. A challenge is valid 15 minutes and single-use; the same purchase repeated inside one 5-minute window gets the same challenge and is refused APPROVAL_REPLAYED. request_jws: compact JWS, alg EdDSA, signed by the Ed25519 key for subject_ans published at https://<subject host>/.well-known/jwks.json; payload {subject_ans, args, iat, jti}, args = every bound argument with the value the tool receives, defaults included (subject_ans, quote_id, total, currency, merchant_ans, scope_hint, traveler_dpop_jwk; for ap2 also merchant_id, offer_id, total_minor, and issuer_mode when guest); iat within 300 s; jti single-use. issuer_mode: authority (iss https://authority.webmesh.ai; the seller lists it in mandate_issuers; the only mode supplier.webmesh.ai accepts) or guest (iss = your own origin, ap2 only; the seller offers dev.agenthaven.guest and your /.well-known/ucp publishes this authority's key). ap2 returns open checkout_mandate and payment_mandate (dc+sd-jwt, shared jti, 300 s lifetime), capped at get_policy max_per_trip_by_currency before any approval round (a currency with no cap is refused); close each with your cnf key as the seller's mandate-form schema specifies (supplier.webmesh.ai: https://supplier.webmesh.ai/.well-known/mandate-forms/ap2-v0.2-delegate-chain.json) and send both to the seller's complete call. pov1 returns one Ed25519 mandate, 15 minutes, capped at get_policy max_per_trip. Refusals (error): INVALID_ISSUER_MODE, AMOUNT_MISMATCH, POLICY_VIOLATION, REQUEST_NOT_SIGNED, BAD_SIGNATURE, SUBJECT_MISMATCH, ARGS_MISMATCH, STALE_REQUEST, REPLAYED_REQUEST, IDENTITY_UNVERIFIED, GUEST_MODE_REQUIRES_REQUEST_AUTH, GUEST_ISSUER_UNRESOLVED, GATE0_APPROVER_NOT_CONFIGURED, APPROVAL_INVALID, APPROVAL_REPLAYED, APPROVAL_STORE_UNAVAILABLE, PASSKEY_REQUIRED; pov1 also INSUFFICIENT_FUNDS.","outputModes":["application/json"],"securityRequirements":[{"requesterSignature":{"scope":"purchase:flight:*"}}],"representativeQueries":["I need an AP2 mandate pair to pay a UCP seller for a flight","Approve a EUR 420 purchase at supplier.webmesh.ai for MAD to SIN on 2026-12-15","How do I sign request_jws for a spending mandate?","The human approved; issue the mandate with this approval token"]},{"id":"get_policy","name":"Get Policy","tags":["mandate","policy"],"examples":["What is the spending policy?","issue AP2 mandate for UCP purchase","AP2 spending authority UCP 2026-08-25"],"inputModes":["application/json"],"description":"MCP tool get_policy, no inputs. Returns the static policy {max_per_trip: 1000.0, currency: USD, max_per_trip_by_currency: {USD: 1000.0, EUR: 900.0}, allowed_merchants: [*], categories: [travel]}. request_mandate refuses POLICY_VIOLATION an ap2 pair over its currency's max_per_trip_by_currency, or in a currency with no entry, before any approval round; and a pov1 mandate over max_per_trip, whatever its currency. The caps are fixed figures, not live exchange rates.","outputModes":["application/json"],"securityRequirements":[{"noAuth":[]}],"representativeQueries":["How much can I spend per trip with this authority?","Which merchants are approved under this spending policy?","What currency and categories does this spending authority cover?"]},{"id":"delegate_mandate","name":"Delegate Mandate","tags":["mandate","delegation","attenuation","ap2"],"examples":["Delegate a $50 sub-mandate from my $100 mandate","issue AP2 mandate for UCP purchase","AP2 spending authority UCP 2026-08-25"],"inputModes":["application/json"],"description":"MCP tool delegate_mandate. Issue a delegated AP2 spending mandate attenuated from a parent mandate. Inputs: parent_mandate (the parent checkout mandate) and parent_payment_mandate (the parent payment mandate), both open, signed by this authority and unexpired; buyer_jwk (the child's P-256 cnf key); sub_amount, sub_scope, quote_jti (one of the parent's acceptable offers), optional merchant_id and currency; and delegation_jws, a delegation JWS (header alg ES256, typ ap2-delegation+jwt) signed by the private half of the parent's cnf key (cnf.jwk), with claims parent_jti, sub_amount_minor, currency, merchant_id, buyer_jkt (RFC 7638 thumbprint of buyer_jwk), sub_scope, quote_jti, iat (within 60 s) and a single-use nonce (1-128 chars). Two rounds, like request_mandate: round 1 returns status=pending_approval with challenge and prompt (parent, amount, merchant, the child key thumbprint cnf_jkt); each delegation is approved by the human (passkey or operator signature), then round 2 repeats the call with approval_token and a fresh delegation JWS. The child is capped by the remaining budget of its parent and of every ancestor up to the root (everything minted under one root mandate together stays within the root's amount), and keeps the parent's currency, merchant, offer and expiry. Delegating does not cancel the parent, which stays spendable; that is why each child needs its own approval. Returns checkout_mandate and payment_mandate as open AP2 chains, or a reason_code: DELEGATION_PROOF_REQUIRED, DELEGATION_PROOF_INVALID, DELEGATION_NONCE_REPLAYED, DELEGATION_BUDGET_EXHAUSTED, INVALID_AMOUNT, CURRENCY_MISMATCH, MERCHANT_NOT_ALLOWED, OFFER_NOT_ALLOWED, PARENT_EXPIRED, SCOPE_EXCEEDED_AT_HOP_2, REDELEGATION_EXCEEDS_GRANT or DELEGATION_LEDGER_UNAVAILABLE; or an approval error: APPROVAL_INVALID, APPROVAL_REPLAYED, PASSKEY_REQUIRED, GATE0_APPROVER_NOT_CONFIGURED.","outputModes":["application/json"],"securityRequirements":[{"noAuth":[]}],"representativeQueries":["Create a sub-mandate from my existing spending authorization for a smaller amount","Delegate part of my mandate to the traveler agent for checkout","I have a parent mandate for 600 euros, give the booking agent a 420 euro sub-mandate"]}],"version":"1.0.9","provider":{"did":"did:web:authority.webmesh.ai","url":"https://webmesh.ai","organization":"Webmesh"},"signatures":[{"header":{"kid":"Gg324bNfv38caap-1gkO2uEhjmybOsBepjOQS5sGpFU"},"protected":"eyJhbGciOiJFUzI1NiIsImprdSI6Imh0dHBzOi8vYXV0aG9yaXR5LndlYm1lc2guYWkvLndlbGwta25vd24vYW5zL3RydXN0LWNhcmQuanNvbiIsImtpZCI6IkdnMzI0Yk5mdjM4Y2FhcC0xZ2tPMnVFaGpteWJPc0JlcGpPUVM1c0dwRlUiLCJ0eXAiOiJhZ2VudC1jYXJkK2p3cyJ9","signature":"780KAdY7LEIisld4nVda6YbSmydoA_sSTtsbViC2oZ8zd-ZWlU6tfoQk4KLAfRRYmyoszqR1KIsuOgfB3mXH3w"}],"x-identity":{"ans":{"uri":"ans://v1.0.9.authority.webmesh.ai","trustCard":"https://authority.webmesh.ai/.well-known/ans/trust-card.json","transparencyLog":"https://transparency.ans.godaddy.com/v1/agents/ebc79766-7742-40ea-a397-9864ec3b97b5"},"wimse":{"jwksUri":"https://authority.webmesh.ai/.well-known/jwks.json","spiffeId":"spiffe://webmesh.ai/agents/authority","signingAlgs":["EdDSA"],"supportedProfiles":["urn:ietf:params:wimse:agent-delegation-chain"]}},"description":"Proof-of-concept spending authority for buyer agents. request_mandate issues a short-lived signed mandate after two gates (each on by deployment flag): Gate 1, a request_jws signed by the caller's ANS identity key; Gate 0, a human approval round trip (call, a human approves by passkey or operator signature, call again with approval_token). mandate_format=ap2 returns an open AP2 v0.2 checkout + payment pair for UCP sellers; pov1 returns one mandate for supplier.webmesh.ai book_flight. Both are capped per trip. delegate_mandate attenuates an AP2 pair; get_policy returns the caps.","x-discovery":{"ans_name":"ans://v1.0.9.authority.webmesh.ai","tl_badge":"https://transparency.ans.godaddy.com/v1/agents/ebc79766-7742-40ea-a397-9864ec3b97b5","trust_index":{"auth":"sso-key","score_url":"https://api.godaddy.com/v1/ans/registered-agents?query=authority.webmesh.ai","score_field":"scores.trustScore"},"dns_aid_svcb":"authority.webmesh.ai IN SVCB 1 . alpn=a2a,h2","ans_registered":"prod"},"capabilities":{"streaming":false,"extensions":[{"uri":"https://modelcontextprotocol.io","params":{"endpoint":"https://authority.webmesh.ai/mcp","transport":"streamable-http","discoveryUrl":"https://authority.webmesh.ai/.well-known/mcp.json","protocolVersion":"2025-03-26"},"required":false,"description":"MCP server exposing request_mandate, delegate_mandate and get_policy over streamable-HTTP."},{"uri":"https://webmesh.ai/ext/ans-trust-stack/v1","params":{"ard":"https://authority.webmesh.ai/.well-known/ard.json","trustCard":"https://authority.webmesh.ai/.well-known/ans/trust-card.json","agentFacts":"https://authority.webmesh.ai/agentfacts.json","identityAnchors":["ans-x509","did:web","dns-aid","dnssec","dane-tlsa","dnsid"],"outboundSigning":"web-bot-auth","httpMessageSignaturesDirectory":"https://authority.webmesh.ai/.well-known/http-message-signatures-directory"},"required":false,"description":"Identity and interoperability stack: ANS Trust Card (x5c chain + stapled SCITT receipt), DNS-AID SVCB with DNSSEC and DANE TLSA, DNSid organizational accountability, ARD / AI-Catalog discovery, and Web Bot Auth (RFC 9421 HTTP Message Signatures) outbound request signing."},{"uri":"urn:webmesh:ucp:2026-08-25","params":{"role":"issuer","profile":"https://authority.webmesh.ai/.well-known/ucp","version":"2026-08-25","ansRegistrationRequired":true},"required":false,"description":"UCP 2026-08-25 AP2 mandate issuer. The profile publishes the P-256 key that signs mandate roots (ES256, lifetime 300 s). Obtain a mandate pair with the MCP tool request_mandate, mandate_format=ap2: a signed request, a human approval (passkey or operator signature), and a per-currency cap (get_policy)."}],"extendedAgentCard":false,"pushNotifications":false},"protocolVersion":"1.0","securitySchemes":{"noAuth":{"type":"noAuth","description":"This agent is publicly accessible with no authentication required. All skills are available to any caller."},"ansIdentityCert":{"type":"mutualTLS","description":"ANS Identity Certificate issued by the ANS Registration Authority. The agent presents this cert during the TLS handshake; clients verify against the chain advertised in the Trust Card's keys[].x5c. See https://authority.webmesh.ai/.well-known/ans/trust-card.json"},"requesterSignature":{"in":"toolArgument","alg":"EdDSA","name":"request_jws","type":"requesterJws","format":"compact-jws","boundArgs":["subject_ans","quote_id","total","currency","merchant_ans","scope_hint","traveler_dpop_jwk","merchant_id","offer_id","total_minor","issuer_mode"],"denialCodes":["REQUEST_NOT_SIGNED","BAD_SIGNATURE","STALE_REQUEST","REPLAYED_REQUEST","SUBJECT_MISMATCH","ARGS_MISMATCH","IDENTITY_UNVERIFIED"],"description":"request_mandate argument request_jws: a compact JWS, header alg EdDSA (optional kid), signed with the Ed25519 key that https://<host of subject_ans>/.well-known/jwks.json publishes. Payload: {subject_ans, args, iat, jti}. args carries each boundArgs member the call carries, with the value the tool receives (defaults included); pov1 calls bind the first seven, ap2 calls also merchant_id, offer_id, total_minor, and issuer_mode when it is guest. iat within 300 s of server time and not in the future; jti single-use for 600 s. Denial codes: REQUEST_NOT_SIGNED, BAD_SIGNATURE, STALE_REQUEST, REPLAYED_REQUEST, SUBJECT_MISMATCH, ARGS_MISMATCH, IDENTITY_UNVERIFIED.","freshnessSecs":300,"jwksDiscovery":"caller-ans-jwks","replayProtection":"jti-dedup"},"httpMessageSignatures":{"type":"http","scheme":"signature","description":"RFC 9421 HTTP Message Signatures over response components, using the Ed25519 key advertised in the Trust Card. Public key directory at https://authority.webmesh.ai/.well-known/http-message-signatures-directory"}},"x-security-note":"request_mandate checks requester identity when the deployment enables it (Gate 1): callers include request_jws, an EdDSA JWS signed with the ANS identity key their host publishes at /.well-known/jwks.json, binding the mandate arguments (see securitySchemes.requesterSignature). Gate 0 then requires a human approval round trip: a passkey assertion at approve_url when a passkey is registered, otherwise an approval token signed by the operator's Ed25519 approval key. The challenge alone is refused, and with neither approver configured no purchase mandate is issued. delegate_mandate needs a delegation_jws signed with the parent mandate's cnf key and the same Gate 0 human approval round trip. get_policy is unauthenticated (noAuth).","documentationUrl":"https://agent.webmesh.ai","defaultInputModes":["text/plain","application/json"],"defaultOutputModes":["application/json","text/plain"],"supportedInterfaces":[{"url":"https://authority.webmesh.ai","protocolBinding":"jsonrpc","protocolVersion":"1.0"}],"securityRequirements":[{"noAuth":[]}]},"status":"verified","publisher_domain":"webmesh.ai","signature_status":"unverifiable","signature_detail":"Key source must be a public HTTPS well-known JSON URL","signature_key_url":null,"signature_checked_at":"2026-10-28T15:34:59.899896+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Publisher Agent Card","source_url":"https://authority.webmesh.ai/.well-known/agent-card.json","last_check":{"checked_at":"2026-10-28T15:34:59.899896+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[],"history_urls":["https://authority.webmesh.ai/.well-known/agent-card.json"],"skills":[{"skill_id":"delegate_mandate","name":"Delegate Mandate","description":"MCP tool delegate_mandate. Issue a delegated AP2 spending mandate attenuated from a parent mandate. Inputs: parent_mandate (the parent checkout mandate) and parent_payment_mandate (the parent payment mandate), both open, signed by this authority and unexpired; buyer_jwk (the child's P-256 cnf key); sub_amount, sub_scope, quote_jti (one of the parent's acceptable offers), optional merchant_id and currency; and delegation_jws, a delegation JWS (header alg ES256, typ ap2-delegation+jwt) signed by the private half of the parent's cnf key (cnf.jwk), with claims parent_jti, sub_amount_minor, currency, merchant_id, buyer_jkt (RFC 7638 thumbprint of buyer_jwk), sub_scope, quote_jti, iat (within 60 s) and a single-use nonce (1-128 chars). Two rounds, like request_mandate: round 1 returns status=pending_approval with challenge and prompt (parent, amount, merchant, the child key thumbprint cnf_jkt); each delegation is approved by the human (passkey or operator signature), then round 2 repeats the call with approval_token and a fresh delegation JWS. The child is capped by the remaining budget of its parent and of every ancestor up to the root (everything minted under one root mandate together stays within the root's amount), and keeps the parent's currency, merchant, offer and expiry. Delegating does not cancel the parent, which stays spendable; that is why each child needs its own approval. Returns checkout_mandate and payment_mandate as open AP2 chains, or a reason_code: DELEGATION_PROOF_REQUIRED, DELEGATION_PROOF_INVALID, DELEGATION_NONCE_REPLAYED, DELEGATION_BUDGET_EXHAUSTED, INVALID_AMOUNT, CURRENCY_MISMATCH, MERCHANT_NOT_ALLOWED, OFFER_NOT_ALLOWED, PARENT_EXPIRED, SCOPE_EXCEEDED_AT_HOP_2, REDELEGATION_EXCEEDS_GRANT or DELEGATION_LEDGER_UNAVAILABLE; or an approval error: APPROVAL_INVALID, APPROVAL_REPLAYED, PASSKEY_REQUIRED, GATE0_APPROVER_NOT_CONFIGURED.","tags":["mandate","delegation","attenuation","ap2"],"quality_warning":false},{"skill_id":"get_policy","name":"Get Policy","description":"MCP tool get_policy, no inputs. Returns the static policy {max_per_trip: 1000.0, currency: USD, max_per_trip_by_currency: {USD: 1000.0, EUR: 900.0}, allowed_merchants: [*], categories: [travel]}. request_mandate refuses POLICY_VIOLATION an ap2 pair over its currency's max_per_trip_by_currency, or in a currency with no entry, before any approval round; and a pov1 mandate over max_per_trip, whatever its currency. The caps are fixed figures, not live exchange rates.","tags":["mandate","policy"],"quality_warning":false},{"skill_id":"request_mandate","name":"Issue Mandate","description":"MCP tool request_mandate, two rounds. Round 1: send quote_id, total, currency, merchant_ans, scope_hint (purchase:flight:ORIG-DEST:YYYY-MM-DD), subject_ans (your ans:// name), traveler_dpop_jwk (your public JWK as JSON; for ap2 the P-256 key that becomes the mandate cnf), request_jws, and for ap2 also mandate_format=ap2, merchant_id, offer_id, total_minor (= total x 100), issuer_mode. Reply: status=pending_approval, challenge, prompt, approval_method, approve_url, passkey_available, approval_instructions. approval_method passkey: a human completes the passkey assertion at approve_url, and approval_token is then the challenge. approval_method operator_signature: this authority's operator approves the reply and returns approval_token, an EdDSA JWS by the operator approval key over the challenge and the prompt fields. The challenge alone is refused APPROVAL_INVALID; with no approver configured every purchase is refused GATE0_APPROVER_NOT_CONFIGURED. Round 2: identical arguments plus approval_token and a fresh request_jws. A challenge is valid 15 minutes and single-use; the same purchase repeated inside one 5-minute window gets the same challenge and is refused APPROVAL_REPLAYED. request_jws: compact JWS, alg EdDSA, signed by the Ed25519 key for subject_ans published at https://<subject host>/.well-known/jwks.json; payload {subject_ans, args, iat, jti}, args = every bound argument with the value the tool receives, defaults included (subject_ans, quote_id, total, currency, merchant_ans, scope_hint, traveler_dpop_jwk; for ap2 also merchant_id, offer_id, total_minor, and issuer_mode when guest); iat within 300 s; jti single-use. issuer_mode: authority (iss https://authority.webmesh.ai; the seller lists it in mandate_issuers; the only mode supplier.webmesh.ai accepts) or guest (iss = your own origin, ap2 only; the seller offers dev.agenthaven.guest and your /.well-known/ucp publishes this authority's key). ap2 returns open checkout_mandate and payment_mandate (dc+sd-jwt, sh","tags":["mandate","authorization","ap2","human-approval","requester-signature"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":1,"passed":1},"recent_checks":[{"card_url":"https://authority.webmesh.ai/.well-known/agent-card.json","checked_at":"2026-10-28T15:34:59.899896+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-28T15:34:59.899896+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-28T15:34:59.899896+00:00","endpoint":"https://authority.webmesh.ai","protocol_binding":"JSONRPC","protocol_version":"1.0","state":"a2a_response","http_status":200,"detail":"A2A task-not-found response to a read-only task lookup","request_diagnostics":{"requests":[{"path":"/","allow":[],"method":"POST","status":200,"version_header":"1.0","protocol_method":"GetTask","redirect_followed":false}],"capture_version":1}},"declared_primary_endpoint":"https://authority.webmesh.ai","selected_connection_interface":{"url":"https://authority.webmesh.ai","protocolBinding":"JSONRPC","protocolVersion":"1.0"},"protocol_interface_checks":[{"endpoint":"https://authority.webmesh.ai","protocol_binding":"JSONRPC","protocol_version":"1.0","selected":true,"state":"a2a_response","checked_at":"2026-10-28T15:34:59.899896+00:00","http_status":200,"detail":"A2A task-not-found response to a read-only task lookup","binding_recorded":true}],"connection_selection_note":"The selected connection uses an address advertised in the publisher card. Read-only observations do not establish task quality or safety.","x402_price_check":null,"events":[],"relationships":[],"verification":{"agent_card_url":"https://authority.webmesh.ai/.well-known/agent-card.json","last_successful_card_check":"2026-10-28T15:34:59.899896+00:00","latest_card_check":{"checked_at":"2026-10-28T15:34:59.899896+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unverifiable","signature_checked_at":"2026-10-28T15:34:59.899896+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-28T15:34:59.899896+00:00","endpoint_tls_reachable":true,"protocol_check_state":"a2a_response","protocol_checked_at":"2026-10-28T15:34:59.899896+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null},"synthetic_capability_tests":{"agent_id":499146,"status":"not_tested","reason_code":"not_yet_tested","consent_status":"not_confirmed","latest_observation_status":null,"last_checked_at":null,"fixture_version":"1","reference_demonstration":false,"scope":"A publisher-authorized synthetic test of a dedicated free test endpoint. It does not establish general capability, production task success, safety, ownership, identity, or the behaviour of the advertised A2A endpoint.","methodology_url":"https://localmark.ai/capability-tests","history":[]},"repair_links":{"agent_repair_url":"https://localmark.ai/agents/499146/repair","publisher_report_url":"https://localmark.ai/publishers/webmesh.ai/repair","diagnostics_json_url":"https://localmark.ai/publishers/webmesh.ai/repair/diagnostics.json","diagnostics_csv_url":"https://localmark.ai/publishers/webmesh.ai/repair/diagnostics.csv"},"_localmark":{"contribution":{"optional":true,"directory_access":"free","operator_authorization_required":true,"affects_rankings":false,"message":"LocalMark is free. Optional contributions help fund ongoing checks.","support_url":"https://localmark.ai/support","metadata_url":"https://localmark.ai/api/v1/support/contributions"}}}