CLI y biblioteca Python de cuitonline.com. No oficial.
Project description
cuitonline es un cliente no oficial para el sitio cuitonline.com basado en scraping. Podés usarlo tanto como CLI (interfaz de línea de comandos) o como biblioteca Python.
Permite realizar búsquedas de personas (físicas y jurídicas) por nombre, CUIT, DNI, etc. y obtener información básica estructurada como dirección, localidad, provincia, etc. La línea de comando devuelve los resultados como JSON a la salida estándar, por lo que es fácil de integrar con otras herramientas.
Uso como CLI
Para un uso rápido ejecutalo con uvx (que forma parte de uv):
uvx cuitonline "criterio de búsqueda" [--pagina <número>] [--filtros <faceta:valor,...>]
Si querés instalarlo permanentemente:
uv tool install cuitonline
y después usá directamente cuitonline desde tu terminal.
También podés usar pipx, pip o cualquier otro gestor de paquetes Python.
Ejemplos
Para filtrar los resultados podés usar jq. Por ejemplo, encontrá a Messi en Rosario:
cuitonline "lionel messi" | jq '.[] | select(.localidad | contains("Rosario"))'
Filtros de facetados
El sitio ofrece filtros para acotar los resultados. Pasalos con -f separados por coma:
# Solo personas jurídicas
cuitonline "gaitan" -f persona:juridica
# Personas físicas exentas de IVA
cuitonline "gaitan" -f persona:fisica,iva:iva_exento
# Monotributistas de Argentina
cuitonline "gaitan" -f monotributo:inscripto,nacionalidad:argentina
Los filtros disponibles y sus valores son:
| Faceta | Parámetro | Valores posibles |
|---|---|---|
persona |
f5 | fisica, juridica |
iva |
f1 | iva_inscripto, iva_exento, no_inscripto, iva_no_alcanzado |
monotributo |
f2 | inscripto, no_inscripto |
empleador |
f4 | si, no |
nacionalidad |
f6 | argentina, inmigrante |
Paginación
cuitonline "gaitan" --pagina 2
Uso como biblioteca
Agregá cuitonline como dependencia de tu proyecto Python (por ejemplo con uv add cuitonline) y realizá búsquedas procesando los datos obtenidos.
search(criterio, pagina=1, filtros=None) → List[Persona]
import cuitonline
# Búsqueda básica
personas = cuitonline.search("Gaitan martin emilio")
for persona in personas:
print(f"Nombre: {persona.nombre}, CUIT: {persona.cuit}")
# Con filtros
juridicas = cuitonline.search("gaitan", filtros="persona:juridica")
# Acceder a detalles adicionales (hace un request extra por persona)
for persona in personas:
print(f"Dirección: {persona.direccion}, Género: {persona.genero}")
Busqueda — consultas paginadas
import cuitonline
b = cuitonline.Busqueda("gaitan martin", filtros="iva:iva_inscripto")
print(b.resultados) # página 1
b.siguiente()
print(b.resultados) # página 2
Persona — modelo de datos
Modelo Pydantic que representa a una persona:
| Campo | Tipo | Descripción |
|---|---|---|
nombre |
str |
Nombre completo tal como lo devuelve el sitio |
nombre_pila |
str | None |
Primer nombre (solo personas físicas, via nameparser) |
apellido |
str | None |
Apellido (solo personas físicas, via nameparser) |
cuit |
str |
Número de CUIT/CUIL |
dni |
int | None |
Inferido desde el CUIT (solo personas físicas) |
tipo_persona |
str |
"física" o "jurídica" |
genero |
str | None |
Género (requiere request extra) |
direccion |
str | None |
Dirección (requiere request extra) |
provincia |
str | None |
Provincia (requiere request extra) |
localidad |
str | None |
Localidad (requiere request extra) |
nacionalidad |
str | None |
Nacionalidad (requiere request extra) |
monotributo |
str | None |
Categoría de monotributo (requiere request extra) |
empleador |
bool | None |
Si es empleador (requiere request extra) |
Desarrollo y tests
Cloná el repo e instalá las dependencias de desarrollo con uv:
git clone https://github.com/mgaitan/cuitonline
cd cuitonline
uv sync --group dev
Correr los tests
Por defecto los tests usan cassettes VCR grabados (sin red):
uv run pytest
Para correr contra el sitio real (requiere internet):
uv run pytest --disable-recording
Para re-grabar los cassettes (útil si el sitio cambia su HTML):
uv run pytest --record-mode=all
Contribuciones
¡Las contribuciones son bienvenidas! Si encontrás problemas o querés agregar funcionalidades, abrí un issue o un pull request en el repositorio.
Licencia
MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cuitonline-0.3.0.tar.gz.
File metadata
- Download URL: cuitonline-0.3.0.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35000b67a3ea66a5465670d414dd9f1187359b42c5d60e6bacaf78bd9c589fb8
|
|
| MD5 |
8151d83c24c69ddad38bc21f78d18beb
|
|
| BLAKE2b-256 |
4b04312828f938cea1c37a4202d354d62014eac6d816e76ca15b762562ed34c0
|
File details
Details for the file cuitonline-0.3.0-py3-none-any.whl.
File metadata
- Download URL: cuitonline-0.3.0-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c486aa199fb275af43025501f5dd0774b26b557871f3df993f8cbe9d69ccfb44
|
|
| MD5 |
53cf709b1479e42ae2d1306369d8bedd
|
|
| BLAKE2b-256 |
320357fd5c13d1230d6d1ec2c312ec6e7384b0553814d5a7ccc94df1b79778af
|