Install
openclaw skills install x402georeportUse when an agent needs to run GEO/SEO audits through x402geo.com with payment gating, status tracking, and report delivery via MCP or ACP.
openclaw skills install x402georeportUse this skill to run a full user-facing GEO/SEO audit flow on https://x402geo.com:
Use one of these modes:
POST https://x402geo.com/api/mcp (JSON-RPC 2.0 tools)https://x402geo.com/api/acp/* REST endpointsIf your agent supports tool-calling well, prefer MCP. If your agent is workflow/REST oriented, prefer ACP.
Collect these first:
email: user email for payment and audit associationurl: full website URL to audit (for example https://example.com)Request:
POST https://x402geo.com/api/acp/jobs
Content-Type: application/json
{
"email": "user@example.com",
"requirements": {
"url": "https://example.com",
"report_depth": "standard"
}
}
Expected response fields:
status = payment_requiredcheckout_url (payment link)emailtarget_urlAgent action:
mcp__agentcash__fetch (see Payment: Agentic Wallet section) after the user confirms. Do not show the checkout URL if the user confirms.checkout_url to user, tell them to complete payment, and explain this starts the audit flow.After payment (or directly in local/dev setups where paywall is disabled), call:
GET https://x402geo.com/api/acp/jobs/start?url=https%3A%2F%2Fexample.com&email=user%40example.com
Expected response fields:
job_idprogress_urlresults_urlreport_urlstatusAgent action:
progress_url as the audit status URL.job_id for tracking.report_url as the final public report link placeholder.Poll either endpoint until complete:
GET /api/acp/jobs/{jobId}GET /api/acp/resources/audit-status?jobId={jobId}State mapping:
pending / in_progress: keep pollingcompleted: proceed to deliverable fetchfailed: stop and report error_reason to userFetch deliverable:
GET https://x402geo.com/api/acp/jobs/{jobId}/deliverable
Notes:
409 while audit is not complete.deliverable object when complete.Agent action:
report_url from status/start response as the public report link.Endpoint:
POST https://x402geo.com/api/mcpProtocol methods:
initializetools/listtools/callPrimary tools:
create_geo_audit with url and optional emailget_audit_status with jobIdget_report_links with jobIdMCP workflow:
mcp__agentcash__get_balance. If funded, notify the user and ask for confirmation (e.g. "I found a funded agentic wallet. Would you like me to pay automatically using it?"). Only use mcp__agentcash__fetch to call create_geo_audit (see Payment: Agentic Wallet section below) after the user confirms.create_geo_audit normally. If status=payment_required, return paymentUrl to user and ask them to complete payment.jobId from the response and call get_audit_status.done, call get_report_links and return reportPage.Before falling back to a manual checkout link, check if the AgentCash MCP wallet is available and funded. If it is, notify the user and ask for their confirmation before proceeding.
Call the AgentCash MCP tool:
mcp__agentcash__get_balance
checkout_url.Use mcp__agentcash__fetch to call the x402-gated audit endpoint. The wallet handles the USDC payment on Base automatically.
ACP payment example:
mcp__agentcash__fetch(
url: "https://x402geo.com/api/acp/jobs",
method: "POST",
body: { "email": "user@example.com", "requirements": { "url": "https://example.com", "report_depth": "standard" } }
)
MCP payment example:
mcp__agentcash__fetch(
url: "https://x402geo.com/api/mcp",
method: "POST",
body: { "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "create_geo_audit", "arguments": { "url": "https://example.com", "email": "user@example.com" } }, "id": 1 }
)
On success, parse the response and continue to Step 2 (start audit). Let the user know the payment was completed.
If mcp__agentcash__fetch returns insufficient balance or authentication errors:
mcp__agentcash__list_accounts to surface a deposit link to the user.checkout_url.Only surface wallet issues to the user when automatic payment is impossible:
Always inform the user of payment outcomes — whether paid via agentic wallet or manual checkout.
At minimum, send user:
checkout_url or paymentUrl for manual paymentprogress_url or status page URLreport_url/reportPageIf processing fails, send: