Início/Docs/API de leitura do Market
API de leitura do Market
Leia seus próprios dados do Market a partir de um script no seu servidor: busca e listas do catálogo, páginas de extensões, suas acompanhadas, suas buscas salvas e o radar do portfólio, além de uma exportação CSV. A API responde às mesmas perguntas que as telas do Market, com os mesmos limites, para a conta dona da chave.
1. Crie uma chave
No app web, abra Configurações, depois Conta, depois Chaves de API, e crie uma chave. A chave completa aparece uma vez, logo após ser criada: guarde-a no seu cofre de segredos. Guardamos apenas o hash SHA-256 dela, então uma chave perdida não pode ser recuperada, só substituída.
Uma chave tem esta aparência:
eop_k3j5x7q2m4n6p_7t2w4y6a3c5e7g2j4l6n3q5s7u2w4y6a3c5e7g2j4l6n3q5s7u2w4y6a
A parte antes do segundo sublinhado é o prefixo público da chave. As configurações o mostram ao lado do nome, da data de criação e do último uso, para você distinguir as chaves sem o segredo.
2. Chame a API
Envie a chave como token bearer. Toda rota é um GET sob um mesmo prefixo:
curl -s https://extops.dev/api/v1/market/read/watchlist \
-H "Authorization: Bearer $EXTOPS_API_KEY"
| Rota | O que retorna |
|---|---|
/search | Busca no catálogo com os parâmetros do Explorer: texto, modo, filtros, ordem, páginas. |
/lists/{kind} | Uma das listas em massa: novas, removidas, versões, maiores variações e as demais. |
/categories | Categorias da loja com o tamanho de cada uma. |
/extensions/{id} | Uma página de extensão com o histórico e a atividade na loja. |
/extensions/{id}/timeline | Mais páginas da atividade na loja de uma página de extensão. |
/watchlist | As extensões que você acompanha. |
/segments | Suas buscas salvas. |
/segments/{id}/members | As extensões de uma busca salva, conforme a última passagem fechada do catálogo. |
/portfolio/radar | Tudo o que mudou nas suas buscas salvas, extensões acompanhadas e próprias, cada extensão uma única vez. |
/export | Uma busca ou uma lista em CSV, até 5.000 linhas. |
As respostas são o mesmo JSON que o app web lê, descrito campo a campo no arquivo OpenAPI. A API só lê: não há rotas de escrita, e qualquer método que não seja GET é recusado.
3. Quais dados uma chave vê
Uma chave pertence à sua conta e age como essa conta. Suas buscas salvas, acompanhadas e o radar são só seus: uma busca salva de outra conta responde 404, igual a uma que não existe. As listas do catálogo são limitadas pelo seu plano, exatamente como na tela.
4. Limites
- 120 solicitações por minuto por conta, somadas entre todas as suas chaves: uma segunda chave não é uma segunda cota. Toda resposta traz
X-RateLimit-Limit,X-RateLimit-RemainingeX-RateLimit-Reset. - Suas chamadas também contam no mesmo orçamento diário do Market que o app: uma chave é você, não uma segunda cota.
- Exportação CSV: até 5.000 linhas por arquivo e 50 arquivos por dia por conta.
- Até 5 chaves ativas por conta, o suficiente para substituir sem interrupção.
Acima de um limite a API responde 429 com Retry-After e o horário de reinício em details.reset_at.
5. Substituição, revogação e mudança de plano
Substituir emite uma chave nova e para a antiga na hora. Para substituir sem interrupção, crie uma segunda chave, implante-a e depois revogue a primeira. Revogar é permitido em qualquer plano.
A API faz parte do plano Fleet. Se o plano mudar, suas chaves não são apagadas: as chamadas respondem 403 com plan_required, as configurações mostram as chaves como pausadas, e as mesmas chaves voltam a funcionar quando você retornar ao Fleet.
6. Erros
| Status | Código | Significado |
|---|---|---|
| 401 | api_key_invalid | Nenhuma chave, ou uma chave desconhecida ou malformada. |
| 401 | api_key_revoked | A chave foi revogada ou substituída. |
| 403 | api_key_scope | O escopo da chave não cobre esta rota. |
| 403 | plan_required | Seu plano não inclui a API no momento. |
| 429 | rate_limited | Um limite está esgotado até o horário em details.reset_at. |