{"openapi":"3.0.3","info":{"title":"Leads INEGI","version":"0.1.0","description":"Directorio de negocios de México (DENUE de INEGI) para prospección B2B. También disponible como servidor MCP en /mcp. Fuente: INEGI, Directorio Estadístico Nacional de Unidades Económicas (DENUE). Las transformaciones y los análisis son de Leads INEGI (Iron), no del INEGI. Las clasificaciones son aproximadas y pueden contener errores. Herramienta independiente de Iron, sin afiliación, patrocinio ni aval del INEGI. Metadatos: /api/fuentes. Términos: https://www.inegi.org.mx/contenidos/inegi/doc/terminos_info.pdf"},"servers":[{"url":"https://leads.iron-ai.com"}],"paths":{"/api/agente/listar_entidades":{"get":{"operationId":"listar_entidades_get","summary":"Listar estados (GET)","description":"Los 32 estados de México con clave, abreviatura, población y número de establecimientos en DENUE.\n\nMismos argumentos que el POST, en la query.","parameters":[{"name":"json","in":"query","required":false,"description":"Alternativa: todos los argumentos como JSON url-encoded (necesario para arreglos de objetos como `segmentos`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}},"post":{"operationId":"listar_entidades","summary":"Listar estados","description":"Los 32 estados de México con clave, abreviatura, población y número de establecimientos en DENUE.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}}},"/api/agente/listar_municipios":{"get":{"operationId":"listar_municipios_get","summary":"Listar municipios (GET)","description":"Municipios de uno o varios estados, con su clave de 5 dígitos.\n\nMismos argumentos que el POST, en la query.","parameters":[{"name":"estados","in":"query","required":true,"description":"Estados por nombre, abreviatura o clave. Repite la clave o separa con \";\" o con coma.","schema":{"minItems":1,"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"json","in":"query","required":false,"description":"Alternativa: todos los argumentos como JSON url-encoded (necesario para arreglos de objetos como `segmentos`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}},"post":{"operationId":"listar_municipios","summary":"Listar municipios","description":"Municipios de uno o varios estados, con su clave de 5 dígitos.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"estados":{"minItems":1,"type":"array","items":{"type":"string"},"description":"Estados por nombre, abreviatura o clave."}},"required":["estados"],"additionalProperties":false}}}},"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}}},"/api/agente/buscar_actividades":{"get":{"operationId":"buscar_actividades_get","summary":"Buscar giros (SCIAN) (GET)","description":"Busca giros de negocio del catálogo SCIAN por texto (\"dentista\", \"tortillería\") o prefijo de código, y dice cuántos establecimientos hay de cada uno. Úsala para elegir los códigos exactos antes de filtrar.\n\nMismos argumentos que el POST, en la query.","parameters":[{"name":"texto","in":"query","required":true,"description":"Palabras del giro o prefijo de código SCIAN.","schema":{"type":"string","minLength":1}},{"name":"sectores","in":"query","required":false,"description":"Limitar a estos sectores (código o nombre). Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"json","in":"query","required":false,"description":"Alternativa: todos los argumentos como JSON url-encoded (necesario para arreglos de objetos como `segmentos`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}},"post":{"operationId":"buscar_actividades","summary":"Buscar giros (SCIAN)","description":"Busca giros de negocio del catálogo SCIAN por texto (\"dentista\", \"tortillería\") o prefijo de código, y dice cuántos establecimientos hay de cada uno. Úsala para elegir los códigos exactos antes de filtrar.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"texto":{"type":"string","minLength":1,"description":"Palabras del giro o prefijo de código SCIAN."},"sectores":{"description":"Limitar a estos sectores (código o nombre).","type":"array","items":{"type":"string"}}},"required":["texto"],"additionalProperties":false}}}},"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}}},"/api/agente/listar_sectores_y_tamanos":{"get":{"operationId":"listar_sectores_y_tamanos_get","summary":"Sectores y tamaños (GET)","description":"Catálogo de los 20 sectores SCIAN y de los 7 estratos de personal ocupado que usa DENUE.\n\nMismos argumentos que el POST, en la query.","parameters":[{"name":"json","in":"query","required":false,"description":"Alternativa: todos los argumentos como JSON url-encoded (necesario para arreglos de objetos como `segmentos`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}},"post":{"operationId":"listar_sectores_y_tamanos","summary":"Sectores y tamaños","description":"Catálogo de los 20 sectores SCIAN y de los 7 estratos de personal ocupado que usa DENUE.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}}},"/api/agente/resolver_ubicacion":{"get":{"operationId":"resolver_ubicacion_get","summary":"Resolver ubicación (GET)","description":"Convierte un lugar escrito libremente (\"Monterrey\", \"CDMX\", \"Benito Juárez, Quintana Roo\") en las claves de estado y municipio que le corresponden.\n\nMismos argumentos que el POST, en la query.","parameters":[{"name":"texto","in":"query","required":true,"description":"Nombre del estado o municipio; opcionalmente \"Municipio, Estado\".","schema":{"type":"string","minLength":1}},{"name":"json","in":"query","required":false,"description":"Alternativa: todos los argumentos como JSON url-encoded (necesario para arreglos de objetos como `segmentos`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}},"post":{"operationId":"resolver_ubicacion","summary":"Resolver ubicación","description":"Convierte un lugar escrito libremente (\"Monterrey\", \"CDMX\", \"Benito Juárez, Quintana Roo\") en las claves de estado y municipio que le corresponden.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"texto":{"type":"string","minLength":1,"description":"Nombre del estado o municipio; opcionalmente \"Municipio, Estado\"."}},"required":["texto"],"additionalProperties":false}}}},"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}}},"/api/agente/estadisticas_mercado":{"get":{"operationId":"estadisticas_mercado_get","summary":"Dimensionar mercado (GET)","description":"Dimensiona un segmento antes de bajar leads: total de establecimientos, cuántos tienen teléfono, email o web, cuántos son cadenas, y distribución por tamaño, sector, estado y municipio (con densidad por 10 mil habitantes), giros principales, altas por año y cadenas principales.\n\nMismos argumentos que el POST, en la query.","parameters":[{"name":"estados","in":"query","required":false,"description":"Estados por nombre, abreviatura o clave de 2 dígitos. Ej. [\"Jalisco\", \"NL\", \"CDMX\", \"09\"]. Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"municipios","in":"query","required":false,"description":"Municipios por nombre o clave de 5 dígitos. Si el nombre existe en varios estados, agrega el estado: \"Benito Juárez, Quintana Roo\". Repite la clave o separa con \";\".","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"cp","in":"query","required":false,"description":"Código postal completo o prefijo. Ej. \"44100\" o \"441\".","schema":{"type":"string"}},{"name":"sectores","in":"query","required":false,"description":"Sectores SCIAN por código (\"62\", \"31-33\") o nombre (\"salud\", \"comercio al por mayor\"). Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"actividades","in":"query","required":false,"description":"Giros por texto (\"consultorios dentales\", \"tortillería\") o código SCIAN de 6 dígitos (\"621211\"). Un prefijo de 3 a 5 dígitos incluye todos los giros que empiezan así. Si un texto coincide con varios giros, la herramienta devuelve las opciones para elegir. Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"todasLasCoincidencias","in":"query","required":false,"description":"Si un texto de `actividades` coincide con varios giros, incluirlos todos en vez de pedir que elijas.","schema":{"type":"boolean"}},{"name":"nombre","in":"query","required":false,"description":"Busca en el nombre comercial o la razón social.","schema":{"type":"string"}},{"name":"empleados.min","in":"query","required":false,"description":"Rango de personal ocupado. DENUE solo reporta rangos (0-5, 6-10, 11-30, 31-50, 51-100, 101-250, 251+); se incluyen los rangos que toquen el pedido.","schema":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"empleados.max","in":"query","required":false,"description":"Rango de personal ocupado. DENUE solo reporta rangos (0-5, 6-10, 11-30, 31-50, 51-100, 101-250, 251+); se incluyen los rangos que toquen el pedido.","schema":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"estratos","in":"query","required":false,"description":"Alternativa a `empleados`: estratos de DENUE 1=0-5, 2=6-10, 3=11-30, 4=31-50, 5=51-100, 6=101-250, 7=251+. Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"style":"form","explode":true},{"name":"conTelefono","in":"query","required":false,"description":"Solo con teléfono.","schema":{"type":"boolean"}},{"name":"conEmail","in":"query","required":false,"description":"Solo con email.","schema":{"type":"boolean"}},{"name":"emailCorporativo","in":"query","required":false,"description":"Solo con email de dominio propio (no gmail, hotmail, etc.).","schema":{"type":"boolean"}},{"name":"conWeb","in":"query","required":false,"description":"Solo con sitio web.","schema":{"type":"boolean"}},{"name":"sucursales","in":"query","required":false,"description":"independiente = una sola unidad; cadena = varias unidades con el mismo dominio de correo.","schema":{"type":"string","enum":["independiente","cadena"]}},{"name":"tipoUnidad","in":"query","required":false,"description":"Fijo = local establecido; Semifijo = puesto.","schema":{"type":"string","enum":["Fijo","Semifijo"]}},{"name":"excluirPublico","in":"query","required":false,"description":"Excluir dependencias de gobierno y organismos públicos. Por defecto true.","schema":{"type":"boolean"}},{"name":"centroComercial","in":"query","required":false,"description":"Ubicados o no dentro de un centro comercial.","schema":{"type":"string","enum":["si","no"]}},{"name":"altaDesde","in":"query","required":false,"description":"Fecha AAAA-MM-DD: solo los dados de alta en DENUE desde entonces (no es la fecha de fundación).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"json","in":"query","required":false,"description":"Alternativa: todos los argumentos como JSON url-encoded (necesario para arreglos de objetos como `segmentos`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}},"post":{"operationId":"estadisticas_mercado","summary":"Dimensionar mercado","description":"Dimensiona un segmento antes de bajar leads: total de establecimientos, cuántos tienen teléfono, email o web, cuántos son cadenas, y distribución por tamaño, sector, estado y municipio (con densidad por 10 mil habitantes), giros principales, altas por año y cadenas principales.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"estados":{"description":"Estados por nombre, abreviatura o clave de 2 dígitos. Ej. [\"Jalisco\", \"NL\", \"CDMX\", \"09\"].","type":"array","items":{"type":"string"}},"municipios":{"description":"Municipios por nombre o clave de 5 dígitos. Si el nombre existe en varios estados, agrega el estado: \"Benito Juárez, Quintana Roo\".","type":"array","items":{"type":"string"}},"cp":{"description":"Código postal completo o prefijo. Ej. \"44100\" o \"441\".","type":"string"},"sectores":{"description":"Sectores SCIAN por código (\"62\", \"31-33\") o nombre (\"salud\", \"comercio al por mayor\").","type":"array","items":{"type":"string"}},"actividades":{"description":"Giros por texto (\"consultorios dentales\", \"tortillería\") o código SCIAN de 6 dígitos (\"621211\"). Un prefijo de 3 a 5 dígitos incluye todos los giros que empiezan así. Si un texto coincide con varios giros, la herramienta devuelve las opciones para elegir.","type":"array","items":{"type":"string"}},"todasLasCoincidencias":{"description":"Si un texto de `actividades` coincide con varios giros, incluirlos todos en vez de pedir que elijas.","type":"boolean"},"nombre":{"description":"Busca en el nombre comercial o la razón social.","type":"string"},"empleados":{"description":"Rango de personal ocupado. DENUE solo reporta rangos (0-5, 6-10, 11-30, 31-50, 51-100, 101-250, 251+); se incluyen los rangos que toquen el pedido.","type":"object","properties":{"min":{"type":"integer","minimum":0,"maximum":9007199254740991},"max":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"estratos":{"description":"Alternativa a `empleados`: estratos de DENUE 1=0-5, 2=6-10, 3=11-30, 4=31-50, 5=51-100, 6=101-250, 7=251+.","type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"conTelefono":{"description":"Solo con teléfono.","type":"boolean"},"conEmail":{"description":"Solo con email.","type":"boolean"},"emailCorporativo":{"description":"Solo con email de dominio propio (no gmail, hotmail, etc.).","type":"boolean"},"conWeb":{"description":"Solo con sitio web.","type":"boolean"},"sucursales":{"description":"independiente = una sola unidad; cadena = varias unidades con el mismo dominio de correo.","type":"string","enum":["independiente","cadena"]},"tipoUnidad":{"description":"Fijo = local establecido; Semifijo = puesto.","type":"string","enum":["Fijo","Semifijo"]},"excluirPublico":{"description":"Excluir dependencias de gobierno y organismos públicos. Por defecto true.","type":"boolean"},"centroComercial":{"description":"Ubicados o no dentro de un centro comercial.","type":"string","enum":["si","no"]},"altaDesde":{"description":"Fecha AAAA-MM-DD: solo los dados de alta en DENUE desde entonces (no es la fecha de fundación).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}}},"/api/agente/comparar_mercados":{"get":{"operationId":"comparar_mercados_get","summary":"Comparar mercados (GET)","description":"Compara de 2 a 5 segmentos lado a lado (por ejemplo \"dentistas en Jalisco vs. Nuevo León\"): total, contactabilidad, tamaño y giros principales de cada uno.\n\nMismos argumentos que el POST, en la query.","parameters":[{"name":"json","in":"query","required":false,"description":"Alternativa: todos los argumentos como JSON url-encoded (necesario para arreglos de objetos como `segmentos`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}},"post":{"operationId":"comparar_mercados","summary":"Comparar mercados","description":"Compara de 2 a 5 segmentos lado a lado (por ejemplo \"dentistas en Jalisco vs. Nuevo León\"): total, contactabilidad, tamaño y giros principales de cada uno.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"segmentos":{"minItems":2,"maxItems":5,"type":"array","items":{"type":"object","properties":{"etiqueta":{"type":"string","description":"Nombre corto del segmento."},"estados":{"description":"Estados por nombre, abreviatura o clave de 2 dígitos. Ej. [\"Jalisco\", \"NL\", \"CDMX\", \"09\"].","type":"array","items":{"type":"string"}},"municipios":{"description":"Municipios por nombre o clave de 5 dígitos. Si el nombre existe en varios estados, agrega el estado: \"Benito Juárez, Quintana Roo\".","type":"array","items":{"type":"string"}},"cp":{"description":"Código postal completo o prefijo. Ej. \"44100\" o \"441\".","type":"string"},"sectores":{"description":"Sectores SCIAN por código (\"62\", \"31-33\") o nombre (\"salud\", \"comercio al por mayor\").","type":"array","items":{"type":"string"}},"actividades":{"description":"Giros por texto (\"consultorios dentales\", \"tortillería\") o código SCIAN de 6 dígitos (\"621211\"). Un prefijo de 3 a 5 dígitos incluye todos los giros que empiezan así. Si un texto coincide con varios giros, la herramienta devuelve las opciones para elegir.","type":"array","items":{"type":"string"}},"todasLasCoincidencias":{"description":"Si un texto de `actividades` coincide con varios giros, incluirlos todos en vez de pedir que elijas.","type":"boolean"},"nombre":{"description":"Busca en el nombre comercial o la razón social.","type":"string"},"empleados":{"description":"Rango de personal ocupado. DENUE solo reporta rangos (0-5, 6-10, 11-30, 31-50, 51-100, 101-250, 251+); se incluyen los rangos que toquen el pedido.","type":"object","properties":{"min":{"type":"integer","minimum":0,"maximum":9007199254740991},"max":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"estratos":{"description":"Alternativa a `empleados`: estratos de DENUE 1=0-5, 2=6-10, 3=11-30, 4=31-50, 5=51-100, 6=101-250, 7=251+.","type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"conTelefono":{"description":"Solo con teléfono.","type":"boolean"},"conEmail":{"description":"Solo con email.","type":"boolean"},"emailCorporativo":{"description":"Solo con email de dominio propio (no gmail, hotmail, etc.).","type":"boolean"},"conWeb":{"description":"Solo con sitio web.","type":"boolean"},"sucursales":{"description":"independiente = una sola unidad; cadena = varias unidades con el mismo dominio de correo.","type":"string","enum":["independiente","cadena"]},"tipoUnidad":{"description":"Fijo = local establecido; Semifijo = puesto.","type":"string","enum":["Fijo","Semifijo"]},"excluirPublico":{"description":"Excluir dependencias de gobierno y organismos públicos. Por defecto true.","type":"boolean"},"centroComercial":{"description":"Ubicados o no dentro de un centro comercial.","type":"string","enum":["si","no"]},"altaDesde":{"description":"Fecha AAAA-MM-DD: solo los dados de alta en DENUE desde entonces (no es la fecha de fundación).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["etiqueta"],"additionalProperties":false}}},"required":["segmentos"],"additionalProperties":false}}}},"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}}},"/api/agente/buscar_leads":{"get":{"operationId":"buscar_leads_get","summary":"Buscar leads (GET)","description":"Lista establecimientos que cumplen los filtros, con nombre, razón social, giro, tamaño, dirección, teléfono, email, web, número de sucursales y coordenadas. Paginada; por defecto primero los más grandes y con más formas de contacto.\n\nMismos argumentos que el POST, en la query.","parameters":[{"name":"estados","in":"query","required":false,"description":"Estados por nombre, abreviatura o clave de 2 dígitos. Ej. [\"Jalisco\", \"NL\", \"CDMX\", \"09\"]. Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"municipios","in":"query","required":false,"description":"Municipios por nombre o clave de 5 dígitos. Si el nombre existe en varios estados, agrega el estado: \"Benito Juárez, Quintana Roo\". Repite la clave o separa con \";\".","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"cp","in":"query","required":false,"description":"Código postal completo o prefijo. Ej. \"44100\" o \"441\".","schema":{"type":"string"}},{"name":"sectores","in":"query","required":false,"description":"Sectores SCIAN por código (\"62\", \"31-33\") o nombre (\"salud\", \"comercio al por mayor\"). Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"actividades","in":"query","required":false,"description":"Giros por texto (\"consultorios dentales\", \"tortillería\") o código SCIAN de 6 dígitos (\"621211\"). Un prefijo de 3 a 5 dígitos incluye todos los giros que empiezan así. Si un texto coincide con varios giros, la herramienta devuelve las opciones para elegir. Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"todasLasCoincidencias","in":"query","required":false,"description":"Si un texto de `actividades` coincide con varios giros, incluirlos todos en vez de pedir que elijas.","schema":{"type":"boolean"}},{"name":"nombre","in":"query","required":false,"description":"Busca en el nombre comercial o la razón social.","schema":{"type":"string"}},{"name":"empleados.min","in":"query","required":false,"description":"Rango de personal ocupado. DENUE solo reporta rangos (0-5, 6-10, 11-30, 31-50, 51-100, 101-250, 251+); se incluyen los rangos que toquen el pedido.","schema":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"empleados.max","in":"query","required":false,"description":"Rango de personal ocupado. DENUE solo reporta rangos (0-5, 6-10, 11-30, 31-50, 51-100, 101-250, 251+); se incluyen los rangos que toquen el pedido.","schema":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"estratos","in":"query","required":false,"description":"Alternativa a `empleados`: estratos de DENUE 1=0-5, 2=6-10, 3=11-30, 4=31-50, 5=51-100, 6=101-250, 7=251+. Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"style":"form","explode":true},{"name":"conTelefono","in":"query","required":false,"description":"Solo con teléfono.","schema":{"type":"boolean"}},{"name":"conEmail","in":"query","required":false,"description":"Solo con email.","schema":{"type":"boolean"}},{"name":"emailCorporativo","in":"query","required":false,"description":"Solo con email de dominio propio (no gmail, hotmail, etc.).","schema":{"type":"boolean"}},{"name":"conWeb","in":"query","required":false,"description":"Solo con sitio web.","schema":{"type":"boolean"}},{"name":"sucursales","in":"query","required":false,"description":"independiente = una sola unidad; cadena = varias unidades con el mismo dominio de correo.","schema":{"type":"string","enum":["independiente","cadena"]}},{"name":"tipoUnidad","in":"query","required":false,"description":"Fijo = local establecido; Semifijo = puesto.","schema":{"type":"string","enum":["Fijo","Semifijo"]}},{"name":"excluirPublico","in":"query","required":false,"description":"Excluir dependencias de gobierno y organismos públicos. Por defecto true.","schema":{"type":"boolean"}},{"name":"centroComercial","in":"query","required":false,"description":"Ubicados o no dentro de un centro comercial.","schema":{"type":"string","enum":["si","no"]}},{"name":"altaDesde","in":"query","required":false,"description":"Fecha AAAA-MM-DD: solo los dados de alta en DENUE desde entonces (no es la fecha de fundación).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"pagina","in":"query","required":false,"description":"Página, empieza en 0.","schema":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"porPagina","in":"query","required":false,"description":"Resultados por página (1-100, por defecto 25).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"orden","in":"query","required":false,"description":"estrato = más grandes y contactables primero (defecto); nombre; fecha_alta = más recientes; num_sucursales.","schema":{"type":"string","enum":["estrato","nombre","fecha_alta","num_sucursales"]}},{"name":"json","in":"query","required":false,"description":"Alternativa: todos los argumentos como JSON url-encoded (necesario para arreglos de objetos como `segmentos`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}},"post":{"operationId":"buscar_leads","summary":"Buscar leads","description":"Lista establecimientos que cumplen los filtros, con nombre, razón social, giro, tamaño, dirección, teléfono, email, web, número de sucursales y coordenadas. Paginada; por defecto primero los más grandes y con más formas de contacto.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"estados":{"description":"Estados por nombre, abreviatura o clave de 2 dígitos. Ej. [\"Jalisco\", \"NL\", \"CDMX\", \"09\"].","type":"array","items":{"type":"string"}},"municipios":{"description":"Municipios por nombre o clave de 5 dígitos. Si el nombre existe en varios estados, agrega el estado: \"Benito Juárez, Quintana Roo\".","type":"array","items":{"type":"string"}},"cp":{"description":"Código postal completo o prefijo. Ej. \"44100\" o \"441\".","type":"string"},"sectores":{"description":"Sectores SCIAN por código (\"62\", \"31-33\") o nombre (\"salud\", \"comercio al por mayor\").","type":"array","items":{"type":"string"}},"actividades":{"description":"Giros por texto (\"consultorios dentales\", \"tortillería\") o código SCIAN de 6 dígitos (\"621211\"). Un prefijo de 3 a 5 dígitos incluye todos los giros que empiezan así. Si un texto coincide con varios giros, la herramienta devuelve las opciones para elegir.","type":"array","items":{"type":"string"}},"todasLasCoincidencias":{"description":"Si un texto de `actividades` coincide con varios giros, incluirlos todos en vez de pedir que elijas.","type":"boolean"},"nombre":{"description":"Busca en el nombre comercial o la razón social.","type":"string"},"empleados":{"description":"Rango de personal ocupado. DENUE solo reporta rangos (0-5, 6-10, 11-30, 31-50, 51-100, 101-250, 251+); se incluyen los rangos que toquen el pedido.","type":"object","properties":{"min":{"type":"integer","minimum":0,"maximum":9007199254740991},"max":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"estratos":{"description":"Alternativa a `empleados`: estratos de DENUE 1=0-5, 2=6-10, 3=11-30, 4=31-50, 5=51-100, 6=101-250, 7=251+.","type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"conTelefono":{"description":"Solo con teléfono.","type":"boolean"},"conEmail":{"description":"Solo con email.","type":"boolean"},"emailCorporativo":{"description":"Solo con email de dominio propio (no gmail, hotmail, etc.).","type":"boolean"},"conWeb":{"description":"Solo con sitio web.","type":"boolean"},"sucursales":{"description":"independiente = una sola unidad; cadena = varias unidades con el mismo dominio de correo.","type":"string","enum":["independiente","cadena"]},"tipoUnidad":{"description":"Fijo = local establecido; Semifijo = puesto.","type":"string","enum":["Fijo","Semifijo"]},"excluirPublico":{"description":"Excluir dependencias de gobierno y organismos públicos. Por defecto true.","type":"boolean"},"centroComercial":{"description":"Ubicados o no dentro de un centro comercial.","type":"string","enum":["si","no"]},"altaDesde":{"description":"Fecha AAAA-MM-DD: solo los dados de alta en DENUE desde entonces (no es la fecha de fundación).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"pagina":{"description":"Página, empieza en 0.","type":"integer","minimum":0,"maximum":9007199254740991},"porPagina":{"description":"Resultados por página (1-100, por defecto 25).","type":"integer","minimum":1,"maximum":100},"orden":{"description":"estrato = más grandes y contactables primero (defecto); nombre; fecha_alta = más recientes; num_sucursales.","type":"string","enum":["estrato","nombre","fecha_alta","num_sucursales"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}}},"/api/agente/detalle_lead":{"get":{"operationId":"detalle_lead_get","summary":"Detalle de un lead (GET)","description":"Ficha completa de un establecimiento por su id (el que devuelve buscar_leads), con enlace a Google Maps.\n\nMismos argumentos que el POST, en la query.","parameters":[{"name":"id","in":"query","required":true,"description":"id del establecimiento.","schema":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"name":"json","in":"query","required":false,"description":"Alternativa: todos los argumentos como JSON url-encoded (necesario para arreglos de objetos como `segmentos`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}},"post":{"operationId":"detalle_lead","summary":"Detalle de un lead","description":"Ficha completa de un establecimiento por su id (el que devuelve buscar_leads), con enlace a Google Maps.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"id del establecimiento."}},"required":["id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}}},"/api/agente/exportar_leads_csv":{"get":{"operationId":"exportar_leads_csv_get","summary":"Exportar leads a CSV (GET)","description":"Genera un enlace de descarga CSV con los leads que cumplen los filtros (máximo 10,000 filas, los más grandes y contactables primero).\n\nMismos argumentos que el POST, en la query.","parameters":[{"name":"estados","in":"query","required":false,"description":"Estados por nombre, abreviatura o clave de 2 dígitos. Ej. [\"Jalisco\", \"NL\", \"CDMX\", \"09\"]. Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"municipios","in":"query","required":false,"description":"Municipios por nombre o clave de 5 dígitos. Si el nombre existe en varios estados, agrega el estado: \"Benito Juárez, Quintana Roo\". Repite la clave o separa con \";\".","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"cp","in":"query","required":false,"description":"Código postal completo o prefijo. Ej. \"44100\" o \"441\".","schema":{"type":"string"}},{"name":"sectores","in":"query","required":false,"description":"Sectores SCIAN por código (\"62\", \"31-33\") o nombre (\"salud\", \"comercio al por mayor\"). Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"actividades","in":"query","required":false,"description":"Giros por texto (\"consultorios dentales\", \"tortillería\") o código SCIAN de 6 dígitos (\"621211\"). Un prefijo de 3 a 5 dígitos incluye todos los giros que empiezan así. Si un texto coincide con varios giros, la herramienta devuelve las opciones para elegir. Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true},{"name":"todasLasCoincidencias","in":"query","required":false,"description":"Si un texto de `actividades` coincide con varios giros, incluirlos todos en vez de pedir que elijas.","schema":{"type":"boolean"}},{"name":"nombre","in":"query","required":false,"description":"Busca en el nombre comercial o la razón social.","schema":{"type":"string"}},{"name":"empleados.min","in":"query","required":false,"description":"Rango de personal ocupado. DENUE solo reporta rangos (0-5, 6-10, 11-30, 31-50, 51-100, 101-250, 251+); se incluyen los rangos que toquen el pedido.","schema":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"empleados.max","in":"query","required":false,"description":"Rango de personal ocupado. DENUE solo reporta rangos (0-5, 6-10, 11-30, 31-50, 51-100, 101-250, 251+); se incluyen los rangos que toquen el pedido.","schema":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"estratos","in":"query","required":false,"description":"Alternativa a `empleados`: estratos de DENUE 1=0-5, 2=6-10, 3=11-30, 4=31-50, 5=51-100, 6=101-250, 7=251+. Repite la clave o separa con \";\" o con coma.","schema":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"style":"form","explode":true},{"name":"conTelefono","in":"query","required":false,"description":"Solo con teléfono.","schema":{"type":"boolean"}},{"name":"conEmail","in":"query","required":false,"description":"Solo con email.","schema":{"type":"boolean"}},{"name":"emailCorporativo","in":"query","required":false,"description":"Solo con email de dominio propio (no gmail, hotmail, etc.).","schema":{"type":"boolean"}},{"name":"conWeb","in":"query","required":false,"description":"Solo con sitio web.","schema":{"type":"boolean"}},{"name":"sucursales","in":"query","required":false,"description":"independiente = una sola unidad; cadena = varias unidades con el mismo dominio de correo.","schema":{"type":"string","enum":["independiente","cadena"]}},{"name":"tipoUnidad","in":"query","required":false,"description":"Fijo = local establecido; Semifijo = puesto.","schema":{"type":"string","enum":["Fijo","Semifijo"]}},{"name":"excluirPublico","in":"query","required":false,"description":"Excluir dependencias de gobierno y organismos públicos. Por defecto true.","schema":{"type":"boolean"}},{"name":"centroComercial","in":"query","required":false,"description":"Ubicados o no dentro de un centro comercial.","schema":{"type":"string","enum":["si","no"]}},{"name":"altaDesde","in":"query","required":false,"description":"Fecha AAAA-MM-DD: solo los dados de alta en DENUE desde entonces (no es la fecha de fundación).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"json","in":"query","required":false,"description":"Alternativa: todos los argumentos como JSON url-encoded (necesario para arreglos de objetos como `segmentos`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}},"post":{"operationId":"exportar_leads_csv","summary":"Exportar leads a CSV","description":"Genera un enlace de descarga CSV con los leads que cumplen los filtros (máximo 10,000 filas, los más grandes y contactables primero).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"estados":{"description":"Estados por nombre, abreviatura o clave de 2 dígitos. Ej. [\"Jalisco\", \"NL\", \"CDMX\", \"09\"].","type":"array","items":{"type":"string"}},"municipios":{"description":"Municipios por nombre o clave de 5 dígitos. Si el nombre existe en varios estados, agrega el estado: \"Benito Juárez, Quintana Roo\".","type":"array","items":{"type":"string"}},"cp":{"description":"Código postal completo o prefijo. Ej. \"44100\" o \"441\".","type":"string"},"sectores":{"description":"Sectores SCIAN por código (\"62\", \"31-33\") o nombre (\"salud\", \"comercio al por mayor\").","type":"array","items":{"type":"string"}},"actividades":{"description":"Giros por texto (\"consultorios dentales\", \"tortillería\") o código SCIAN de 6 dígitos (\"621211\"). Un prefijo de 3 a 5 dígitos incluye todos los giros que empiezan así. Si un texto coincide con varios giros, la herramienta devuelve las opciones para elegir.","type":"array","items":{"type":"string"}},"todasLasCoincidencias":{"description":"Si un texto de `actividades` coincide con varios giros, incluirlos todos en vez de pedir que elijas.","type":"boolean"},"nombre":{"description":"Busca en el nombre comercial o la razón social.","type":"string"},"empleados":{"description":"Rango de personal ocupado. DENUE solo reporta rangos (0-5, 6-10, 11-30, 31-50, 51-100, 101-250, 251+); se incluyen los rangos que toquen el pedido.","type":"object","properties":{"min":{"type":"integer","minimum":0,"maximum":9007199254740991},"max":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"estratos":{"description":"Alternativa a `empleados`: estratos de DENUE 1=0-5, 2=6-10, 3=11-30, 4=31-50, 5=51-100, 6=101-250, 7=251+.","type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"conTelefono":{"description":"Solo con teléfono.","type":"boolean"},"conEmail":{"description":"Solo con email.","type":"boolean"},"emailCorporativo":{"description":"Solo con email de dominio propio (no gmail, hotmail, etc.).","type":"boolean"},"conWeb":{"description":"Solo con sitio web.","type":"boolean"},"sucursales":{"description":"independiente = una sola unidad; cadena = varias unidades con el mismo dominio de correo.","type":"string","enum":["independiente","cadena"]},"tipoUnidad":{"description":"Fijo = local establecido; Semifijo = puesto.","type":"string","enum":["Fijo","Semifijo"]},"excluirPublico":{"description":"Excluir dependencias de gobierno y organismos públicos. Por defecto true.","type":"boolean"},"centroComercial":{"description":"Ubicados o no dentro de un centro comercial.","type":"string","enum":["si","no"]},"altaDesde":{"description":"Fecha AAAA-MM-DD: solo los dados de alta en DENUE desde entonces (no es la fecha de fundación).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Resultado en JSON con procedencia (en cada elemento si es una lista); también cabecera Link a /api/fuentes y a los términos."},"400":{"description":"Parámetros inválidos."},"404":{"description":"No existe la herramienta."},"422":{"description":"Nombre ambiguo o no encontrado; `opciones` trae los candidatos."},"429":{"description":"Demasiadas peticiones; reintenta en 60 s."}}}}}}