Resumen de NinjaPear
NinjaPear es una plataforma de inteligencia empresarial B2B centrada en la propiedad de datos y el abastecimiento ético. Como proveedor de primera parte, mantenemos un ecosistema sostenible de datos propietarios y legalmente verificados. Nuestra misión es proporcionar una infraestructura de datos confiable que permita a las empresas desarrollar y escalar aplicaciones y flujos de trabajo de valor agregado con confianza.
Para agentes de IA
¿Está desarrollando con un agente de codificación de IA? Use la versión en Markdown simple de esta documentación, optimizada para LLMs y herramientas de IA como Claude, Cursor y ChatGPT:
- Documentación compatible con LLM (Markdown) — referencia completa de la API en texto plano, lista para pegar o arrastrar y soltar en cualquier chat de IA
- llms.txt — índice ligero para el descubrimiento de agentes de IA
- Especificación OpenAPI 3.0 — esquema de API legible por máquina
AI Skill
El NinjaPear AI Skill proporciona a los agentes de codificación el conocimiento procedimental para escribir código de integración NinjaPear correcto en sus aplicaciones. Instálelo con un solo comando y su agente sabrá cómo autenticarse, elegir el endpoint correcto, generar código SDK y manejar casos extremos, todo con conciencia de costos integrada.
Requisitos previos — Una clave de API de NinjaPear de nubela.co/dashboard y Node.js 18+.
Instala la habilidad usando el npx skills CLI. Elija el comando para su agente:
Claude Code
npx skills add NinjaPear/ninjapear-skill -a claude-code
Codex
npx skills add NinjaPear/ninjapear-skill -a codex
Opencode
npx skills add NinjaPear/ninjapear-skill -a opencode
Qué ofrece la habilidad
Una vez instalada, la habilidad proporciona a su agente de código el conocimiento procedimental para trabajar correctamente con NinjaPear:
| Capacidad | Descripción |
|---|---|
| Configuración de autenticación | Configure claves API a través de variables de entorno e inicialización de SDK |
| Selección de punto final | Elija el punto final API NinjaPear adecuado con conocimiento de costos |
| Integración del SDK de Python | Generar código correcto usando el ninjapear Paquete de Python |
| Integración del SDK de JavaScript | Generar código correcto usando el ninjapear paquete npm |
| Manejo de paginación | Implementar paginación basada en cursor para puntos finales de lista |
| Manejo de límite de tarifa | Respete los límites de velocidad con una lógica adecuada de reintento y retroceso |
| Manejo de errores | Maneja todos los códigos de error de NinjaPear (401, 403, 404, 429, 500, 503) |
| Configuración de tiempo de espera | Establecer tiempos de espera adecuados para puntos finales de larga duración |
Explícamelo como si tuviera 5 años
- Obtenga una lista de clientes, inversores y socios de cualquier empresa con el Endpoint de listado de clientes.
- Encuentra competidores de cualquier empresa y por qué compiten con el Punto final de listado de competidores.
- Obtenga el catálogo de productos y servicios de una empresa con el Endpoint de listado de productos.
- Obtenga el logotipo de cualquier empresa de forma gratuita con el Endpoint de logotipo de empresa.
- Obtenga detalles completos de la empresa como industria, descripción, ejecutivos y ubicaciones de oficinas con el Endpoint de detalles de empresa.
- Obtenga el número de empleados de cualquier empresa con el Endpoint de conteo de empleados.
- Obtenga publicaciones de blog recientes y actualizaciones en redes sociales de cualquier empresa con el Endpoint de actualizaciones de empresa.
- Obtenga el historial completo de financiamiento e inversores de cualquier empresa con el Endpoint de financiamiento de empresa.
- Resuelve el nombre de una empresa a su URL de sitio web canónica con el Endpoint de consulta de sitio web.
- Encuentra el correo laboral de una persona a partir de su nombre y dominio de empresa con el endpoint de correo laboral.
- Consulte el perfil, historial laboral y educación de una persona a partir de su correo laboral con el Endpoint de perfil de persona.
- Encuentra personas similares a una persona objetivo — mismo rol en empresas competidoras — con el Endpoint de personas similares.
- Compruebe si una dirección de correo electrónico es desechable o pertenece a un proveedor de correo gratuito con el Endpoint de verificación de correo desechable.
- Monitoree empresas en busca de nuevas entradas de blog, tweets y cambios en el sitio web vía RSS con el API de Monitor.
- Consulte sus créditos de API restantes con el Endpoint para ver saldo de créditos.
Autenticación
curl "https://nubela.co/api/v1/customer/listing" \
-H "Authorization: Bearer YOUR_API_KEY"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.CustomerAPIApi(api_client)
response = api.get_customer_listing(website="https://example.com")
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
var bearerAuth = defaultClient.authentications["bearerAuth"];
bearerAuth.accessToken = "YOUR_API_KEY";
var api = new NinjaPear.CustomerAPIApi();
api.getCustomerListing("https://example.com").then(function (data) {
console.log(data);
});
La API de NinjaPear utiliza tokens de portador para autenticar usuarios. A cada usuario se le asigna una clave secreta generada aleatoriamente en la Sección API en el Panel.
El token bearer se inyecta en el Authorization encabezado.
Bibliotecas de cliente
Proporcionamos bibliotecas cliente oficiales para JavaScript y Python para facilitar la integración con la API de NinjaPear.
JavaScript (Node.js)
npm install ninjapear
# JavaScript library - see JavaScript tab
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
var bearerAuth = defaultClient.authentications["bearerAuth"];
bearerAuth.accessToken = "YOUR_API_KEY";
// Now you can use any API class
var companyApi = new NinjaPear.CompanyAPIApi();
var customerApi = new NinjaPear.CustomerAPIApi();
var productApi = new NinjaPear.ProductAPIApi();
var contactApi = new NinjaPear.ContactAPIApi();
var metaApi = new NinjaPear.MetaAPIApi();
Python
uv add ninjapear
# or: pip install ninjapear
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
# Use the client with a context manager
with ninjapear.ApiClient(configuration) as api_client:
company_api = ninjapear.CompanyAPIApi(api_client)
customer_api = ninjapear.CustomerAPIApi(api_client)
product_api = ninjapear.ProductAPIApi(api_client)
contact_api = ninjapear.ContactAPIApi(api_client)
meta_api = ninjapear.MetaAPIApi(api_client)
// Python library - see Python tab
Límite de velocidad
Los límites de velocidad se aplican por cuenta de producto y son compartidos por todas las claves API de ese producto.
Los endpoints de API de pago están limitados a 50 solicitudes por minuto.
Para la limitación de velocidad, los endpoints de gestión de fuentes y objetivos de Monitor cuentan como tráfico de API de pago incluso cuando el costo en créditos del endpoint es 0.
En períodos de alta carga, nuestro sistema puede ajustar los límites de frecuencia para todas las cuentas a fin de garantizar que nuestros servicios permanezcan accesibles para todos los usuarios.
Devolvemos HTTP 429 cuando se supera el límite de tasa. También puede recibir HTTP 429 si la capacidad de nuestra parte nos lo impide.
Debe gestionar los errores 429 y aplicar retroceso exponencial.
Las respuestas con límite de velocidad incluyen:
| Encabezado | Descripción |
|---|---|
Retry-After |
Segundos de espera antes de reintentar |
X-RateLimit-Limit |
Solicitudes máximas permitidas en el minuto actual |
X-RateLimit-Remaining |
Solicitudes restantes en el minuto actual |
X-RateLimit-Reset |
Marca de tiempo Unix de cuándo se restablece el minuto actual |
Límite de velocidad para API gratuitas
Para ofrecer APIs gratuitas de forma sostenible, el límite de solicitudes para APIs gratuitas depende de su plan de suscripción:
- Plan gratuito, de prueba o PAYG: 2 solicitudes/min
- Plan $49/mes: 20 solicitudes/min
- Plan $299/mes: 50 solicitudes/min
- Plan $899/mes: 100 solicitudes/min
- Plan $1899/mes: 300 solicitudes/min
El límite de tasa de la API gratuita aplica a Company Logo, Disposable Email Checker, View Credit Balance y el consumo de fuentes RSS.
Créditos
Cada solicitud válida requiere al menos 0.1 crédito para ser procesado, a menos que sea un endpoint de API gratuito.
Se consume un crédito si y solo si la solicitud se procesa correctamente.
Una solicitud exitosa es una solicitud que retorna con un 200 Código de estado HTTP.
Facturación de caché
Para endpoints con un use_cache parámetro, un producto no vuelve a ser cobrado cuando la misma solicitud normalizada se sirve desde la misma versión del registro en caché por la que el producto pagó anteriormente. La respuesta incluye X-NinjaPear-Credit-Cost: 0 para estos accesos repetidos a la caché.
use_cache=never siempre realiza una extracción nueva y cobra de forma normal. use_cache=if-recent solo califica para una repetición gratuita mientras el registro en caché esté dentro de la ventana de vigencia de ese endpoint.
Para endpoints paginados, el acceso repetido gratuito está limitado a las páginas ya pagadas con la misma consulta, filtros, cadena de cursor y page_size. Las páginas paginadas de pago se reproducen exactamente en accesos de caché repetidos, incluido el next_page valor. Las páginas posteriores que aún no han sido pagadas se cobran normalmente.
Tiempos de espera y tiempo de respuesta de la API
Los endpoints de la API de NinjaPear aceptan 30-60 segundos para completarse.
Se recomienda realizar solicitudes concurrentes a nuestro servicio API para maximizar el rendimiento. Consulte esta publicación sobre cómo puede maximizar el rendimiento.
Recomendamos un tiempo de espera de 100 segundos.
Errores
Estos son los errores comunes que puede devolver nuestra API:
| Código HTTP | ¿Se cobra? | Descripción |
|---|---|---|
| 400 | No | Parámetros no válidos proporcionados. Consulte la documentación y el cuerpo del mensaje para más información |
| 401 | No | API Key no válida |
| 403 | No | Se han agotado sus créditos |
| 404 | Sí | El recurso solicitado (p. ej., perfil de usuario, empresa) no pudo encontrarse |
| 410 | No | Esta API está obsoleta |
| 429 | No | Límite de velocidad alcanzado. Por favor, vuelve a intentarlo |
| 500 | No | Hay un error con nuestra API. Por favor Contáctenos para obtener asistencia |
| 503 | No | El enriquecimiento falló, por favor reintente. |
Nunca se le cobrará por solicitudes fallidas.
Garantía de compatibilidad con versiones anteriores
Nos comprometemos a garantizar que nuestra API mantenga compatibilidad con versiones anteriores, permitiéndole integrar con confianza. Nuestra garantía de compatibilidad con versiones anteriores significa que no introduciremos cambios que rompan la funcionalidad existente ni eliminaremos endpoints sin un período de obsolescencia.
Para ser específicos, no introduciremos cambios incompatibles de las siguientes maneras:
- No eliminaremos parámetros documentados ni atributos de respuesta.
- No cambiaremos el tipo de dato tal como está documentado en las respuestas de nuestra API.
Sin embargo, los siguientes no se consideran cambios disruptivos:
- Agregar atributos/parámetros a los endpoints de API sin previo aviso.
- Agregar encabezados adicionales de respuesta o solicitud a nuestros endpoints de API sin previo aviso.
Recomendamos ampliamente integrar nuestra API de manera que no falle si se introducen nuevos atributos de respuesta o encabezados.
Si realizamos cambios en nuestra API, proporcionaremos documentación clara y un aviso suficiente (30 días) para garantizar una transición sin inconvenientes. Los avisos se compartirán mediante correos electrónicos del boletín, publicaciones en Twitter/X y actualizaciones en nuestro blog.
API de cliente
Endpoint de listado de clientes
GET /api/v1/customer/listing
Costo: 1 crédito / solicitud + 2 crédito / empresa devuelta. Los créditos se cobran incluso cuando la solicitud devuelve un resultado vacío.
Obtenga una lista de clientes, inversores y socios/plataformas altamente probables de una empresa objetivo, categorizados por tipo de relación.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "website=https://www.stripe.com" \
"https://nubela.co/api/v1/customer/listing"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.CustomerAPIApi(api_client)
response = api.get_customer_listing(website="https://www.stripe.com")
print(response)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.CustomerAPIApi();
api.getCustomerListing("https://www.stripe.com").then(function (data) {
console.log(data);
});
Respuesta de ejemplo:
{
"customers": [
{
"name": "Apple",
"description": "Apple Inc. designs, manufactures, and markets smartphones, personal computers, tablets, wearables, and accessories worldwide.",
"tagline": "Think different.",
"website": "https://www.apple.com",
"company_logo_url": "https://nubela.co/api/v1/company/logo?website=https%3A%2F%2Fwww.apple.com",
"id": "abc123",
"industry": 45202030,
"specialties": ["Technology", "Consumer Electronics"],
"x_profile": "https://x.com/Apple"
}
],
"investors": [
{
"name": "Sequoia Capital",
"description": "Sequoia Capital is a venture capital firm focused on technology companies.",
"tagline": null,
"website": "https://www.sequoiacap.com",
"company_logo_url": "https://nubela.co/api/v1/company/logo?website=https%3A%2F%2Fwww.sequoiacap.com",
"id": "def456",
"industry": 40203010,
"specialties": ["Venture Capital", "Growth Equity"],
"x_profile": "https://x.com/sequoia"
}
],
"partner_platforms": [
{
"name": "Amazon Web Services",
"description": "Amazon Web Services provides cloud computing platforms and APIs.",
"tagline": null,
"website": "https://aws.amazon.com",
"company_logo_url": "https://nubela.co/api/v1/company/logo?website=https%3A%2F%2Faws.amazon.com",
"id": "ghi789",
"industry": 45101010,
"specialties": ["Cloud Computing", "Infrastructure"],
"x_profile": "https://x.com/awscloud"
}
],
"next_page": "https://nubela.co/api/v1/customer/listing?website=https://www.stripe.com&cursor=abc123"
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
sitio web |
Sí | La URL del sitio web o el nombre de la empresa objetivo. Una URL de sitio web (p. ej. https://www.stripe.com) es muy recomendable para mayor precisión. |
https://www.stripe.com |
cursor |
No | Cursor de paginación de next_page en una respuesta anterior |
abc123 |
page_size |
No | Número de resultados por página (1-200, predeterminado 200) | 50 |
quality_filter |
No | Filtra resultados de baja calidad (TLDs no deseados como .top, .xyz y sitios web inaccesibles). Configura en false para incluir todos los resultados. (por defecto: true) |
false |
use_cache |
No | Controla el uso de caché. No distingue mayúsculas de minúsculas. Valores: if-recent (usa datos en caché si el último rastreo fue hace menos de 29 días, de lo contrario enriquece en tiempo real), if-present (predeterminado; devuelve primero la caché, enriquece en tiempo real si no está disponible), if-present-only (devuelve solo la caché; devuelve 404 si no está disponible), never (siempre enriquecer en tiempo real). Los valores no válidos recurren al valor predeterminado del endpoint. |
if-present |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
customers |
Una lista de empresas que son probables clientes de la empresa objetivo. Entidades que pagan por el producto/servicio del objetivo. | Lista de objetos CustomerCompany |
investors |
Una lista de empresas que son inversores (fondos de capital de riesgo, fondos de capital privado, redes de ángeles) de la empresa objetivo. | Lista de objetos CustomerCompany |
partner_platforms |
Una lista de empresas que son socios, plataformas o proveedores de servicios que la empresa objetivo utiliza o integra (stack tecnológico, medios, agencias). | Lista de objetos CustomerCompany |
next_page |
El URI de la API que sirve como cursor para la paginación. Seguir esta URL con su clave de API llevará a la siguiente página de resultados. Será nulo en la página final. | https://nubela.co/api/v1/customer/list?... |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | No se pudo extraer suficiente información sobre la empresa objetivo |
| 404 | No | No se encontraron datos en caché al use_cache=if-present-only |
ClienteEmpresa
| Clave | Descripción | Ejemplo |
|---|---|---|
name |
Nombre de la empresa | "Apple" |
description |
Una breve descripción de la empresa | "Apple Inc. designs, manufactures, and markets smartphones..." |
tagline |
Eslogan o lema de la empresa | "Think different." |
sitio web |
URL del sitio web de la empresa | "https://www.apple.com" |
company_logo_url |
URL al API de logotipo de empresa para esta empresa. Desarrollado por Endpoint de logotipo de empresa. Autentícate con tu bearer token. null si no tiene sitio web. |
"https://nubela.co/api/v1/company/logo?website=https%3A%2F%2Fwww.apple.com" |
id |
Identificador único | "abc123" |
industry |
Código de industria GICS de 8 dígitos | 45202030 |
specialties |
Lista de especialidades de la empresa | ["Technology"] |
x_profile |
URL del perfil de X (Twitter) | "https://x.com/Apple" |
Nota sobre
company_logo_url: Esta URL funciona con el Endpoint de logotipo de empresa. Autentícate con tu Bearer token (el mismo de la API principal). Estos son enlaces temporales — el enfoque recomendado es descargar la imagen a través de la URL en cuanto se reciba la respuesta y alojarla en tu propio servidor.
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 10 |
X-NinjaPear-Cache-Age-Days |
Antigüedad de los datos devueltos en días completos. 0 cuando se devuelven datos actualizados desde el enriquecimiento en vivo. |
12 |
API de competidor
Punto final de listado de competidores
GET /api/v1/competitor/listing
Costo: 2 créditos / competidor devuelto. Mínimo 5 créditos por solicitud, cobrados incluso cuando no se encuentran resultados.
Obtenga una lista de empresas competidoras de una empresa objetivo, junto con el motivo de la competencia.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "website=https://www.stripe.com" \
"https://nubela.co/api/v1/competitor/listing"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.CompetitorAPIApi(api_client)
response = api.get_competitor_listing(website="https://www.stripe.com")
print(response)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.CompetitorAPIApi();
api.getCompetitorListing("https://www.stripe.com").then(function (data) {
console.log(data);
});
Respuesta de ejemplo:
{
"competitors": [
{
"company_details_url": "https://nubela.co/api/v1/company/details?website=https://www.adyen.com",
"website": "https://www.adyen.com",
"competition_reason": "product_overlap"
},
{
"company_details_url": "https://nubela.co/api/v1/company/details?website=https://squareup.com",
"website": "https://squareup.com",
"competition_reason": "product_overlap"
},
{
"company_details_url": "https://nubela.co/api/v1/company/details?website=https://www.checkout.com",
"website": "https://www.checkout.com",
"competition_reason": "organic_keyword_overlap"
}
]
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
sitio web |
Sí | La URL del sitio web o el nombre de la empresa objetivo. Una URL de sitio web (p. ej. https://www.stripe.com) es muy recomendable para mayor precisión. |
https://www.stripe.com |
use_cache |
No | Controla el uso de caché. No distingue mayúsculas de minúsculas. Valores: if-recent (usa datos en caché si el último rastreo fue hace menos de 29 días, de lo contrario enriquece en tiempo real), if-present (predeterminado; devuelve primero la caché, enriquece en tiempo real si no está disponible), if-present-only (devuelve solo la caché; devuelve 404 si no está disponible), never (siempre enriquecer en tiempo real). Los valores no válidos recurren al valor predeterminado del endpoint. |
if-present |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
competitors |
Una lista de empresas competidoras de la empresa objetivo. | Lista de CompetidorEmpresa objetos |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | No se pudo extraer suficiente información sobre la empresa objetivo |
| 404 | No | No se encontraron datos en caché al use_cache=if-present-only |
CompetidorEmpresa
| Clave | Descripción | Ejemplo |
|---|---|---|
company_details_url |
URL al endpoint de detalles de empresa para este competidor. Autentíquese con su bearer token para obtener los detalles completos de la empresa. | "https://nubela.co/api/v1/company/details?website=https://www.adyen.com" |
sitio web |
URL del sitio web de la empresa | "https://www.adyen.com" |
competition_reason |
Por qué esta empresa se considera un competidor. Uno de los valores del campo Motivo de competencia enum. | "product_overlap" |
Enumeración de motivo de competencia
| Valor | Descripción |
|---|---|
organic_keyword_overlap |
Ambas empresas posicionan para palabras clave de búsqueda orgánica similares |
product_overlap |
Ambas empresas ofrecen productos o servicios similares |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 4 |
X-NinjaPear-Cache-Age-Days |
Antigüedad de los datos devueltos en días completos. 0 cuando se devuelven datos actualizados desde el enriquecimiento en vivo. |
12 |
API de productos
Endpoint de listado de productos
GET /api/v1/product/listing
Costo: 3 créditos / solicitud. Los créditos se cobran incluso si no se encuentran productos para una empresa válida.
Obtenga una lista de productos y servicios ofrecidos por una empresa objetivo.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "website=https://matterport.com" \
"https://nubela.co/api/v1/product/listing"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.ProductAPIApi(api_client)
response = api.get_product_listing(website="https://matterport.com")
print(response)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.ProductAPIApi();
api.getProductListing("https://matterport.com").then(function (data) {
console.log(data);
});
Respuesta de ejemplo:
{
"products": [
{
"name": "Matterport Digital Twin Platform",
"tagline": "Capture, share, and collaborate in immersive 3D.",
"description": "Matterport's 3D digital twin platform allows users to create immersive 3D models of physical spaces, enabling virtual tours, detailed measurements, and remote collaboration. It helps optimize space planning, manage costs, and streamline project management across various industries.",
"categories": [
"3D Modeling",
"Digital Twins",
"Virtual Tours",
"Real Estate",
"Construction",
"Facilities Management"
],
"tags": [],
"structured_features": {
"3d_insights": true,
"centralized_management": true,
"workplace_planning": true,
"risk_mitigation": true,
"bim_cad_generation": true,
"qa_qc_monitoring": true,
"asset_documentation": true,
"space_planning": true,
"capital_project_execution": true,
"remote_oversight": true,
"dimensionally_accurate_data": true,
"secure_cloud_hosting": true
},
"freeform_features": [
"immersive exploration from the palm of your hand",
"cut the time and cost of workplace planning",
"accelerating your ability to execute",
"unmatched 3D visual clarity"
],
"pricing": {
"model": "unknown",
"starts_at_monthly_usd": null,
"tiers": []
},
"integrations": [
"Procore",
"Autodesk",
"AWS"
],
"platforms": [
"web"
],
"source_urls": [
"http://matterport.com/",
"https://go.matterport.com/corporate-occupiers.html",
"https://matterport.com/solutions/design-construction",
"http://matterport.com/solutions/corporate-real-estate",
"http://matterport.com/contact-sales"
]
}
]
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
sitio web |
Sí | La URL del sitio web o el nombre de la empresa objetivo. Una URL de sitio web (p. ej. https://matterport.com) es muy recomendable para mayor precisión. |
https://matterport.com |
use_cache |
No | Controla el uso de caché. No distingue mayúsculas de minúsculas. Valores: if-recent (predeterminado; usa datos en caché si el último rastreo fue hace menos de 29 días, de lo contrario enriquece en tiempo real), if-present (devuelve primero la caché, enriquece en tiempo real si no está disponible), if-present-only (devuelve solo la caché; devuelve 404 si no está disponible), never (siempre enriquecer en tiempo real). Los valores no válidos recurren al valor predeterminado del endpoint. |
if-recent |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
products |
Una lista de productos y servicios ofrecidos por la empresa objetivo. Devuelve una lista vacía cuando la empresa es válida pero no se detectan productos ni servicios. | Lista de Objeto de producto objetos |
Objeto de producto
| Clave | Descripción | Ejemplo |
|---|---|---|
name |
Nombre completo del producto o servicio. Los productos, SKUs, plataformas u ofertas con precio independiente que tengan nombre propio se devuelven como filas separadas. | "Matterport Digital Twin Platform" |
tagline |
Eslogan de una línea del producto cuando esté disponible. | "Capture, share, and collaborate in immersive 3D." |
description |
De una a tres oraciones que describan qué hace el producto. | "Matterport's 3D digital twin platform allows users to create immersive 3D models of physical spaces..." |
categories |
Categorías de producto, incluidas la clase de producto, el sector o los agrupamientos por caso de uso admitidos por el sitio web. | ["3D Modeling", "Digital Twins"] |
tags |
Atributos cortos de producto, estilos de implementación, etiquetas tecnológicas u otras etiquetas de búsqueda. | ["ai-powered", "self-hosted"] |
structured_features |
Mapa de características con claves canónicas y valores booleanos, de cadena o numéricos. Las claves varían según la categoría del producto. | { "secure_cloud_hosting": true } |
freeform_features |
Frases de características que no se ajustan a una clave canónica. | ["unmatched 3D visual clarity"] |
pricing |
Modelo de precios, precio inicial y niveles cuando los precios están disponibles. null cuando no se puede determinar el precio. |
Objeto de precios |
integrations |
Nombres de productos, plataformas o servicios con los que este producto se integra. | ["Procore", "Autodesk", "AWS"] |
platforms |
Plataformas donde el producto está disponible, como web, ios, android, macos, windows, linux, api, cli, o chrome-extension. |
["web"] |
source_urls |
URLs del sitio web de la empresa objetivo donde se encontraron los datos del producto. | ["https://matterport.com/solutions/design-construction"] |
Objeto de precios
| Clave | Descripción | Ejemplo |
|---|---|---|
model |
Modelo de precios. Uno de los valores del Enum de modelo de precios. | "subscription" |
starts_at_monthly_usd |
Precio mensual más bajo en USD encontrado en el sitio web de la empresa. null cuando es desconocido o no está disponible. |
29.0 |
tiers |
Niveles de precios encontrados en el sitio web de la empresa. | Lista de Objeto PricingTier objetos |
Objeto PricingTier
| Clave | Descripción | Ejemplo |
|---|---|---|
name |
Nombre del nivel de precios. | "Business" |
price_usd_monthly |
Precio mensual en USD para este nivel. null cuando es desconocido. |
99.0 |
features |
Características listadas para este nivel de precios. | ["SSO", "Audit logs"] |
Enum de modelo de precios
| Valor | Descripción |
|---|---|
freemium |
Plan gratuito con actualizaciones de pago |
subscription |
Suscripción de pago recurrente |
one-time |
Compra única |
payg |
Precios de pago por uso |
enterprise |
Precios empresariales personalizados |
unknown |
Los precios existen o pueden existir, pero el modelo no está claro |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 3 |
X-NinjaPear-Cache-Age-Days |
Antigüedad de los datos devueltos en días completos. 0 cuando se devuelven datos actualizados desde el enriquecimiento en vivo. |
12 |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | El sitio web no es accesible o la entrada no es válida |
| 404 | No | No se encontraron datos en caché al use_cache=if-present-only |
| 503 | No | La capacidad de rastreo está temporalmente saturada. Reintente después de un breve intervalo. |
API de empresa
Endpoint de logotipo de empresa
GET /api/v1/company/logo
Costo: 0 crédito / solicitud exitosa. (GRATIS)
Recupera el logotipo de una empresa a partir de su URL de sitio web. Devuelve el logotipo como imagen PNG (128x128).
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "website=https://www.stripe.com" \
"https://nubela.co/api/v1/company/logo" \
--output logo.png
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.CompanyAPIApi(api_client)
logo_data = api.get_company_logo(website="https://www.stripe.com")
# Save the logo image
with open("logo.png", "wb") as f:
f.write(logo_data)
var NinjaPear = require("ninjapear");
var fs = require("fs");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.CompanyAPIApi();
api.getCompanyLogo("https://www.stripe.com").then(function (data) {
// Save the logo image
fs.writeFileSync("logo.png", Buffer.from(data));
});
Respuesta de ejemplo:
Un binario de imagen PNG sin procesar (Content-Type: image/png).
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
sitio web |
Sí | La URL del sitio web de la empresa objetivo | https://www.stripe.com |
Respuesta
A 200 la respuesta devuelve el logotipo como una imagen PNG sin procesar con Content-Type: image/png.
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 404 | No | No se encontró logotipo para el dominio indicado |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 0 |
Endpoint de detalles de empresa
GET /api/v1/company/details
Costo: 3 créditos / solicitud (base). Agrega 2 créditos cuando include_employee_count=true. Agrega 1 crédito cuando follower_count=include. Agrega 2 créditos cuando addresses=best-effort-exhaustive. Total máximo: 8 créditos. Los créditos se cobran incluso si no se encuentran datos.
Recupera los detalles de una empresa a partir de su URL. Devuelve metadatos de la empresa, incluidos descripción, sector, URL de redes sociales, el equipo directivo actual y más.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "website=https://www.stripe.com" \
"https://nubela.co/api/v1/company/details"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.CompanyAPIApi(api_client)
details = api.get_company_details(website="https://www.stripe.com")
print(details)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.CompanyAPIApi();
api.getCompanyDetails("https://www.stripe.com").then(function (data) {
console.log(data);
});
Respuesta de ejemplo (empresa privada):
{
"websites": ["https://stripe.com", "https://stripe.dev"],
"description": "Stripe is a technology company that builds economic infrastructure for the internet.",
"industry": 45102010,
"company_type": "PRIVATELY_HELD",
"founded_year": 2010,
"specialties": ["Payments", "Financial Services", "APIs"],
"name": "Stripe",
"tagline": "Financial infrastructure for the internet",
"logo_url": "https://nubela.co/api/v1/company/logo?website=https://stripe.com",
"cover_pic_url": "https://example.com/stripe-cover.png",
"facebook_url": "https://facebook.com/stripe",
"twitter_url": "https://twitter.com/stripe",
"instagram_url": null,
"employee_count": 8000,
"addresses": [
{
"address_type": "HEADQUARTERS",
"line1": "354 Oyster Point Blvd",
"line2": null,
"city": "South San Francisco",
"state": "CA",
"postal_code": "94080",
"country_code": "US",
"country": "United States",
"is_primary": true
}
],
"executives": [
{
"name": "Patrick Collison",
"title": "Chief Executive Officer",
"role": "CEO",
"person_profile_url": "https://nubela.co/api/v2/employee/profile?employer_website=https%3A%2F%2Fstripe.com&first_name=Patrick&last_name=Collison"
}
],
"similar_companies": "https://nubela.co/api/v1/competitor/listing?website=https%3A%2F%2Fstripe.com",
"updates": "https://nubela.co/api/v1/company/updates?website=https%3A%2F%2Fstripe.com",
"funding": "https://nubela.co/api/v1/company/funding?website=https%3A%2F%2Fstripe.com",
"public_listing": null,
"follower_count": 272190,
"following_count": 555
}
Respuesta de ejemplo (empresa pública):
{
"websites": ["https://apple.com"],
"description": "Apple Inc. designs, manufactures, and markets smartphones, personal computers, tablets, wearables, and accessories worldwide.",
"industry": 45202030,
"company_type": "PUBLIC_COMPANY",
"founded_year": 1976,
"specialties": ["Consumer Electronics", "Software", "Services"],
"name": "Apple",
"tagline": "Think different",
"logo_url": "https://nubela.co/api/v1/company/logo?website=https://apple.com",
"cover_pic_url": "https://example.com/apple-cover.png",
"facebook_url": "https://facebook.com/apple",
"twitter_url": "https://twitter.com/apple",
"instagram_url": "https://instagram.com/apple",
"employee_count": 164000,
"addresses": [
{
"address_type": "HEADQUARTERS",
"line1": "One Apple Park Way",
"line2": null,
"city": "Cupertino",
"state": "CA",
"postal_code": "95014",
"country_code": "US",
"country": "United States",
"is_primary": true
}
],
"executives": [
{
"name": "Tim Cook",
"title": "Chief Executive Officer",
"role": "CEO",
"person_profile_url": "https://nubela.co/api/v2/employee/profile?employer_website=https%3A%2F%2Fapple.com&first_name=Tim&last_name=Cook"
}
],
"similar_companies": "https://nubela.co/api/v1/competitor/listing?website=https%3A%2F%2Fapple.com",
"updates": "https://nubela.co/api/v1/company/updates?website=https%3A%2F%2Fapple.com",
"funding": "https://nubela.co/api/v1/company/funding?website=https%3A%2F%2Fapple.com",
"follower_count": 9500000,
"following_count": 1,
"public_listing": {
"stock_symbol": "AAPL",
"ipo_date": "1980-12-12",
"isin": "US0378331005",
"figi": "BBG000B9XRY4",
"cusip": "037833100",
"lei": "HWUPKR0MPOU8FGXBT394",
"cik": "0000320193",
"sic_code": "3571",
"revenue_usd": 383285000000,
"revenue_captured_at": "2024-09-28",
"ebitda_usd": 134000000000,
"ebitda_captured_at": "2024-09-28"
}
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
sitio web |
Sí | La URL del sitio web o el nombre de la empresa objetivo. Una URL de sitio web (p. ej. https://www.stripe.com) es muy recomendable para mayor precisión. |
https://www.stripe.com |
include_employee_count |
No | Obtiene datos actualizados del número de empleados mediante búsqueda web. Agrega 2 créditos al costo de la solicitud. Valores válidos: true, false (predeterminado). |
true |
follower_count |
No | Incluir conteos de seguidores y seguidos en Twitter/X. Agrega 1 crédito al costo de la solicitud. Valores válidos: include. Omite o pasa cualquier otro valor para excluir. |
include |
addresses |
No | Modo de detalle de dirección. Por defecto hq-only. Usa best-effort-exhaustive para obtener y conservar, en la medida de lo posible, las direcciones físicas de oficinas corporativas a nivel global. Agrega 2 créditos al costo de la solicitud. |
best-effort-exhaustive |
use_cache |
No | Controla el uso de caché. No distingue mayúsculas de minúsculas. Valores: if-recent (predeterminado; usa datos en caché si el último rastreo fue hace menos de 29 días, de lo contrario enriquece en tiempo real), if-present (devuelve primero la caché, enriquece en tiempo real si no está disponible), if-present-only (devuelve solo la caché; devuelve 404 si no está disponible), never (siempre enriquecer en tiempo real). Los valores no válidos recurren al valor predeterminado del endpoint. |
if-recent |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
websites |
Lista de todas las URL del sitio web de la empresa | ["https://stripe.com", "https://stripe.dev"] |
description |
Una breve descripción de la empresa | "Stripe is a technology company..." |
industry |
Código de industria GICS de 8 dígitos | 45102010 |
company_type |
Tipo de empresa (PUBLIC_COMPANY, PRIVATELY_HELD, GOVERNMENT_AGENCY, NON_PROFIT, EDUCATIONAL, PARTNERSHIP, SELF_EMPLOYED, SELF_OWNED) | "PRIVATELY_HELD" |
founded_year |
Año de fundación de la empresa | 2010 |
specialties |
Lista de especialidades de la empresa | ["Payments", "Financial Services"] |
name |
Nombre de la empresa | "Stripe" |
tagline |
Eslogan o lema de la empresa | "Financial infrastructure for the internet" |
logo_url |
URL a la Endpoint de logotipo de empresa. Autentícate con tu token bearer de API key. | "https://nubela.co/api/v1/company/logo?website=https://stripe.com" |
cover_pic_url |
URL a la imagen de portada/banner de la empresa | "https://example.com/cover.png" |
facebook_url |
URL del perfil de Facebook | "https://facebook.com/stripe" |
twitter_url |
URL del perfil de Twitter/X | "https://twitter.com/stripe" |
instagram_url |
URL de perfil de Instagram | null |
employee_count |
Número estimado de empleados | 8000 |
employee_count_range_min |
Límite inferior del rango de cantidad de empleados. Solo presente cuando include_employee_count=true. |
7500 |
employee_count_range_max |
Límite superior del rango de recuento de empleados. Solo presente cuando include_employee_count=true. |
8500 |
follower_count |
Número de seguidores en Twitter/X. Solo presente cuando follower_count=include. |
272190 |
following_count |
Número de cuentas de Twitter/X seguidas. Solo presente cuando follower_count=include. |
555 |
addresses |
Lista de direcciones de la empresa. Por defecto solo la sede central, a menos que addresses=best-effort-exhaustive se solicita. |
[Objeto de dirección] |
executives |
Lista de ejecutivos y miembros del consejo de la empresa | [Objeto Executive] |
similar_companies |
URL a la Endpoint de listado de competidores. Autentícate con tu bearer token para obtener los competidores. | "https://nubela.co/api/v1/competitor/listing?website=https%3A%2F%2Fstripe.com" |
updates |
URL a la Endpoint de actualizaciones de empresa. Autentícate con tu bearer token para obtener las actualizaciones. | "https://nubela.co/api/v1/company/updates?website=https%3A%2F%2Fstripe.com" |
funding |
URL a la Endpoint de financiamiento de empresa. Autentícate con tu bearer token para obtener el historial de financiamiento. | "https://nubela.co/api/v1/company/funding?website=https%3A%2F%2Fstripe.com" |
public_listing |
Datos de empresas públicas, incluida información bursátil y financiera. null para empresas privadas. |
Objeto PublicListing |
Objeto de dirección
| Clave | Descripción | Ejemplo |
|---|---|---|
address_type |
Tipo de dirección (HEADQUARTERS, REGISTERED, BRANCH, MAILING, OTHER) | "HEADQUARTERS" |
line1 |
Dirección, línea 1 | "354 Oyster Point Blvd" |
line2 |
Dirección, línea 2 | null |
city |
Nombre de la ciudad | "South San Francisco" |
state |
Estado, provincia o región | "CA" |
postal_code |
Código postal | "94080" |
country_code |
Código de país ISO 3166-1 alpha-2 | "US" |
country |
Nombre completo del país | "United States" |
is_primary |
Si esta es la dirección principal | true |
Objeto Executive
| Clave | Descripción | Ejemplo |
|---|---|---|
name |
Nombre completo del ejecutivo | "Patrick Collison" |
title |
Cargo | "Chief Executive Officer" |
role |
Tipo de rol normalizado (CEO, CFO, COO, CTO, CMO, PRESIDENT, VICE_PRESIDENT, DIRECTOR, BOARD_MEMBER, CHAIRMAN, FOUNDER, OTHER) | "CEO" |
person_profile_url |
URL precargada al Endpoint de perfil de persona. Autentícate con tu bearer token para obtener el perfil del ejecutivo. null cuando falta el nombre de pila o el sitio web de la empresa. |
"https://nubela.co/api/v2/employee/profile?employer_website=https%3A%2F%2Fstripe.com&first_name=Patrick&last_name=Collison" |
Objeto PublicListing
Este objeto solo está presente (no nulo) para empresas públicas. Para empresas privadas, public_listing será null.
| Clave | Descripción | Ejemplo |
|---|---|---|
stock_symbol |
Símbolo de cotización bursátil | "AAPL" |
ipo_date |
Fecha de IPO en formato ISO | "1980-12-12" |
isin |
Número Internacional de Identificación de Valores | "US0378331005" |
figi |
Identificador Global de Instrumento Financiero | "BBG000B9XRY4" |
cusip |
Identificador CUSIP | "037833100" |
lei |
Identificador de Entidad Legal | "HWUPKR0MPOU8FGXBT394" |
cik |
Clave de índice central SEC | "0000320193" |
sic_code |
Código de clasificación industrial estándar SEC | "3571" |
revenue_usd |
Ingresos anuales en USD | 383285000000 |
revenue_captured_at |
Fecha en que se capturaron los datos de ingresos (formato ISO) | "2024-09-28" |
ebitda_usd |
EBITDA en USD | 134000000000 |
ebitda_captured_at |
Fecha en que se capturaron los datos de EBITDA (formato ISO) | "2024-09-28" |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 2 |
X-NinjaPear-Cache-Age-Days |
Antigüedad de los datos devueltos en días completos. 0 cuando se devuelven datos actualizados desde el enriquecimiento en vivo. |
12 |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | El sitio web no es accesible |
| 404 | No | No se encontraron datos en caché al use_cache=if-present-only |
| 404 | Sí | No se pudieron extraer datos de empresa del sitio web |
Endpoint de conteo de empleados
GET /api/v1/company/employee-count
Costo: 2 créditos / solicitud exitosa.
Recupera el rango de número de empleados de una empresa a partir de su URL.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "website=https://www.stripe.com" \
"https://nubela.co/api/v1/company/employee-count"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.CompanyAPIApi(api_client)
response = api.get_employee_count(website="https://www.stripe.com")
print(response)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.CompanyAPIApi();
api.getEmployeeCount("https://www.stripe.com").then(function (data) {
console.log(data);
});
Respuesta de ejemplo:
{
"employee_count": 3500
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
sitio web |
Sí | La URL del sitio web o el nombre de la empresa objetivo. Una URL de sitio web (p. ej. https://www.stripe.com) es muy recomendable para mayor precisión. |
https://www.stripe.com |
use_cache |
No | Controla el uso de caché. No distingue mayúsculas de minúsculas. Valores: if-recent (predeterminado; usa datos en caché si el último rastreo fue hace menos de 29 días, de lo contrario enriquece en tiempo real), if-present (devuelve primero la caché, enriquece en tiempo real si no está disponible), if-present-only (devuelve solo la caché; devuelve 404 si no está disponible), never (siempre enriquecer en tiempo real). Los valores no válidos recurren al valor predeterminado del endpoint. |
if-recent |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
employee_count |
Número estimado de empleados | 3500 |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 2 |
X-NinjaPear-Cache-Age-Days |
Antigüedad de los datos devueltos en días completos. 0 cuando se devuelven datos actualizados desde el enriquecimiento en vivo. |
12 |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 404 | No | No se encontraron datos de número de empleados para el sitio web indicado |
| 404 | No | No se encontraron datos en caché al use_cache=if-present-only |
Endpoint de actualizaciones de empresa
GET /api/v1/company/updates
Costo: 2 créditos / solicitud.
Recupera las últimas publicaciones de blog y actualizaciones de X/Twitter de una empresa. Devuelve una línea de tiempo mixta de publicaciones recientes de blog y X, ordenadas por marca de tiempo.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "website=https://www.stripe.com" \
"https://nubela.co/api/v1/company/updates"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.CompanyAPIApi(api_client)
response = api.get_company_updates(website="https://www.stripe.com")
print(response)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.CompanyAPIApi();
api.getCompanyUpdates("https://www.stripe.com").then(function (data) {
console.log(data);
});
Respuesta de ejemplo
{
"blogs": ["https://stripe.com/blog/feed.rss"],
"x_profile": "https://x.com/stripe",
"youtube_channels": ["https://www.youtube.com/channel/UCdog0Ap82jpFvSnxorxF_lA"],
"updates": [
{
"url": "https://stripe.com/blog/annual-letter-2024",
"title": "Stripe's annual letter",
"description": "A look back at what we built in 2024 and what's ahead.",
"image_url": null,
"timestamp": "2025-03-01T12:00:00+00:00",
"source": "blog"
},
{
"url": "https://x.com/stripe/status/1234567890",
"title": "We just launched a new feature...",
"description": "We just launched a new feature that makes payments even easier. Check it out!",
"image_url": "https://pbs.twimg.com/media/example.jpg",
"timestamp": "2025-02-28T18:30:00+00:00",
"source": "x"
},
{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "How Stripe scales payments",
"description": "A deep dive into the infrastructure behind Stripe payments.",
"image_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
"timestamp": "2025-02-20T09:00:00+00:00",
"source": "youtube"
}
],
"timestamp": "2025-03-16T10:00:00+00:00"
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
sitio web |
Sí | La URL del sitio web o el nombre de la empresa objetivo. Una URL de sitio web (p. ej. https://www.stripe.com) es muy recomendable para mayor precisión. |
https://www.stripe.com |
use_cache |
No | Controla el uso de caché. No distingue mayúsculas de minúsculas. Valores: if-recent (predeterminado; usa datos en caché si el último rastreo fue hace menos de 1 día, de lo contrario enriquece en tiempo real), if-present (devuelve primero la caché, enriquece en tiempo real si no está disponible), if-present-only (devuelve solo la caché; devuelve 404 si no está disponible), never (siempre enriquecer en tiempo real). Los valores no válidos recurren al valor predeterminado del endpoint. |
if-recent |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
blogs |
Lista de URL de fuentes RSS del blog (si se detectó RSS) o URL de páginas del blog | ["https://stripe.com/blog/feed.rss"] |
x_profile |
URL del perfil de X/Twitter, o null si no se encontró |
"https://x.com/stripe" |
youtube_channels |
Lista de URL de canales de YouTube encontrados para la empresa, o vacío si no se encontró ninguno | ["https://www.youtube.com/channel/UCdog0Ap82jpFvSnxorxF_lA"] |
updates |
Lista de objetos de actualización (entradas de blog, tweets y videos de YouTube mezclados), ordenados por marca de tiempo descendente. | Ver Objeto de actualización |
timestamp |
Marca de tiempo UTC de cuándo se obtuvieron estos datos | "2025-03-16T10:00:00+00:00" |
Objeto de actualización
| Clave | Descripción | Ejemplo |
|---|---|---|
url |
URL de la publicación del blog, tweet o video de YouTube | "https://stripe.com/blog/example" |
title |
Título de la publicación (primeros 80 caracteres para tweets) | "Stripe's annual letter" |
description |
Descripción de la publicación, texto del tweet o descripción del video (hasta 500 caracteres para blogs) | "A look back at..." |
image_url |
URL de imagen (contenido multimedia del tweet o miniatura de video), o null |
"https://pbs.twimg.com/media/example.jpg" |
timestamp |
Marca de tiempo de publicación ISO 8601, o null si se desconoce |
"2025-03-01T12:00:00+00:00" |
source |
Tipo de fuente de la actualización | "blog", "x", o "youtube" |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 2 |
X-NinjaPear-Cache-Age-Days |
Antigüedad de los datos devueltos en días completos. 0 cuando se devuelven datos actualizados desde el enriquecimiento en vivo. |
1 |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | Parámetro de sitio web faltante o inválido |
| 403 | No | Créditos insuficientes |
| 404 | No | No se encontraron datos en caché al use_cache=if-present-only |
Endpoint de financiamiento de empresa
GET /api/v1/company/funding
Costo: 2 créditos / solicitud (base) + 1 crédito por inversor único devuelto. El cargo base sigue aplicando cuando no se encuentran datos de financiamiento (ver error_code: "no_funding_data" a continuación).
Recupera el historial de financiamiento de una empresa a partir de su URL. Devuelve el total de fondos recaudados, rondas de financiamiento individuales con fechas e importes, e inversores participantes con sus sitios web.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--max-time 300 \
--data-urlencode "website=https://www.stripe.com" \
"https://nubela.co/api/v1/company/funding"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.CompanyAPIApi(api_client)
# Set a generous read timeout — calls can take up to 5 minutes.
response = api.get_company_funding(website="https://www.stripe.com", _request_timeout=300)
print(response)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
defaultClient.timeout = 300000; // 5 minutes
var api = new NinjaPear.CompanyAPIApi();
api.getCompanyFunding("https://www.stripe.com").then(function (data) {
console.log(data);
});
Respuesta de ejemplo
{
"website": "stripe.com",
"total_funds_raised_usd": 9810000000,
"credit_cost": 7,
"funding_rounds": [
{
"round_type": "SECONDARY_SALE",
"date": "2026-02-01",
"amount_usd": null,
"investors": [
{
"name": "Thrive Capital",
"website": "thrivecap.com",
"type": "company",
"amount_usd": null
},
{
"name": "Coatue",
"website": "coatue.com",
"type": "company",
"amount_usd": null
},
{
"name": "Andreessen Horowitz",
"website": "a16z.com",
"type": "company",
"amount_usd": null
}
]
},
{
"round_type": "SERIES_I",
"date": "2024-04-01",
"amount_usd": 694200000,
"investors": [
{
"name": "Sequoia Capital",
"website": "sequoiacap.com",
"type": "company",
"amount_usd": null
},
{
"name": "Brookfield",
"website": "brookfield.com",
"type": "company",
"amount_usd": null
},
{
"name": "Paradigm",
"website": "paradigm.co",
"type": "company",
"amount_usd": null
}
]
},
{
"round_type": "SERIES_I",
"date": "2023-03-01",
"amount_usd": 6500000000,
"investors": [
{
"name": "GIC",
"website": "gic.com.sg",
"type": "company",
"amount_usd": null
},
{
"name": "Goldman Sachs",
"website": "goldmansachs.com",
"type": "company",
"amount_usd": null
},
{
"name": "Temasek",
"website": "temasek.com.sg",
"type": "company",
"amount_usd": null
},
{
"name": "Thrive Capital",
"website": "thrivecap.com",
"type": "company",
"amount_usd": null
}
]
},
{
"round_type": "SERIES_H",
"date": "2021-03-01",
"amount_usd": 600000000,
"investors": [
{
"name": "Allianz X",
"website": "allianzx.com",
"type": "company",
"amount_usd": null
},
{
"name": "Fidelity",
"website": "fidelity.com",
"type": "company",
"amount_usd": null
},
{
"name": "Baillie Gifford",
"website": "bailliegifford.com",
"type": "company",
"amount_usd": null
}
]
},
{
"round_type": "SEED",
"date": "2011-03-01",
"amount_usd": 2000000,
"investors": [
{
"name": "Peter Thiel",
"website": null,
"type": "angel",
"amount_usd": null
},
{
"name": "Sequoia Capital",
"website": "sequoiacap.com",
"type": "company",
"amount_usd": null
},
{
"name": "Elon Musk",
"website": null,
"type": "angel",
"amount_usd": null
}
]
}
]
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
sitio web |
Sí | La URL del sitio web o el nombre de la empresa objetivo. Una URL de sitio web (p. ej. https://www.stripe.com) es muy recomendable para mayor precisión. |
https://www.stripe.com |
use_cache |
No | Controla el uso de caché. No distingue mayúsculas de minúsculas. Valores: if-recent (predeterminado; usa datos en caché si el último rastreo fue hace menos de 29 días, de lo contrario enriquece en tiempo real), if-present (devuelve primero la caché, enriquece en tiempo real si no está disponible), if-present-only (devuelve solo la caché; devuelve 404 si no está disponible), never (siempre enriquecer en tiempo real). Los valores no válidos recurren al valor predeterminado del endpoint. |
if-recent |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
sitio web |
El dominio de empresa que describe la respuesta, reflejado desde la solicitud | "stripe.com" |
total_funds_raised_usd |
Financiamiento total recaudado en USD, o null si no se divulgó |
9810000000 |
funding_rounds |
Array de objetos FundingRound, ordenados por fecha descendente | Ver a continuación |
credit_cost |
Total de créditos cobrados por esta llamada (2 base + 1 por inversor único). Las respuestas en streaming entregan el costo en créditos en el cuerpo de la respuesta en lugar del X-NinjaPear-Credit-Cost encabezado. |
7 |
Objeto FundingRound
| Clave | Descripción | Ejemplo |
|---|---|---|
round_type |
Tipo de ronda de financiamiento (consulte los valores de tipo de ronda a continuación) | "SERIES_A" |
date |
Fecha de la ronda en YYYY-MM-DD formato, o null si se desconoce |
"2023-03-01" |
amount_usd |
Monto recaudado en esta ronda en USD, o null si no se divulgó |
600000000 |
investors |
Array de objetos Investor que participaron en esta ronda | Ver a continuación |
Objeto Investor
| Clave | Descripción | Ejemplo |
|---|---|---|
name |
Nombre del inversor (firma o individuo) | "Sequoia Capital" |
sitio web |
Dominio del sitio web del inversor, o null si se desconoce |
"sequoiacap.com" |
type |
Ya sea "company" (firma de capital de riesgo, fondo, corporativo) o "angel" (individual) |
"company" |
amount_usd |
Monto que aportó este inversor en USD, o null si no se divulgó |
null |
Valores de tipo de ronda
PRE_SEED, SEED, SERIES_A, SERIES_B, SERIES_C, SERIES_D, SERIES_E, SERIES_F, SERIES_G, SERIES_H, SERIES_I a través de SERIES_Z, BRIDGE, VENTURE_DEBT, CONVERTIBLE_NOTE, GRANT, SECONDARY_SALE, PRIVATE_EQUITY, GROWTH_EQUITY, IPO, POST_IPO_EQUITY, POST_IPO_DEBT, DEBT_FINANCING, CROWDFUNDING, CORPORATE_ROUND, UNKNOWN
Cabeceras de respuesta
Este endpoint transmite su respuesta en streaming; los HTTP trailers no son compatibles, por lo que el costo en créditos se entrega en el cuerpo de la respuesta (el credit_cost campo) en lugar del X-NinjaPear-Credit-Cost encabezado. Cuando la respuesta se sirve desde caché, el X-NinjaPear-Credit-Cost encabezado se devuelve con normalidad. El X-NinjaPear-Cache-Age-Days encabezado se devuelve en respuestas exitosas para todos los use_cache modos; el enriquecimiento en vivo actualizado devuelve 0.
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API (2 base + 1 por inversor). Solo aciertos de caché. | 7 |
X-NinjaPear-Cache-Age-Days |
Antigüedad de los datos devueltos en días completos. 0 cuando se devuelven datos actualizados desde el enriquecimiento en vivo. |
12 |
Códigos de error
Los errores del lado del cliente (HTTP 400 / 403) se devuelven antes de que comience el cuerpo del streaming. En caso de errores de caché, los errores del lado del servidor se entregan como HTTP 200 con error y error_code campos en el cuerpo de la respuesta — como la conexión de streaming ya ha sido establecida, el código de estado no puede cambiarse. Los clientes que anteriormente ramificaban en response.status_code == 404 debe ramificarse en el error_code campo en su lugar.
| Código de estado | ¿Cobrado? | error_code (cuerpo) |
Descripción |
|---|---|---|---|
| 400 | No | — | Parámetro de sitio web faltante o inválido |
| 403 | No | — | Créditos insuficientes |
| 404 | No | — | No se encontraron datos en caché al use_cache=if-present-only |
| 200 (el cuerpo contiene el error) | Sí (2 créditos) | no_funding_data |
No se encontraron datos de financiamiento para el sitio web indicado. funding_rounds es []. |
| 200 (el cuerpo contiene el error) | No | service_temp_unavailable |
Servicio temporalmente no disponible. Inténtelo de nuevo más tarde. funding_rounds es []. |
Endpoint de consulta de sitio web
GET /api/v1/company/website
Costo: 1 crédito / solicitud (se cobra independientemente de si se encuentra una coincidencia).
Resuelve el nombre de una empresa a su URL de sitio web canónica.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "company_name=Apex" \
--data-urlencode "country_code=us" \
--data-urlencode "hint=cybersecurity firm" \
"https://nubela.co/api/v1/company/website"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.CompanyAPIApi(api_client)
response = api.get_website_lookup(
company_name="Apex",
country_code="us",
hint="cybersecurity firm",
)
print(response)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.CompanyAPIApi();
api.getWebsiteLookup("Apex", {
countryCode: "us",
hint: "cybersecurity firm",
}).then(function (data) {
console.log(data);
});
Respuesta de ejemplo:
{
"website": "https://www.apexsecurity.com"
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
company_name |
Sí | El nombre de la empresa a consultar. | Apex |
country_code |
No | Código de país ISO 3166-1 alfa-2 de 2 letras opcional, usado para orientar la búsqueda geográficamente (p. ej. us, gb, de, sg). Consulta el lista completa de códigos ISO 3166-1 alpha-2. El valor predeterminado es us cuando se omite. |
us |
pista |
No | Proporciona una pista para diferenciar empresas con nombres similares en el mismo país. | cybersecurity firm |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
sitio web |
La URL canónica resuelta del sitio web. | https://www.stripe.com |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 1 |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | Faltante o inválido company_name parámetro. |
| 400 | No | No válido country_code (no es un código de 2 letras reconocido). |
| 404 | Sí (1) | No se encontró ningún sitio web coincidente para el nombre de empresa indicado. |
API de empleado
endpoint de correo laboral
GET /api/v1/employee/work-email
Costo: 2 créditos en una consulta exitosa (correo laboral encontrado). Cuando no se encuentra correo (work_email es null), un cargo de token de 0.5 créditos se aplican — esto desincentiva el abuso y mantiene las consultas especulativas a bajo costo.
Realiza un intento de mejor esfuerzo para devolver un correo laboral público de una persona dado su nombre (apellido opcional) y un dominio de empresa.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "first_name=Patrick" \
--data-urlencode "last_name=Collison" \
--data-urlencode "domain=stripe.com" \
"https://nubela.co/api/v1/employee/work-email"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.EmployeeAPIApi(api_client)
result = api.find_work_email(
first_name="Patrick",
last_name="Collison",
domain="stripe.com",
)
print(result)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.EmployeeAPIApi();
api
.findWorkEmail({
firstName: "Patrick",
lastName: "Collison",
domain: "stripe.com",
})
.then(function (data) {
console.log(data);
});
Respuesta de ejemplo (correo encontrado)
{
"work_email": "[email protected]"
}
Respuesta de ejemplo (sin evidencia)
{
"work_email": null
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
first_name |
Sí | Nombre de pila de la persona. | Patrick |
last_name |
No | Apellido de la persona. Mejora la precisión cuando el patrón lo requiere. | Collison |
domain |
Sí | Dominio de empresa. El protocolo y la ruta se eliminan si están presentes. | stripe.com |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
work_email |
Dirección de correo laboral con mejor esfuerzo. null si no se encontró ningún correo público Y no se pudo inferir ningún patrón. |
"[email protected]" | null |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Total de créditos cobrados por esta llamada. 2 en un acierto; 0.5 en un fallo (cargo anti-abuso de token). |
2 o 0.5 |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | Faltante o inválido first_name / domain. |
| 403 | No | Créditos insuficientes. |
| 503 | No | Servicio temporalmente no disponible. Inténtelo de nuevo más tarde. |
Endpoint de perfil de persona
GET /api/v2/employee/profile
Costo: 3 créditos / solicitud. Los créditos se cobran incluso si no se encuentran datos.
Enriquece el perfil profesional de un empleado a partir de un correo laboral, una combinación de nombre y empleador, o una combinación de cargo y empleador. Devuelve datos de perfil estructurados que incluyen historial laboral, educación, ubicación y presencia en redes sociales.
Debe proporcionar al menos una de estas combinaciones de entrada:
- Solo correo laboral — p. ej.
[email protected] - Nombre + sitio web del empleador — p. ej.
first_name=John&employer_website=https://stripe.com - Sitio web del empleador + cargo — p. ej.
employer_website=https://stripe.com&role=CTO
Siempre puede agregar más parámetros para mejorar la precisión. Por ejemplo, proporcionar work_email junto con first_name, last_name, y role producirá mejores resultados que work_email solo.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "[email protected]" \
"https://nubela.co/api/v2/employee/profile"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.EmployeeAPIApi(api_client)
profile = api.get_person_profile_v2(work_email="[email protected]")
print(profile)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.EmployeeAPIApi();
api.getPersonProfileV2({ workEmail: "[email protected]" }).then(function (data) {
console.log(data);
});
Respuesta de ejemplo
{
"id": "abc123de-f456-7890-abcd-ef1234567890",
"slug": "elon-musk",
"profile_pic_url": "https://pbs.twimg.com/profile_images/1234567890/photo_400x400.jpg",
"first_name": "Elon",
"middle_name": "Reeve",
"last_name": "Musk",
"full_name": "Elon Reeve Musk",
"bio": "Mars & Cars, Chips & Dips",
"follower_count": 195000000,
"following_count": 782,
"country": "US",
"city": "USAUS",
"state": "US-TX",
"x_handle": "elonmusk",
"x_profile_url": "https://x.com/elonmusk",
"personal_website": "https://elonmusk.com",
"work_experience": [
{
"role": "CEO",
"company_name": "Tesla",
"company_website": "tesla.com",
"description": "Leading Tesla's mission to accelerate the world's transition to sustainable energy.",
"start_date": "2008-10",
"end_date": null
},
{
"role": "CEO and CTO",
"company_name": "SpaceX",
"company_website": "spacex.com",
"description": "Founded SpaceX with the goal of reducing space transportation costs and enabling the colonization of Mars.",
"start_date": "2002-05",
"end_date": null
},
{
"role": "Co-founder",
"company_name": "PayPal",
"company_website": "paypal.com",
"description": null,
"start_date": "1999-01",
"end_date": "2002-10"
}
],
"education": [
{
"major": "B.S. Economics",
"school": "Wharton School, University of Pennsylvania",
"start_date": "1992-01",
"end_date": "1997-01"
},
{
"major": "B.S. Physics",
"school": "University of Pennsylvania",
"start_date": "1992-01",
"end_date": "1997-01"
}
],
"work_email_lookup": "https://nubela.co/api/v1/employee/work-email?first_name=Elon&last_name=Musk&domain=tesla.com",
"similar_people": "https://nubela.co/api/v1/employee/similar?id=abc123de-f456-7890-abcd-ef1234567890"
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
work_email |
Condicional | Dirección de correo laboral de la persona. Obligatorio si employer_website no se proporcionó. |
[email protected] |
first_name |
Condicional | Nombre de pila de la persona. Requerido al usar nombre + employer_website combinación. |
John |
middle_name |
No | Segundo nombre de la persona. Mejora la precisión cuando se combina con otros parámetros. | Michael |
last_name |
No | Apellido de la persona. Mejora la precisión cuando se combina con otros parámetros. | Smith |
employer_website |
Condicional | URL del sitio web o nombre de la empresa del empleador de la persona. Se recomienda encarecidamente una URL del sitio web para mayor precisión. Obligatorio si work_email no se proporcionó. |
https://stripe.com |
role |
No | Cargo o función actual. Mejora la precisión. Requerido al usar employer_website sin nombre. |
CTO |
slug |
No | Slug de persona para una consulta directa de un perfil enriquecido existente. | elon-musk |
id |
No | ID de persona para una consulta directa de un perfil enriquecido existente. | abc123de-... |
enrichment |
No | Controla la profundidad del enriquecimiento en tiempo real. Valores: fast (predeterminado; responde rápidamente e inicia el enriquecimiento detallado en segundo plano), detailed (espera el enriquecimiento detallado antes de responder).Una respuesta rápida incluye menos detalle biográfico, como datos del sitio web y foto de perfil, pero devuelve rápidamente el historial laboral y educativo estructurado. Una solicitud de enriquecimiento rápido también inicia un enriquecimiento detallado en segundo plano, y usted también tiene derecho a ese resultado. Consulte la misma solicitud con los mismos parámetros y use_cache=if-recent 10 a 30 segundos después para obtener el resultado completamente enriquecido sin costo adicional. Detén el sondeo cuando el X-NinjaPear-Enrichment-Status el encabezado de respuesta es complete. Una vez que el enriquecimiento detallado finaliza, la misma solicitud devuelve el perfil detallado en caché sin costo adicional.Usar enrichment=fast cuando necesita un resultado rápido para casos de uso como poblar una interfaz. Utilice enrichment=detailed cuando necesita la respuesta completa y no le importa esperar. |
fast |
use_cache |
No | Controla el uso de caché. No distingue mayúsculas de minúsculas. Valores: if-recent (predeterminado; usa datos en caché si el último rastreo fue hace menos de 29 días, de lo contrario enriquece en tiempo real), if-present (devuelve primero la caché, enriquece en tiempo real si no está disponible), if-present-only (devuelve solo la caché; devuelve 404 si no está disponible), never (siempre enriquecer en tiempo real). Los valores no válidos recurren al valor predeterminado del endpoint. |
if-recent |
Combinaciones de entrada válidas
| Combinación | Ejemplo |
|---|---|
work_email solo |
[email protected] |
first_name + employer_website |
?first_name=John&employer_website=https://stripe.com |
employer_website + role |
?employer_website=https://stripe.com&role=CTO |
slug o id |
?slug=elon-musk |
Siempre se pueden incluir parámetros adicionales para mejorar la precisión de los resultados.
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
id |
ID único de persona. Presente cuando el perfil está respaldado por un registro de persona persistido. | "abc123de-f456-7890-abcd-ef1234567890" |
slug |
Slug único de persona. Presente cuando el perfil está respaldado por un registro de persona persistido. | "elon-musk" |
profile_pic_url |
URL a la foto de perfil de la persona (de X/Twitter). Puede ser null. |
"https://pbs.twimg.com/.../photo_400x400.jpg" |
first_name |
nombre | "Elon" |
middle_name |
Segundo nombre. Puede ser null. |
"Reeve" |
last_name |
Apellido | "Musk" |
full_name |
Nombre completo | "Elon Reeve Musk" |
bio |
Biografía/descripción del perfil de X/Twitter. Puede ser null. |
"Mars & Cars, Chips & Dips" |
follower_count |
Número de seguidores en X/Twitter. Puede ser null. |
195000000 |
following_count |
Número de cuentas de X/Twitter seguidas. Puede ser null. |
782 |
country |
País de residencia. Código ISO 3166-1 alpha-2. | "US" |
city |
Ciudad de residencia. UN/LOCODE. | "USAUS" |
state |
Estado o región de residencia. Código de subdivisión ISO 3166-2. | "US-TX" |
x_handle |
Nombre de usuario de X/Twitter (sin @). Puede ser null. |
"elonmusk" |
x_profile_url |
URL del perfil de X/Twitter. Puede ser null. |
"https://x.com/elonmusk" |
personal_website |
URL del sitio web personal. Puede ser null. |
"https://elonmusk.com" |
work_experience |
Lista de entradas de historial laboral, la más reciente primero | [Objeto WorkExperience] |
education |
Lista de entradas de educación, la más reciente primero | [Objeto de educación] |
work_email_lookup |
URL predefinida al endpoint de correo laboral para esta persona, con first_name, last_name, y domain (el sitio web de la experiencia laboral más reciente) ya está completado. Llámalo directamente con tu bearer token para resolver el correo laboral de la persona — no es necesario volver a pasar los parámetros. Cuesta 2 créditos por llamada. Puede ser null cuando se desconoce el sitio web del empleador actual. |
"https://nubela.co/api/v1/employee/work-email?first_name=Elon&last_name=Musk&domain=tesla.com" |
similar_people |
URL predefinida al Endpoint de personas similares para esta persona, indexado por su id. Llámalo directamente para obtener personas con el mismo rol en empresas competidoras — no es necesario volver a enviar los parámetros de búsqueda. |
"https://nubela.co/api/v1/employee/similar?id=abc123de-..." |
Objeto WorkExperience
| Clave | Descripción | Ejemplo |
|---|---|---|
role |
Cargo o función | "CEO" |
company_name |
Nombre de la empresa | "Tesla" |
company_website |
Dominio del sitio web de la empresa. Puede ser null. |
"tesla.com" |
description |
Descripción de lo que hizo la persona en este rol. Puede ser null. |
"Leading Tesla's mission..." |
start_date |
Fecha de inicio en formato YYYY-MM. Puede ser null. |
"2008-10" |
end_date |
Fecha de fin en formato YYYY-MM. null significa actualmente en este cargo. |
null |
Objeto de educación
| Clave | Descripción | Ejemplo |
|---|---|---|
major |
Título y campo de estudio | "B.S. Economics" |
school |
Nombre de la escuela o universidad | "Wharton School, University of Pennsylvania" |
start_date |
Fecha de inicio en formato YYYY-MM. Puede ser null. |
"1992-01" |
end_date |
Fecha de fin en formato YYYY-MM. Puede ser null. |
"1997-01" |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 3 |
X-NinjaPear-Cache-Age-Days |
Antigüedad de los datos devueltos en días completos. 0 cuando se devuelven datos actualizados desde el enriquecimiento en vivo. |
12 |
X-NinjaPear-Enrichment-Status |
Estado de enriquecimiento detallado para respuestas de Perfil de Persona v2. pending significa que la respuesta es el perfil rápido y el enriquecimiento detallado aún está en ejecución o en espera de finalizar. complete significa que la respuesta es el perfil detallado en caché o un enrichment=detailed resultado. Consulte periódicamente hasta que este encabezado sea complete. |
complete |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | Entrada no válida. Debe proporcionar work_email, o first_name + employer_website, o employer_website + role. |
| 400 | No | No válido enrichment. Usa fast o detailed. El obsoleto speed el parámetro no es aceptado. |
| 400 | No | work_email es un correo personal/gratuito (p. ej. [email protected]). Proporciona un correo laboral corporativo. |
| 403 | No | Créditos insuficientes |
| 404 | No | work_email es un buzón basado en roles / genérico (p. ej. info@, support@, sales@, noreply@) que no corresponde a una persona individual. |
| 404 | No | No se encontraron datos en caché al use_cache=if-present-only |
| 404 | Sí (3 créditos) | No se encontraron datos de perfil para la entrada indicada |
| 503 | No | Servicio temporalmente no disponible. Inténtelo de nuevo más tarde. |
Endpoint de personas similares
GET /api/v1/employee/similar
Costo: 10 créditos base + 5 créditos por tupla (empresa, rol) intentada. El costo base se cobra independientemente de si se encuentran personas similares, porque el endpoint consume recursos de enriquecimiento en tiempo real para atender cada solicitud. Los resultados en caché son gratuitos (ver más abajo).
Encuentra personas que son similar a una persona objetivo, definida como personas que ocupan el el mismo rol en empresas competidoras. Dado un objetivo (p. ej., el CEO de nubela.co), el endpoint identifica el empleador actual del objetivo, busca los competidores de ese empleador e intenta enriquecer a la persona con el mismo rol en cada competidor en tiempo real. La respuesta devuelve el perfil del objetivo, la lista de tuplas (empresa, rol) que se intentaron buscar y las personas similares que se enriquecieron correctamente.
Los parámetros de entrada son idénticos al Endpoint de perfil de persona. Debes proporcionar al menos una de estas combinaciones de entrada:
- Solo correo laboral — p. ej.
[email protected] - Nombre + sitio web del empleador — p. ej.
first_name=Tim&employer_website=https://apple.com - Sitio web del empleador + cargo — p. ej.
employer_website=https://apple.com&role=CEO
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--max-time 300 \
--data-urlencode "[email protected]" \
"https://nubela.co/api/v1/employee/similar"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.EmployeeAPIApi(api_client)
# Set a generous read timeout — calls can take up to 5 minutes.
result = api.get_similar_people(work_email="[email protected]", _request_timeout=300)
print(result)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
defaultClient.timeout = 300000; // 5 minutes
var api = new NinjaPear.EmployeeAPIApi();
api.getSimilarPeople({ workEmail: "[email protected]" }).then(function (data) {
console.log(data);
});
Respuesta de ejemplo
{
"target": {
"first_name": "Tim",
"last_name": "Cook",
"full_name": "Tim Cook",
"work_experience": [
{
"role": "CEO",
"company_name": "Apple",
"company_website": "apple.com",
"start_date": "2011-08",
"end_date": null
}
]
},
"attempted_searches": [
{ "employer_website": "samsung.com", "role": "CEO" },
{ "employer_website": "google.com", "role": "CEO" },
{ "employer_website": "microsoft.com", "role": "CEO" },
{ "employer_website": "huawei.com", "role": "CEO" }
],
"similar_people": [
{
"first_name": "Sundar",
"last_name": "Pichai",
"full_name": "Sundar Pichai",
"work_experience": [
{
"role": "CEO",
"company_name": "Google",
"company_website": "google.com",
"start_date": "2015-08",
"end_date": null
}
]
},
{
"first_name": "Satya",
"last_name": "Nadella",
"full_name": "Satya Nadella",
"work_experience": [
{
"role": "CEO",
"company_name": "Microsoft",
"company_website": "microsoft.com",
"start_date": "2014-02",
"end_date": null
}
]
}
],
"credit_cost": 30
}
Por brevedad, el ejemplo anterior muestra solo un subconjunto de PersonProfile campos. Cada entrada en objetivo y similar_people es un PersonProfile objeto; consulte el Respuesta del endpoint de perfil de persona para el esquema completo, incluyendo profile_pic_url, bio, country, x_handle, education, etc.
Parámetros de URL
Idéntico al Parámetros de URL del endpoint de perfil de persona.
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
work_email |
Condicional | Dirección de correo laboral de la persona objetivo. Obligatorio si employer_website no se proporcionó. |
[email protected] |
first_name |
Condicional | Primer nombre del objetivo. Obligatorio al usar nombre + employer_website combinación. |
Tim |
middle_name |
No | Segundo nombre del objetivo. Mejora la precisión cuando se combina con otros parámetros. | Donald |
last_name |
No | Apellido del objetivo. Mejora la precisión cuando se combina con otros parámetros. | Cook |
employer_website |
Condicional | URL del sitio web o nombre de la empresa del empleador del objetivo. Se recomienda encarecidamente una URL del sitio web para mayor precisión. Obligatorio si work_email no se proporcionó. |
https://apple.com |
role |
No | Cargo o función actual. Requerido al usar employer_website sin nombre. |
CEO |
Combinaciones de entrada válidas
| Combinación | Ejemplo |
|---|---|
work_email solo |
[email protected] |
first_name + employer_website |
?first_name=Tim&employer_website=https://apple.com |
employer_website + role |
?employer_website=https://apple.com&role=CEO |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
objetivo |
El perfil completo de la persona objetivo resuelta. Mismo esquema que el Endpoint de perfil de persona. | { "first_name": "Tim", ... } |
attempted_searches |
Lista de tuplas (empresa, rol) que intentamos enriquecer. Una entrada por cada competidor del empleador actual del objetivo. Determina la facturación por tupla (5 créditos cada una). | [Objeto AttemptedSearch] |
similar_people |
Lista de perfiles enriquecidos exitosamente para personas con el mismo rol en empresas competidoras. Puede ser un subconjunto de attempted_searches (algunos intentos no devuelven datos). Cada entrada usa el mismo esquema que el Endpoint de perfil de persona. |
[PersonProfile, ...] |
credit_cost |
Total de créditos cobrados por esta llamada. Igual a 10 + 5 * len(attempted_searches), o 0 para resultados en caché servidos al mismo producto que pagó previamente. |
30 |
Objeto AttemptedSearch
| Clave | Descripción | Ejemplo |
|---|---|---|
employer_website |
Dominio del sitio web del competidor que se intentó. | "google.com" |
role |
Rol que se buscó en ese competidor (refleja el objetivo). | "CEO" |
Cabeceras de respuesta
Este endpoint transmite su respuesta en streaming, por lo que el costo en créditos no puede devolverse en un encabezado — los HTTP trailers no son compatibles con la capa de streaming. Lea el credit_cost campo en el cuerpo de la respuesta en lugar del habitual X-NinjaPear-Credit-Cost encabezado.
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | Entrada no válida. Debe proporcionar work_email, o first_name + employer_website, o employer_website + role. |
| 400 | No | work_email es un correo personal/gratuito (p. ej. [email protected]). Proporciona un correo laboral corporativo. |
| 403 | No | Créditos insuficientes. Necesita al menos 10 créditos para iniciar una búsqueda de personas similares. |
| 404 | No | work_email es un buzón basado en roles / genérico (p. ej. info@, support@, sales@, noreply@) que no corresponde a una persona individual. |
| 404 | No | No se pudo resolver la persona objetivo. |
| 503 | No | Recurso temporalmente no disponible. Por favor, inténtalo de nuevo. |
Endpoint de búsqueda de empleados
GET /api/v1/employee/search
Costo: base 2 créditos por llamada (cobrados incluso cuando no se devuelven empleados), más 1 crédito por empleado en el empleados arreglo. Una consulta que devuelve 10 empleados cuesta 2 + 10 = 12 créditos.
Encuentra empleados actuales de una empresa filtrados por rol, con opción de acotarlos por geografía.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "company_website=stripe.com" \
--data-urlencode "role=VP of Engineering" \
"https://nubela.co/api/v1/employee/search"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.EmployeeAPIApi(api_client)
result = api.search_employees(
company_website="stripe.com",
role="VP of Engineering",
)
print(result)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.EmployeeAPIApi();
api.searchEmployees({
companyWebsite: "stripe.com",
role: "VP of Engineering",
}).then(function (data) {
console.log(data);
});
Respuesta de ejemplo
{
"employees": [
{
"first_name": "Jane",
"last_name": "Doe",
"role": "VP of Engineering",
"company_website": "stripe.com",
"company_details": "https://nubela.co/api/v1/company/details?website=stripe.com",
"person_profile": "https://nubela.co/api/v2/employee/profile?first_name=Jane&last_name=Doe&employer_website=https%3A%2F%2Fstripe.com",
"work_email": "https://nubela.co/api/v1/employee/work-email?first_name=Jane&last_name=Doe&domain=stripe.com"
},
{
"first_name": "John",
"last_name": "Smith",
"role": "Director of Engineering",
"company_website": "stripe.com",
"company_details": "https://nubela.co/api/v1/company/details?website=stripe.com",
"person_profile": "https://nubela.co/api/v2/employee/profile?first_name=John&last_name=Smith&employer_website=https%3A%2F%2Fstripe.com",
"work_email": "https://nubela.co/api/v1/employee/work-email?first_name=John&last_name=Smith&domain=stripe.com"
}
]
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
company_website |
Sí | La empresa objetivo. La forma preferida es un sitio web (dominio simple como stripe.com o URL completa como https://stripe.com). Un nombre de empresa (por ejemplo, Stripe) también se acepta. |
stripe.com |
role |
Sí | Rol laboral para acotar la búsqueda. Coincide con variantes de roles relacionados (p. ej. VP of Engineering también coincide con Vice President, Engineering). |
VP of Engineering |
country |
No | Código de país ISO 3166-1 alpha-2 para restringir la búsqueda. | US |
state |
No | Estado o región para filtrar (formato libre). | California |
city |
No | Ciudad por la que filtrar (texto libre). | San Francisco |
use_cache |
No | Controla el uso de caché. No distingue mayúsculas de minúsculas. Valores: if-recent (predeterminado; usa datos en caché si el último rastreo fue hace menos de 29 días, de lo contrario enriquece en tiempo real), if-present (devuelve primero la caché, enriquece en tiempo real si no está disponible), if-present-only (devuelve solo la caché; devuelve 404 si no está disponible), never (siempre enriquecer en tiempo real). Los valores no válidos recurren al valor predeterminado del endpoint. |
if-recent |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
empleados |
Lista de empleados coincidentes en la empresa objetivo. array vacío si no se encuentra ninguno. | [Objeto de empleado] |
Objeto de empleado
| Clave | Descripción | Ejemplo |
|---|---|---|
first_name |
El primer nombre del empleado. | "Jane" |
last_name |
El apellido del empleado. Puede ser null si no está disponible. |
"Doe" |
role |
El cargo actual del empleado en la empresa objetivo. | "VP of Engineering" |
company_website |
Sitio web del empleador objetivo donde trabaja el empleado. Refleja el valor resuelto de company_website parámetro de entrada en cada registro. |
"stripe.com" |
company_details |
URL precargada al Endpoint de detalles de empresa, completado con sitio web. Autentícate con tu bearer token para obtener los detalles de la empresa. |
"https://nubela.co/api/v1/company/details?website=stripe.com" |
person_profile |
URL precargada al Endpoint de perfil de persona, completado con first_name, last_name, y employer_website. Llama directamente con tu bearer token para enriquecer a la persona. Cuesta 3 créditos por llamada. |
"https://nubela.co/api/v2/employee/profile?first_name=Jane&last_name=Doe&employer_website=https%3A%2F%2Fstripe.com" |
work_email |
URL precargada al endpoint de correo laboral, completado con first_name, last_name, y domain. Llama directamente con tu bearer token para resolver el correo laboral. Cuesta 2 créditos en un resultado encontrado, 0.5 créditos cuando no se encuentra correo. |
"https://nubela.co/api/v1/employee/work-email?first_name=Jane&last_name=Doe&domain=stripe.com" |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Total de créditos cobrados por esta llamada. Equivale a 2 + N donde N es el número de empleados devueltos (2 cuando el array está vacío). |
12 |
X-NinjaPear-Cache-Age-Days |
Antigüedad de los datos devueltos en días completos. 0 cuando se devuelven datos actualizados desde el enriquecimiento en vivo. |
12 |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | Faltante o inválido company_website o role parámetro. |
| 403 | No | Créditos insuficientes. Necesita al menos 2 créditos para iniciar una búsqueda. |
| 404 | No | No se encontraron datos en caché al use_cache=if-present-only |
| 404 | No | Lo proporcionado company_website no pudo resolverse como una empresa conocida. |
| 503 | No | Recurso temporalmente no disponible. Por favor, inténtalo de nuevo. |
Meta API
Endpoint para ver saldo de créditos
GET /api/v1/meta/credit-balance
Costo: 0 crédito / solicitud exitosa.
Obtenga su saldo actual de créditos.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://nubela.co/api/v1/meta/credit-balance"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.MetaAPIApi(api_client)
response = api.get_credit_balance()
print(response)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.MetaAPIApi();
api.getCreditBalance().then(function (data) {
console.log(data);
});
Respuesta de ejemplo:
{
"credit_balance": 100000
}
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
credit_balance |
Tu saldo actual de créditos | 100000 |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 0 |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 401 | No | API key no válida |
API de contacto
Endpoint de verificación de correo desechable
GET /api/v1/contact/disposable-email
Costo: 0 crédito / solicitud exitosa. (GRATIS)
Compruebe si una dirección de correo electrónico es desechable (temporal/de un solo uso) o pertenece a un proveedor de correo gratuito.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "[email protected]" \
"https://nubela.co/api/v1/contact/disposable-email"
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.ContactAPIApi(api_client)
response = api.check_disposable_email(email="[email protected]")
print(response)
var NinjaPear = require("ninjapear");
var defaultClient = NinjaPear.ApiClient.instance;
defaultClient.authentications["bearerAuth"].accessToken = "YOUR_API_KEY";
var api = new NinjaPear.ContactAPIApi();
api.checkDisposableEmail("[email protected]").then(function (data) {
console.log(data);
});
Respuesta de ejemplo:
{
"email": "[email protected]",
"is_disposable_email": true,
"is_free_email": false
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
correo |
Sí | La dirección de correo electrónico a verificar | [email protected] |
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
correo |
La dirección de correo electrónico que fue verificada | "[email protected]" |
is_disposable_email |
Si el dominio de correo es un proveedor de correo desechable/temporal conocido | true |
is_free_email |
Si el dominio de correo es un proveedor de correo gratuito (p. ej., gmail.com, yahoo.com) | false |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 0 |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | Formato de correo electrónico no válido |
API de Monitor
La API Monitor le permite monitorear las actualizaciones de empresas. Cada nueva actualización se compila en una única fuente RSS. El sistema monitorea blogs de empresas, perfiles de X (Twitter) y cambios en sitios web.
Conceptos fundamentales
- Fuente: El contenedor principal. Una fuente puede ser pública o privada. Las fuentes privadas requieren un token bearer pasado a través de la cadena de consulta URL para garantizar compatibilidad con los lectores RSS estándar.
- Objetivo: Una empresa/sitio web específico siendo monitoreado dentro de una fuente.
- Configuración: Preferencias detalladas por objetivo que indican qué monitorear (Blog, X, Website) y con qué frecuencia.
Cómo usar
Suponga que desea monitorear un grupo de sitios web de competidores en busca de publicaciones de blog, actividad en X y cambios en el sitio web, todo entregado como una única fuente RSS que puede conectar a Feedly, Slack, Zapier o cualquier lector RSS.
1. Crea una fuente con objetivos — agrupe las empresas que desea monitorear en una fuente. Cada empresa es un objetivo identificada por la URL de su sitio web.
La respuesta incluye un rss_url — esta es la URL a la que se suscribe.
2. Suscríbete a la fuente RSS — copie el rss_url y agrégalo a cualquier lector RSS (Feedly, Slack, Zapier, etc.). Las publicaciones de blog, publicaciones en X y cambios en el sitio web de todos los objetivos aparecen como elementos en una sola fuente.
Cada elemento incluye una categoría (blog, x, website update, o website new page). Consulta Endpoint de consumo de fuente para el esquema RSS completo.
3. Agrega nuevos objetivos — ¿un nuevo competidor entró al mercado? Agrégalo a la fuente.
4. Elimina objetivos — ¿una empresa ya no es relevante? Elimínela de la fuente.
5. Cambiar la configuración de monitoreo — de forma predeterminada, cada objetivo monitorea publicaciones de blog, publicaciones de X y cambios en el sitio web con una cadencia de 7 días. Use PATCH para activar o desactivar canales o cambiar la frecuencia.
Solo se modifican los campos que incluya; los campos omitidos conservan sus valores actuales. Consulte Objeto de configuración para todas las opciones disponibles.
Precios
| Acción | Costo |
|---|---|
| Crear una fuente | 3 créditos (una sola vez) |
| Extracción de publicaciones de blog (por objetivo) | 1 crédito/consulta |
| Extracción de monitoreo de sitio web (por objetivo) | 1 crédito/consulta |
| Extracción de actualizaciones de publicaciones de X (por objetivo) | 2 créditos/consulta |
| Extracción de actualizaciones de YouTube (por objetivo) | 1 crédito/consulta |
| Todos los demás endpoints (listar, describir, eliminar fuentes; gestionar objetivos) | 0 créditos |
Cada extracción verifica un objetivo para una fuente (blog, X, sitio web o YouTube). Con las cuatro fuentes habilitadas, un solo objetivo cuesta 5 créditos por consulta (1 blog + 2 X + 1 sitio web + 1 YouTube).
Costos mensuales de ejemplo
| Escenario | Objetivos | Frecuencia | Créditos/mes |
|---|---|---|---|
| Capital de riesgo rastreando 20 empresas de cartera | 20 | Semanal | ~433 créditos (3 únicos + 20 × 5 × 4.3 semanas) |
| Startup que monitorea 10 competidores | 10 | Diario | ~1,503 créditos (3 únicos + 10 × 5 × 30 días) |
| Equipo de ventas monitoreando 5 cuentas de prospecto (solo blog + X, sin sitio web) | 5 | Diario | ~453 créditos (3 únicos + 5 × 3 × 30 días) |
El costo único de creación de fuente (3 créditos) se incluye solo en el primer mes.
Endpoint para listar fuentes
GET /api/v1/monitor/feeds
Costo: 0 créditos / solicitud.
Recupera una lista de todas las fuentes del usuario autenticado.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://nubela.co/api/v1/monitor/feeds"
Respuesta de ejemplo:
{
"feeds": [
{
"id": "feed_abc123",
"name": "SaaS Competitors",
"is_public": false,
"rss_url": "https://nubela.co/api/v1/monitor/feeds/feed_abc123/rss.xml?token=sec_live_987654321",
"created_at": "2026-02-24T00:00:00Z",
"target_count": 2
}
]
}
Respuesta
| Clave | Descripción | Ejemplo |
|---|---|---|
feeds |
Lista de objetos Feed | Ver Objeto Feed |
Objeto Feed
| Clave | Descripción | Ejemplo |
|---|---|---|
id |
Identificador único de fuente | "feed_abc123" |
name |
Nombre de la fuente | "SaaS Competitors" |
is_public |
Si la fuente es de acceso público | false |
is_suspended |
Si la fuente está actualmente suspendida | false |
suspension_reason |
Motivo de la suspensión, si está suspendido | null o "insufficient_credits" |
rss_url |
La URL de la fuente RSS. Para fuentes privadas, incluye un parámetro de consulta de token. | "https://nubela.co/api/v1/monitor/feeds/feed_abc123/rss.xml?token=sec_live_987654321" |
email_notifications |
Modo de notificación por correo electrónico | "skip" o "on_updates" |
created_at |
Marca de tiempo de creación ISO 8601 | "2026-02-24T00:00:00Z" |
target_count |
Número de objetivos en la fuente | 2 |
Endpoint de nueva fuente
POST /api/v1/monitor/feeds
Costo: 3 créditos / solicitud (tarifa única).
Crea una nueva fuente y, opcionalmente, acepta un arreglo de objetivos iniciales.
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "SaaS Competitors",
"is_public": false,
"targets": [
{
"website_url": "https://stripe.com",
"settings": {
"monitor_blog": true,
"monitor_x": true,
"monitor_website": true,
"monitor_youtube": true,
"frequency_days": 7
}
},
{
"website_url": "https://vercel.com"
}
]
}' \
"https://nubela.co/api/v1/monitor/feeds"
Respuesta de ejemplo
201 Created:
{
"id": "feed_abc123",
"name": "SaaS Competitors",
"is_public": false,
"is_suspended": false,
"suspension_reason": null,
"rss_url": "https://nubela.co/api/v1/monitor/feeds/feed_abc123/rss.xml?token=sec_live_987654321",
"created_at": "2026-02-24T09:55:00Z",
"targets": [
{
"id": "target_xyz789",
"website_url": "https://stripe.com",
"settings": {
"monitor_blog": true,
"monitor_x": true,
"monitor_website": true,
"monitor_youtube": true,
"frequency_days": 7
},
"last_polled_at": null,
"is_baseline_complete": false,
"created_at": "2026-02-24T09:55:00Z"
},
{
"id": "target_xyz790",
"website_url": "https://vercel.com",
"settings": {
"monitor_blog": true,
"monitor_x": true,
"monitor_website": true,
"monitor_youtube": true,
"frequency_days": 7
},
"last_polled_at": null,
"is_baseline_complete": false,
"created_at": "2026-02-24T09:55:00Z"
}
]
}
Cuerpo de la solicitud
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
name |
No | Nombre de la fuente. Si se omite, se generará un nombre automáticamente. | "SaaS Competitors" |
is_public |
No | Si la fuente es de acceso público (predeterminado: false) |
false |
email_notifications |
No | Modo de notificación por correo electrónico. "on_updates" para recibir correos electrónicos cuando se detecten nuevas actualizaciones, "skip" para deshabilitar (por defecto: "skip") |
"on_updates" |
targets |
Sí | Array de objetivos iniciales para agregar a la fuente (se requiere al menos 1) | Ver Objeto de entrada de destino |
Objeto de entrada de destino
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
website_url |
Sí | La URL del sitio web de la empresa a monitorear | "https://stripe.com" |
settings |
No | Preferencias de monitoreo. Si se omiten, se aplican los valores predeterminados. | Ver Objeto de configuración |
Objeto de configuración
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
monitor_blog |
No | Monitorear el blog de la empresa en busca de nuevas publicaciones (predeterminado: true) |
true |
monitor_x |
No | Monitorear la cuenta de X (Twitter) de la empresa (predeterminado: true) |
true |
monitor_website |
No | Monitorear el sitio web de la empresa para detectar cambios de contenido y nuevas páginas (predeterminado: true) |
true |
monitor_youtube |
No | Monitorear el canal oficial de YouTube de la empresa para nuevos videos (predeterminado: true) |
true |
frequency_days |
No | Con qué frecuencia verificar actualizaciones, en días. Debe estar entre 1 y 30 (predeterminado: 7) |
7 |
Reglas de validación
- Al menos uno
targetsla entrada es obligatoria. - Cada objetivo debe tener un
website_urlque es accesible (respuesta HTTP 2xx). Las URL inaccesibles devuelven400. - Al menos una configuración de Monitor (
monitor_blog,monitor_x,monitor_website,monitor_youtube) debe sertruepor objetivo.
Respuesta
Retorna 201 Created. La respuesta incluye el creado Objeto Feed con un targets arreglo que contiene Objeto de destino entradas.
Objeto de destino
| Clave | Descripción | Ejemplo |
|---|---|---|
id |
Identificador único de objetivo | "target_xyz789" |
website_url |
La URL del sitio web de la empresa monitoreada | "https://stripe.com" |
settings |
Objeto de preferencias de monitoreo | Ver Objeto de configuración |
last_polled_at |
Marca de tiempo ISO 8601 del último sondeo, o null si nunca se consultó |
null |
is_baseline_complete |
Si se ha capturado la instantánea de referencia inicial | false |
created_at |
Marca de tiempo de creación ISO 8601 | "2026-02-24T09:55:00Z" |
Cabeceras de respuesta
| Clave de encabezado | Descripción | Ejemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Costo total en créditos para esta llamada a la API | 3 |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | Error de validación (objetivos faltantes, URL inalcanzable, sin indicadores de monitoreo habilitados) |
Endpoint de descripción de fuente
GET /api/v1/monitor/feeds/{feed_id}
Costo: 0 créditos / solicitud.
Recupera los detalles completos de una fuente, incluidos todos sus objetivos asociados.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://nubela.co/api/v1/monitor/feeds/feed_abc123"
Respuesta de ejemplo:
{
"id": "feed_abc123",
"name": "SaaS Competitors",
"is_public": false,
"is_suspended": false,
"suspension_reason": null,
"rss_url": "https://nubela.co/api/v1/monitor/feeds/feed_abc123/rss.xml?token=sec_live_987654321",
"created_at": "2026-02-24T09:55:00Z",
"targets": [
{
"id": "target_xyz789",
"website_url": "https://stripe.com",
"settings": {
"monitor_blog": true,
"monitor_x": true,
"monitor_website": true,
"monitor_youtube": true,
"frequency_days": 7
},
"last_polled_at": "2026-02-24T12:00:00Z",
"is_baseline_complete": true,
"created_at": "2026-02-24T09:55:00Z"
},
{
"id": "target_xyz790",
"website_url": "https://vercel.com",
"settings": {
"monitor_blog": true,
"monitor_x": true,
"monitor_website": true,
"monitor_youtube": true,
"frequency_days": 7
},
"last_polled_at": null,
"is_baseline_complete": false,
"created_at": "2026-02-24T09:55:00Z"
}
]
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
feed_id |
Sí | El ID de la fuente | feed_abc123 |
Respuesta
Devuelve un Objeto Feed con un targets arreglo que contiene Objeto de destino entradas.
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 404 | No | Fuente no encontrada |
Endpoint de eliminación de fuente
DELETE /api/v1/monitor/feeds/{feed_id}
Costo: 0 créditos / solicitud.
Elimina permanentemente una fuente y todos los objetivos asociados.
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://nubela.co/api/v1/monitor/feeds/feed_abc123"
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
feed_id |
Sí | El ID de la fuente a eliminar | feed_abc123 |
Respuesta
Retorna 200 OK con un mensaje de confirmación.
{
"message": "Feed deleted."
}
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 404 | No | Fuente no encontrada |
Endpoint para agregar objetivo
POST /api/v1/monitor/feeds/{feed_id}/targets
Costo: 0 créditos / solicitud.
Agrega una nueva empresa a una fuente existente.
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"website_url": "https://shopify.com",
"settings": {
"monitor_blog": true,
"monitor_x": true,
"monitor_website": false,
"frequency_days": 3
}
}' \
"https://nubela.co/api/v1/monitor/feeds/feed_abc123/targets"
Respuesta de ejemplo
201 Created:
{
"id": "target_xyz791",
"website_url": "https://shopify.com",
"settings": {
"monitor_blog": true,
"monitor_x": true,
"monitor_website": false,
"frequency_days": 3
},
"last_polled_at": null,
"is_baseline_complete": false,
"created_at": "2026-02-24T10:00:00Z"
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
feed_id |
Sí | El ID de la fuente a la que agregar el objetivo | feed_abc123 |
Cuerpo de la solicitud
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
website_url |
Sí | La URL del sitio web de la empresa a monitorear | "https://shopify.com" |
settings |
No | Preferencias de monitoreo. Si se omiten, se aplican los valores predeterminados. | Ver Objeto de configuración |
Respuesta
Devuelve un Objeto de destino.
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 404 | No | Fuente no encontrada |
Endpoint de actualización de objetivo
PATCH /api/v1/monitor/feeds/{feed_id}/targets/{target_id}
Costo: 0 créditos / solicitud.
Modifica las preferencias de monitoreo para un objetivo específico.
curl -X PATCH \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"settings": {
"frequency_days": 1,
"monitor_website": true
}
}' \
"https://nubela.co/api/v1/monitor/feeds/feed_abc123/targets/target_xyz789"
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
feed_id |
Sí | El ID de la fuente | feed_abc123 |
target_id |
Sí | El ID del objetivo a actualizar | target_xyz789 |
Cuerpo de la solicitud
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
settings |
Sí | Actualización parcial de configuración. Solo se modifican los campos proporcionados. | Ver Objeto de configuración |
Respuesta
Devuelve el actualizado Objeto de destino.
Respuesta de ejemplo:
{
"id": "target_xyz789",
"website_url": "https://stripe.com",
"settings": {
"monitor_blog": true,
"monitor_x": true,
"monitor_website": true,
"monitor_youtube": true,
"frequency_days": 1
},
"last_polled_at": "2026-02-24T12:00:00Z",
"is_baseline_complete": true,
"created_at": "2026-02-24T09:55:00Z"
}
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | No se proporcionó una configuración válida |
| 404 | No | Fuente u objetivo no encontrado |
Endpoint de eliminación de objetivo
DELETE /api/v1/monitor/feeds/{feed_id}/targets/{target_id}
Costo: 0 créditos / solicitud.
Detiene el monitoreo de un sitio web y lo elimina de la fuente.
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://nubela.co/api/v1/monitor/feeds/feed_abc123/targets/target_xyz789"
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
feed_id |
Sí | El ID de la fuente | feed_abc123 |
target_id |
Sí | El ID del objetivo a eliminar | target_xyz789 |
Respuesta
Retorna 200 OK con un mensaje de confirmación.
{
"message": "Target deleted."
}
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 404 | No | Fuente u objetivo no encontrado |
Endpoint de consumo de fuente
GET /api/v1/monitor/feeds/{feed_id}/rss.xml
Costo: 0 créditos / solicitud (los costos de monitoreo se cobran por extracción en cada objetivo — ver Precios).
Devuelve una fuente XML RSS 2.0 estándar compatible con lectores RSS (Feedly, Slack, extensiones de navegador, etc.).
Si el is_public es false, se debe pasar un token válido como token parámetro de consulta.
curl "https://nubela.co/api/v1/monitor/feeds/feed_abc123/rss.xml?token=YOUR_RSS_TOKEN"
Respuesta de ejemplo:
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>SaaS Competitors</title>
<link>https://nubela.co/api/v1/monitor/feeds/feed_abc123/rss.xml</link>
<description>Automated updates for Stripe, Shopify, and Vercel.</description>
<lastBuildDate>Tue, 24 Feb 2026 10:00:00 +0800</lastBuildDate>
<item>
<title>Stripe: Expanding our Global Payment Network</title>
<link>https://stripe.com/blog/global-network-2026</link>
<guid isPermaLink="true">https://stripe.com/blog/global-network-2026</guid>
<pubDate>Mon, 23 Feb 2026 14:30:00 +0800</pubDate>
<category>blog</category>
<dc:creator>Stripe</dc:creator>
<description>Stripe is expanding its payments infrastructure to 15 new countries, enabling merchants to accept local payment methods seamlessly.</description>
<enclosure url="https://b.stripecdn.com/blog/og-global-network.jpg" length="150000" type="image/jpeg" />
</item>
<item>
<title>Vercel on X: "Next.js 16 is here..."</title>
<link>https://x.com/vercel/status/123456789</link>
<guid isPermaLink="false">x_post_123456789</guid>
<pubDate>Sun, 22 Feb 2026 10:15:00 +0800</pubDate>
<category>x</category>
<dc:creator>Vercel</dc:creator>
<description>Next.js 16 is here, featuring completely redesigned server components and faster builds. Read the changelog.</description>
<enclosure url="https://pbs.twimg.com/media/vercel-next16.jpg" length="85000" type="image/jpeg" />
</item>
<item>
<title>Shopify: Pricing Page</title>
<link>https://shopify.com/pricing</link>
<guid isPermaLink="false">website_update_shopify_pricing_1708416000</guid>
<pubDate>Fri, 20 Feb 2026 08:00:00 +0800</pubDate>
<category>website update</category>
<dc:creator>Shopify</dc:creator>
<description>Compare Shopify's pricing plans to find the best fit for your business. Start your free trial today.</description>
<enclosure url="https://cdn.shopify.com/assets/og-pricing.png" length="210000" type="image/png" />
</item>
<item>
<title>Shopify: Enterprise Plus Solutions</title>
<link>https://shopify.com/enterprise-plus</link>
<guid isPermaLink="true">https://shopify.com/enterprise-plus</guid>
<pubDate>Thu, 19 Feb 2026 11:20:00 +0800</pubDate>
<category>website new page</category>
<dc:creator>Shopify</dc:creator>
<description>Unleash your brand's potential with Shopify Enterprise Plus. High-volume solutions for global commerce.</description>
<enclosure url="https://cdn.shopify.com/assets/og-enterprise.jpg" length="320000" type="image/jpeg" />
</item>
</channel>
</rss>
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
feed_id |
Sí | El ID de la fuente | feed_abc123 |
Formato de respuesta
La respuesta es un documento XML RSS 2.0 estándar. La estructura es la siguiente:
Elementos del canal
| Elemento | Descripción | Ejemplo |
|---|---|---|
<title> |
El nombre de la fuente | SaaS Competitors |
<link> |
URL de la fuente RSS | https://nubela.co/api/v1/monitor/feeds/feed_abc123/rss.xml |
<description> |
Resumen generado automáticamente de las empresas monitoreadas | Automated updates for Stripe, Shopify, and Vercel. |
<lastBuildDate> |
Marca de tiempo RFC 2822 de la última compilación de la fuente | Tue, 24 Feb 2026 10:00:00 +0800 |
Elementos del ítem
Cada <item> representa una única actualización de una empresa monitoreada.
| Elemento | Descripción | Ejemplo |
|---|---|---|
<title> |
Título de la actualización, precedido por el nombre de la empresa | Stripe: Expanding our Global Payment Network |
<link> |
URL del contenido original | https://stripe.com/blog/global-network-2026 |
<guid> |
Identificador único del elemento. isPermaLink es true cuando el GUID es una URL. |
https://stripe.com/blog/global-network-2026 |
<pubDate> |
Marca de tiempo de publicación RFC 2822 | Mon, 23 Feb 2026 14:30:00 +0800 |
<category> |
Tipo de actualización (ver categorías a continuación) | blog |
<dc:creator> |
Nombre de empresa (usa el espacio de nombres Dublin Core) | Stripe |
<description> |
Resumen o extracto de la actualización | Contenido de texto |
<enclosure> |
Archivo adjunto de imagen opcional con url, length (bytes), y type atributos de (tipo MIME) |
<enclosure url="..." length="150000" type="image/jpeg" /> |
Categorías de elementos RSS
Cada <item> incluye un <category> elemento que indica el tipo de actualización:
| Categoría | Descripción |
|---|---|
blog |
Una nueva publicación de blog de la empresa |
x |
Una publicación de la cuenta de X (Twitter) de la empresa |
website update |
Se detectó un cambio en una página existente |
website new page |
Se detectó una nueva página en el sitio web de la empresa |
website unreachable |
El sitio web de la empresa se ha vuelto inaccesible (se activa una sola vez) |
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 403 | No | Token faltante o inválido para una fuente privada |
| 404 | No | Fuente no encontrada |
Endpoint de actualización de fuente
PATCH /api/v1/monitor/feeds/{feed_id}
Costo: 0 créditos / solicitud.
Actualice la configuración de la fuente, como el nombre, la visibilidad o el estado de suspensión. Fuentes suspendidas durante insufficient_credits se reanudan automáticamente cuando se agregan créditos.
# Suspend a feed
curl -X PATCH \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "is_suspended": true, "suspension_reason": "manual" }' \
"https://nubela.co/api/v1/monitor/feeds/feed_abc123"
import requests
response = requests.patch(
"https://nubela.co/api/v1/monitor/feeds/feed_abc123",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"is_suspended": True, "suspension_reason": "manual"},
)
const response = await fetch(
"https://nubela.co/api/v1/monitor/feeds/feed_abc123",
{
method: "PATCH",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ is_suspended: true, suspension_reason: "manual" }),
},
);
Respuesta de ejemplo (igual que Describe Feed):
{
"id": "feed_abc123",
"name": "My Feed",
"is_public": false,
"is_suspended": true,
"suspension_reason": "manual",
"rss_url": "https://nubela.co/api/v1/monitor/feeds/feed_abc123/rss.xml?token=...",
"created_at": "2025-01-15T10:30:00Z",
"targets": [...]
}
Parámetros de URL
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
feed_id |
Sí | El ID de la fuente | feed_abc123 |
Cuerpo de la solicitud
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
name |
No | Nombre de la nueva fuente | "My Feed" |
is_public |
No | Si la fuente RSS es de acceso público | true |
is_suspended |
No | Establecer true para suspender, false para reanudar |
true |
suspension_reason |
No | Motivo de la suspensión (solo cuando is_suspended es true, predeterminado "manual") |
"manual" |
email_notifications |
No | Modo de notificación por correo electrónico. "on_updates" para recibir correos electrónicos cuando se detecten nuevas actualizaciones, "skip" para deshabilitar |
"on_updates" |
Se debe proporcionar al menos un campo.
Respuesta
Devuelve el actualizado Objeto Feed con un targets arreglo que contiene Objeto de destino entradas.
Códigos de error
| Código de estado | ¿Cobrado? | Descripción |
|---|---|---|
| 400 | No | No se proporcionaron campos válidos |
| 404 | No | Fuente no encontrada |
Claude AI
NinjaPear ofrece un servidor MCP (Model Context Protocol) para integración directa con Claude. Esto le permite consultar datos de empresas B2B de forma conversacional: pregúntele a Claude sobre los clientes, inversores, número de empleados y más de cualquier empresa.
Inicio rápido
- Obtenga su cadena de conexión desde el Panel
- Agrega NinjaPear como conector en Claude (consulte las instrucciones de configuración a continuación)
- Inicia una nueva conversación y consulta datos de empresas B2B de forma conversacional
Configuración
Tu cadena de conexión está disponible en el Panel. Se ve así: https://nubela.co/mcp/sse?api_key=YOUR_API_KEY
Claude Platform (Recomendado)
- Obtenga su cadena de conexión desde el Panel
- Asegúrese de haber iniciado sesión en Claude y luego visite: Agregar conector personalizado
- Ingrese lo siguiente:
- Nombre:
NinjaPear - URL del servidor MCP remoto: Pegue su cadena de conector del paso 1
- Nombre:
- Haga clic Agregar conector
- Inicia una nueva conversación y pide a Claude que use NinjaPear
Claude Code CLI
Obtenga su cadena de conexión desde el Panel, luego ejecuta:
claude mcp add ninjapear --transport sse "YOUR_CONNECTOR_STRING"
Herramientas disponibles
| Herramienta | Descripción | Costo |
|---|---|---|
get_customer_listing |
Obtenga clientes, inversores y socios de una empresa | 1 + 2/empresa |
get_company_details |
Obtenga información de la empresa, ejecutivos y datos financieros | 2-4 créditos |
get_employee_count |
Obtenga el número de empleados de una empresa | 2 créditos |
check_disposable_email |
Comprobar si el correo electrónico es desechable/gratuito | GRATIS |
get_credit_balance |
Consulte su saldo de créditos | GRATIS |
get_company_logo_url |
Obtenga la URL del logotipo de la empresa | GRATIS |
list_feeds |
Listar todas sus fuentes de monitoreo | 0 créditos |
create_feed |
Crear una nueva fuente de monitoreo con objetivos | 3 créditos |
describe_feed |
Obtenga los detalles de la fuente con todos los objetivos | 0 créditos |
update_feed |
Actualizar nombre, visibilidad o suspensión de la fuente | 0 créditos |
delete_feed |
Elimina una fuente y todos sus objetivos | 0 créditos |
add_target |
Agregar una empresa para monitorear en una fuente | 0 créditos |
update_target |
Actualizar la configuración de monitoreo para un objetivo | 0 créditos |
remove_target |
Eliminar una empresa de una fuente | 0 créditos |
consume_feed |
Leer las últimas actualizaciones de una fuente | GRATIS |
Ejemplos de prompts
Una vez conectado, puede hacerle preguntas a Claude como:
Inteligencia competitiva
Eres un gerente de producto que hace seguimiento de lo que hacen tus competidores.
- "Monitor stripe.com, brex.com, y ramp.com for blog posts and website changes. Check daily."
- "What are the latest updates from my competitor feed?"
- "Get company details for each of my competitors — I want to know their employee counts and executives"
- "Who are Stripe's customers? Cross-reference them with Brex's customers to find overlap"
Monitoreo de portafolio de capital de riesgo
Eres un inversor de capital de riesgo que quiere mantenerse al tanto de la actividad de las empresas en cartera. Sube un CSV o una captura de pantalla de tus empresas en cartera a Claude y pregunta:
- "Create a monitoring feed for all these companies — track their blogs and website changes weekly"
- "Show me the latest updates across my portfolio feed"
- "Get employee counts for each of my portfolio companies — I want to see who's growing fastest"
- "Which of my portfolio companies have the most customers?"
Prospección de ventas
Trabajas en ventas y quieres investigar cuentas antes de contactarlas.
- "Get company details for acme.com — who are their executives, and what industry are they in?"
- "How many employees does acme.com have?"
- "Who are Salesforce's customers? Get company details for the top 5 by employee count"
- "Is [email protected] a real business email or a disposable address?"
- "Check if these emails are disposable: [email protected], [email protected]"
Investigación de mercado
Eres un analista trazando el panorama de una industria.
- "Find the investors behind Figma, Canva, and Miro. Who are the common VCs?"
- "Get company details for anthropic.com, openai.com, y cohere.com — compare their founding year, employee count, and specialties"
- "Who are the partners of Shopify? Get employee counts for each partner"
- "Get logos for stripe.com, square.com, y adyen.com — I'm building a market map"
Monitoreo y alertas
Desea configurar un monitoreo continuo y volver a verificar las actualizaciones.
- "Create a feed called 'AI Companies' to track openai.com, anthropic.com, and deepmind.google — monitor blogs and X posts"
- "Add mistral.ai to my AI Companies feed"
- "Change the monitoring frequency for Anthropic to daily — they ship fast"
- "Pause my AI Companies feed for now, I'll resume it next quarter"
- "What's my current credit balance? How long will my monitoring last at this rate?"
Gestión de cuenta
Verificaciones rápidas sobre tu uso de NinjaPear.
- "What's my credit balance?"
- "How many credits do I have left?"
Manejo de errores
Los errores se devuelven como mensajes descriptivos que Claude le explicará:
| Error | Mensaje |
|---|---|
| API key no válida | "Error: 401 Unauthorized" |
| Créditos insuficientes | "Error: 402 Payment Required" |
| Límite de velocidad alcanzado | "Error: 429 Too Many Requests" |
| Error del servidor | "Error: 500 Internal Server Error" |
Detalles técnicos
Protocolo MCP
El servidor MCP de NinjaPear implementa el Model Context Protocol especificación, que es el estándar abierto de Anthropic para conectar asistentes de IA a fuentes de datos externas y herramientas.
Transporte
Usamos el transporte Server-Sent Events (SSE) para comunicación en tiempo real:
- Endpoint SSE:
GET /mcp/sse?api_key=YOUR_API_KEY - Endpoint de mensajes:
POST /mcp/messages/ - Verificación de estado:
GET /mcp/health
Autenticación
Pase su clave de API mediante el api_key parámetro de consulta o el X-API-Key encabezado
