Visão geral do NinjaPear
O NinjaPear é uma plataforma de inteligência de empresas B2B com foco em propriedade de dados e coleta ética. Como provedor de dados primários, mantemos um ecossistema sustentável de dados proprietários e juridicamente homologados. Nossa missão é fornecer uma infraestrutura de dados confiável, permitindo que empresas desenvolvam e escalem aplicações e fluxos de trabalho de valor agregado com confiança.
Para Agentes de IA
Desenvolvendo com um agente de código com IA? Use a versão em Markdown simples desta documentação — otimizada para LLMs e ferramentas de IA como Claude, Cursor e ChatGPT:
- Documentação compatível com LLM (Markdown) — referência completa da API em texto simples, pronta para colar ou arrastar e soltar em qualquer chat de IA
- llms.txt — índice leve para descoberta de agentes de IA
- Especificação OpenAPI 3.0 — esquema de API legível por máquina
AI Skill
O NinjaPear AI Skill fornece aos agentes de codificação o conhecimento procedural para escrever código de integração NinjaPear correto em suas aplicações. Instale com um único comando e seu agente saberá como autenticar, escolher o endpoint correto, gerar código SDK e lidar com casos extremos — tudo com consciência de custo incorporada.
Pré-requisitos — Uma chave de API do NinjaPear obtida em nubela.co/dashboard e Node.js 18+.
Instale a habilidade usando o npx skills CLI. Escolha o comando para o seu 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
O que a Skill Oferece
Após instalada, a skill fornece ao seu agente de codificação o conhecimento procedural para trabalhar corretamente com o NinjaPear:
| Capacidade | Descrição |
|---|---|
| Configuração de autenticação | Configure chaves de API por meio de variáveis de ambiente e inicialização do SDK |
| Seleção de ponto final | Escolha o endpoint de API NinjaPear certo com consciência de custos |
| Integração do SDK Python | Gere o código correto usando o ninjapear Pacote Python |
| Integração do SDK JavaScript | Gere o código correto usando o ninjapear pacote npm |
| Manipulação de paginação | Implementar paginação baseada em cursor para terminais de lista |
| Tratamento de limite de taxa | Respeite os limites de taxa com lógica adequada de novas tentativas e espera |
| Tratamento de erros | Lidar com todos os códigos de erro NinjaPear (401, 403, 404, 429, 500, 503) |
| Configuração de tempo limite | Defina tempos limite apropriados para endpoints de longa duração |
Explique como se eu tivesse 5 anos
- Obtenha uma lista de clientes, investidores e parceiros de qualquer empresa com o Endpoint de Listagem de Clientes.
- Encontre concorrentes de qualquer empresa e entenda por que competem com o Endpoint de Listagem de Concorrentes.
- Obtenha o catálogo de produtos e serviços de uma empresa com o Endpoint de Listagem de Produtos.
- Obtenha o logotipo de qualquer empresa gratuitamente com o Endpoint de Logo da Empresa.
- Obtenha detalhes completos da empresa, como setor, descrição, executivos e localizações de escritórios, com o Endpoint de Detalhes da Empresa.
- Obtenha o número de funcionários de qualquer empresa com o Endpoint de Contagem de Funcionários.
- Obtenha posts recentes de blog e atualizações de redes sociais de qualquer empresa com o Endpoint de Atualizações da Empresa.
- Obtenha o histórico completo de captação e os investidores de qualquer empresa com o Endpoint de Captação da Empresa.
- Resolva o nome de uma empresa para sua URL canônica com o Endpoint de Consulta por Site.
- Encontre o e-mail corporativo de uma pessoa pelo nome e domínio da empresa com o Endpoint de E-mail Corporativo.
- Consulte o perfil, histórico profissional e formação de uma pessoa a partir do e-mail corporativo com o Endpoint de Perfil de Pessoa.
- Encontre pessoas semelhantes a um alvo — mesmo cargo em empresas concorrentes — com o Endpoint de Pessoas Semelhantes.
- Verifique se um endereço de e-mail é descartável ou de um provedor gratuito com o Endpoint de Verificação de E-mail Descartável.
- Monitore empresas para novos posts de blog, tweets e alterações no site via RSS com o API do Monitor.
- Verifique seus créditos de API restantes com o Endpoint de Visualização de Saldo de Créditos.
Autenticação
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);
});
A API do NinjaPear utiliza bearer tokens para autenticar usuários. Cada usuário recebe uma chave secreta gerada aleatoriamente em seção de API no Painel.
O bearer token é injetado no Authorization header.
Bibliotecas de cliente
Fornecemos bibliotecas de cliente oficiais para JavaScript e Python para facilitar a integração com a API do 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
Limite de requisições
Os limites de requisições são aplicados por conta de produto e compartilhados por todas as chaves de API desse produto.
Os endpoints de API pagos são limitados a 50 requisições por minuto.
Para controle de limite de taxa, os endpoints de gerenciamento de feed e alvo do Monitor contam como tráfego pago de API mesmo quando o custo em créditos do endpoint é 0.
Em períodos de alta carga, nosso sistema pode reduzir os limites de taxa para todas as contas a fim de garantir que nossos serviços permaneçam acessíveis a todos os usuários.
Retornamos HTTP 429 quando você atingir o limite de requisições. Você também pode receber HTTP 429 caso nossa capacidade seja limitada.
Você deve tratar erros 429 e aplicar recuo exponencial.
As respostas com limite atingido incluem:
| Cabeçalho | Descrição |
|---|---|
Retry-After |
Segundos para aguardar antes de tentar novamente |
X-RateLimit-Limit |
Número máximo de requisições permitidas no minuto atual |
X-RateLimit-Remaining |
Requisições restantes no minuto atual |
X-RateLimit-Reset |
Timestamp Unix de quando o minuto atual é redefinido |
Limite de requisições para APIs gratuitas
Para oferecer APIs gratuitas de forma sustentável, o limite de requisições das APIs gratuitas depende do seu plano de assinatura:
- Plano gratuito, de teste ou PAYG: 2 requisições/min
- Plano $49/mês: 20 requisições/min
- Plano $299/mês: 50 requisições/min
- Plano $899/mês: 100 requisições/min
- Plano $1899/mês: 300 requisições/min
O limite de taxa da API gratuita aplica-se ao Logo da Empresa, Verificador de E-mail Descartável, Visualização de Saldo de Créditos e consumo de feed RSS.
Créditos
Cada requisição válida requer pelo menos 0.1 crédito para ser processado, a menos que seja um endpoint de API gratuito.
Um crédito é consumido se e somente se a requisição for processada com sucesso.
Uma requisição bem-sucedida é uma requisição que retorna com um 200 Código de status HTTP.
Faturamento de cache
Para endpoints com um use_cache parâmetro, um produto não é cobrado novamente quando a mesma requisição normalizada é servida a partir da mesma versão do registro em cache pela qual o produto já pagou. A resposta inclui X-NinjaPear-Credit-Cost: 0 para esses acertos de cache repetidos.
use_cache=never sempre realiza uma nova coleta e cobra normalmente. use_cache=if-recent só se qualifica para repetição gratuita enquanto o registro em cache estiver dentro da janela de atualização do endpoint.
Para endpoints paginados, o acesso repetido gratuito é limitado a páginas já pagas com a mesma consulta, filtros, cadeia de cursor e page_size. Páginas paginadas pagas são reproduzidas exatamente em cache hits repetidos, incluindo o next_page valor. As páginas seguintes que ainda não foram pagas continuam sendo cobradas normalmente.
Timeouts e tempo de resposta da API
Os endpoints da API do NinjaPear recebem 30-60 segundos para concluir.
Recomendamos que você faça requisições simultâneas ao nosso serviço de API para maximizar o throughput. Consulte esta publicação sobre como maximizar o throughput.
Recomendamos um timeout de 100 segundos.
Erros
Estes são os erros comuns que podem ser retornados pela nossa API:
| Código HTTP | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Parâmetros inválidos fornecidos. Consulte a documentação e o corpo da mensagem para mais informações |
| 401 | Não | API Key inválida |
| 403 | Não | Você ficou sem créditos |
| 404 | Sim | O recurso solicitado (ex.: perfil de usuário, empresa) não foi encontrado |
| 410 | Não | Esta API está descontinuada |
| 429 | Não | Limite de requisições atingido. Tente novamente |
| 500 | Não | Há um erro na nossa API. Por favor, Fale conosco para obter assistência |
| 503 | Não | O enriquecimento falhou, tente novamente. |
Você nunca será cobrado por requisições com falha.
Garantia de compatibilidade retroativa
Estamos comprometidos em garantir que nossa API permaneça compatível com versões anteriores, permitindo que você integre com confiança. Nossa garantia de compatibilidade retroativa significa que não introduziremos mudanças que quebrem funcionalidades existentes nem removeremos endpoints sem um período de descontinuação.
Especificamente, não introduziremos mudanças incompatíveis das seguintes formas:
- Não removeremos parâmetros documentados e atributos de resposta.
- Não alteraremos o tipo de dado conforme documentado em nossas respostas de API.
No entanto, as seguintes alterações não são consideradas breaking changes:
- Adição de atributos/parâmetros aos endpoints de API sem aviso prévio.
- Adição de cabeçalhos de resposta ou requisição adicionais aos nossos endpoints de API sem aviso prévio.
Recomendamos fortemente integrar nossa API de forma que não quebre caso novos atributos de resposta ou cabeçalhos sejam introduzidos.
Caso façamos alterações em nossa API, forneceremos documentação clara e aviso prévio suficiente (30 dias) para garantir uma transição tranquila. Os avisos serão compartilhados por e-mails de newsletter, publicações no Twitter/X e atualizações em nosso blog.
API de Clientes
Endpoint de Listagem de Clientes
GET /api/v1/customer/listing
Custo: 1 crédito / solicitação + 2 crédito / empresa retornada. Os créditos são cobrados mesmo quando a solicitação retorna um resultado vazio.
Obtenha uma lista de clientes, investidores e parceiros/plataformas altamente prováveis de uma empresa-alvo, categorizados por tipo de relacionamento.
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);
});
Exemplo de resposta:
{
"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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
site |
Sim | A URL do site ou o nome da empresa-alvo. Uma URL de site (ex.: https://www.stripe.com) é altamente recomendado para maior precisão. |
https://www.stripe.com |
cursor |
Não | Cursor de paginação de next_page em uma resposta anterior |
abc123 |
page_size |
Não | Número de resultados por página (1-200, padrão 200) | 50 |
quality_filter |
Não | Filtra resultados de baixa qualidade (TLDs indesejados como .top, .xyz e sites inacessíveis). Defina como false para incluir todos os resultados. (padrão: true) |
false |
use_cache |
Não | Controla o uso de cache. Sem distinção entre maiúsculas e minúsculas. Valores: if-recent (usa dados em cache quando o último scrape foi há menos de 29 dias, caso contrário enriquece ao vivo), if-present (padrão; retorna o cache primeiro, enriquece ao vivo se ausente), if-present-only (retorna somente o cache; retorna 404 se ausente), never (sempre enriquecer ao vivo). Valores inválidos revertem para o padrão do endpoint. |
if-present |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
customers |
Uma lista de empresas que são prováveis clientes da empresa-alvo. Entidades que pagam pelo produto/serviço da empresa-alvo. | Lista de objetos CustomerCompany |
investors |
Uma lista de empresas que são investidoras (fundos de venture capital, fundos de private equity, redes de investidores anjo) da empresa-alvo. | Lista de objetos CustomerCompany |
partner_platforms |
Uma lista de empresas que são parceiras, plataformas ou fornecedoras de serviços que a empresa-alvo utiliza ou integra (stack tecnológico, mídia, agências). | Lista de objetos CustomerCompany |
next_page |
O URI da API que serve como cursor para paginação. Seguir este URL com sua chave de API levará à próxima página de resultados. Será nulo para a última página. | https://nubela.co/api/v1/customer/list?... |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Não foi possível extrair informações suficientes sobre a empresa-alvo |
| 404 | Não | Nenhum dado em cache encontrado ao use_cache=if-present-only |
ClienteEmpresa
| Chave | Descrição | Exemplo |
|---|---|---|
name |
Nome da empresa | "Apple" |
description |
Uma breve descrição da empresa | "Apple Inc. designs, manufactures, and markets smartphones..." |
tagline |
Tagline ou slogan da empresa | "Think different." |
site |
URL do site da empresa | "https://www.apple.com" |
company_logo_url |
URL para a API de logotipo da empresa. Desenvolvido por Endpoint de Logo da Empresa. Autentique-se com seu bearer token. null se não houver site. |
"https://nubela.co/api/v1/company/logo?website=https%3A%2F%2Fwww.apple.com" |
id |
Identificador único | "abc123" |
industry |
Código de setor GICS de 8 dígitos | 45202030 |
specialties |
Lista de especialidades da empresa | ["Technology"] |
x_profile |
URL do perfil no X (Twitter) | "https://x.com/Apple" |
Observação sobre
company_logo_url: Esta URL é fornecida pelo Endpoint de Logo da Empresa. Autentique-se com seu Bearer token (o mesmo da API principal). Estes são links temporários — a abordagem recomendada é baixar a imagem via URL assim que a resposta for retornada e hospedar a imagem no seu lado.
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 10 |
X-NinjaPear-Cache-Age-Days |
Idade dos dados retornados em dias inteiros. 0 quando dados atualizados são retornados do enriquecimento em tempo real. |
12 |
API de Concorrentes
Endpoint de Listagem de Concorrentes
GET /api/v1/competitor/listing
Custo: 2 créditos / concorrente retornado. Mínimo 5 créditos por requisição, cobrados mesmo quando nenhum resultado é encontrado.
Obtenha uma lista de empresas concorrentes de uma empresa-alvo, com o motivo da concorrência.
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);
});
Exemplo de resposta:
{
"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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
site |
Sim | A URL do site ou o nome da empresa-alvo. Uma URL de site (ex.: https://www.stripe.com) é altamente recomendado para maior precisão. |
https://www.stripe.com |
use_cache |
Não | Controla o uso de cache. Sem distinção entre maiúsculas e minúsculas. Valores: if-recent (usa dados em cache quando o último scrape foi há menos de 29 dias, caso contrário enriquece ao vivo), if-present (padrão; retorna o cache primeiro, enriquece ao vivo se ausente), if-present-only (retorna somente o cache; retorna 404 se ausente), never (sempre enriquecer ao vivo). Valores inválidos revertem para o padrão do endpoint. |
if-present |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
competitors |
Uma lista de empresas concorrentes da empresa-alvo. | Lista de Empresa Concorrente objetos |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Não foi possível extrair informações suficientes sobre a empresa-alvo |
| 404 | Não | Nenhum dado em cache encontrado ao use_cache=if-present-only |
Empresa Concorrente
| Chave | Descrição | Exemplo |
|---|---|---|
company_details_url |
URL para o endpoint de detalhes da empresa deste concorrente. Autentique-se com seu bearer token para recuperar os detalhes completos da empresa. | "https://nubela.co/api/v1/company/details?website=https://www.adyen.com" |
site |
URL do site da empresa | "https://www.adyen.com" |
competition_reason |
Por que esta empresa é considerada concorrente. Um dos valores do campo Motivo da Concorrência enum. | "product_overlap" |
Enum de Motivo da Concorrência
| Valor | Descrição |
|---|---|
organic_keyword_overlap |
Ambas as empresas posicionam para palavras-chave orgânicas similares |
product_overlap |
Ambas as empresas oferecem produtos ou serviços similares |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 4 |
X-NinjaPear-Cache-Age-Days |
Idade dos dados retornados em dias inteiros. 0 quando dados atualizados são retornados do enriquecimento em tempo real. |
12 |
API de Produto
Endpoint de Listagem de Produtos
GET /api/v1/product/listing
Custo: 3 créditos / requisição. Os créditos são cobrados mesmo que nenhum produto seja encontrado para uma empresa válida.
Obtenha uma lista de produtos e serviços oferecidos por uma empresa-alvo.
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);
});
Exemplo de resposta:
{
"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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
site |
Sim | A URL do site ou o nome da empresa-alvo. Uma URL de site (ex.: https://matterport.com) é altamente recomendado para maior precisão. |
https://matterport.com |
use_cache |
Não | Controla o uso de cache. Sem distinção entre maiúsculas e minúsculas. Valores: if-recent (padrão; usa dados em cache quando o último scrape foi há menos de 29 dias, caso contrário enriquece ao vivo), if-present (retorna o cache primeiro, enriquece ao vivo se ausente), if-present-only (retorna somente o cache; retorna 404 se ausente), never (sempre enriquecer ao vivo). Valores inválidos revertem para o padrão do endpoint. |
if-recent |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
products |
Uma lista de produtos e serviços oferecidos pela empresa-alvo. Retorna uma lista vazia quando a empresa é válida, mas nenhum produto ou serviço é detectado. | Lista de Objeto Product objetos |
Objeto Product
| Chave | Descrição | Exemplo |
|---|---|---|
name |
Nome completo do produto ou serviço. Produtos, SKUs, plataformas ou ofertas com preços separados são retornados como linhas distintas. | "Matterport Digital Twin Platform" |
tagline |
Tagline de uma linha do produto, quando disponível. | "Capture, share, and collaborate in immersive 3D." |
description |
Uma a três frases descrevendo o que o produto faz. | "Matterport's 3D digital twin platform allows users to create immersive 3D models of physical spaces..." |
categories |
Categorias de produto, incluindo classe do produto, setor ou agrupamentos por caso de uso compatíveis com o site. | ["3D Modeling", "Digital Twins"] |
tags |
Atributos resumidos do produto, estilos de implantação, rótulos de tecnologia ou outras tags pesquisáveis. | ["ai-powered", "self-hosted"] |
structured_features |
Mapa de recursos usando chaves canônicas e valores booleanos, textuais ou numéricos. As chaves variam por categoria de produto. | { "secure_cloud_hosting": true } |
freeform_features |
Frases de recursos que não se encaixam em uma chave canônica. | ["unmatched 3D visual clarity"] |
pricing |
Modelo de preços, preço inicial e níveis quando as informações de preço estão disponíveis. null quando o preço não pode ser determinado. |
Objeto de Preços |
integrations |
Nomes de produtos, plataformas ou serviços com os quais este produto se integra. | ["Procore", "Autodesk", "AWS"] |
platforms |
Plataformas onde o produto está disponível, como web, ios, android, macos, windows, linux, api, cli, ou chrome-extension. |
["web"] |
source_urls |
URLs do site da empresa-alvo onde os dados do produto foram encontrados. | ["https://matterport.com/solutions/design-construction"] |
Objeto de Preços
| Chave | Descrição | Exemplo |
|---|---|---|
model |
Modelo de preços. Um dos valores do Enum de Modelo de Preços. | "subscription" |
starts_at_monthly_usd |
Menor preço mensal em USD encontrado no site da empresa. null quando desconhecido ou indisponível. |
29.0 |
tiers |
Níveis de preço encontrados no site da empresa. | Lista de Objeto PricingTier objetos |
Objeto PricingTier
| Chave | Descrição | Exemplo |
|---|---|---|
name |
Nome do nível de preço. | "Business" |
price_usd_monthly |
Preço mensal em USD para este plano. null quando desconhecido. |
99.0 |
features |
Recursos listados para este nível de preço. | ["SSO", "Audit logs"] |
Enum de Modelo de Preços
| Valor | Descrição |
|---|---|
freemium |
Plano gratuito com upgrades pagos |
subscription |
Assinatura paga recorrente |
one-time |
Compra única |
payg |
Preços por uso |
enterprise |
Preços personalizados para empresas |
unknown |
Preços existem ou podem existir, mas o modelo não está claro |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 3 |
X-NinjaPear-Cache-Age-Days |
Idade dos dados retornados em dias inteiros. 0 quando dados atualizados são retornados do enriquecimento em tempo real. |
12 |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Site inacessível ou a entrada é inválida |
| 404 | Não | Nenhum dado em cache encontrado ao use_cache=if-present-only |
| 503 | Não | A capacidade de rastreamento está temporariamente saturada. Tente novamente após um breve intervalo. |
API de Empresa
Endpoint de Logo da Empresa
GET /api/v1/company/logo
Custo: 0 crédito / solicitação bem-sucedida. (GRÁTIS)
Recupera o logotipo de uma empresa a partir da URL do seu site. Retorna o logotipo como uma imagem 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));
});
Exemplo de resposta:
Um binário de imagem PNG bruta (Content-Type: image/png).
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
site |
Sim | A URL do site da empresa-alvo | https://www.stripe.com |
Resposta
A 200 a resposta retorna o logotipo como uma imagem PNG bruta com Content-Type: image/png.
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 404 | Não | Nenhum logotipo encontrado para o domínio informado |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 0 |
Endpoint de Detalhes da Empresa
GET /api/v1/company/details
Custo: 3 créditos / solicitação (base). Adicione 2 créditos quando include_employee_count=true. Adicione 1 crédito quando follower_count=include. Adicione 2 créditos quando addresses=best-effort-exhaustive. Total máximo: 8 créditos. Os créditos são cobrados mesmo que nenhum dado seja encontrado.
Recupere os detalhes de uma empresa a partir da URL do seu site. Retorna metadados da empresa, incluindo descrição, setor, URLs de redes sociais, a equipe de liderança atual e mais.
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);
});
Exemplo de resposta (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
}
Exemplo de resposta (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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
site |
Sim | A URL do site ou o nome da empresa-alvo. Uma URL de site (ex.: https://www.stripe.com) é altamente recomendado para maior precisão. |
https://www.stripe.com |
include_employee_count |
Não | Busca dados atualizados de número de funcionários via pesquisa na web. Adiciona 2 créditos ao custo da requisição. Valores válidos: true, false (padrão). |
true |
follower_count |
Não | Incluir contagens de seguidores e seguidos no Twitter/X. Adiciona 1 crédito ao custo da solicitação. Valores válidos: include. Omita ou passe qualquer outro valor para excluir. |
include |
addresses |
Não | Modo de detalhamento de endereço. O padrão é hq-only. Use best-effort-exhaustive para buscar e persistir endereços físicos de escritórios corporativos globalmente com base no melhor esforço. Adiciona 2 créditos ao custo da requisição. |
best-effort-exhaustive |
use_cache |
Não | Controla o uso de cache. Sem distinção entre maiúsculas e minúsculas. Valores: if-recent (padrão; usa dados em cache quando o último scrape foi há menos de 29 dias, caso contrário enriquece ao vivo), if-present (retorna o cache primeiro, enriquece ao vivo se ausente), if-present-only (retorna somente o cache; retorna 404 se ausente), never (sempre enriquecer ao vivo). Valores inválidos revertem para o padrão do endpoint. |
if-recent |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
websites |
Lista de todas as URLs do site da empresa | ["https://stripe.com", "https://stripe.dev"] |
description |
Uma breve descrição da empresa | "Stripe is a technology company..." |
industry |
Código de setor 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 |
Ano de fundação da empresa | 2010 |
specialties |
Lista de especialidades da empresa | ["Payments", "Financial Services"] |
name |
Nome da empresa | "Stripe" |
tagline |
Tagline ou slogan da empresa | "Financial infrastructure for the internet" |
logo_url |
URL para o Endpoint de logo da empresa. Autentique-se com seu bearer token de API key. | "https://nubela.co/api/v1/company/logo?website=https://stripe.com" |
cover_pic_url |
URL para a imagem de capa/banner da empresa | "https://example.com/cover.png" |
facebook_url |
URL do perfil no Facebook | "https://facebook.com/stripe" |
twitter_url |
URL do perfil no Twitter/X | "https://twitter.com/stripe" |
instagram_url |
URL do perfil no Instagram | null |
employee_count |
Número estimado de funcionários | 8000 |
employee_count_range_min |
Limite inferior do intervalo de número de funcionários. Presente apenas quando include_employee_count=true. |
7500 |
employee_count_range_max |
Limite superior do intervalo de contagem de funcionários. Presente apenas quando include_employee_count=true. |
8500 |
follower_count |
Número de seguidores no Twitter/X. Presente somente quando follower_count=include. |
272190 |
following_count |
Número de contas no Twitter/X seguidas. Presente somente quando follower_count=include. |
555 |
addresses |
Lista de endereços da empresa. Por padrão, exibe apenas a sede, a menos que addresses=best-effort-exhaustive é solicitado. |
[Objeto de Endereço] |
executives |
Lista de executivos e membros do conselho da empresa | [Objeto Executive] |
similar_companies |
URL para o Endpoint de listagem de concorrentes. Autentique-se com seu bearer token para recuperar os concorrentes. | "https://nubela.co/api/v1/competitor/listing?website=https%3A%2F%2Fstripe.com" |
updates |
URL para o Endpoint de atualizações da empresa. Autentique-se com seu bearer token para recuperar as atualizações. | "https://nubela.co/api/v1/company/updates?website=https%3A%2F%2Fstripe.com" |
funding |
URL para o Endpoint de captação da empresa. Autentique-se com seu bearer token para recuperar o histórico de captação. | "https://nubela.co/api/v1/company/funding?website=https%3A%2F%2Fstripe.com" |
public_listing |
Dados de empresas públicas, incluindo informações de ações e dados financeiros. null para empresas privadas. |
Objeto PublicListing |
Objeto de Endereço
| Chave | Descrição | Exemplo |
|---|---|---|
address_type |
Tipo de endereço (HEADQUARTERS, REGISTERED, BRANCH, MAILING, OTHER) | "HEADQUARTERS" |
line1 |
Endereço, linha 1 | "354 Oyster Point Blvd" |
line2 |
Endereço, linha 2 | null |
city |
Nome da cidade | "South San Francisco" |
state |
Estado, província ou região | "CA" |
postal_code |
CEP/Código postal | "94080" |
country_code |
Código de país ISO 3166-1 alpha-2 | "US" |
country |
Nome completo do país | "United States" |
is_primary |
Se este é o endereço principal | true |
Objeto Executive
| Chave | Descrição | Exemplo |
|---|---|---|
name |
Nome completo do executivo | "Patrick Collison" |
title |
Cargo | "Chief Executive Officer" |
role |
Tipo de cargo normalizado (CEO, CFO, COO, CTO, CMO, PRESIDENT, VICE_PRESIDENT, DIRECTOR, BOARD_MEMBER, CHAIRMAN, FOUNDER, OTHER) | "CEO" |
person_profile_url |
URL pré-preenchida para o Endpoint de perfil de pessoa. Autentique-se com seu bearer token para buscar o perfil do executivo. null quando o primeiro nome ou o site da empresa estiver ausente. |
"https://nubela.co/api/v2/employee/profile?employer_website=https%3A%2F%2Fstripe.com&first_name=Patrick&last_name=Collison" |
Objeto PublicListing
Este objeto está presente (não nulo) apenas para empresas públicas. Para empresas privadas, public_listing será null.
| Chave | Descrição | Exemplo |
|---|---|---|
stock_symbol |
Símbolo de ticker de ação | "AAPL" |
ipo_date |
Data do IPO em formato ISO | "1980-12-12" |
isin |
Número Internacional de Identificação de Valores Mobiliários | "US0378331005" |
figi |
Financial Instrument Global Identifier | "BBG000B9XRY4" |
cusip |
Identificador CUSIP | "037833100" |
lei |
Identificador de Entidade Legal | "HWUPKR0MPOU8FGXBT394" |
cik |
Chave de Índice Central SEC | "0000320193" |
sic_code |
Código de Classificação Industrial Padrão SEC | "3571" |
revenue_usd |
Receita anual em USD | 383285000000 |
revenue_captured_at |
Data em que os dados de receita foram capturados (formato ISO) | "2024-09-28" |
ebitda_usd |
EBITDA em USD | 134000000000 |
ebitda_captured_at |
Data em que os dados de EBITDA foram capturados (formato ISO) | "2024-09-28" |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 2 |
X-NinjaPear-Cache-Age-Days |
Idade dos dados retornados em dias inteiros. 0 quando dados atualizados são retornados do enriquecimento em tempo real. |
12 |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Site inacessível |
| 404 | Não | Nenhum dado em cache encontrado ao use_cache=if-present-only |
| 404 | Sim | Não foi possível extrair dados da empresa do site |
Endpoint de Contagem de Funcionários
GET /api/v1/company/employee-count
Custo: 2 créditos / requisição bem-sucedida.
Recupere a faixa de número de funcionários de uma empresa a partir da URL do seu site.
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);
});
Exemplo de resposta:
{
"employee_count": 3500
}
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
site |
Sim | A URL do site ou o nome da empresa-alvo. Uma URL de site (ex.: https://www.stripe.com) é altamente recomendado para maior precisão. |
https://www.stripe.com |
use_cache |
Não | Controla o uso de cache. Sem distinção entre maiúsculas e minúsculas. Valores: if-recent (padrão; usa dados em cache quando o último scrape foi há menos de 29 dias, caso contrário enriquece ao vivo), if-present (retorna o cache primeiro, enriquece ao vivo se ausente), if-present-only (retorna somente o cache; retorna 404 se ausente), never (sempre enriquecer ao vivo). Valores inválidos revertem para o padrão do endpoint. |
if-recent |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
employee_count |
Número estimado de funcionários | 3500 |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 2 |
X-NinjaPear-Cache-Age-Days |
Idade dos dados retornados em dias inteiros. 0 quando dados atualizados são retornados do enriquecimento em tempo real. |
12 |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 404 | Não | Nenhum dado de número de funcionários encontrado para o site informado |
| 404 | Não | Nenhum dado em cache encontrado ao use_cache=if-present-only |
Endpoint de Atualizações da Empresa
GET /api/v1/company/updates
Custo: 2 créditos / requisição.
Recupera as publicações de blog e atualizações do X/Twitter mais recentes de uma empresa. Retorna uma linha do tempo combinada de publicações recentes de blog e do X, ordenadas por timestamp.
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);
});
Exemplo de resposta
{
"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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
site |
Sim | A URL do site ou o nome da empresa-alvo. Uma URL de site (ex.: https://www.stripe.com) é altamente recomendado para maior precisão. |
https://www.stripe.com |
use_cache |
Não | Controla o uso de cache. Sem distinção entre maiúsculas e minúsculas. Valores: if-recent (padrão; usa dados em cache quando o último scrape foi há menos de 1 dia, caso contrário enriquece ao vivo), if-present (retorna o cache primeiro, enriquece ao vivo se ausente), if-present-only (retorna somente o cache; retorna 404 se ausente), never (sempre enriquecer ao vivo). Valores inválidos revertem para o padrão do endpoint. |
if-recent |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
blogs |
Lista de URLs de feeds RSS do blog (se RSS foi encontrado) ou URLs de páginas do blog | ["https://stripe.com/blog/feed.rss"] |
x_profile |
URL do perfil no X/Twitter, ou null se não encontrado |
"https://x.com/stripe" |
youtube_channels |
Lista de URLs de canais do YouTube encontrados para a empresa, ou vazio se nenhum for encontrado | ["https://www.youtube.com/channel/UCdog0Ap82jpFvSnxorxF_lA"] |
updates |
Lista de objetos de atualização (posts de blog, tweets e vídeos do YouTube combinados), ordenados por data decrescente. | Consulte Objeto de Atualização |
timestamp |
Timestamp UTC de quando estes dados foram extraídos | "2025-03-16T10:00:00+00:00" |
Objeto de Atualização
| Chave | Descrição | Exemplo |
|---|---|---|
url |
URL da publicação no blog, tweet ou vídeo do YouTube | "https://stripe.com/blog/example" |
title |
Título da publicação (primeiros 80 caracteres para tweets) | "Stripe's annual letter" |
description |
Descrição da publicação, texto do tweet ou descrição do vídeo (até 500 caracteres para blogs) | "A look back at..." |
image_url |
URL da imagem (mídia do tweet ou miniatura de vídeo), ou null |
"https://pbs.twimg.com/media/example.jpg" |
timestamp |
Timestamp de publicação no formato ISO 8601, ou null se desconhecido |
"2025-03-01T12:00:00+00:00" |
source |
Tipo de origem da atualização | "blog", "x", ou "youtube" |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 2 |
X-NinjaPear-Cache-Age-Days |
Idade dos dados retornados em dias inteiros. 0 quando dados atualizados são retornados do enriquecimento em tempo real. |
1 |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Parâmetro de site ausente ou inválido |
| 403 | Não | Créditos insuficientes |
| 404 | Não | Nenhum dado em cache encontrado ao use_cache=if-present-only |
Endpoint de Captação da Empresa
GET /api/v1/company/funding
Custo: 2 créditos / solicitação (base) + 1 crédito por investidor único retornado. A cobrança base ainda se aplica quando nenhum dado de captação é encontrado (consulte error_code: "no_funding_data" abaixo).
Recupere o histórico de captação de uma empresa a partir da URL do seu site. Retorna o total captado, as rodadas individuais de captação com datas e valores, e os investidores participantes com seus sites.
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);
});
Exemplo de resposta
{
"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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
site |
Sim | A URL do site ou o nome da empresa-alvo. Uma URL de site (ex.: https://www.stripe.com) é altamente recomendado para maior precisão. |
https://www.stripe.com |
use_cache |
Não | Controla o uso de cache. Sem distinção entre maiúsculas e minúsculas. Valores: if-recent (padrão; usa dados em cache quando o último scrape foi há menos de 29 dias, caso contrário enriquece ao vivo), if-present (retorna o cache primeiro, enriquece ao vivo se ausente), if-present-only (retorna somente o cache; retorna 404 se ausente), never (sempre enriquecer ao vivo). Valores inválidos revertem para o padrão do endpoint. |
if-recent |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
site |
O domínio da empresa descrito na resposta, ecoado da requisição | "stripe.com" |
total_funds_raised_usd |
Total captado em USD, ou null se não divulgado |
9810000000 |
funding_rounds |
Array de objetos FundingRound, ordenados por data decrescente | Veja abaixo |
credit_cost |
Total de créditos cobrados por esta chamada (2 base + 1 por investidor único). As respostas em streaming entregam o custo em créditos no corpo da resposta, em vez do X-NinjaPear-Credit-Cost header. |
7 |
Objeto FundingRound
| Chave | Descrição | Exemplo |
|---|---|---|
round_type |
Tipo de rodada de captação (veja os valores de tipo de rodada abaixo) | "SERIES_A" |
date |
Data da rodada em YYYY-MM-DD formato, ou null se desconhecido |
"2023-03-01" |
amount_usd |
Valor captado nesta rodada em USD, ou null se não divulgado |
600000000 |
investors |
Array de objetos Investor que participaram desta rodada | Veja abaixo |
Objeto Investor
| Chave | Descrição | Exemplo |
|---|---|---|
name |
Nome do investidor (empresa ou pessoa física) | "Sequoia Capital" |
site |
Domínio do site do investidor, ou null se desconhecido |
"sequoiacap.com" |
type |
Ou "company" (empresa de VC, fundo, corporativo) ou "angel" (individual) |
"company" |
amount_usd |
Valor contribuído por este investidor em USD, ou null se não divulgado |
null |
Valores de Tipo de Rodada
PRE_SEED, SEED, SERIES_A, SERIES_B, SERIES_C, SERIES_D, SERIES_E, SERIES_F, SERIES_G, SERIES_H, SERIES_I até 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
Cabeçalhos da Resposta
Este endpoint transmite sua resposta em streaming; HTTP trailers não são suportados, portanto o custo em créditos é entregue no corpo da resposta (o credit_cost campo) em vez do X-NinjaPear-Credit-Cost header. Quando a resposta é servida do cache, o X-NinjaPear-Credit-Cost header é retornado normalmente. O X-NinjaPear-Cache-Age-Days header é retornado nas respostas bem-sucedidas para todos os use_cache modos; o enriquecimento fresco ao vivo retorna 0.
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API (2 base + 1 por investidor). Apenas acertos de cache. | 7 |
X-NinjaPear-Cache-Age-Days |
Idade dos dados retornados em dias inteiros. 0 quando dados atualizados são retornados do enriquecimento em tempo real. |
12 |
Códigos de Erro
Erros do lado do cliente (HTTP 400 / 403) são retornados antes do início do corpo de streaming. Em casos de falha de cache, erros do lado do servidor são entregues como HTTP 200 com error e error_code campos no corpo da resposta — como a conexão de streaming já foi estabelecida, o código de status não pode ser alterado. Clientes que anteriormente ramificavam com base em response.status_code == 404 deve ramificar com base no error_code campo em vez disso.
| Código de Status | Cobrado? | error_code (corpo) |
Descrição |
|---|---|---|---|
| 400 | Não | — | Parâmetro de site ausente ou inválido |
| 403 | Não | — | Créditos insuficientes |
| 404 | Não | — | Nenhum dado em cache encontrado ao use_cache=if-present-only |
| 200 (corpo contém erro) | Sim (2 créditos) | no_funding_data |
Nenhum dado de captação foi encontrado para o site informado. funding_rounds é []. |
| 200 (corpo contém erro) | Não | service_temp_unavailable |
Serviço temporariamente indisponível. Tente novamente mais tarde. funding_rounds é []. |
Endpoint de Consulta por Site
GET /api/v1/company/website
Custo: 1 crédito / solicitação (cobrado independentemente de um resultado ser encontrado ou não).
Resolva o nome de uma empresa para sua URL de site 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);
});
Exemplo de resposta:
{
"website": "https://www.apexsecurity.com"
}
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
company_name |
Sim | O nome da empresa a ser consultada. | Apex |
country_code |
Não | Código de país ISO 3166-1 alpha-2 de 2 letras opcional, usado para direcionar geograficamente a pesquisa (ex.: us, gb, de, sg). Consulte o lista completa de códigos ISO 3166-1 alpha-2. Padrão: us quando omitido. |
us |
dica |
Não | Forneça uma dica para diferenciar empresas com nomes semelhantes no mesmo país. | cybersecurity firm |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
site |
A URL canônica resolvida do site. | https://www.stripe.com |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 1 |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Ausente ou inválido company_name parâmetro. |
| 400 | Não | Inválido country_code (não é um código de 2 letras reconhecido). |
| 404 | Sim (1) | Nenhum site correspondente foi encontrado para o nome de empresa informado. |
API de Funcionários
Endpoint de E-mail Corporativo
GET /api/v1/employee/work-email
Custo: 2 créditos em uma consulta bem-sucedida (e-mail corporativo encontrado). Quando nenhum e-mail é encontrado (work_email é null), uma cobrança de token de 0.5 créditos é aplicado — isso desencoraja abusos enquanto mantém as consultas especulativas com baixo custo.
Faz uma tentativa com base nos dados disponíveis para retornar um e-mail corporativo público de uma pessoa, dado seu primeiro nome (sobrenome opcional) e um domínio da 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);
});
Exemplo de resposta (e-mail encontrado)
{
"work_email": "[email protected]"
}
Exemplo de resposta (sem evidências)
{
"work_email": null
}
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
first_name |
Sim | Primeiro nome da pessoa. | Patrick |
last_name |
Não | Sobrenome da pessoa. Melhora a precisão quando o padrão exige. | Collison |
domain |
Sim | Domínio da empresa. O protocolo e o caminho são removidos, se presentes. | stripe.com |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
work_email |
Endereço de e-mail corporativo com melhor esforço. null se nenhum e-mail público foi encontrado E nenhum padrão pôde ser inferido. |
"[email protected]" | null |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Total de créditos cobrados por esta chamada. 2 em um acerto; 0.5 em um erro de cache (cobrança anti-abuso de token). |
2 ou 0.5 |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Ausente ou inválido first_name / domain. |
| 403 | Não | Créditos insuficientes. |
| 503 | Não | Serviço temporariamente indisponível. Tente novamente mais tarde. |
Endpoint de Perfil de Pessoa
GET /api/v2/employee/profile
Custo: 3 créditos / requisição. Os créditos são cobrados mesmo que nenhum dado seja encontrado.
Enriqueça o perfil profissional de um funcionário fornecendo um e-mail corporativo, uma combinação de nome e empregador, ou uma combinação de cargo e empregador. Retorna dados de perfil estruturados, incluindo histórico profissional, formação acadêmica, localização e presença em redes sociais.
Você deve fornecer pelo menos uma destas combinações de entrada:
- Somente e-mail corporativo — ex.
[email protected] - Primeiro nome + website do empregador — ex.
first_name=John&employer_website=https://stripe.com - Website do empregador + cargo — ex.
employer_website=https://stripe.com&role=CTO
Você sempre pode adicionar mais parâmetros para melhorar a precisão. Por exemplo, fornecer work_email juntamente com first_name, last_name, e role produzirá resultados melhores do que work_email sozinho.
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);
});
Exemplo de resposta
{
"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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
work_email |
Condicional | E-mail corporativo da pessoa. Obrigatório se employer_website não é fornecido. |
[email protected] |
first_name |
Condicional | Primeiro nome da pessoa. Obrigatório ao usar nome + employer_website combinação. |
John |
middle_name |
Não | Nome do meio da pessoa. Melhora a precisão quando combinado com outros parâmetros. | Michael |
last_name |
Não | Sobrenome da pessoa. Melhora a precisão quando combinado com outros parâmetros. | Smith |
employer_website |
Condicional | URL do site ou nome da empresa empregadora da pessoa. Uma URL de site é fortemente recomendada para maior precisão. Obrigatório se work_email não é fornecido. |
https://stripe.com |
role |
Não | Cargo ou função atual. Melhora a precisão. Obrigatório ao usar employer_website sem nome. |
CTO |
slug |
Não | Slug de pessoa para consulta direta de um perfil enriquecido existente. | elon-musk |
id |
Não | ID de pessoa para consulta direta de um perfil enriquecido existente. | abc123de-... |
enrichment |
Não | Controla a profundidade do enriquecimento em tempo real. Valores: fast (padrão; retorna rapidamente e inicia o enriquecimento detalhado em segundo plano), detailed (aguarda o enriquecimento detalhado antes de retornar).Uma resposta rápida inclui menos detalhes biográficos, como dados de site e foto de perfil, mas retorna rapidamente o histórico estruturado de trabalho e formação acadêmica. Uma requisição de enriquecimento rápido também inicia o enriquecimento detalhado em segundo plano, e você também tem direito a esse resultado. Consulte a mesma requisição com os mesmos parâmetros e use_cache=if-recent 10 a 30 segundos depois para recuperar o resultado completamente enriquecido sem custo adicional. Pare de fazer polling quando o X-NinjaPear-Enrichment-Status cabeçalho de resposta é complete. Assim que o enriquecimento detalhado for concluído, a mesma requisição retorna o perfil detalhado em cache sem custo adicional.Use enrichment=fast quando você precisa de um resultado rápido para casos de uso como preencher uma UI. Use enrichment=detailed quando você precisa da resposta completa e não se importa em aguardar. |
fast |
use_cache |
Não | Controla o uso de cache. Sem distinção entre maiúsculas e minúsculas. Valores: if-recent (padrão; usa dados em cache quando o último scrape foi há menos de 29 dias, caso contrário enriquece ao vivo), if-present (retorna o cache primeiro, enriquece ao vivo se ausente), if-present-only (retorna somente o cache; retorna 404 se ausente), never (sempre enriquecer ao vivo). Valores inválidos revertem para o padrão do endpoint. |
if-recent |
Combinações de Entrada Válidas
| Combinação | Exemplo |
|---|---|
work_email sozinho |
[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 ou id |
?slug=elon-musk |
Parâmetros adicionais sempre podem ser incluídos para melhorar a precisão dos resultados.
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
id |
ID único da pessoa. Presente quando o perfil está associado a um registro de pessoa persistido. | "abc123de-f456-7890-abcd-ef1234567890" |
slug |
Slug único da pessoa. Presente quando o perfil está associado a um registro de pessoa persistido. | "elon-musk" |
profile_pic_url |
URL para a foto de perfil da pessoa (proveniente do X/Twitter). Pode ser null. |
"https://pbs.twimg.com/.../photo_400x400.jpg" |
first_name |
Primeiro nome | "Elon" |
middle_name |
Nome do meio. Pode ser null. |
"Reeve" |
last_name |
Sobrenome | "Musk" |
full_name |
Nome completo | "Elon Reeve Musk" |
bio |
Bio/descrição do perfil do X/Twitter. Pode ser null. |
"Mars & Cars, Chips & Dips" |
follower_count |
Número de seguidores no X/Twitter. Pode ser null. |
195000000 |
following_count |
Número de contas no X/Twitter seguidas. Pode ser null. |
782 |
country |
País de residência. Código ISO 3166-1 alfa-2. | "US" |
city |
Cidade de residência. UN/LOCODE. | "USAUS" |
state |
Estado ou região de residência. Código de subdivisão ISO 3166-2. | "US-TX" |
x_handle |
Handle no X/Twitter (sem @). Pode ser null. |
"elonmusk" |
x_profile_url |
URL para o perfil no X/Twitter. Pode ser null. |
"https://x.com/elonmusk" |
personal_website |
URL do site pessoal. Pode ser null. |
"https://elonmusk.com" |
work_experience |
Lista de registros de histórico profissional, do mais recente para o mais antigo | [Objeto WorkExperience] |
education |
Lista de registros de educação, do mais recente para o mais antigo | [Objeto de Educação] |
work_email_lookup |
URL pré-construída para o Endpoint de E-mail Corporativo para esta pessoa, com first_name, last_name, e domain (o website da experiência de trabalho mais recente) já preenchido. Chame-o diretamente com seu bearer token para resolver o e-mail corporativo da pessoa — sem necessidade de repassar os parâmetros. Custa 2 créditos por chamada. Pode ser null quando o site do empregador atual for desconhecido. |
"https://nubela.co/api/v1/employee/work-email?first_name=Elon&last_name=Musk&domain=tesla.com" |
similar_people |
URL pré-construída para o Endpoint de Pessoas Semelhantes para esta pessoa, indexado pelo(a) id. Chame-o diretamente para buscar pessoas com o mesmo cargo em empresas concorrentes — sem necessidade de repassar os parâmetros de busca. |
"https://nubela.co/api/v1/employee/similar?id=abc123de-..." |
Objeto WorkExperience
| Chave | Descrição | Exemplo |
|---|---|---|
role |
Cargo ou função | "CEO" |
company_name |
Nome da empresa | "Tesla" |
company_website |
Domínio do site da empresa. Pode ser null. |
"tesla.com" |
description |
Descrição do que a pessoa fez nesta função. Pode ser null. |
"Leading Tesla's mission..." |
start_date |
Data de início no formato YYYY-MM. Pode ser null. |
"2008-10" |
end_date |
Data de término no formato AAAA-MM. null significa atualmente nesta função. |
null |
Objeto de Educação
| Chave | Descrição | Exemplo |
|---|---|---|
major |
Grau e área de estudo | "B.S. Economics" |
school |
Nome da escola ou universidade | "Wharton School, University of Pennsylvania" |
start_date |
Data de início no formato YYYY-MM. Pode ser null. |
"1992-01" |
end_date |
Data de término no formato AAAA-MM. Pode ser null. |
"1997-01" |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 3 |
X-NinjaPear-Cache-Age-Days |
Idade dos dados retornados em dias inteiros. 0 quando dados atualizados são retornados do enriquecimento em tempo real. |
12 |
X-NinjaPear-Enrichment-Status |
Status detalhado de enriquecimento para respostas de Perfil de Pessoa v2. pending significa que a resposta é o perfil rápido e o enriquecimento detalhado ainda está em execução ou aguardando conclusão. complete significa que a resposta é o perfil detalhado em cache ou um(a) enrichment=detailed resultado. Faça polling até que este cabeçalho seja complete. |
complete |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Entrada inválida. É necessário fornecer work_email, ou first_name + employer_website, ou employer_website + role. |
| 400 | Não | Inválido enrichment. Use fast ou detailed. O obsoleto speed parâmetro não é aceito. |
| 400 | Não | work_email é um e-mail pessoal/gratuito (ex.: [email protected]). Forneça um e-mail corporativo. |
| 403 | Não | Créditos insuficientes |
| 404 | Não | work_email é uma caixa de entrada genérica/baseada em função (ex.: info@, support@, sales@, noreply@) que não corresponde a uma pessoa individual. |
| 404 | Não | Nenhum dado em cache encontrado ao use_cache=if-present-only |
| 404 | Sim (3 créditos) | Nenhum dado de perfil foi encontrado para a entrada informada |
| 503 | Não | Serviço temporariamente indisponível. Tente novamente mais tarde. |
Endpoint de Pessoas Semelhantes
GET /api/v1/employee/similar
Custo: 10 créditos base + 5 créditos por tupla (empresa, cargo) tentada. O custo base é cobrado independentemente de pessoas semelhantes serem encontradas, pois o endpoint consome recursos de enriquecimento em tempo real para atender cada requisição. Resultados em cache são gratuitos (veja abaixo).
Encontre pessoas que são similar a uma pessoa-alvo — definida como pessoas que ocupam o mesmo cargo em empresas concorrentes. Dado um alvo (por exemplo, o CEO da nubela.co), o endpoint identifica o empregador atual do alvo, consulta os concorrentes desse empregador e tenta enriquecer a pessoa com a mesma função em cada concorrente em tempo real. A resposta retorna o perfil do alvo, a lista de tuplas (empresa, função) que tentamos pesquisar e as pessoas similares que enriquecemos com sucesso.
Os parâmetros de entrada são idênticos ao Endpoint de Perfil de Pessoa. Você deve fornecer pelo menos uma destas combinações de entrada:
- Somente e-mail corporativo — ex.
[email protected] - Primeiro nome + website do empregador — ex.
first_name=Tim&employer_website=https://apple.com - Website do empregador + cargo — ex.
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);
});
Exemplo de resposta
{
"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 brevidade, o exemplo acima mostra apenas um subconjunto de PersonProfile campos. Cada entrada em alvo e similar_people é um(a) completo(a) PersonProfile objeto — consulte o(a) Resposta do Endpoint de Perfil de Pessoa para o esquema completo, incluindo profile_pic_url, bio, country, x_handle, education, etc.
Parâmetros de URL
Idêntico ao Parâmetros de URL do Endpoint de Perfil de Pessoa.
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
work_email |
Condicional | E-mail corporativo da pessoa alvo. Obrigatório se employer_website não é fornecido. |
[email protected] |
first_name |
Condicional | Primeiro nome do alvo. Obrigatório ao usar nome + employer_website combinação. |
Tim |
middle_name |
Não | Nome do meio do alvo. Melhora a precisão quando combinado com outros parâmetros. | Donald |
last_name |
Não | Sobrenome do alvo. Melhora a precisão quando combinado com outros parâmetros. | Cook |
employer_website |
Condicional | URL do site ou nome da empresa empregadora do alvo. Uma URL de site é fortemente recomendada para maior precisão. Obrigatório se work_email não é fornecido. |
https://apple.com |
role |
Não | Cargo ou função atual. Obrigatório ao usar employer_website sem nome. |
CEO |
Combinações de Entrada Válidas
| Combinação | Exemplo |
|---|---|
work_email sozinho |
[email protected] |
first_name + employer_website |
?first_name=Tim&employer_website=https://apple.com |
employer_website + role |
?employer_website=https://apple.com&role=CEO |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
alvo |
O perfil completo da pessoa-alvo resolvida. Mesmo esquema que o Endpoint de Perfil de Pessoa. | { "first_name": "Tim", ... } |
attempted_searches |
Lista de tuplas (empresa, cargo) que tentamos enriquecer. Uma entrada por concorrente do empregador atual do alvo. Define a cobrança por tupla (5 créditos cada). | [Objeto AttemptedSearch] |
similar_people |
Lista de perfis enriquecidos com sucesso de pessoas com o mesmo cargo em empresas concorrentes. Pode ser um subconjunto de attempted_searches (algumas tentativas não retornam dados). Cada entrada usa o mesmo esquema que o Endpoint de Perfil de Pessoa. |
[PersonProfile, ...] |
credit_cost |
Total de créditos cobrados por esta chamada. Igual a 10 + 5 * len(attempted_searches), ou 0 para resultados em cache servidos ao mesmo produto que pagou anteriormente. |
30 |
Objeto AttemptedSearch
| Chave | Descrição | Exemplo |
|---|---|---|
employer_website |
Domínio do site da empresa concorrente que tentamos. | "google.com" |
role |
Cargo pesquisado naquele concorrente (espelha o alvo). | "CEO" |
Cabeçalhos da Resposta
Este endpoint transmite sua resposta em streaming, portanto o custo em créditos não pode ser retornado em um cabeçalho — HTTP trailers não são suportados pela camada de streaming. Leia o credit_cost campo no corpo da resposta em vez do usual X-NinjaPear-Credit-Cost header.
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Entrada inválida. É necessário fornecer work_email, ou first_name + employer_website, ou employer_website + role. |
| 400 | Não | work_email é um e-mail pessoal/gratuito (ex.: [email protected]). Forneça um e-mail corporativo. |
| 403 | Não | Créditos insuficientes. Você precisa de pelo menos 10 créditos para iniciar uma busca de pessoas semelhantes. |
| 404 | Não | work_email é uma caixa de entrada genérica/baseada em função (ex.: info@, support@, sales@, noreply@) que não corresponde a uma pessoa individual. |
| 404 | Não | A pessoa alvo não pôde ser resolvida. |
| 503 | Não | Recurso temporariamente indisponível. Tente novamente. |
Endpoint de Busca de Funcionários
GET /api/v1/employee/search
Custo: base 2 créditos por chamada (cobrados mesmo quando nenhum funcionário é retornado), mais 1 crédito por funcionário no funcionários array. Uma consulta que retorna 10 funcionários custa 2 + 10 = 12 créditos.
Encontre funcionários atuais de uma empresa filtrados por cargo, com opção de restringir por geografia.
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);
});
Exemplo de resposta
{
"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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
company_website |
Sim | A empresa-alvo. A forma preferida é um site (domínio simples como stripe.com ou URL completa como https://stripe.com). Um nome de empresa (ex.: Stripe) também é aceito. |
stripe.com |
role |
Sim | Cargo para refinar a busca. Corresponde a variações relacionadas do cargo (ex.: VP of Engineering também corresponde a Vice President, Engineering). |
VP of Engineering |
country |
Não | Código de país ISO 3166-1 alpha-2 para filtrar. | US |
state |
Não | Estado ou região para filtrar (formato livre). | Califórnia |
city |
Não | Cidade para filtrar (texto livre). | San Francisco |
use_cache |
Não | Controla o uso de cache. Sem distinção entre maiúsculas e minúsculas. Valores: if-recent (padrão; usa dados em cache quando o último scrape foi há menos de 29 dias, caso contrário enriquece ao vivo), if-present (retorna o cache primeiro, enriquece ao vivo se ausente), if-present-only (retorna somente o cache; retorna 404 se ausente), never (sempre enriquecer ao vivo). Valores inválidos revertem para o padrão do endpoint. |
if-recent |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
funcionários |
Lista de funcionários correspondentes na empresa-alvo. Array vazio se nenhum for encontrado. | [Objeto de Funcionário] |
Objeto de Funcionário
| Chave | Descrição | Exemplo |
|---|---|---|
first_name |
O primeiro nome do funcionário. | "Jane" |
last_name |
O sobrenome do funcionário. Pode ser null se indisponível. |
"Doe" |
role |
O cargo atual do funcionário na empresa alvo. | "VP of Engineering" |
company_website |
Site da empresa empregadora do alvo onde o funcionário trabalha. Espelha o valor resolvido de company_website parâmetro de entrada em cada registro. |
"stripe.com" |
company_details |
URL pré-preenchida para o Endpoint de Detalhes da Empresa, preenchido com site. Autentique-se com seu bearer token para recuperar os detalhes da empresa. |
"https://nubela.co/api/v1/company/details?website=stripe.com" |
person_profile |
URL pré-preenchida para o Endpoint de Perfil de Pessoa, preenchido com first_name, last_name, e employer_website. Chame diretamente com seu bearer token para enriquecer a pessoa. Custa 3 créditos por chamada. |
"https://nubela.co/api/v2/employee/profile?first_name=Jane&last_name=Doe&employer_website=https%3A%2F%2Fstripe.com" |
work_email |
URL pré-preenchida para o Endpoint de E-mail Corporativo, preenchido com first_name, last_name, e domain. Chame diretamente com seu bearer token para resolver o e-mail corporativo. Custa 2 créditos em um acerto, 0.5 créditos quando nenhum e-mail é encontrado. |
"https://nubela.co/api/v1/employee/work-email?first_name=Jane&last_name=Doe&domain=stripe.com" |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Total de créditos cobrados por esta chamada. Equivale a 2 + N onde N é o número de funcionários retornados (2 quando o array estiver vazio). |
12 |
X-NinjaPear-Cache-Age-Days |
Idade dos dados retornados em dias inteiros. 0 quando dados atualizados são retornados do enriquecimento em tempo real. |
12 |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Ausente ou inválido company_website ou role parâmetro. |
| 403 | Não | Créditos insuficientes. Você precisa de pelo menos 2 créditos para iniciar uma pesquisa. |
| 404 | Não | Nenhum dado em cache encontrado ao use_cache=if-present-only |
| 404 | Não | O company_website não pôde ser resolvido para uma empresa conhecida. |
| 503 | Não | Recurso temporariamente indisponível. Tente novamente. |
Meta API
Endpoint de Visualização de Saldo de Créditos
GET /api/v1/meta/credit-balance
Custo: 0 crédito / solicitação bem-sucedida.
Consulte seu saldo atual 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);
});
Exemplo de resposta:
{
"credit_balance": 100000
}
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
credit_balance |
Seu saldo atual de créditos | 100000 |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 0 |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 401 | Não | API key inválida |
API de Contato
Endpoint de Verificação de E-mail Descartável
GET /api/v1/contact/disposable-email
Custo: 0 crédito / solicitação bem-sucedida. (GRÁTIS)
Verifique se um endereço de e-mail é descartável (temporário) ou pertence a um provedor de e-mail 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);
});
Exemplo de resposta:
{
"email": "[email protected]",
"is_disposable_email": true,
"is_free_email": false
}
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
e-mail |
Sim | O endereço de e-mail a verificar | [email protected] |
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
e-mail |
O endereço de e-mail que foi verificado | "[email protected]" |
is_disposable_email |
Se o domínio de e-mail é de um provedor de e-mail descartável/temporário conhecido | true |
is_free_email |
Se o domínio de e-mail é de um provedor gratuito (ex.: gmail.com, yahoo.com) | false |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 0 |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Formato de e-mail inválido |
API do Monitor
A API do Monitor permite monitorar atualizações de empresas. Cada nova atualização é compilada em um único feed RSS. O sistema monitora blogs de empresas, perfis no X (Twitter) e alterações em sites.
Conceitos Fundamentais
- Feed: O contêiner pai. Um feed pode ser público ou privado. Os feeds privados exigem um bearer token passado via query string do URL para garantir compatibilidade com leitores de RSS padrão.
- Alvo: Uma empresa/site específico sendo monitorado dentro de um feed.
- Configurações: Preferências granulares por alvo que definem o que monitorar (Blog, X, Website) e com que frequência.
Como usar
Suponha que você queira monitorar um grupo de sites de concorrentes em busca de postagens de blog, atividade no X e alterações no site — tudo entregue como um único feed RSS que pode ser conectado ao Feedly, Slack, Zapier ou qualquer leitor de RSS.
1. Crie um feed com alvos — agrupe as empresas que deseja monitorar em um feed. Cada empresa é um alvo identificada pela URL do site
A resposta inclui um rss_url — esta é a URL à qual você se inscreve.
2. Assine o feed RSS — copie o rss_url e adicione-o a qualquer leitor de RSS (Feedly, Slack, Zapier, etc.). Posts de blog, posts no X e alterações no site de todos os alvos aparecem como itens em um único feed.
Cada item inclui uma categoria (blog, x, website update, ou website new page). Consulte Endpoint de Consumo de Feed para o esquema RSS completo.
3. Adicione novos alvos — um novo concorrente entrou no mercado? Adicione-o ao feed.
4. Remova alvos — uma empresa deixou de ser relevante? Remova-a do feed.
5. Alterar configurações de monitoramento — por padrão, cada alvo monitora posts de blog, posts no X e alterações no site em uma cadência de 7 dias. Use PATCH para ativar/desativar canais ou alterar a frequência.
Apenas os campos incluídos são alterados — campos omitidos mantêm seus valores atuais. Consulte Objeto de Configurações para todas as opções disponíveis.
Preços
| Ação | Custo |
|---|---|
| Criar um feed | 3 créditos (única vez) |
| Coleta de post de blog (por alvo) | 1 crédito/consulta |
| Consulta de monitoramento de site (por alvo) | 1 crédito/consulta |
| Consulta de atualizações de posts no X (por alvo) | 2 créditos/consulta |
| Coleta de atualizações do YouTube (por alvo) | 1 crédito/consulta |
| Todos os outros endpoints (listar, descrever, excluir feeds; gerenciar alvos) | 0 créditos |
Cada verificação confere um alvo para uma fonte (blog, X, website ou YouTube). Com as quatro fontes habilitadas, um único alvo custa 5 créditos por consulta (1 blog + 2 X + 1 website + 1 YouTube).
Exemplos de custos mensais
| Cenário | Alvos | Frequência | Créditos/mês |
|---|---|---|---|
| VC monitorando 20 empresas do portfólio | 20 | Semanal | ~433 créditos (3 avulsos + 20 × 5 × 4,3 semanas) |
| Startup monitorando 10 concorrentes | 10 | Diário | ~1,503 créditos (3 avulsos + 10 × 5 × 30 dias) |
| Equipe de vendas monitorando 5 contas de prospectos (apenas blog + X, sem site) | 5 | Diário | ~453 créditos (3 avulsos + 5 × 3 × 30 dias) |
O custo único de criação do feed (3 créditos) está incluído apenas no primeiro mês.
Endpoint de Listagem de Feeds
GET /api/v1/monitor/feeds
Custo: 0 créditos / requisição.
Recupera a lista de todos os feeds pertencentes ao usuário autenticado.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://nubela.co/api/v1/monitor/feeds"
Exemplo de resposta:
{
"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
}
]
}
Resposta
| Chave | Descrição | Exemplo |
|---|---|---|
feeds |
Lista de objetos de feed | Consulte Objeto Feed |
Objeto Feed
| Chave | Descrição | Exemplo |
|---|---|---|
id |
Identificador único do feed | "feed_abc123" |
name |
Nome do feed | "SaaS Competitors" |
is_public |
Se o feed é acessível publicamente | false |
is_suspended |
Se o feed está atualmente suspenso | false |
suspension_reason |
Motivo da suspensão, se suspenso | null ou "insufficient_credits" |
rss_url |
O URL do feed RSS. Para feeds privados, inclui um 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 notificação por e-mail | "skip" ou "on_updates" |
created_at |
Timestamp de criação no formato ISO 8601 | "2026-02-24T00:00:00Z" |
target_count |
Número de alvos no feed | 2 |
Endpoint de Novo Feed
POST /api/v1/monitor/feeds
Custo: 3 créditos / requisição (taxa única).
Cria um novo feed e, opcionalmente, aceita um array de alvos iniciais.
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"
Exemplo de resposta
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"
}
]
}
Corpo da Requisição
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
name |
Não | Nome do feed. Se omitido, um nome será gerado automaticamente. | "SaaS Competitors" |
is_public |
Não | Se o feed é acessível publicamente (padrão: false) |
false |
email_notifications |
Não | Modo de notificação por e-mail. "on_updates" para receber e-mails quando novas atualizações forem detectadas, "skip" para desabilitar (padrão: "skip") |
"on_updates" |
targets |
Sim | Array de alvos iniciais para adicionar ao feed (pelo menos 1 obrigatório) | Consulte Objeto de Entrada do Alvo |
Objeto de Entrada do Alvo
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
website_url |
Sim | A URL do site da empresa a ser monitorada | "https://stripe.com" |
settings |
Não | Preferências de monitoramento. Se omitido, os padrões serão aplicados. | Consulte Objeto de Configurações |
Objeto de Configurações
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
monitor_blog |
Não | Monitore o blog da empresa para novos posts (padrão: true) |
true |
monitor_x |
Não | Monitore a conta X (Twitter) da empresa (padrão: true) |
true |
monitor_website |
Não | Monitore o site da empresa para alterações de conteúdo e novas páginas (padrão: true) |
true |
monitor_youtube |
Não | Monitore o canal oficial do YouTube da empresa para novos vídeos (padrão: true) |
true |
frequency_days |
Não | Com que frequência verificar atualizações, em dias. Deve ser entre 1 e 30 (padrão: 7) |
7 |
Regras de Validação
- Pelo menos um
targetsentrada é obrigatória. - Cada alvo deve ter um
website_urlque seja acessível (resposta HTTP 2xx). URLs inacessíveis retornam400. - Pelo menos uma configuração de monitor (
monitor_blog,monitor_x,monitor_website,monitor_youtube) deve sertruepor alvo.
Resposta
Retorna 201 Created. A resposta inclui o Objeto Feed com um adicional de targets array contendo Objeto Alvo entradas.
Objeto Alvo
| Chave | Descrição | Exemplo |
|---|---|---|
id |
Identificador único do alvo | "target_xyz789" |
website_url |
O URL do site da empresa monitorada | "https://stripe.com" |
settings |
Objeto de preferências de monitoramento | Consulte Objeto de Configurações |
last_polled_at |
Timestamp ISO 8601 da última verificação, ou null se nunca consultado |
null |
is_baseline_complete |
Se o snapshot de linha de base inicial foi capturado | false |
created_at |
Timestamp de criação no formato ISO 8601 | "2026-02-24T09:55:00Z" |
Cabeçalhos da Resposta
| Chave do cabeçalho | Descrição | Exemplo |
|---|---|---|
X-NinjaPear-Credit-Cost |
Custo total em créditos para esta chamada de API | 3 |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Erro de validação (alvos ausentes, URL inacessível, nenhuma flag de monitoramento habilitada) |
Endpoint de Descrição de Feed
GET /api/v1/monitor/feeds/{feed_id}
Custo: 0 créditos / requisição.
Recupera os detalhes completos de um único feed, incluindo todos os alvos vinculados a ele.
curl -G \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://nubela.co/api/v1/monitor/feeds/feed_abc123"
Exemplo de resposta:
{
"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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
feed_id |
Sim | O ID do feed | feed_abc123 |
Resposta
Retorna um Objeto Feed com um adicional de targets array contendo Objeto Alvo entradas.
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 404 | Não | Feed não encontrado |
Endpoint de Exclusão de Feed
DELETE /api/v1/monitor/feeds/{feed_id}
Custo: 0 créditos / requisição.
Exclui permanentemente um feed e todos os alvos associados.
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://nubela.co/api/v1/monitor/feeds/feed_abc123"
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
feed_id |
Sim | O ID do feed a ser excluído | feed_abc123 |
Resposta
Retorna 200 OK com uma mensagem de confirmação.
{
"message": "Feed deleted."
}
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 404 | Não | Feed não encontrado |
Endpoint de Adição de Alvo
POST /api/v1/monitor/feeds/{feed_id}/targets
Custo: 0 créditos / requisição.
Adiciona uma nova empresa a um feed 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"
Exemplo de resposta
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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
feed_id |
Sim | O ID do feed ao qual adicionar o alvo | feed_abc123 |
Corpo da Requisição
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
website_url |
Sim | A URL do site da empresa a ser monitorada | "https://shopify.com" |
settings |
Não | Preferências de monitoramento. Se omitido, os padrões serão aplicados. | Consulte Objeto de Configurações |
Resposta
Retorna um Objeto Alvo.
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 404 | Não | Feed não encontrado |
Endpoint de Atualização de Alvo
PATCH /api/v1/monitor/feeds/{feed_id}/targets/{target_id}
Custo: 0 créditos / requisição.
Modifica as preferências de monitoramento de um alvo 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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
feed_id |
Sim | O ID do feed | feed_abc123 |
target_id |
Sim | O ID do alvo a ser atualizado | target_xyz789 |
Corpo da Requisição
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
settings |
Sim | Atualização parcial de configurações. Apenas os campos fornecidos são alterados. | Consulte Objeto de Configurações |
Resposta
Retorna o Objeto Alvo.
Exemplo de resposta:
{
"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 Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Nenhuma configuração válida fornecida |
| 404 | Não | Feed ou alvo não encontrado |
Endpoint de Remoção de Alvo
DELETE /api/v1/monitor/feeds/{feed_id}/targets/{target_id}
Custo: 0 créditos / requisição.
Interrompe o monitoramento de um site e o remove do feed.
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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
feed_id |
Sim | O ID do feed | feed_abc123 |
target_id |
Sim | O ID do alvo a ser removido | target_xyz789 |
Resposta
Retorna 200 OK com uma mensagem de confirmação.
{
"message": "Target deleted."
}
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 404 | Não | Feed ou alvo não encontrado |
Endpoint de Consumo de Feed
GET /api/v1/monitor/feeds/{feed_id}/rss.xml
Custo: 0 créditos / requisição (os custos de monitoramento são cobrados por consulta em cada alvo — veja Preços).
Retorna um feed XML RSS 2.0 padrão, consumível por leitores de RSS (Feedly, Slack, extensões de navegador, etc.).
Se o is_public é false, um token válido deve ser passado como token parâmetro de consulta.
curl "https://nubela.co/api/v1/monitor/feeds/feed_abc123/rss.xml?token=YOUR_RSS_TOKEN"
Exemplo de resposta:
<?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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
feed_id |
Sim | O ID do feed | feed_abc123 |
Formato da Resposta
A resposta é um documento XML RSS 2.0 padrão. A estrutura é a seguinte:
Elementos do canal
| Elemento | Descrição | Exemplo |
|---|---|---|
<title> |
O nome do feed | SaaS Competitors |
<link> |
URL do feed RSS | https://nubela.co/api/v1/monitor/feeds/feed_abc123/rss.xml |
<description> |
Resumo gerado automaticamente das empresas monitoradas | Automated updates for Stripe, Shopify, and Vercel. |
<lastBuildDate> |
Timestamp RFC 2822 da última geração do feed | Tue, 24 Feb 2026 10:00:00 +0800 |
Elementos do Item
Cada <item> representa uma única atualização de uma empresa monitorada.
| Elemento | Descrição | Exemplo |
|---|---|---|
<title> |
Título da atualização, prefixado com o nome da empresa | Stripe: Expanding our Global Payment Network |
<link> |
URL do conteúdo original | https://stripe.com/blog/global-network-2026 |
<guid> |
Identificador único do item. isPermaLink é true quando o GUID é uma URL. |
https://stripe.com/blog/global-network-2026 |
<pubDate> |
Timestamp de publicação RFC 2822 | Mon, 23 Feb 2026 14:30:00 +0800 |
<category> |
Tipo de atualização (veja as categorias abaixo) | blog |
<dc:creator> |
Nome da empresa (usa o namespace Dublin Core) | Stripe |
<description> |
Resumo ou trecho da atualização | Conteúdo de texto |
<enclosure> |
Anexo de imagem opcional com url, length (bytes) e type (tipo MIME) atributos |
<enclosure url="..." length="150000" type="image/jpeg" /> |
Categorias de Item RSS
Cada <item> inclui um(a) <category> elemento indicando o tipo de atualização:
| Categoria | Descrição |
|---|---|
blog |
Uma nova publicação no blog da empresa |
x |
Uma publicação da conta X (Twitter) da empresa |
website update |
Uma alteração detectada em uma página existente |
website new page |
Uma nova página detectada no site da empresa |
website unreachable |
O site da empresa ficou inacessível (disparado uma vez) |
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 403 | Não | Token ausente ou inválido para um feed privado |
| 404 | Não | Feed não encontrado |
Endpoint de Atualização de Feed
PATCH /api/v1/monitor/feeds/{feed_id}
Custo: 0 créditos / requisição.
Atualize as configurações do feed, como nome, visibilidade ou status de suspensão. Feeds suspensos por insufficient_credits são retomados automaticamente quando créditos são adicionados.
# 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" }),
},
);
Exemplo de resposta (igual ao 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 | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
feed_id |
Sim | O ID do feed | feed_abc123 |
Corpo da Requisição
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
name |
Não | Nome do novo feed | "My Feed" |
is_public |
Não | Se o feed RSS é acessível publicamente | true |
is_suspended |
Não | Defina true para suspender, false para retomar |
true |
suspension_reason |
Não | Motivo da suspensão (somente quando is_suspended é true, padrão "manual") |
"manual" |
email_notifications |
Não | Modo de notificação por e-mail. "on_updates" para receber e-mails quando novas atualizações forem detectadas, "skip" para desabilitar |
"on_updates" |
Pelo menos um campo deve ser fornecido.
Resposta
Retorna o Objeto Feed com um adicional de targets array contendo Objeto Alvo entradas.
Códigos de Erro
| Código de Status | Cobrado? | Descrição |
|---|---|---|
| 400 | Não | Nenhum campo válido fornecido |
| 404 | Não | Feed não encontrado |
Claude AI
O NinjaPear oferece um servidor MCP (Model Context Protocol) para integração direta com o Claude. Isso permite consultar dados de empresas B2B de forma conversacional — pergunte ao Claude sobre os clientes, investidores, número de funcionários de qualquer empresa e muito mais.
Início Rápido
- Obtenha sua string de conexão no Painel
- Adicione NinjaPear como conector no Claude (veja as instruções de configuração abaixo)
- Inicie uma nova conversa e consulte dados de empresas B2B de forma conversacional
Configuração
Sua string de conexão está disponível no Painel. Tem o seguinte formato: https://nubela.co/mcp/sse?api_key=YOUR_API_KEY
Claude Platform (Recomendado)
- Obtenha sua string de conexão no Painel
- Certifique-se de estar logado no Claude e acesse: Adicionar conector personalizado
- Insira o seguinte:
- Nome:
NinjaPear - URL do servidor MCP remoto: Cole sua string de conector do passo 1
- Nome:
- Clique Adicionar conector
- Inicie uma nova conversa e peça ao Claude para usar o NinjaPear
Claude Code CLI
Obtenha sua string de conexão no Painel, depois execute:
claude mcp add ninjapear --transport sse "YOUR_CONNECTOR_STRING"
Ferramentas disponíveis
| Ferramenta | Descrição | Custo |
|---|---|---|
get_customer_listing |
Obtenha clientes, investidores e parceiros de uma empresa | 1 + 2/empresa |
get_company_details |
Obtenha informações da empresa, executivos e dados financeiros | 2-4 créditos |
get_employee_count |
Obtenha o número de funcionários de uma empresa | 2 créditos |
check_disposable_email |
Verificar se o e-mail é descartável/gratuito | GRÁTIS |
get_credit_balance |
Verifique seu saldo de créditos | GRÁTIS |
get_company_logo_url |
Obtenha a URL do logotipo da empresa | GRÁTIS |
list_feeds |
Liste todos os seus feeds de monitoramento | 0 créditos |
create_feed |
Criar um novo feed de monitoramento com alvos | 3 créditos |
describe_feed |
Obtenha detalhes do feed com todos os alvos | 0 créditos |
update_feed |
Atualizar nome, visibilidade ou suspensão do feed | 0 créditos |
delete_feed |
Excluir um feed e todos os seus alvos | 0 créditos |
add_target |
Adicionar uma empresa para monitorar em um feed | 0 créditos |
update_target |
Atualizar configurações de monitoramento para um alvo | 0 créditos |
remove_target |
Remover uma empresa de um feed | 0 créditos |
consume_feed |
Leia as atualizações mais recentes de um feed | GRÁTIS |
Exemplos de Prompts
Após conectado, você pode fazer perguntas ao Claude como:
Inteligência Competitiva
Você é um gerente de produto acompanhando o que seus concorrentes estão fazendo.
- "Monitor stripe.com, brex.com, e 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"
Monitoramento de Portfólio de VC
Você é um investidor de venture capital que quer acompanhar a atividade das empresas do portfólio. Faça upload de um CSV ou screenshot das suas empresas de portfólio para o Claude e pergunte:
- "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?"
Prospecção de Vendas
Você trabalha com vendas e quer pesquisar contas antes de entrar em contato.
- "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]"
Pesquisa de Mercado
Você é um analista mapeando o cenário de um setor.
- "Find the investors behind Figma, Canva, and Miro. Who are the common VCs?"
- "Get company details for anthropic.com, openai.com, e 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, e adyen.com — I'm building a market map"
Monitoramento e Alertas
Você deseja configurar um monitoramento contínuo e retornar para verificar as atualizações.
- "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?"
Gerenciamento de Conta
Verificações rápidas sobre o uso do NinjaPear.
- "What's my credit balance?"
- "How many credits do I have left?"
Tratamento de Erros
Os erros são retornados como mensagens descritivas que Claude irá explicar para você:
| Erro | Mensagem |
|---|---|
| API key inválida | "Error: 401 Unauthorized" |
| Créditos insuficientes | "Error: 402 Payment Required" |
| Limite de requisições atingido | "Error: 429 Too Many Requests" |
| Erro do servidor | "Error: 500 Internal Server Error" |
Detalhes Técnicos
MCP Protocol
O servidor MCP do NinjaPear implementa o Model Context Protocol especificação, que é o padrão aberto da Anthropic para conectar assistentes de IA a fontes de dados externas e ferramentas.
Transporte
Utilizamos o transporte Server-Sent Events (SSE) para comunicação em tempo real:
- Endpoint SSE:
GET /mcp/sse?api_key=YOUR_API_KEY - Endpoint de Mensagens:
POST /mcp/messages/ - Verificação de integridade:
GET /mcp/health
Autenticação
Passe sua chave de API pelo api_key parâmetro de consulta ou o X-API-Key header
