# Pokedexter Battle Move Submission

> Pokedexter Battle Move Submission is a paid API for AI agents from x402.dexter.cash, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-15).

Submit a move or action (attack, switch, terastallize) in an active Pokedexter Pokémon battle by battle ID

## Facts

- Endpoint: POST https://x402.dexter.cash/api/pokedexter/battles/:battleId/move
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/pokedexter-battle-move-submission-e78d03b7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_dDnXH506qJhge-NBpXu0a

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 pokedexter-battle-move-submission-e78d03b7 -d '<json body>'
```

Example prompt: In my Pokedexter battle (battle ID: abc123), submit 'move 1 terastallize' as my next action.

## When to prefer this

Use this endpoint when an AI agent or player needs to programmatically submit a turn action during an active Pokedexter battle session. Prefer this over any battle-state read endpoint when the intent is to act (not just observe). Pair with the 'Get current Pokedexter battle state' endpoint to determine valid moves before submitting.

## Known failure modes

- Invalid battleId returns an error or ok: false
- Malformed choice string (e.g. unsupported move syntax) rejected
- Battle already ended or not in move-input phase
- Payment of $0.01 USDC not fulfilled triggers 402 response
- Rate limiting or network timeout on submission

## How this service works

Submit a move in your Pokedexter battle

## Output

Returns a JSON object with 'ok' (boolean success flag), the 'battleId' confirming which battle room was affected, and 'submitted' echoing back the exact choice string that was accepted by the battle engine.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "choice": {
   "type": "string",
   "description": "Your battle action: \"move 1\", \"move 2\", \"switch 3\", \"move 1 terastallize\", etc."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "ok": {
  "type": "boolean"
 },
 "battleId": {
  "type": "string",
  "description": "Battle room ID."
 },
 "submitted": {
  "type": "string",
  "description": "The choice that was submitted."
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/pokedexter-battle-move-submission-e78d03b7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.dexter.cash](https://www.zero.xyz/host/x402.dexter.cash/llms.txt)
