API REST
Ejecuta análisis desde tu propio código. La API está disponible a partir del plan Pro, se autentica con una clave bearer y se paga con créditos.
Última actualización: 4 de septiembre de 2026
Autenticación
Crea una clave en Ajustes → Claves de API. La clave en texto plano se muestra una sola vez y no puede recuperarse después; solo se guarda su prefijo en forma legible. Envíala como token bearer en cada petición.
curl https://api.namescope.dev/v1/usage \
-H "Authorization: Bearer ns_live_..."Cada clave lleva un conjunto de ámbitos. Una petición que necesita un ámbito que la clave no tiene se rechaza con 403, de modo que una clave entregada a una integración de solo lectura no puede iniciar un análisis de pago.
| Ámbito | Permite |
|---|---|
| scans:write | POST /v1/scans — iniciar un análisis, lo que gasta créditos |
| scans:read | GET /v1/scans, GET /v1/scans/{id}, GET /v1/usage |
| reference:read | Los endpoints de consulta /v1/ref/* |
Créditos y cuota
Todos los análisis se pagan con créditos, los inicies aquí o en la aplicación web. Un análisis cuesta la suma de los módulos que ejecuta: 100 créditos con los cinco módulos por defecto y menos si dejas alguno fuera. Tu plan otorga créditos cada mes y los no usados se acumulan.
El cargo se registra antes de encolar cualquier trabajo, así que un análisis que no puede pagarse nunca se ejecuta ni deja ningún registro. Si el encolado falla después del cargo, los créditos se reembolsan automáticamente.
- Saldo insuficiente → 429 con un cuerpo de problema que explica el faltante
- Plan sin acceso a la API → 402 y una URL de mejora de plan
- Gasto de créditos desactivado en el espacio de trabajo → 403
Iniciar un análisis
POST /v1/scans encola un análisis y responde 202 de inmediato. El análisis es asíncrono: la respuesta lleva un scanId, no el resultado.
curl -X POST https://api.namescope.dev/v1/scans \
-H "Authorization: Bearer ns_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "tion studios",
"regions": ["TR", "EM", "US"],
"niceClasses": [9, 41],
"tlds": ["com", "io"],
"modules": ["trademark", "domain", "social"]
}'{ "scanId": "scn_...", "totalJobs": 12, "creditsSpent": 100, "balance": 1900 }| Campo | Obligatorio | Significado |
|---|---|---|
| name | sí | El nombre de marca a comprobar, de 2 a 64 caracteres |
| regions | no | Oficinas de marcas donde buscar. Por defecto, la de tu espacio de trabajo |
| niceClasses | no | Clases de productos/servicios 1–45. Reduce los resultados de marcas a conflictos reales |
| tlds | no | Extensiones de dominio, sin el punto inicial |
| modules | no | trademark, domain, social, dev, appstore |
| adapters | no | Limitar a adaptadores de fuente concretos por id |
| projectId | no | Archivar el análisis dentro de un proyecto existente |
| options.alternatives | no | Generar además nombres alternativos y analizarlos de forma ligera |
| options.similarSearch | no | Búsqueda difusa de marcas parecidas (Pro y superiores) |
Leer el resultado
Consulta GET /v1/scans/{id} hasta que status sea completed o completed_partial. Un análisis típico termina en menos de un minuto; consulta aproximadamente una vez por segundo y amplía el intervalo mientras esperas, para que un análisis largo no consuma tu límite de peticiones.
curl https://api.namescope.dev/v1/scans/scn_... \
-H "Authorization: Bearer ns_live_..."| status | Significa |
|---|---|
| queued | Aceptado, aún no se ha contactado con ninguna fuente |
| running | Algunas comprobaciones están hechas; doneJobs / totalJobs muestra el progreso |
| completed | Todas las comprobaciones han terminado |
| completed_partial | Terminado, pero al menos una fuente no pudo verificarse |
| failed | El análisis no pudo ejecutarse |
Cada entrada de checks es una fuente respondiendo sobre un objetivo, con su propio veredicto, el sourceUrl del que se leyó y la marca de tiempo fetchedAt. El objeto summary aparece cuando el análisis termina y contiene la puntuación, la banda de riesgo y el recuento de marcas.
| verdict | Significa |
|---|---|
| available | La fuente indica que el nombre está libre |
| taken | En uso — un identificador registrado, un dominio que resuelve |
| conflict | Una marca vigente que se solapa con las clases solicitadas |
| risky | En uso de una forma que puede o no bloquearte |
| unknown | La fuente no pudo verificarse |
| error | La fuente falló; errorCode indica cómo |
Datos de referencia
Cuatro endpoints de consulta describen lo que puede contener una petición de análisis. Necesitan el ámbito reference:read y no cuestan nada.
| Endpoint | Devuelve |
|---|---|
| GET /v1/ref/nice-classes | Las 45 clases de la clasificación de Niza |
| GET /v1/ref/regions | Oficinas de marcas en las que puede buscar un análisis |
| GET /v1/ref/tlds | Extensiones de dominio agrupadas por nivel |
| GET /v1/ref/adapters | Todos los adaptadores de fuente, con su módulo |
Errores y límites de peticiones
Los errores son documentos de problema RFC 9457 enviados como application/problem+json. El campo type identifica el fallo, detail lo explica y algunos llevan datos adicionales como upgradeUrl.
{
"type": "https://namescope.dev/errors/quota-exceeded",
"title": "Quota exceeded",
"status": 429,
"detail": "Not enough credits (balance 0, need 100). Top up or switch off a module to continue."
}| Estado | Cuándo |
|---|---|
| 400 | El cuerpo de la petición no pasó la validación |
| 401 | Clave ausente, desconocida, revocada o caducada |
| 402 | El plan no incluye la API pública |
| 403 | A la clave le falta un ámbito, o el gasto de créditos está desactivado |
| 404 | No existe ese análisis en este espacio de trabajo |
| 429 | Se superó el límite de peticiones o el saldo de créditos |
Los límites de peticiones se cuentan por clave sobre un minuto deslizante y se informan en cada respuesta, de modo que puedas reducir el ritmo antes de que te rechacen.
x-ratelimit-limit: 60
x-ratelimit-remaining: 58
x-ratelimit-reset: 41OpenAPI
La descripción completa legible por máquina se sirve en /v1/openapi.json. No requiere autenticación, así que puedes generar un cliente a partir de ella antes incluso de tener una clave.