PestPin

Verifique uma licença de controle de pragas dos EUA ou número de telefone nos registros de 35 órgãos reguladores estaduais, encontre empresas licenciadas por cidade, veja preços típicos e obtenha um link de solicitação gratuito.

Servidor MCP hospedado

npx add-mcp 'https://pestpin.com/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

A API de licenças de controle de pragas

O controle de pragas é licenciado pelos departamentos estaduais de agricultura e meio ambiente, não pelos conselhos de empreiteiros, por isso está ausente dos arquivos de licenças de empreiteiros que a maioria dos fornecedores vende. Processamos os registros dessas próprias agências para 35 estados e esta API os retorna. Três endpoints somente leitura, JSON, sem necessidade de chave hoje.

Comece aqui

Cole isto em um terminal. Não é necessário se cadastrar.

curl -s "https://pestpin.com/api/v1/licenses/lookup?state=TX&license_number=0565822"

Os três endpoints

GET /api/v1/licenses/lookup

Retorna um array. Os números de licença são compartilhados entre empresas e se repetem entre estados, então uma correspondência e quatro correspondências têm a mesma forma. Um número para o qual não temos registro retorna 200 com um array vazio, nunca 404. Este é o único endpoint que retorna registros de estados que licenciam o operador individual em vez da empresa; esses registros trazem license_subject 'individual'.

  • state obrigatório. Duas letras.
  • license_number obrigatório. 1 a 40 caracteres após remover espaços.
curl -s "https://pestpin.com/api/v1/licenses/lookup?state=TX&license_number=0565822"

GET /api/v1/licenses/search

Correspondência de nome, 25 registros por página. Informe um estado: uma busca apenas por nome em todos os estados cobertos é uma resposta pior, não melhor. Registros de estados que licenciam o operador individual em vez da empresa não são retornados aqui; eles são contados em withheld, as notas explicam o motivo, e a busca por número de licença os retorna. total conta apenas os registros que você pode percorrer, então total nunca inclui um registro retido.

  • name obrigatório. 2 a 100 caracteres.
  • state opcional. Duas letras. Fortemente recomendado.
  • page opcional. 1 a 2000.
curl -s "https://pestpin.com/api/v1/licenses/search?state=FL&name=arrow"

GET /api/v1/licenses/city

As empresas que a PestPin lista para uma cidade e tipo de praga, 50 por página. total conta apenas os registros que você pode percorrer. listed_on_city_page é a mesma contagem ao vivo que a página pública da cidade exibe, que conta todas as empresas correspondentes, incluindo qualquer uma que este endpoint retenha, então um chamador e um leitor nunca recebem números diferentes para a mesma coisa. Registros de estados que licenciam o operador individual em vez da empresa não são retornados aqui; eles são contados em withheld, as notas explicam o motivo, e a busca por número de licença os retorna.

  • city obrigatório. 2 a 60 caracteres. Nome da cidade ou slug da cidade.
  • state obrigatório. Duas letras.
  • pest opcional. Slug da praga ou nome comum. Padrão: controle geral de pragas.
  • page opcional. 1 a 40.
curl -s "https://pestpin.com/api/v1/licenses/city?city=houston&state=TX&pest=termite-control"

A busca retorna 25 registros por página e a listagem de cidade retorna 50. Pagine em total: ele conta apenas os registros que você pode realmente alcançar em matches, então nunca entregará uma página que volte vazia. Qualquer coisa que um endpoint retenha é contada separadamente em withheld, com o motivo em notes. A listagem de cidade também retorna listed_on_city_page, a contagem que nossa página pública da cidade exibe, que conta todas as empresas correspondentes, incluindo qualquer uma que este endpoint retenha.

A especificação completa legível por máquina está em /api/v1/openapi.json.

Conecte um assistente de IA

Os mesmos registros respondem a assistentes de IA através do servidor MCP da PestPin em https://pestpin.com/mcp (HTTP transmissível, sem login). No Claude, adicione PestPin a partir do diretório de conectores. Em qualquer outro cliente MCP, adicione esse endereço como um servidor remoto.

  • verify_license Verifique se uma empresa americana de controle de pragas possui um registro de licença estadual.
  • verify_phone Verifique o número de telefone de uma empresa de controle de pragas em relação aos registros oficiais de licença estadual.
  • find_licensed_pros Encontre empresas licenciadas de controle de pragas perto de uma cidade americana.
  • get_pest_cost Faixa de custo de planejamento nacional dos EUA para um serviço de controle de pragas, com os fatores que alteram o preço.
  • get_price_card Os preços que uma empresa americana licenciada de controle de pragas publicou em sua própria listagem da PestPin, como faixas por serviço (por exemplo, um tratamento geral único, um plano trimestral, uma inspeção de cupins, tratamento de percevejos por quarto), com a data em que a empresa os alterou pela última vez e quando ela normalmente pode começar.
  • get_intro_request_link Obtenha o link que inicia uma solicitação gratuita de ajuda com controle de pragas em uma cidade americana.

Toda ferramenta lê e nenhuma escreve. Nenhuma ferramenta envia uma solicitação: a solicitação de um proprietário precisa do próprio consentimento dele no formulário, então o assistente entrega o link a ele. Cada registro de licença em uma resposta traz o link oficial da fonte estadual e a data em que a PestPin processou essa fonte pela última vez. As chamadas são limitadas por IP.

Como é um registro

{
  "matches": [
    {
      "name": "Example Pest Control LLC",
      "name_source": "regulator",
      "license_subject": "business",
      "license_number_subject": "business",
      "license_number": "0565822",
      "license_state": "TX",
      "license_expires_on": "2027-06-30",
      "city": "Houston, TX",
      "record_status": "matched to a state license record that was marked active at our most recent check of the state source",
      "source_url": "https://texasagriculture.gov/...",
      "source_checked_on": "2026-09-07",
      "in_directory_since": "2026-07-14",
      "pestpin_url": "https://pestpin.com/companies/example-pest-control-llc",
      "match_type": "exact"
    }
  ],
  "total": 1,
  "withheld": 0,
  "coverage": "covered",
  "note": "..."
}
CampoO que é
nameNome da empresa no registro que correspondemos.
name_sourceregulator quando o nome é o do estado, owner quando a empresa reivindicou sua listagem e digitou o próprio nome.
license_subjectbusiness quando o estado licencia a empresa, individual quando licencia a pessoa. Em um registro individual, o nome é uma pessoa privada e não uma empresa, e não diz quem a emprega. Apenas a busca por número de licença retorna registros individuais.
license_number_subjectbusiness quando license_number é a licença da própria empresa. applicator quando o estado não publica número da empresa e o número carregado é a credencial de um indivíduo licenciado nessa empresa, então a busca oficial retorna o registro dessa pessoa e não o da empresa. A Carolina do Sul é applicator: o Clemson DPR publica apenas seu relatório de aplicadores comerciais.
license_numberNúmero da licença conforme o regulador o publicou. Os números são compartilhados entre empresas e se repetem entre estados. Leia license_number_subject antes de descrever de quem é a licença.
license_stateEstado (duas letras) do registro da licença.
license_expires_onExpiração exatamente como publicada, ou null quando o estado não publica nenhuma. Nunca interpretada como um julgamento.
cityCidade e estado do local do registro, que é onde o regulador o colocou.
record_statusO que correspondemos, em uma frase. Não há campo booleano de status e não haverá.
source_urlA página do próprio regulador para este registro. Obrigatório em todo registro.
source_checked_onA data em que processamos a fonte do estado pela última vez, como data de calendário.
in_directory_sinceA data em que este registro passou em nossas verificações pela primeira vez.
pestpin_urlA página pública da PestPin para este registro.
match_typeexact ou normalized em uma busca por número de licença, name em uma busca por nome, city em uma listagem de cidade, phone em uma busca por número de telefone. Uma correspondência por telefone é sempre exata em dez dígitos; não há correspondência parcial por telefone.

Cinco coisas que vão surpreender você

  • Um erro é um 200, não um 404. Nenhuma correspondência retorna um array vazio. Um 404 seria lido como "esta empresa não é licenciada", e isso não é algo que podemos dizer a você. A cobertura é parcial, registros de gramado e agrícolas são excluídos de propósito, e as grafias dos nomes variam.
  • Uma busca retorna um array. Os números de licença são compartilhados entre empresas e se repetem entre estados. Uma correspondência e quatro correspondências têm a mesma forma.
  • Não há status booleano. Sem is_active, sem verified, sem pontuação. Publicamos o que um registro estadual disse, a data em que o lemos e um link para a fonte. Um booleano seria uma afirmação sobre hoje feita a partir do registro de ontem.
  • Em um estado, a licença pertence a uma pessoa, não a uma empresa. A Carolina do Norte emite sua licença de controle estrutural de pragas para o operador individual, e seu registro público não traz nenhum nome de empresa. Esses registros são nomeados como pessoas privadas, então a busca por nome e a listagem de cidade não os retornam. Eles são contados em withheld, nunca em total, com o motivo em notes. A busca por número de licença ainda os retorna, marcados como license_subject: "individual". Nunca exiba um como empresa.
  • Em um estado, o número é de um funcionário, não da empresa. A Carolina do Sul publica apenas seu relatório de aplicadores comerciais, que lista pessoas e a empresa para a qual cada uma trabalha. Existe um número de licença comercial separado, mas o estado não o imprime em nenhum registro que possamos ler, então um registro da Carolina do Sul carrega o número de um aplicador licenciado, marcado como license_number_subject: "applicator". O nome da empresa ainda é o da empresa, e esses registros são retornados em todos os lugares. Nunca rotule esse número como a licença da própria empresa.
  • Uma interrupção de banco de dados é um 503 sem chave de correspondências. Uma lista vazia durante uma interrupção diria que uma empresa licenciada não existe. Trate um 503 como "pergunte novamente em breve", nunca como uma resposta.

Cobertura e o que um zero significa

Toda resposta carrega um campo coverage, porque zero correspondências significa três coisas diferentes:

  • covered: processamos os registros deste estado e não temos nada que corresponda à sua consulta.
  • lookup_only: o estado tem uma agência de licenciamento real e uma busca oficial, e não temos registros para ele. A resposta carrega a URL de busca da própria agência.
  • not_covered: nenhum dos dois. Veja /verify para o regulador que temos em arquivo para cada estado.

A PestPin corresponde a registros oficiais de licença estadual; ela não verifica seguro, qualidade de trabalho ou disponibilidade. Nenhuma correspondência não é prova de que uma empresa não é licenciada (cobertura de 35 estados, grafias variam). Verifique qualquer registro no link oficial da fonte.

Limites e cache

Hoje os endpoints são abertos e sem chave, limitados a 6 solicitações por minuto e 50 por dia por endereço, com um teto diário compartilhado entre todos os chamadores. Toda resposta bem-sucedida envia public, s-maxage=3600, stale-while-revalidate=86400, então um cliente que consulta o mesmo número de licença é respondido na borda. Uma hora é honesta: os registros por trás dela mudam no máximo uma vez por dia, quando nossa atualização é executada.

GET entre origens é permitido de qualquer origem, então você pode chamar isso de um navegador.

Atribuição

Toda resposta carrega o cabeçalho X-PestPin-Attribution: required e uma string attribution. Enquanto a API for gratuita, qualquer tela que exibir um registro deve mostrar "Registro de licença via PestPin" vinculado ao pestpin_url desse registro. Planos pagos removerão o crédito visível da PestPin. O source_url do regulador permanece visível em todos os planos, pelo motivo na próxima seção.

Termos, em resumo

O texto completo está em nossos termos. Os sete pontos que importam para um desenvolvedor:

  1. Consulte e exiba registros dentro do seu próprio produto. Não revenda, sublicencie ou republicue os dados como um conjunto de dados, e não use a API para reconstruir um banco de dados de licenças concorrente. Para volume, veja dados de licença.
  2. Se um consumidor vir um registro, ele também deve ver o link da fonte do regulador. Não descreva um registro como certificação, verificação, aprovação ou endosso, por nós ou por qualquer órgão governamental. Um procurador-geral estadual já multou uma empresa nacional de serviços domésticos por um selo como esse.
  3. Não apresente uma conclusão derivada de "ativo", "válido" ou "licenciado hoje" como vinda da PestPin. Publicamos o que um registro disse em uma data, e a data acompanha.
  4. Armazene em cache um registro por até 30 dias e depois verifique novamente. Um "licenciado" em cache desatualizado é exatamente o dano que esses dados existem para prevenir.
  5. Mostre a atribuição descrita acima enquanto estiver no nível gratuito.
  6. Podemos suspender o acesso por violação dos termos ou por abuso.
  7. Sem garantia de cobertura ou atualidade. 35 estados, grafias variam, a cobertura muda, e um erro não é prova de nada.

Proprietários individuais aparecem nesses registros sob seus próprios nomes. Uma pessoa ou empresa que queira uma listagem removida usa nosso pedido de remoção, e uma remoção tem efeito na API no mesmo ciclo em que tem efeito no site.

Planos

PlanoPreçoConsultasStatus
Grátis$0100 por mêsAberto agora, sem necessidade de chave
Starter$49 por mês5.000 por mêsEm breve, ainda não à venda
Growth$199 por mês25.000 por mêsEm breve, ainda não à venda

Ainda não há chave para emitir, então nada aqui está atrás de um cadastro. Se você está desenvolvendo com isso e quer ser avisado no dia em que as chaves e os planos pagos abrirem, envie um e-mail para hello@pestpin.com e diga o que você está construindo. Respondemos. Quer o arquivo inteiro em vez de chamadas por consulta? Isso é um produto separado. Consulte dados de licença.