# Google Web Search API (JoJAPI) — Subscription

> Google Web Search API (JoJAPI) — Subscription is a paid API for AI agents from gsearch.jojapi.net, paid per call via x402, $300/call, status unknown (last checked 2026-09-14).

Subscribes to the JoJAPI-hosted Google Web Search API, returning an API key for subsequent web search calls

## Facts

- Endpoint: POST https://gsearch.jojapi.net/_jojapi/agent/subscribe/1uinbzy7dooi05103b32mfts
- Price: $300/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/google-web-search-api-jojapi-subscription-26053f69
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_U4caywKnyIbTlIRcOoGq-

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability google-web-search-api-jojapi-subscription-26053f69 -d '<json body>'
```

Example prompt: Subscribe me to the JoJAPI Google Web Search API so I can start making web search calls — go ahead and pay the $300 USDC fee and give me back the API key.

## When to prefer this

Choose this endpoint when you need to programmatically acquire or renew an API key for Google web search access via the JoJAPI platform using x402 USDC micropayments. It is the correct starting point before making any actual search calls, and supports replacing an old subscription atomically. Prefer this over manual account-portal flows when operating in an agentic or automated context.

## Known failure modes

- Payment failure or insufficient USDC balance — subscription not created
- Invalid 'replace' subscription ref — cancellation fails, new subscription may or may not be created
- Duplicate active subscription — response includes existing subscriptions list for disambiguation
- Network or gateway error from JoJAPI — no subscription created, no charge
- Expired or invalid x402 payment token — 402 response, no key issued

## How this service works

Google Web Search API. Search the world’s information, including webpages, related keywords and more.

## Output

Returns a new API key (send as X-JoJAPI-Key header or Authorization: Bearer), a subscription object with ref, status, period start/end and renewal type, payment confirmation with on-chain transaction hash and amount paid, account nickname and balance, and any other active subscriptions on the same API for this account.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "replace": {
   "type": "string",
   "description": "Optional: ref of one of your own subscriptions on this API to cancel when the new one starts"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "api_key",
  "subscription"
 ],
 "properties": {
  "auth": {
   "type": "object",
   "properties": {
    "header": {
     "type": "string"
    },
    "alternatives": {
     "type": "array",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "status": {
   "enum": [
    "success"
   ],
   "type": "string"
  },
  "account": {
   "type": "object",
   "properties": {
    "nick": {
     "type": "string"
    },
    "balance_usd": {
     "type": "number"
    }
   }
  },
  "api_key": {
   "type": "string",
   "description": "The new API key, bound to this subscription. Send it as the X-JoJAPI-Key header (or Authorization: Bearer)."
  },
  "payment": {
   "type": "object",
   "properties": {
    "rail": {
     "type": "string"
    },
    "method": {
     "type": "string"
    },
    "reference": {
     "type": "string",
     "description": "On-chain transaction hash or rail reference"
    },
    "amount_usd": {
     "type": "number"
    }
   }
  },
  "existing": {
   "type": "array",
   "items": {
    "type": "object"
   },
   "description": "Other subscriptions of this account on the same API"
  },
  "key_hint": {
   "type": "string",
   "description": "Last characters of the key, for lists"
  },
  "subscription": {
   "type": "object",
   "properties": {
    "ref": {
     "type": "string",
     "description": "Subscription reference (use it in /keys/rotate)"
    },
    "plan": {
     "type": "object"
    },
    "status": {
     "type": "string"
    },
    "renewal": {
     "type": "string",
     "description": "prepaid: no automatic charge, a 402 renewal offer comes when the period ends"
    },
    "period_end": {
     "type": "string",
     "format": "date-time"
    },
    "period_start": {
     "type": "string",
     "format": "date-time"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/google-web-search-api-jojapi-subscription-26053f69/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from gsearch.jojapi.net](https://www.zero.xyz/host/gsearch.jojapi.net/llms.txt)
