Install
openclaw skills install manifoldRead and trade on Manifold Markets (search markets, fetch probabilities, inspect users/bets, place bets/sell/comment). Never place a bet/sell/comment without explicit user confirmation.
openclaw skills install manifoldUse this skill to read from Manifold Markets (search markets, fetch probabilities, inspect public user info) and to place trades/comments with explicit confirmation.
Write actions require MANIFOLD_API_KEY (in the environment or configured via OpenClaw skill entries).
Base URL: https://api.manifold.markets/v0
Docs: https://docs.manifold.markets/api
curl -s "https://api.manifold.markets/v0/search-markets?term=AI+safety&limit=5"
Tip: replace spaces with + (or URL-encode). If you have jq, format results:
curl -s "https://api.manifold.markets/v0/search-markets?term=AI+safety&limit=5" | jq '.[] | {id, slug, question, outcomeType, probability, createdTime, creatorUsername}'
curl -s "https://api.manifold.markets/v0/markets?limit=10"
With jq:
curl -s "https://api.manifold.markets/v0/markets?limit=10" | jq '.[] | {id, slug, question, outcomeType, probability, closeTime}'
curl -s "https://api.manifold.markets/v0/market/MARKET_ID"
Binary markets usually expose probability (0..1). Other market types may not have a single probability field.
The slug is the portion of the Manifold URL after the username (e.g. .../Alice/my-market-slug → my-market-slug).
curl -s "https://api.manifold.markets/v0/slug/MARKET_SLUG"
curl -s "https://api.manifold.markets/v0/user/USERNAME"
If you have jq:
USER_ID="$(curl -s "https://api.manifold.markets/v0/user/USERNAME" | jq -r '.id')"
curl -s "https://api.manifold.markets/v0/bets?userId=$USER_ID&limit=50"
Without jq, fetch the user JSON and read the id field, then use it:
curl -s "https://api.manifold.markets/v0/user/USERNAME"
curl -s "https://api.manifold.markets/v0/bets?userId=USER_ID&limit=50"
Authentication
MANIFOLD_API_KEY in header: Authorization: Key $MANIFOLD_API_KEYMANIFOLD_API_KEY (or skills.manifold.apiKey in ~/.openclaw/openclaw.json).curl -s "https://api.manifold.markets/v0/market/MARKET_ID"
cat <<'JSON'
{"amount":10,"contractId":"MARKET_ID","outcome":"YES"}
JSON
curl -s -X POST "https://api.manifold.markets/v0/bet" \
-H "Authorization: Key $MANIFOLD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":10,"contractId":"MARKET_ID","outcome":"YES"}'
Notes:
amount is in Mana (integer).outcome is YES or NO for binary markets.Preview first (do not run until user confirms).
Sell all shares for an outcome (omit shares to sell all):
curl -s -X POST "https://api.manifold.markets/v0/market/MARKET_ID/sell" \
-H "Authorization: Key $MANIFOLD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"outcome":"YES"}'
Sell a specific number of shares:
curl -s -X POST "https://api.manifold.markets/v0/market/MARKET_ID/sell" \
-H "Authorization: Key $MANIFOLD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"outcome":"YES","shares":10}'
Comments made through the API can incur a fee (see Manifold API docs). Always confirm text + target market.
curl -s -X POST "https://api.manifold.markets/v0/comment" \
-H "Authorization: Key $MANIFOLD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contractId":"MARKET_ID","content":"Your comment here."}'