# JoJ API Agent Commerce Top-Up

> JoJ API Agent Commerce Top-Up is a paid API for AI agents from agents.jojapi.net, paid per call via x402, $1/call, status unknown (last checked 2026-09-14).

Credits a JoJ API account balance with USD via x402 or MPP micropayment and optionally opens pay-as-you-go API subscriptions in the same call

## Facts

- Endpoint: POST https://agents.jojapi.net/topup
- Price: $1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/joj-api-agent-commerce-top-up-110ffa3a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_hFOynHYJg45w7fzYAs6Rv

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 joj-api-agent-commerce-top-up-110ffa3a -d '<json body>'
```

Example prompt: Top up my JoJ API account by $5 USD and while you're at it, subscribe me to the 'weather-pro' API so I have a key ready to use.

## When to prefer this

Use this endpoint when an AI agent needs to autonomously fund its own JoJ API marketplace account balance or activate new API subscriptions using x402 or MPP micropayments — particularly useful for self-funding agent workflows where the agent must pay per call without human intervention. Prefer this over manual top-up flows or other payment endpoints when the target APIs are hosted on the JoJ marketplace and x402 payment rails are available.

## Known failure modes

- Payment fails or is rejected by x402/MPP rail — returns non-success status or HTTP 402
- amount_usd missing or zero — validation error
- Specified API slug in subscribe list not found or not available — subscription entry returns error status rather than success
- Insufficient payment authorization for the requested amount
- Account not recognized or auth token invalid

## How this service works

Buy access to marketplace APIs with x402 or MPP payments. https://docs.jojapi.com/consumers/agents

## Output

Returns a success status, the updated account balance in USD, details of the top-up method and amount, the payment rail and reference, and for each API named in the subscribe list: the subscription status, any newly issued API key, and plan details.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "amount_usd"
 ],
 "properties": {
  "subscribe": {
   "type": "array",
   "description": "Optional: pay-as-you-go subscriptions to open with this balance"
  },
  "amount_usd": {
   "type": "number",
   "description": "Amount to credit, in USD"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "account",
  "topup"
 ],
 "properties": {
  "topup": {
   "type": "object",
   "properties": {
    "method": {
     "type": "string"
    },
    "amount_usd": {
     "type": "number"
    }
   }
  },
  "status": {
   "enum": [
    "success"
   ],
   "type": "string"
  },
  "account": {
   "type": "object",
   "properties": {
    "nick": {
     "type": "string"
    },
    "balance_usd": {
     "type": "number",
     "description": "Account-wide balance after the top-up"
    }
   }
  },
  "payment": {
   "type": "object",
   "properties": {
    "rail": {
     "type": "string"
    },
    "method": {
     "type": "string"
    },
    "reference": {
     "type": "string"
    },
    "amount_usd": {
     "type": "number"
    }
   }
  },
  "subscriptions": {
   "type": "array",
   "items": {
    "type": "object",
    "properties": {
     "api": {
      "type": "object",
      "properties": {
       "name": {
        "type": "string"
       },
       "slug": {
        "type": "string"
       }
      }
     },
     "plan": {
      "type": "object",
      "properties": {
       "name": {
        "type": "string"
       },
       "slug": {
        "type": "string"
       },
       "type": {
        "type": "string"
       }
      }
     },
     "status": {
      "type": "string",
      "description": "success, or why the API could not be subscribed"
     },
     "api_key": {
      "type": [
       "string",
       "null"
      ],
      "description": "The key of a subscription opened by this call; null when it already existed"
     },
     "key_hint": {
      "type": [
       "string",
       "null"
      ]
     },
     "subscription": {
      "type": "object",
      "properties": {
       "ref": {
        "type": "string"
       },
       "status": {
        "type": "string"
       },
       "created": {
        "type": "boolean"
       }
      }
     }
    }
   },
   "description": "One entry per API named in subscribe (or the host API)"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/joj-api-agent-commerce-top-up-110ffa3a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.jojapi.net](https://www.zero.xyz/host/agents.jojapi.net/llms.txt)
