Pokemon API

Professor Sausages

SearchLiveeip155:8453Exactvia cdp
PokemonGamingGame-dataSpeciesReference
Settlements · 30d
118↑ 538%
No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days.
$4.32
Verified settled volume
328 settlements proven x402 by their on-chain EIP-3009 marker.
$0.010
Listed price
As published in the catalog. Always read the live 402 before paying.
1
Calls · 30d
Upstream's own call count for this endpoint, not ours.
1
Unique payers · 30d
Last called 2026-07-20 23:44Z
Upstream on-chain volume
Reported by the source catalog.
Paid to
0x54ebFCF3870439B9db62381848c5DabC05c70d5B

The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.

Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Provider

The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.

Live 402 challenge

Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.

{
  "error": "payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x54ebFCF3870439B9db62381848c5DabC05c70d5B",
      "amount": "10000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 60
    }
  ],
  "resource": {
    "url": "https://x402.professorsausages.com/pokemon/species",
    "tags": [
      "pokemon",
      "gaming",
      "game-data",
      "species",
      "reference"
    ],
    "mimeType": "application/json",
    "description": "List & search Pokemon species by name, type or Pokedex range — paginated structured JSON reference for game agents",
    "serviceName": "Pokemon API"
  },
  "extensions": {
    "help": {
      "docs": "https://x402.professorsausages.com/pokemon",
      "sample": "https://x402.professorsausages.com/pokemon/sample",
      "example": "https://x402.professorsausages.com/pokemon/species",
      "openapi": "https://x402.professorsausages.com/pokemon/openapi.json"
    },
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "queryParams": {
            "q": "Free-text search over name and genus.",
            "game": "Filter by an individual game slug from /pokemon/games.",
            "type": "Filter by type membership, in any generation the species appeared in.",
            "limit": "How many items to return.",
            "fields": "Row projection: compact summary, or the complete species record.",
            "offset": "How many items to skip."
          }
        },
        "output": {
          "type": "object",
          "required": [
            "items",
            "total",
            "limit",
            "offset",
            "fields",
            "corpus"
          ],
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "required": [
                      "id",
                      "nationalDexNumber",
                      "name",
                      "genus",
                      "generationIntroduced",
                      "types",
                      "isLegendary",
                      "isMythical"
                    ],
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "name": {
                        "type": "string"
                      },
                      "genus": {
                        "type": "string"
                      },
                      "types": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Typing as of the latest generation held for this species."
                      },
                      "isMythical": {
                        "type": "boolean"
                      },
                      "isLegendary": {
                        "type": "boolean"
                      },
                      "nationalDexNumber": {
                        "type": "integer"
                      },
                      "generationIntroduced": {
                        "type": "integer"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "id",
                      "nationalDexNumber",
                      "name",
                      "genus",
                      "generationIntroduced",
                      "generations",
                      "originGames",
                      "games",
                      "byGeneration",
                      "height",
                      "weight",
                      "baseExperience",
                      "evYield",
                      "eggGroups",
                      "eggCycles",
                      "baseFriendship",
                      "genderRate",
                      "genderFemalePercent",
                      "catchRate",
                      "growthRate",
                      "isLegendary",
                      "isMythical",
                      "flavorText",
                      "evolution"
                    ],
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "name": {
                        "type": "string"
                      },
                      "games": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "genus": {
                        "type": "string"
                      },
                      "height": {
                        "type": "integer",
                        "description": "Height in decimetres (PokeAPI raw); divide by 10 for metres."
                      },
                      "weight": {
                        "type": "integer",
                        "description": "Weight in hectograms (PokeAPI raw); divide by 10 for kilograms."
                      },
                      "evYield": {
                        "type": "object",
                        "description": "Effort values granted on defeat, e.g. { specialAttack: 1 }.",
                        "additionalProperties": {
                          "type": "integer"
                        }
                      },
                      "catchRate": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "capture_rate, 0-255."
                      },
                      "eggCycles": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Hatch counter; approx steps to hatch = (cycles+1)*255."
                      },
                      "eggGroups": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Breeding groups, as PokeAPI slugs rather than the in-game names — several of which read like something else. ground is the Field group (NOT the Ground type), plant is Grass, humanshape is Human-Like, indeterminate is Amorphous, water1/water2/water3 are Water 1/2/3, and no-eggs is No Eggs Discovered, which means the species cannot breed at all."
                      },
                      "evolution": {
                        "type": "object",
                        "required": [
                          "chainId",
                          "stage",
                          "evolvesFrom",
                          "evolvesFromInDataset",
                          "evolvesTo"
                        ],
                        "properties": {
                          "stage": {
                            "type": "integer",
                            "description": "Stage in the full national chain; a pre-evolution may be outside this dataset."
                          },
                          "chainId": {
                            "type": "integer"
                          },
                          "evolvesTo": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "name",
                                "trigger",
                                "minLevel",
                                "item",
                                "conditions",
                                "inDataset"
                              ],
                              "properties": {
                                "item": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "name": {
                                  "type": "string"
                                },
                                "trigger": {
                                  "type": "string"
                                },
                                "minLevel": {
                                  "type": [
                                    "integer",
                                    "null"
                                  ]
                                },
                                "inDataset": {
                                  "type": "boolean",
                                  "description": "Whether this evolution target is resolvable via this API (within the 151 species)."
                                },
                                "conditions": {
                                  "type": [
                                    "object",
                                    "null"
                                  ],
                                  "properties": {
                                    "other": {
                                      "type": "string"
                                    },
                                    "heldItem": {
                                      "type": "string"
                                    },
                                    "location": {
                                      "type": "string"
                                    },
                                    "knownMove": {
                                      "type": "string"
                                    },
                                    "timeOfDay": {
                                      "type": "string"
                                    },
                                    "minHappiness": {
                                      "type": "integer"
                                    },
                                    "knownMoveType": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "evolvesFrom": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "evolvesFromInDataset": {
                            "type": [
                              "boolean",
                              "null"
                            ],
                            "description": "null if no pre-evo; else whether it's resolvable via this API."
                          }
                        }
                      },
                      "flavorText": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "text",
                            "games"
                          ],
                          "properties": {
                            "text": {
                              "type": "string"
                            },
                            "games": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "description": "Distinct Pokedex texts, deduped: games sharing identical text are grouped. `games` is canonical (a generation can have multiple texts); map game->generation via /pokemon/games."
                      },
                      "genderRate": {
                        "type": "integer",
                        "description": "PokeAPI gender_rate: -1 = genderless, else female chance in eighths."
                      },
                      "growthRate": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "isMythical": {
                        "type": "boolean"
                      },
                      "generations": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        }
                      },
                      "isLegendary": {
                        "type": "boolean"
                      },
                      "originGames": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Individual debut games, e.g. [\"red\",\"blue\"]."
                      },
                      "byGeneration": {
                        "type": "object",
                        "description": "Per-generation combat data keyed by generation id. Captures types, baseStats, and abilities as they were in each generation (e.g. clefairy normal->fairy in Gen 6; pikachu Def 30->40 in Gen 6; abilities none until Gen 3, hidden from Gen 5).",
                        "additionalProperties": {
                          "type": "object",
                          "required": [
                            "types",
                            "baseStats",
                            "abilities"
                          ],
                          "properties": {
                            "types": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "abilities": {
                              "type": "object",
                              "required": [
                                "regular",
                                "hidden"
                              ],
                              "properties": {
                                "hidden": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "regular": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              }
                            },
                            "baseStats": {
                              "type": "object",
                              "required": [
                                "hp",
                                "attack",
                                "defense",
                                "special",
                                "specialAttack",
                                "specialDefense",
                                "speed",
                                "total"
                              ],
                              "properties": {
                                "hp": {
                                  "type": "integer"
                                },
                                "speed": {
                                  "type": "integer"
                                },
                                "total": {
                                  "type": "integer",
                                  "description": "Base stat total (BST) for that generation."
                                },
                                "attack": {
                                  "type": "integer"
                                },
                                "defense": {
                                  "type": "integer"
                                },
                                "special": {
                                  "type": [
                                    "integer",
                                    "null"
                                  ],
                                  "description": "Single Special stat (Gen 1). null from Gen 2 on."
                                },
                                "specialAttack": {
                                  "type": [
                                    "integer",
                                    "null"
                                  ],
                                  "description": "null in Gen 1 (the Special split came in Gen 2)."
                                },
                                "specialDefense": {
                                  "type": [
                                    "integer",
                                    "null"
                                  ],
                                  "description": "null in Gen 1."
                                }
                              }
                            }
                          }
                        }
                      },
                      "baseExperience": {
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "baseFriendship": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Base happiness/friendship."
                      },
                      "nationalDexNumber": {
                        "type": "integer"
                      },
                      "genderFemalePercent": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "Exact derived female % (e.g. 12.5); null when genderless."
                      },
                      "generationIntroduced": {
                        "type": "integer"
                      }
                    }
                  }
                ]
              },
              "description": "Compact rows by default; the complete species record when fields=full."
            },
            "limit": {
              "type": "integer"
            },
            "total": {
              "type": "integer",
              "description": "Matches before limit/offset."
            },
            "corpus": {
              "type": "object",
              "required": [
                "speciesHeld",
                "dexRange",
                "speciesInFranchise"
              ],
              "properties": {
                "dexRange": {
                  "type": "string",
                  "description": "The contiguous National Pokedex range held."
                },
                "speciesHeld": {
                  "type": "integer",
                  "description": "Species records this API serves."
                },
                "speciesInFranchise": {
                  "type": "integer",
                  "description": "Species the franchise has, summed from the generation rows."
                }
              },
              "description": "How much of the franchise the species data covers. The reference routes (moves, types, games, generations, TMs) are complete; the species data is not, and this block is where that limit is stated in the payload."
            },
            "fields": {
              "enum": [
                "summary",
                "full"
              ],
              "type": "string",
              "description": "Which projection these rows use."
            },
            "offset": {
              "type": "integer"
            }
          }
        }
      },
      "schema": {
        "type": "object",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object"
          },
          "output": {
            "type": "object"
          }
        }
      },
      "category": "gaming",
      "routeTemplate": "https://x402.professorsausages.com/pokemon/species"
    },
    "sample": {
      "url": "https://x402.professorsausages.com/pokemon/sample",
      "hint": "A real cached response from this API (with its capture timestamp), free — judge the data quality before paying."
    },
    "catalog": {
      "message": "This endpoint is 1 of 35 pay-per-call APIs for agents — all same x402 payment + auth. Browse the full menu free (no payment) at the catalog URL; every API serves a free real sample record at /<api>/sample.",
      "strategy": "minimal",
      "catalogUrl": "https://x402.professorsausages.com/?ref=402&v=minimal&from=pokemon"
    },
    "suggest": {
      "url": "https://x402.professorsausages.com/suggest",
      "hint": "Missing data you'd pay for? POST {want, would_pay_usd} — free. The most-requested datasets get built first."
    },
    "discount": {
      "off": "50%",
      "hint": "Send X-Intent: <40+ chars describing what you're building and what data you need> for 50% off this call.",
      "header": "X-Intent"
    }
  },
  "x402Version": 2
}

Accepts

The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.

0.01USDC≈ $0.01 USD
on Base · exact scheme

Pay 0.01 USDC on Base to 0x54eb…70d5B. The signed payment is good for 1 minute.

USD Coin contract
0x8335…02913
Payment window
1 minute
As published
10000 smallest units
The catalog’s raw entry
[
  {
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "payTo": "0x54ebFCF3870439B9db62381848c5DabC05c70d5B",
    "amount": "10000",
    "scheme": "exact",
    "network": "eip155:8453",
    "maxTimeoutSeconds": 60
  }
]

Extensions

{
  "bazaar": {
    "info": {
      "input": {
        "type": "http",
        "method": "GET",
        "queryParams": {
          "q": "Free-text search on name + genus",
          "game": "Filter by version group in games",
          "type": "Filter by type membership",
          "limit": "Max items (default 20)",
          "offset": "Items to skip (default 0)"
        }
      },
      "output": {
        "type": "object",
        "required": [
          "items",
          "total",
          "limit",
          "offset"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "nationalDexNumber",
                "name",
                "genus",
                "generationIntroduced",
                "generations",
                "originGames",
                "games",
                "byGeneration",
                "height",
                "weight",
                "baseExperience",
                "evYield",
                "eggGroups",
                "eggCycles",
                "baseFriendship",
                "genderRate",
                "genderFemalePercent",
                "catchRate",
                "growthRate",
                "isLegendary",
                "isMythical",
                "flavorText",
                "evolution"
              ],
              "properties": {
                "id": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "games": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "genus": {
                  "type": "string"
                },
                "height": {
                  "type": "integer",
                  "description": "Height in decimetres (PokeAPI raw); divide by 10 for metres."
                },
                "weight": {
                  "type": "integer",
                  "description": "Weight in hectograms (PokeAPI raw); divide by 10 for kilograms."
                },
                "evYield": {
                  "type": "object",
                  "description": "Effort values granted on defeat, e.g. { specialAttack: 1 }.",
                  "additionalProperties": {
                    "type": "integer"
                  }
                },
                "catchRate": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "capture_rate, 0-255."
                },
                "eggCycles": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Hatch counter; approx steps to hatch = (cycles+1)*255."
                },
                "eggGroups": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "evolution": {
                  "type": "object",
                  "required": [
                    "chainId",
                    "stage",
                    "evolvesFrom",
                    "evolvesFromInDataset",
                    "evolvesTo"
                  ],
                  "properties": {
                    "stage": {
                      "type": "integer",
                      "description": "Stage in the full national chain; a pre-evolution may be outside this dataset."
                    },
                    "chainId": {
                      "type": "integer"
                    },
                    "evolvesTo": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "name",
                          "trigger",
                          "minLevel",
                          "item",
                          "conditions",
                          "inDataset"
                        ],
                        "properties": {
                          "item": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "trigger": {
                            "type": "string"
                          },
                          "minLevel": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "inDataset": {
                            "type": "boolean",
                            "description": "Whether this evolution target is resolvable via this API (within the 151 species)."
                          },
                          "conditions": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "properties": {
                              "other": {
                                "type": "string"
                              },
                              "heldItem": {
                                "type": "string"
                              },
                              "location": {
                                "type": "string"
                              },
                              "knownMove": {
                                "type": "string"
                              },
                              "timeOfDay": {
                                "type": "string"
                              },
                              "minHappiness": {
                                "type": "integer"
                              },
                              "knownMoveType": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    },
                    "evolvesFrom": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "evolvesFromInDataset": {
                      "type": [
                        "boolean",
                        "null"
                      ],
                      "description": "null if no pre-evo; else whether it's resolvable via this API."
                    }
                  }
                },
                "flavorText": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "text",
                      "games"
                    ],
                    "properties": {
                      "text": {
                        "type": "string"
                      },
                      "games": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "description": "Distinct Pokedex texts, deduped: games sharing identical text are grouped. `games` is canonical (a generation can have multiple texts); map game->generation via /pokemon/games."
                },
                "genderRate": {
                  "type": "integer",
                  "description": "PokeAPI gender_rate: -1 = genderless, else female chance in eighths."
                },
                "growthRate": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "isMythical": {
                  "type": "boolean"
                },
                "generations": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "isLegendary": {
                  "type": "boolean"
                },
                "originGames": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Individual debut games, e.g. [\"red\",\"blue\"]."
                },
                "byGeneration": {
                  "type": "object",
                  "description": "Per-generation combat data keyed by generation id. Captures types, baseStats, and abilities as they were in each generation (e.g. clefairy normal->fairy in Gen 6; pikachu Def 30->40 in Gen 6; abilities none until Gen 3, hidden from Gen 5).",
                  "additionalProperties": {
                    "type": "object",
                    "required": [
                      "types",
                      "baseStats",
                      "abilities"
                    ],
                    "properties": {
                      "types": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "abilities": {
                        "type": "object",
                        "required": [
                          "regular",
                          "hidden"
                        ],
                        "properties": {
                          "hidden": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "regular": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "baseStats": {
                        "type": "object",
                        "required": [
                          "hp",
                          "attack",
                          "defense",
                          "special",
                          "specialAttack",
                          "specialDefense",
                          "speed",
                          "total"
                        ],
                        "properties": {
                          "hp": {
                            "type": "integer"
                          },
                          "speed": {
                            "type": "integer"
                          },
                          "total": {
                            "type": "integer",
                            "description": "Base stat total (BST) for that generation."
                          },
                          "attack": {
                            "type": "integer"
                          },
                          "defense": {
                            "type": "integer"
                          },
                          "special": {
                            "type": [
                              "integer",
                              "null"
                            ],
                            "description": "Single Special stat (Gen 1). null from Gen 2 on."
                          },
                          "specialAttack": {
                            "type": [
                              "integer",
                              "null"
                            ],
                            "description": "null in Gen 1 (the Special split came in Gen 2)."
                          },
                          "specialDefense": {
                            "type": [
                              "integer",
                              "null"
                            ],
                            "description": "null in Gen 1."
                          }
                        }
                      }
                    }
                  }
                },
                "baseExperience": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "baseFriendship": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Base happiness/friendship."
                },
                "nationalDexNumber": {
                  "type": "integer"
                },
                "genderFemalePercent": {
                  "type": [
                    "number",
                    "null"
                  ],
                  "description": "Exact derived female % (e.g. 12.5); null when genderless."
                },
                "generationIntroduced": {
                  "type": "integer"
                }
              }
            }
          },
          "limit": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "offset": {
            "type": "integer"
          }
        }
      }
    },
    "schema": {
      "type": "object",
      "required": [
        "input"
      ],
      "properties": {
        "input": {
          "type": "object"
        },
        "output": {
          "type": "object"
        }
      }
    },
    "category": "gaming",
    "routeTemplate": "https://x402.professorsausages.com/pokemon/species"
  },
  "sample": {
    "url": "https://x402.professorsausages.com/pokemon/sample",
    "hint": "A real cached response from this API (with its capture timestamp), free — judge the data quality before paying."
  },
  "catalog": {
    "message": "This endpoint is 1 of 22 pay-per-call APIs for agents — all same x402 payment + auth. Browse the full menu free (no payment) at the catalog URL; every API serves a free real sample record at /<api>/sample.",
    "strategy": "minimal",
    "catalogUrl": "https://x402.professorsausages.com/?ref=402&v=minimal&from=pokemon"
  },
  "suggest": {
    "url": "https://x402.professorsausages.com/suggest",
    "hint": "Missing data you'd pay for? POST {want, would_pay_usd} — free. The most-requested datasets get built first."
  },
  "discount": {
    "off": "50%",
    "hint": "Send X-Intent: <40+ chars describing what you're building and what data you need> for 50% off this call.",
    "header": "X-Intent"
  }
}

Provenance

Seen in the source catalog
2026-07-20 23:44Z
Last indexed by Roundhouse
2026-08-08 05:20Z
Last enriched (probe, favicon, geo)
2026-09-10 19:45Z
x402 version
2
Max timeout
60s
Liveness probe
HTTP 402
Report

Hand this page to an agent

Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.

GET api.roundhouseai.io/v0/endpoints

No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days. Verified volume counts only settlements with an on-chain EIP-3009 marker.

Open skill.md
Show the prompt
Using Roundhouse, look up the x402 service Pokemon API and tell me whether it is
worth paying: what a call costs, whether the endpoint answered when last probed, and what
its payment record actually shows.

curl -s 'https://api.roundhouseai.io/v0/endpoints?q=Pokemon%20API'
curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>'

Then call it: read the price from the live 402 at https://x402.professorsausages.com/pokemon/species, never from
a cached figure, and pay with an x402 client.

The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except
/v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402,
or use an organization key from https://roundhouseai.io/dashboard/team.

If you do not have Roundhouse tools or skills installed, read
https://roundhouseai.io/skill.md first — it is the whole procedure.