Elige un paquete
Los SDK oficiales de código abierto llaman a la misma API V2 que se describe en estas guías. La versión 2.x de cada paquete usa la API V2. Instala la línea 2.x en los proyectos nuevos.
| Lenguaje | Paquete | Instalación | Requisitos |
|---|---|---|---|
| Python | genderapi (PyPI) | pip install "genderapi>=2,<3" | Python 3.9+ |
| JavaScript / TypeScript | genderapi (npm) | npm install genderapi@2 | Node.js 18+ |
| PHP | genderapi/genderapi (Packagist) | composer require "genderapi/genderapi:^2.0" | PHP 8.1+ |
| Ruby | genderapi (RubyGems) | gem install genderapi -v "~> 2.0" | Ruby 3.0+ |
| Java | com.github.GenderAPI:genderapi-java (JitPack) | implementation 'com.github.GenderAPI:genderapi-java:v2.0.0' | Java 11+ |
| R | genderapi (GitHub) | remotes::install_github("GenderAPI/genderapi-R", ref = "v2.0.0") | R 4.1+ |
| C# / .NET | GenderAPI (NuGet) | dotnet add package GenderAPI | .NET 8 o .NET Standard 2.0 |
Notas sobre los registros de paquetes
- Java: añade https://jitpack.io a tus repositorios. La misma versión también se publica en GitHub Packages como io.genderapi:genderapi, lo que requiere un token de GitHub con read:packages.
- R: CRAN todavía ofrece el paquete 1.x mientras la versión 2.0.0 está en revisión en CRAN. Instala la 2.0.0 desde la etiqueta de GitHub hasta que CRAN la publique.
- JavaScript: el paquete está pensado para entornos de ejecución del lado del servidor. No lo uses en código del navegador, porque expondría tu clave API.
Comportamiento común
- Cada cliente lee la clave API de GENDERAPI_API_KEY o la acepta en el constructor. Mantén la clave en tu servidor.
- Sin clave API, las solicitudes usan la prueba por IP compartida: 10 créditos por dirección IP cada 24 horas.
- Importar un paquete o crear un cliente no envía ninguna solicitud. Cada llamada a un método envía exactamente una solicitud.
- Ningún SDK reintenta una solicitud automáticamente. Un reintento es una operación nueva que se factura con normalidad, así que revisa primero el error y el estado de facturación.
- Los SDK no siguen redirecciones y el tiempo de espera predeterminado es de 10 segundos.
- Un resultado desconocido es una respuesta correcta: gender es null y la solicitud se factura con normalidad.
- Los errores exponen el estado HTTP, el código de error, el ID de la solicitud y, cuando existe, el valor de Retry-After.
Ejemplos de inicio rápido
Cada ejemplo envía una predicción de nombre y cuesta 1 crédito. Primero configura GENDERAPI_API_KEY en el entorno del servidor. El README de cada repositorio explica las solicitudes por lotes, las consultas de uso y la gestión de errores.
from genderapi import GenderAPI
client = GenderAPI() # reads GENDERAPI_API_KEY
result = client.name("Alice", country="US")
print(result.data.gender, result.data.result_status)
print(result.meta.usage.charged_credits)import { GenderAPI } from "genderapi";
const client = new GenderAPI(); // reads GENDERAPI_API_KEY
const { data, meta } = await client.name("Andrea", { country: "IT" });
console.log(data.gender, data.result_status, meta.usage.charged_credits);<?php
require __DIR__ . '/vendor/autoload.php';
use GenderApi\Client;
$client = new Client(); // reads GENDERAPI_API_KEY
$result = $client->name('Javier', country: 'ES');
echo $result->data->gender ?? 'unknown', ' ', $result->meta->usage->chargedCredits, "\n";require "genderapi"
client = GenderAPI::Client.new # reads ENV["GENDERAPI_API_KEY"]
result = client.name("Andrea", country: "IT")
puts result.data.gender, result.usage.charged_creditsimport io.genderapi.GenderApiClient;
import io.genderapi.model.GenderResponse;
GenderApiClient client = new GenderApiClient(); // reads GENDERAPI_API_KEY
GenderResponse response = client.name("Andrea", "IT");
System.out.println(response.getData().getGender());
System.out.println(response.getMeta().getUsage().getChargedCredits());library(genderapi)
res <- genderapi_name("Marta", country = "ES") # reads GENDERAPI_API_KEY
res$data$gender
res$meta$usage$charged_creditsusing GenderApi;
using var client = new GenderApiClient(); // reads GENDERAPI_API_KEY
GenderResponse res = await client.NameAsync("Alice", country: "US");
Console.WriteLine(res.Data!.Gender ?? "unknown");
Console.WriteLine(res.Meta!.Usage!.ChargedCredits);Mantén una integración V1 en 1.x
Los paquetes de la versión 1.x siguen disponibles para las integraciones V1 existentes y no están obsoletos. Fija la versión principal para que una actualización no instale la 2.x y migra cada integración cuando estés listo.
| Lenguaje | Instalación de 1.x |
|---|---|
| Python | pip install "genderapi<2" |
| JavaScript / TypeScript | npm install genderapi@1 |
| PHP | composer require "genderapi/genderapi:^1.0" |
| Ruby | gem install genderapi -v "~> 1.0" |
| Java | implementation 'com.github.GenderAPI:genderapi-java:v1.0.3' |
| R | remotes::install_version("genderapi", "1.0.3") |
Código fuente e incidencias
Cada SDK es de código abierto. Informa de errores o solicita funciones en el repositorio de GitHub correspondiente.