Como escolher uma API de dados da Polymarket
Todo provedor divulga um número grande. Quase nenhum divulga o número que importa. Veja o que testar de verdade antes de se comprometer, incluindo os casos em que você nem precisa de um provedor pago.
Se você está procurando dados históricos da Polymarket, já bateu na parede que traz todo mundo aqui: a API da própria Polymarket serve só o estado atual. Peça o livro de ofertas de um mercado resolvido e você recebe um 404; o histórico de preços que ela guarda tem cerca de um ponto por minuto, sem nada sobre profundidade. Nenhum dos dois está bloqueado atrás de um plano. O livro simplesmente não está lá.
Então você precisa de um provedor que gravou o livro enquanto os mercados estavam ativos. O problema é que todo provedor desse setor divulga o mesmo número de destaque, e ele está entre os menos informativos que existem. Veja o que verificar em vez disso.
Nós construímos um desses
A PolyTest é uma API de dados da Polymarket, então não somos uma parte neutra. O que segue é o checklist que usaríamos se estivéssemos comprando, e não vendendo — incluindo uma seção sobre quando você não deveria pagar ninguém, nós incluídos. Rode os testes em vez de confiar no marketing de quem quer que seja, e isso inclui muito o nosso.
1. Snapshots por mercado por minuto, não total de snapshots
O total de snapshots é o número de destaque em todo lugar, e ele quase não significa nada. Um total é só taxa de captura × mercados acompanhados × tempo de coleta. Um provedor com um número maior pode ter melhor resolução — ou pode simplesmente estar coletando há mais tempo, ou contando linhas redundantes em mercados que ninguém negocia.
O que você realmente precisa saber é: no mercado específico que me interessa, quantos snapshots por minuto eu recebo? Um mercado de 5 minutos amostrado duas vezes por minuto dá a você dez pontos de dados para modelar todo o ciclo de vida de um mercado. Isso não basta para testar nada.
# Pull the same market from each provider, then compare density.
snaps = fetch_snapshots(market_id) # provider-specific call
span_s = (snaps[-1]["timestamp"] - snaps[0]["timestamp"]) / 1000
per_min = len(snaps) / (span_s / 60)
print(f"{len(snaps)} snapshots over {span_s:.0f}s = {per_min:.1f}/min")
# Gaps matter more than the average. One 90-second hole in a 5-minute
# market means you cannot model the part where it was decided.
gaps = [
(b["timestamp"] - a["timestamp"]) / 1000
for a, b in zip(snaps, snaps[1:])
]
print(f"max gap: {max(gaps):.1f}s median: {sorted(gaps)[len(gaps)//2]:.1f}s")Verifique a lacuna máxima, não a média
As médias escondem o modo de falha. Um feed com média de 4 snapshots/minuto, mas com um buraco de 90 segundos no último minuto de um mercado de 5 minutos, é inútil justamente no período que importa. Peça a qualquer provedor a lacuna máxima em um mercado de amostra — se ele não souber responder, isso já diz alguma coisa.
2. Profundidade real do livro, ou só o topo do livro?
Esse é o maior fator isolado para o seu backtest significar alguma coisa, e é onde a linguagem de marketing fica mais escorregadia. “Dados do livro de ofertas” pode significar qualquer coisa, da escada completa a um único par de bid/ask.
| O que você recebe | O que você consegue testar |
|---|---|
| Só o preço médio | Quase nada. O preço médio não é um preço em que você consegue negociar. |
| Melhor bid / melhor ask | Se o spread come a sua vantagem — necessário, mas não suficiente. |
| Escada completa de profundidade | Os preços reais de execução para um determinado tamanho, incluindo o slippage. |
Se você pretende operar qualquer tamanho relevante, precisa da escada. Uma ordem de 500 cotas em um mercado Up/Down raso não é executada no primeiro nível — ela percorre o livro, e a diferença entre o primeiro nível e o seu preço médio real de execução é frequentemente maior do que a vantagem que você está testando.
def simulate_fill(levels, qty):
"""Walk the ladder. This is what actually happens to your order."""
filled = cost = 0.0
for lvl in levels:
take = min(lvl["size"], qty - filled)
cost += take * lvl["price"]
filled += take
if filled >= qty:
break
if filled < qty:
return None # Not enough liquidity to fill at all.
return cost / filled
book = snapshot["orderbook"]["asks"]
print("top of book:", book[0]["price"])
print("true fill :", simulate_fill(book, 500))
# A gap of 2-3c here on a $1 binary is routine, and it is
# larger than most claimed edges.3. Os mercados resolvidos são realmente mantidos?
O motivo inteiro de pagar por esses dados é que a Polymarket os descarta. Então verifique se o provedor realmente os guarda, em vez de só repassar os endpoints ao vivo com um cache.
O teste leva um minuto: encontre um mercado resolvido há semanas, peça os snapshots dele e confirme que você recebe o caminho de preços completo com profundidade — não só um registro de metadados dizendo qual lado ganhou. Saber o resultado não é dado; toda estratégia que vale a pena testar é sobre o caminho, não sobre a resposta.
Metadados não são histórico
Algumas fontes retornam sem problema a pergunta, o volume e o resultado vencedor de um mercado resolvido, porque isso sobrevive nos feeds públicos. Isso são dados de taxa-base. Eles não dizem a que preço sua ordem teria sido executada, e qualquer viés visível nas taxas-base já foi precificado pelos market makers antes de você vê-lo.
4. Janela de histórico versus profundidade de histórico
Os provedores vendem histórico em dois formatos diferentes, e a distinção importa mais do que o número bruto de dias:
- Uma janela móvel — os N dias mais recentes, com os dados mais antigos saindo. Serve para ajustar estratégias às condições atuais do mercado.
- Um arquivo mantido — tudo desde o início da coleta. Necessário se você quer testar em diferentes regimes de volatilidade.
Do que você precisa depende, honestamente, da sua estratégia. Se você opera mercados de 5 minutos e reajusta toda semana, 30 dias bastam e pagar por mais é desperdício. Se você quer saber se a sua vantagem sobreviveu às condições do ano passado, uma janela móvel não consegue responder a isso por preço nenhum.
Cuidado ao testar um único regime
A forma mais comum de um backtest mentir é ser rodado inteiramente dentro de um único regime de mercado. Uma estratégia ajustada em 30 dias tranquilos parece robusta até a volatilidade chegar. Se a sua janela é curta, no mínimo divida-a ao meio e confira se o resultado se sustenta nas duas metades.
5. Vazão que você consegue usar de verdade
Limites de requisições parecem um detalhe até você rodar seu primeiro backtest de verdade. Puxar todos os snapshots de um mês de mercados de 5 minutos em três moedas são muitas requisições, e um limite de 10 req/s transforma uma tarde de pesquisa em um trabalho que roda a noite toda.
Dois números importam, e os provedores muitas vezes publicam só um: vazão sustentada (requisições por minuto) e capacidade de pico (requisições por segundo). Um limite alto por minuto com um pico baixo ainda trava uma busca em paralelo.
| Plano | Requisições / min | Pico / s | Histórico |
|---|---|---|---|
| PolyTest Free | 30 | 2 | Mercados recentes |
| PolyTest Builder | 250 | 12 | 14 dias |
| PolyTest Pro | 750 | 40 | Arquivo completo |
| PolyTest Enterprise | Personalizado | Personalizado | Completo + exportação em massa |
Se você puxa histórico em massa com frequência, pergunte também se existe um caminho de exportação em massa. Paginar um milhão de snapshots por um endpoint REST é possível, mas não é a ferramenta certa.
6. Dá para avaliar antes de pagar?
Não dá para avaliar a qualidade dos dados por uma página de marketing. Qualquer provedor confiante nos seus dados vai deixar você olhar para eles antes de pagar, com um plano gratuito ou um teste, e de preferência com uma referência da API que você consiga ler sem se cadastrar.
Mas tenha clareza sobre para que serve um plano gratuito ou um teste. O nosso é um teste de 3 dias do plano Builder completo, com profundidade do livro de ofertas incluída, para você conferir a cobertura, a densidade de snapshots e o formato das respostas antes de se comprometer — mas três dias e uma janela de 14 dias fazem dele uma ferramenta de avaliação, e não um plano de pesquisa. Seja qual for o provedor, descubra quais partes realmente podem ser exercitadas de graça antes de tirar conclusões.
7. Suas ferramentas conseguem ler a documentação?
Uma consideração mais recente, e que vale verificar porque é invisível até morder. Se você constrói com Cursor, Claude Code ou Codex, a capacidade do seu assistente de escrever uma integração correta depende de ele conseguir ler a documentação do provedor.
Alguns provedores de dados bloqueiam crawlers de IA no robots.txt — uma escolha legítima sobre dados de treinamento, mas que significa que os modelos não conseguem ver a documentação deles e vão improvisar uma superfície de API. Você consegue verificar qualquer provedor em uns cinco segundos:
curl -s https://<provider>/robots.txt | grep -iA1 "GPTBot\|ClaudeBot\|Google-Extended"
# "Disallow: /" under those agents means your AI assistant
# cannot read their docs and will guess at the API instead.Como referência, a PolyTest permite esses crawlers e publica llms.txt, llms-full.txt e uma especificação OpenAPI. Mas o teste prático é mais simples do que ler arquivos de política: peça ao seu assistente que escreva uma integração com cada provedor e veja qual produz código que funciona.
Quando você não deveria pagar ninguém
Vale dizer com clareza, já que isso se aplica a nós tanto quanto a qualquer um. Você não precisa de um provedor de dados pago se:
- Você só precisa de dados ao vivo. A API pública e os streams WebSocket da Polymarket são gratuitos, não exigem autenticação para dados de mercado e são perfeitamente bons. Provedores de histórico existem para o histórico, e nada mais.
- Você está testando infraestrutura, não uma estratégia. Autenticação, parsing, reconexões e tratamento de limites de requisições podem ser exercitados nos endpoints ao vivo gratuitos.
- Sua estratégia não depende de execuções. Se você estuda taxas-base ou frequências de resolução, essa informação sobrevive nos metadados públicos.
- Você está disposto a gravar os dados por conta própria. Rodar um coletor no WebSocket público é totalmente viável. Custa um servidor pequeno e a disciplina de mantê-lo rodando — o problema é que você começa com zero histórico e não consegue preencher o passado, então só ajuda se você começar bem antes de precisar dos dados.
O argumento para pagar é estreito e específico: você quer um histórico que não gravou, a partir de hoje.
Um teste que você pode rodar hoje à tarde
- Cadastre-se no plano gratuito ou no teste de todos os provedores da sua lista.
- Escolha um mercado — mesma moeda, mesmo timeframe, mesmo dia — e puxe-o de cada um.
- Compare os snapshots por minuto e a lacuna máxima. Densidade e continuidade valem mais do que qualquer número de destaque.
- Verifique os níveis do livro por snapshot. Se não for uma escada, você não consegue modelar execuções.
- Peça um mercado resolvido há um mês e confirme que você recebe o caminho completo, não só um resultado.
- Rode o seu padrão de consulta realista mais pesado e veja qual provedor limita você primeiro.
- Peça ao seu assistente de IA que escreva uma integração com cada um e veja qual documentação ele realmente consegue ler.
Essa sequência leva uma tarde e diz mais do que qualquer tabela comparativa, incluindo esta. Se quiser começar pela nossa, há um teste grátis de 3 dias, e a referência de endpoints pode ser lida sem nenhum cadastro.
Perguntas frequentes
- O que devo procurar em um provedor de dados históricos da Polymarket?
- Verifique os snapshots por mercado por minuto em vez do total de snapshots, e a lacuna máxima entre snapshots em vez da média. Confirme que você recebe a escada completa do livro de ofertas, e não só o preço médio ou o topo do livro, já que só a escada permite modelar execuções realistas. Verifique se os mercados resolvidos são realmente mantidos com o caminho de preços completo, e não só os metadados. Depois compare os limites de requisições sustentados e de pico, e se dá para avaliar os dados antes de pagar.
- Por que não posso usar a API da própria Polymarket para backtesting?
- A API da Polymarket serve só o estado atual do mercado. Depois que um mercado é resolvido, pedir o livro de ofertas dele retorna 404 com "No orderbook exists for the requested token id", e o histórico de preços que ela guarda tem cerca de um ponto por minuto. Metadados como o resultado vencedor e o volume total sobrevivem, mas a profundidade do livro não, e um preço por minuto é granular demais para simular execuções, então não há contra o que fazer backtest da execução sem um arquivo de terceiros.
- Uma contagem de snapshots maior é melhor?
- Não necessariamente. Uma contagem total de snapshots é só a taxa de captura multiplicada pelos mercados acompanhados multiplicada pelo tempo de coleta, então um número maior pode significar melhor resolução, coleta mais longa, cobertura mais ampla ou simplesmente mais linhas redundantes em mercados ilíquidos. O que determina se os dados são utilizáveis é a densidade de snapshots nos mercados específicos que você opera, a lacuna máxima entre snapshots consecutivos e se cada snapshot traz profundidade real do livro.
- Preciso da profundidade do livro de ofertas ou o preço médio basta?
- Você precisa da profundidade se pretende operar um tamanho relevante. O preço médio não é um preço em que você consegue negociar, e os spreads Up/Down da Polymarket costumam ficar entre 2 e 5 centavos em um contrato que liquida a $1 — muitas vezes mais do que a vantagem testada. Uma escada completa permite percorrer o livro e calcular o preço médio real de execução, incluindo o slippage, que é o que separa um backtest de um exercício de aritmética.
- Posso simplesmente gravar os dados da Polymarket eu mesmo em vez de pagar?
- Sim, e é uma escolha razoável. Os streams WebSocket públicos da Polymarket são gratuitos e não exigem autenticação para dados de mercado, então um coletor rodando em um servidor pequeno pode montar o seu próprio arquivo. A limitação é que você começa com zero histórico e não consegue preencher o passado — você só tem dados a partir do momento em que começa a coletar. Pagar um provedor faz sentido especificamente quando você precisa de um histórico que não gravou.
Tenha os dados históricos que a Polymarket não guarda
A PolyTest registra os mercados cripto Up/Down da Polymarket enquanto estão ativos — mais de 240M de snapshots com 8 níveis de profundidade do livro de ofertas, timestamps abaixo de um segundo e mercados resolvidos preservados. Comece com um teste grátis de 3 dias.
Continue lendo
Como criar um bot de trading para a Polymarket
A maioria dos tutoriais de bots para a Polymarket usa SDKs que não existem mais. Este é o caminho atual de ponta a ponta — o que instalar em 2026, como a autenticação realmente funciona, onde estão as lacunas de dados e os modos de falha que matam bots na primeira semana.
Mercados Up/Down da Polymarket: slugs, resolução e o abismo do livro de ofertas
Os mercados cripto Up/Down da Polymarket são os instrumentos de maior frequência da plataforma, e estão entre os mais mal compreendidos. Veja como decodificar um slug, o que determina a resolução e exatamente o que a Polymarket guarda depois que um mercado fecha.
A Polymarket tem uma testnet?
Resposta curta: não. A Polymarket nunca lançou uma testnet pública, e não existe ambiente sandbox nem API de demonstração. Sua primeira ordem real é uma ordem real, com dinheiro real, contra contrapartes reais. Veja como desenvolvedores experientes contornam isso.