PestPin
Verifica una licencia de control de plagas de EE. UU. o un número de teléfono contra los registros de 35 reguladores estatales, encuentra empresas con licencia por ciudad, consulta precios típicos y obtén un enlace de solicitud gratuito.
Servidor MCP alojado
npx add-mcp 'https://pestpin.com/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
La API de licencias de control de plagas
El control de plagas está regulado por los departamentos estatales de agricultura y medio ambiente, no por las juntas de contratistas, por lo que no aparece en los archivos de licencias de contratistas que venden la mayoría de los proveedores. Procesamos los registros propios de esas agencias para 35 estados y esta API los devuelve. Tres endpoints de solo lectura, JSON, sin necesidad de clave por ahora.
Comienza aquí
Pega esto en una terminal. No hay nada que registrar.
curl -s "https://pestpin.com/api/v1/licenses/lookup?state=TX&license_number=0565822"
Los tres endpoints
GET /api/v1/licenses/lookup
Devuelve un arreglo. Los números de licencia se comparten entre empresas y se repiten entre estados, por lo que una coincidencia y cuatro coincidencias tienen la misma forma. Un número del que no tenemos registro devuelve 200 con un arreglo vacío, nunca 404. Este es el único endpoint que devuelve registros de estados que otorgan licencias al operador individual en lugar de a la empresa; esos registros llevan license_subject 'individual'.
stateobligatorio. Dos letras.license_numberobligatorio. De 1 a 40 caracteres después de recortar.
curl -s "https://pestpin.com/api/v1/licenses/lookup?state=TX&license_number=0565822"
GET /api/v1/licenses/search
Coincidencia por nombre, 25 registros por página. Pasa un estado: una búsqueda por nombre sin estado en todos los estados cubiertos es una respuesta peor, no mejor. Los registros de estados que otorgan licencias al operador individual en lugar de a la empresa no se devuelven aquí; se cuentan en withheld, las notas explican por qué, y la búsqueda por número de licencia los devuelve. total cuenta solo los registros que puedes recorrer por páginas, por lo que total nunca incluye un registro retenido.
nameobligatorio. De 2 a 100 caracteres.stateopcional. Dos letras. Muy recomendado.pageopcional. De 1 a 2000.
curl -s "https://pestpin.com/api/v1/licenses/search?state=FL&name=arrow"
GET /api/v1/licenses/city
Las empresas que PestPin lista para una ciudad y tipo de plaga, 50 por página. total cuenta solo los registros que puedes recorrer por páginas. listed_on_city_page es el mismo conteo en vivo que imprime la página pública de la ciudad, que cuenta cada empresa coincidente, incluidas las que este endpoint retiene, por lo que un llamador y un lector nunca reciben números diferentes para lo mismo. Los registros de estados que otorgan licencias al operador individual en lugar de a la empresa no se devuelven aquí; se cuentan en withheld, las notas explican por qué, y la búsqueda por número de licencia los devuelve.
cityobligatorio. De 2 a 60 caracteres. Nombre de ciudad o slug de ciudad.stateobligatorio. Dos letras.pestopcional. Slug de plaga o nombre común. El valor predeterminado es control general de plagas.pageopcional. De 1 a 40.
curl -s "https://pestpin.com/api/v1/licenses/city?city=houston&state=TX&pest=termite-control"
La búsqueda devuelve 25 registros por página y el listado de ciudad devuelve 50. Pagina en total: cuenta solo los registros a los que realmente puedes llegar en matches, por lo que nunca te dará una página que vuelva vacía. Cualquier cosa que un endpoint retenga se cuenta por separado en withheld, con el motivo en notes. El listado de ciudad también devuelve listed_on_city_page, el conteo que imprime nuestra página pública de ciudad, que cuenta cada empresa coincidente, incluidas las que este endpoint retiene.
La especificación completa legible por máquina está en /api/v1/openapi.json.
Conecta un asistente de IA
Los mismos registros responden a los asistentes de IA a través del servidor MCP de PestPin en https://pestpin.com/mcp (HTTP transmisible, sin inicio de sesión). En Claude, agrega PestPin desde el directorio de conectores. En cualquier otro cliente MCP, agrega esa dirección como servidor remoto.
verify_licenseVerifica si una empresa estadounidense de control de plagas tiene un registro de licencia estatal.verify_phoneVerifica el número de teléfono de una empresa de control de plagas contra los registros oficiales de licencias estatales.find_licensed_prosEncuentra empresas de control de plagas con licencia cerca de una ciudad estadounidense.get_pest_costRango de costos de planificación nacional de EE. UU. para un servicio de control de plagas, con los factores que mueven el precio.get_price_cardLos precios que una empresa estadounidense de control de plagas con licencia ha publicado en su propio listado de PestPin, como rangos por servicio (por ejemplo, un tratamiento general único, un plan trimestral, una inspección de termitas, tratamiento de chinches por habitación), con la fecha en que la empresa los cambió por última vez y cuándo puede comenzar normalmente.get_intro_request_linkObtén el enlace que inicia una solicitud gratuita de ayuda para el control de plagas en una ciudad estadounidense.
Cada herramienta lee y ninguna escribe. Ninguna herramienta envía una solicitud: la solicitud de un propietario necesita su propio consentimiento en el formulario, por lo que el asistente le entrega el enlace en su lugar. Cada registro de licencia en una respuesta lleva el enlace oficial de la fuente estatal y la fecha en que PestPin procesó esa fuente por última vez. Las llamadas tienen límite de velocidad por IP.
Cómo se ve un 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": "..."
}
| Campo | Qué es |
|---|---|
| name | Nombre de la empresa en el registro que coincidimos. |
| name_source | regulator cuando el nombre es el del estado, owner cuando la empresa ha reclamado su listado y escrito el suyo propio. |
| license_subject | business cuando el estado otorga licencia a la empresa, individual cuando otorga licencia a la persona. En un registro individual, el nombre es una persona privada y no una empresa, y no dice quién la emplea. Solo la búsqueda por número de licencia devuelve registros individuales. |
| license_number_subject | business cuando license_number es la licencia propia de la empresa. applicator cuando el estado no publica un número de empresa y el número que se lleva es la credencial de una persona con licencia en esa empresa, por lo que la búsqueda oficial devuelve el registro de esa persona y no el de la empresa. Carolina del Sur es applicator: Clemson DPR publica solo su informe de aplicadores comerciales. |
| license_number | Número de licencia tal como lo publicó el regulador. Los números se comparten entre empresas y se repiten entre estados. Lee license_number_subject antes de describir de quién es la licencia. |
| license_state | Estado de dos letras del registro de licencia. |
| license_expires_on | Fecha de vencimiento exactamente como se publicó, o null cuando el estado no publica ninguna. Nunca se analiza para emitir un juicio. |
| city | Ciudad y estado de la ubicación del registro, que es donde el regulador colocó el registro. |
| record_status | Lo que coincidimos, en una oración. No hay un campo de estado booleano y no lo habrá. |
| source_url | La página propia del regulador para este registro. Obligatorio en cada registro. |
| source_checked_on | La fecha en que trabajamos por última vez en la fuente del estado, como fecha de calendario. |
| in_directory_since | La fecha en que este registro superó por primera vez nuestras verificaciones. |
| pestpin_url | La página pública de PestPin para este registro. |
| match_type | exact o normalized en una búsqueda por número de licencia, name en una búsqueda por nombre, city en un listado de ciudad, phone en una búsqueda por número de teléfono. Una coincidencia por teléfono siempre es exacta en diez dígitos; no hay coincidencia parcial por teléfono. |
Cinco cosas que te sorprenderán
- Un fallo es un 200, no un 404. Sin coincidencia devuelve un arreglo vacío. Un 404 se leería como "esta empresa no tiene licencia", y eso no es algo que podamos decirte. La cobertura es parcial, los registros de césped y agrícolas se excluyen a propósito, y las variaciones de ortografía de nombres existen.
- Una búsqueda devuelve un arreglo. Los números de licencia se comparten entre empresas y se repiten entre estados. Una coincidencia y cuatro coincidencias tienen la misma forma.
- No hay estado booleano. Sin
is_active, sinverified, sin puntuación. Publicamos lo que dijo un registro estatal, la fecha en que lo leímos y un enlace a la fuente. Un booleano sería una afirmación sobre hoy hecha desde el registro de ayer. - En un estado, la licencia pertenece a una persona, no a una empresa. Carolina del Norte emite su licencia de control estructural de plagas al operador individual, y su registro público no lleva ningún nombre de empresa. Esos registros son personas privadas con nombre, por lo que la búsqueda por nombre y el listado de ciudad no los devuelven. Se cuentan en
withheld, nunca entotal, con el motivo ennotes. La búsqueda por número de licencia aún los devuelve, marcados comolicense_subject: "individual". Nunca los muestres como una empresa. - En un estado, el número es de un empleado, no de la empresa. Carolina del Sur publica solo su informe de aplicadores comerciales, que lista a las personas y la empresa para la que trabaja cada una. Hay un número de licencia comercial separado, pero el estado no lo imprime en ningún registro que podamos leer, por lo que un registro de Carolina del Sur lleva el número de un aplicador con licencia en su lugar, marcado como
license_number_subject: "applicator". El nombre de la empresa sigue siendo el de la empresa, y estos registros se devuelven en todas partes. Nunca etiquetes ese número como la licencia propia de la empresa. - Una interrupción de la base de datos es un 503 sin clave de coincidencias. Una lista vacía durante una interrupción te diría que una empresa con licencia no existe. Trata un 503 como "pregunta de nuevo en breve", nunca como una respuesta.
Cobertura y qué significa un cero
Cada respuesta lleva un campo coverage, porque cero coincidencias significa tres cosas diferentes:
covered: procesamos los registros de este estado y no tenemos nada que coincida con tu consulta.lookup_only: el estado tiene una agencia de licencias real y una búsqueda oficial, y no tenemos registros para él. La respuesta lleva la URL de búsqueda propia de esa agencia.not_covered: ninguna de las dos. Consulta /verify para ver el regulador que tenemos registrado para cada estado.
PestPin coincide con los registros oficiales de licencias estatales; no verifica seguros, calidad de trabajo ni disponibilidad. Una falta de coincidencia no es prueba de que una empresa no tenga licencia (cobertura de 35 estados, las ortografías varían). Verifica cualquier registro en el enlace oficial de la fuente.
Límites y caché
Hoy los endpoints están abiertos y sin clave, limitados a 6 solicitudes por minuto y 50 por día por dirección, con un límite diario compartido entre todos los llamadores. Cada respuesta exitosa incluye public, s-maxage=3600, stale-while-revalidate=86400, por lo que un cliente que consulta el mismo número de licencia recibe respuesta en el borde. Una hora es honesto: los registros detrás cambian como máximo una vez al día, cuando se ejecuta nuestra actualización.
Se permite GET de origen cruzado desde cualquier origen, por lo que puedes llamar a esto desde un navegador.
Atribución
Cada respuesta lleva el encabezado X-PestPin-Attribution: required y una cadena attribution. Mientras la API sea gratuita, cualquier pantalla que muestre un registro debe mostrar "Registro de licencia vía PestPin" enlazado al pestpin_url de ese registro. Los planes de pago eliminarán el crédito visible de PestPin. El source_url del regulador permanece visible en todos los planes, por el motivo de la siguiente sección.
Términos, en resumen
El texto completo está en nuestros términos. Los siete puntos que le importan a un desarrollador:
- Consulta y muestra registros dentro de tu propio producto. No revendas, sublicencies ni republices los datos como un conjunto de datos, y no uses la API para reconstruir una base de datos de licencias competidora. Para volumen, consulta datos de licencias.
- Si un consumidor ve un registro, también debe ver el enlace de la fuente del regulador. No describas un registro como certificación, verificación, aprobación o respaldo, ni por nosotros ni por ningún organismo gubernamental. Un fiscal general estatal ya ha multado a una empresa nacional de servicios para el hogar por una insignia así.
- No presentes una conclusión derivada de "activo", "válido" o "con licencia hoy" como proveniente de PestPin. Publicamos lo que dijo un registro en una fecha, y la fecha viaja con él.
- Almacena en caché un registro hasta 30 días y luego vuelve a verificarlo. Un "con licencia" obsoleto en caché es exactamente el daño que estos datos existen para prevenir.
- Muestra la atribución descrita anteriormente mientras estés en el nivel gratuito.
- Podemos suspender el acceso por incumplimiento de los términos o por abuso.
- Sin garantía de cobertura o actualidad. 35 estados, las ortografías varían, la cobertura cambia, y un fallo no es prueba de nada.
Los propietarios únicos aparecen en estos registros bajo sus propios nombres. Una persona o empresa que quiera que se elimine un listado usa nuestra solicitud de eliminación, y una eliminación tiene efecto en la API en el mismo ciclo en que tiene efecto en el sitio.
Planes
| Plan | Precio | Búsquedas | Estado |
|---|---|---|---|
| Gratuito | $0 | 100 al mes | Abierto ahora, sin necesidad de clave |
| Starter | $49 al mes | 5,000 al mes | Próximamente, aún no a la venta |
| Growth | $199 al mes | 25,000 al mes | Próximamente, aún no a la venta |
Aún no hay clave que emitir, por lo que nada aquí está detrás de un registro. Si estás desarrollando sobre esto y quieres que te avisen el día en que se abran las claves y los planes de pago, envía un correo a hello@pestpin.com y di qué estás construyendo. Respondemos. ¿Quieres el archivo completo en lugar de llamadas por búsqueda? Eso es un producto separado. Consulta datos de licencia.