O que polymarket-api faz?
Guia de integração profunda para a API CLOB da Polymarket, API Gamma e dados on-chain. Use ao construir funcionalidades de trading, buscar dados de mercado ou implementar execução de ordens.
Visão Geral
Este skill cobre a integração com as três principais camadas de dados da Polymarket:
- API CLOB: Para negociação baseada em livro de ordens (ordens limitadas, cancelamentos, etc.).
- API Gamma: Para consulta de mercados, resolução de eventos e dados históricos.
- Dados On-chain: Para interação direta com contratos inteligentes na Polygon (e.g., leitura de saldos, verificação de resoluções).
Pré-requisitos
- Chave de API para a API CLOB (obtida via Polymarket Developer Portal).
- Acesso a um nó RPC da Polygon (Mainnet ou Mumbai para testes).
- Conhecimento básico de REST APIs e Web3 (opcional, para dados on-chain).
Autenticação
Todas as requisições para a API CLOB requerem um cabeçalho Authorization: Bearer <seu-token>.
curl -H "Authorization: Bearer SEU_TOKEN_API" https://clob.polymarket.com/books
Endpoints Principais
API CLOB
| Método | Endpoint | Descrição |
|---|---|---|
GET | /books | Obter livro de ordens para um mercado específico |
POST | /order | Criar uma ordem limitada |
DELETE | /order | Cancelar uma ordem |
GET | /orders | Listar ordens do usuário |
API Gamma
| Método | Endpoint | Descrição |
|---|---|---|
GET | /markets | Listar todos os mercados disponíveis |
GET | /markets/{id} | Obter detalhes de um mercado |
GET | /events | Listar eventos (resolução, datas de encerramento) |
Exemplo de Uso
Criar uma Ordem Limitada (CLOB)
import requests
url = "https://clob.polymarket.com/order"
headers = {
"Authorization": "Bearer SEU_TOKEN_API",
"Content-Type": "application/json"
}
order_data = {
"market": "0x...", # ID do mercado
"side": "BUY",
"price": "0.50",
"size": "100"
}
response = requests.post(url, json=order_data, headers=headers)
print(response.json())
Consultar Dados On-chain
const { ethers } = require("ethers");
const provider = new ethers.providers.JsonRpcProvider("https://polygon-rpc.com");
// Endereço do contrato de mercado (exemplo)
const marketAddress = "0x...";
const abi = ["function getOutcome() view returns (uint8)"];
const contract = new ethers.Contract(marketAddress, abi, provider);
const outcome = await contract.getOutcome();
console.log("Resultado do mercado:", outcome);
Tratamento de Erros
- Erros HTTP 4xx indicam problemas com a requisição (autenticação, parâmetros inválidos).
- Erros 5xx indicam problemas no servidor; tente novamente com backoff.
- Para dados on-chain, certifique-se de que a rede RPC está ativa e o contrato suporta a chamada.
Plataformas Suportadas
- Claude Code
- Cursor
- Codex (via integração com APIs REST)
- Outros agentes de IA com capacidade de fazer requisições HTTP
Notas Finais
Sempre teste em ambiente de staging (Mumbai) antes de ir para produção (Polygon Mainnet). Consulte a documentação oficial da Polymarket para atualizações e detalhes adicionais.