cuitonline es cliente no oficial para el sitio cuitonline.com basado en scraping. Podés usarla tanto como una CLI (interfaz de línea de comandos) o como una biblioteca Python.
Permite realizar búsquedas de personas (por ahora físicas) por nombre, CUIT, DNI, etc. y obtener información básica estructurada como dirección, localidad, provincia, etc. La linea de comando devuelve los resultados como json a la salida estándar, por lo que es fácil de integrar con otras herramientas.
Para un uso rápido ejecutalo con uvx (comando que es parte de uv):
uvx cuitonline "criterio de búsqueda" [--pagina <número_de_página>]Si quieres instalar el CLI permantentemente:
uv tool install cuitonliney luego usa directamente cuitonline desde tu terminal.
Por supuesto, puedes usar pipx, pip o cualquier otro gestor de paquetes python.
Para filtrar los resultados, puedes usar jq. Por ejemplo podés encontrar a Dios en Rosario:
cuitonline "lionel messi" | jq '.[] | select(.localidad | contains("Rosario"))'Puedes agregar cuitonline como depedendencia de tu proyecto Python y realizar búsquedas y procesar los datos obtenidos.
-
search(criterio: str, pagina: int = 1) -> List[Persona]- Realiza una búsqueda en CUIT Online.
- Parámetros:
criterio: Texto a buscar (nombre, CUIT, DNI, etc.).pagina: Número de página para buscar (por defecto, 1).
- Retorno: Lista de objetos
Persona.
-
PersonaEs el modelo Pydantic para representar información de una persona.- Atributos principales:
nombre: Nombre completo.cuit: Número de CUIT.dni: Inferido desde el cuit.tipo_persona: Tipo de persona (física o jurídica).genero,direccion,provincia,localidad,nacionalidad,monotributo,empleador: son detalles adicionales que se cargan (haciendo un request extra) bajo demanda.
- Atributos principales:
import cuitonline
# Buscar personas con un criterio específico
personas = cuitonline.search("Gaitan martin emilio", pagina=1)
# Imprimir información básica
for persona in personas:
print(f"Nombre: {persona.nombre}, CUIT: {persona.cuit}")
# Acceder a detalles adicionales
for persona in personas:
print(f"Dirección: {persona.direccion}, Género: {persona.genero}")¡Las contribuciones son bienvenidas! Si encuentras problemas o quieres agregar funcionalidades, abre un issue o un pull request en el repositorio.
MIT License.