Sirveil Exposure

Ferramenta somente leitura que verifica se uma pessoa dos EUA nomeada está atualmente indexada em um site nomeado — retorna indexado, não_indexado ou indeterminado com URL, trecho e timestamp.

Documentação

O contrato de verificação: três estados

Toda chamada bem-sucedida retorna exatamente um de três estados. Não são cinco.

indexed

Uma listagem correspondente à identidade foi encontrada no domínio, e evidence a carrega.

not_indexed

A forma do nome — a consulta mais ampla que este endpoint emite — foi executada contra o domínio e não encontrou nada. Este é o único estado que relata uma ausência observada, e é deliberadamente restrito.

indeterminate

Nós procuramos e não podemos afirmar. Três maneiras de chegar aqui: a recuperação falhou; a evidência era fraca demais em ambos os sentidos; ou a consulta que emitimos foi limitada a um identificador que você declarou e a forma do nome nunca foi executada, então uma ausência apenas diz que o índice do domínio não responde a esse identificador. Isto é uma resposta, não um erro, e não é um sinônimo de not_indexed. Colapsar os dois significa relatar uma ausência que não observamos.

O que não lhe dizemos, dito claramente

Relatamos presença no índice. Não buscamos a página do corretor, então não podemos distinguir "a listagem está ativa agora" de "o mecanismo de busca tem uma entrada desatualizada para uma página que foi removida desde então". Um produto de exposição maduro eventualmente quer dois estados adicionais — indexed_not_live e not_indexed_live — e retorná-los hoje significaria afirmar uma busca que nunca realizamos. Eles ainda não existem. A mesma frase é incluída em toda resposta como contract.limitation, para que um consumidor downstream não possa perdê-la.

Autenticação

Passe sua chave como um token bearer. As chaves são prefixadas com sk_live_ ou sk_test_ para que uma chave vazada seja identificável à primeira vista. Armazenamos apenas um hash — se você perder uma chave, ela não pode ser recuperada, apenas revogada e reemitida.

Authorization: Bearer sk_live_...

Reutilize conexões e tente novamente em caso de conexão perdida

Use um cliente HTTP com keep-alive habilitado e mantenha uma única sessão aberta durante a execução, em vez de abrir uma nova conexão por chamada — um requests.Session, um único agente node-fetch, uma instância HttpClient, curl sem --no-keepalive. Uma pequena fração de conexões TLS novas cai antes que qualquer resposta HTTP chegue; conexões reutilizadas não caem e são visivelmente mais rápidas.

Tente novamente uma falha no nível da conexão — um reset, um erro de handshake TLS, um socket fechado antes de qualquer linha de status. Nada foi servido, então nada foi cobrado, e a nova tentativa é segura. Não tente cegamente novamente uma requisição que retornou um status HTTP: leia error primeiro, porque 402, 403 e um 400 nunca terão sucesso em uma nova tentativa, e um 429 precisa da espera de Retry-After.

GET /api/v1/whoami

A chamada para provar sua chave. Retorna seu plano, cota restante, teto de gastos e trilho de cobrança. É gratuita e não consome cota, então você pode confirmar que uma chave funciona, confirmar em qual trilho ela cobra e confirmar seu teto antes de gastar qualquer coisa.

Chame-a primeiro. Todo outro endpoint que responde 200 a uma chave válida é medido, então sem isso a maneira mais barata de testar uma chave seria comprar uma verificação. Uma linha de uso ainda é gravada — toda chamada /v1/* deixa um rastro — com zero unidades e sem cobrança. O limite de cota e o teto de gastos não se aplicam a ela, o que é deliberado: uma conta no teto é exatamente a que precisa poder perguntar qual é o seu teto.

curl https://ai.sirveil.ai/api/v1/whoami \
  -H "Authorization: Bearer sk_live_your_key_here"

Resposta

{
  "tenant": { "id": "3f8a1c04-...", "name": "Acme Compliance" },
  "plan": { "id": "marketplace", "label": "Marketplace" },
  "quota": {
    "included_units": 1000000,
    "used_units": 418,
    "remaining_units": 999582,
    "window_resets_at": "2026-09-01T00:00:00.000Z"
  },
  "spend_ceiling": {
    "ceiling_usd": 1500,
    "spent_usd": 6.42,
    "remaining_usd": 1493.58
  },
  "billing_rail": "aws",
  "channel": "api_key",
  "rate_limit_per_minute": 1200,
  "pipeline_version": "v11.0.0",
  "linkage_weights_version": "lw-v4",
  "calibration_version": "cal-v3"
}

billing_rail é qual marketplace detém o dinheiro desta conta, e channel é como esta chamada específica provou quem era — api_key ou rapidapi. Uma assinatura medida do AWS Marketplace não possui saldo, então seu quota.included_units não é um limite que você possa esgotar; o bloco spend_ceiling é o que pode recusar você.

POST /api/v1/verify

A chamada não realiza nenhuma gravação em banco de dados. É uma pergunta sobre um domínio, não uma varredura de uma pessoa. A identidade que você envia é usada para construir a consulta de busca e mantida em um cache em memória, particionado para sua conta, por alguns minutos — para que uma pergunta repetida responda de forma consistente e não seja cobrada duas vezes. Não é gravada em disco e não é mantida além disso.

identity.firstName e identity.lastName são obrigatórios. Todo o resto — cidade, estado, rua, telefone, e-mail, data de nascimento — é opcional e estreita a busca.

curl -X POST https://ai.sirveil.ai/api/v1/verify \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "identity": {
      "firstName": "Jane",
      "lastName": "Doe",
      "email": "jane.doe@example.com",
      "city": "Austin",
      "state": "TX"
    },
    "domain": "whitepages.com"
  }'

Resposta

{
  "state": "indexed",
  "observed_at": "2026-08-07T21:14:02.881Z",
  "domain": "whitepages.com",
  "evidence": {
    "url": "https://www.whitepages.com/name/Jane-Doe/Austin-TX/...",
    "title": "Jane Doe in Austin, TX",
    "snippet": "Jane Doe, age 41, Austin TX. Known addresses ...",
    "retrieved_at": "2026-08-07T21:14:02.402Z"
  },
  "confidence": 0.81,
  "calibrated_probability": 0.78,
  "linkage": { "bits": 14.2, "probability": 0.79, "calibrated": true, "weights_version": "lw-v4" },
  "explains": [
    "Issued 1 email-scoped query against whitepages.com.",
    "name matched in full",
    "city and state matched",
    "one result from the domain, no competing candidate"
  ],
  "contract": {
    "states": ["indexed", "not_indexed", "indeterminate"],
    "limitation": "Index presence only. We did not fetch the page, so we cannot say whether the listing is still served."
  },
  "pipeline_version": "v11.0.0",
  "linkage_weights_version": "lw-v4",
  "calibration_version": "cal-v3",
  "meta": {
    "identifier_used": "email",
    "results_from_domain": 1,
    "results_total": 8,
    "latency_ms": 1284,
    "search_ok": true
  }
}

POST /api/v1/scan

Tudo o que /verify não é. Ele constrói um perfil a partir do que você fornece, planeja e emite buscas em 12 domínios fixos de busca de pessoas e na web aberta, verifica trilhas de violações de dados e registros públicos, resolve candidatos para a identidade e os classifica — retornando um cartão por exposição distinta, com os campos que essa exposição revela e a URL de onde cada campo foi lido.

Defina seu timeout antes de chamar isto

Uma varredura leva de dois a três minutos e meio. Tempo de parede medido em cinco execuções deste endpoint: 135 / 144 / 154 / 155 / 203 segundos (mediana 154). Configure um timeout de leitura de pelo menos 240 segundos. O Invoke-RestMethod do PowerShell tem como padrão 100 segundos — abaixo da mediana — que é a falha medida no dia do lançamento: o cliente viu um erro de rede, o servidor completou e cobrou. Os padrões na maioria dos clientes e wrappers HTTP abortarão no meio da varredura da mesma forma. Uma conexão perdida não é um reembolso. Se seu timeout for inferior a 240 segundos, envie Prefer: respond-async.

Se seu chamador estiver atrás de um gateway de API, verifique o teto dele contra esses números. O RapidAPI corta em 180 segundos — seu padrão e seu máximo — que fica entre nossa mediana e nossa execução medida mais lenta, então a forma síncrona falharia na cauda lenta. O AWS API Gateway tem como padrão 29 segundos. Um timeout de gateway não é um reembolso: a varredura ainda é executada e ainda é cobrada. Use a forma assíncrona e a questão não surge.

identity.firstName e identity.lastName são obrigatórios. Todo o resto é opcional e melhora o resultado. Um valor que não podemos usar é descartado em vez de rejeitado, e o nome do campo retorna em dropped_fields — verifique esse campo se uma varredura parecer mais enxuta do que você esperava.

curl -X POST https://ai.sirveil.ai/api/v1/scan \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -H "Content-Type: application/json" \
  --max-time 300 \
  -d '{
    "identity": {
      "firstName": "Jane",
      "lastName": "Doe",
      "city": "Austin",
      "state": "TX",
      "postalCode": "78701",
      "email": "jane.doe@example.com"
    }
  }'

Resposta (resumida a um cartão)

{
  "scan_id": "6f1c9d02-8a4e-4c1b-9f77-2b0e5d3a71c8",
  "observed_at": "2026-08-10T18:22:41.117Z",
  "latency_ms": 64218,
  "cards": [
    {
      "id": "6f1c9d02-8a4e-4c1b-9f77-2b0e5d3a71c8-1",
      "rank": 1,
      "tier": "A",
      "data_type": "person_record",
      "risk_category": "identity_theft",
      "why_it_matters": "Full address history alongside age and relatives is enough to answer most account-recovery questions.",
      "source": "whitepages.com",
      "raw_data": {
        "title": "Jane Doe, 41 — Austin, TX",
        "snippet": "Jane Doe, age 41, Austin TX. Known addresses, phone numbers, relatives ...",
        "link": "https://www.whitepages.com/name/Jane-Doe/Austin-TX/..."
      },
      "exposed_fields": [
        { "kind": "address", "label": "Address", "value": "1200 W 6th St, Austin, TX 78703",
          "evidence": "declared", "source_ref": "https://www.whitepages.com/name/..." },
        { "kind": "age", "label": "Age", "value": "41", "evidence": "corroborated", "derived": "decade" },
        { "kind": "relative", "label": "Relative", "value": "M. D." }
      ],
      "provenance": [
        { "field": "addresses", "value": "1200 W 6th St", "source_ref": "https://www.whitepages.com/name/..." }
      ],
      "sources": [{ "name": "whitepages.com", "link": "https://www.whitepages.com/name/..." }],
      "also_seen_on": [{ "name": "spokeo.com", "link": "https://www.spokeo.com/Jane-Doe/..." }],
      "match_probability": 0.9,
      "match_probability_calibrated": true
    }
  ],
  "metrics": { "card_count": 23, "distinct_exposures": 23, "tier_a": 6, "tier_b": 11, "tier_c": 6 },
  "degraded": false,
  "search_ok": true,
  "stopped_early": false,
  "dropped_fields": [],
  "coverage": { ... see Coverage below ... },
  "contract": {
    "limitation": "A scan reads search indexes and public sources at the moment you call it ..."
  },
  "pipeline_version": "v11.0.0",
  "linkage_weights_version": "lw-v4",
  "calibration_version": "cal-v3"
}

Streaming: Accept: application/x-ndjson

Um objeto JSON por linha. Eventos de progresso enquanto a varredura é executada, depois um único evento result carregando exatamente o corpo que a forma síncrona retorna. Ambas as formas custam o mesmo e produzem um registro de uso. Uma requisição inválida ou um backend de busca indisponível ainda é um 400 / 503 real com corpo JSON — esses são decididos antes do stream abrir.

curl -N -X POST https://ai.sirveil.ai/api/v1/scan \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -H "Accept: application/x-ndjson" \
  -H "Content-Type: application/json" \
  --max-time 300 -d '{"identity":{"firstName":"Jane","lastName":"Doe"}}'

{"type":"progress","phase":"building_profile","step":2,"steps":7,"at":1786...}
{"type":"progress","phase":"planning_searches","step":3,"steps":7,"at":1786...}
{"type":"progress","phase":"searching","step":4,"steps":7,"at":1786...}
{"type":"progress","phase":"matching","step":5,"steps":7,"at":1786...}
{"type":"progress","phase":"assembling","step":6,"steps":7,"at":1786...}
{"type":"result","result":{ ... identical to the synchronous body ... }}

O que uma varredura não faz

Ela não acumula nada. Não há dossiê, histórico ou contagem de "visto antes": duas varreduras da mesma pessoa são duas observações independentes, e nada de uma chamada anterior é carregado adiante. Uma varredura síncrona não grava nada; uma assíncrona mantém sua entrada e sua resposta por 24 horas para que você possa coletá-las, e essa é a única diferença. Ela também não busca e confirma cada listagem — um cartão significa este registro está indexado e corresponde à identidade que você declarou, não esta página está ativa agora. E um array cards vazio não é prova de ausência: verifique search_ok e degraded antes de lê-lo como tal. Tudo isso é incluído em toda resposta como contract.limitation.

Cobertura: a forma do buraco

Toda varredura retorna um bloco coverage junto com os cartões. Ele relata quantos domínios eram esperados, quantos foram consultados, quantos retornaram vazios, quantos falharam e quantos nunca foram alcançados — e nomeia os domínios aos quais não chegou.

Isso existe porque o modo de falha honesto de uma varredura de exposição não é uma resposta errada, é uma resposta silenciosa. Uma varredura que alcançou três domínios a menos do que planejou e uma varredura que alcançou todos os 12 produzem a mesma lista de cartões. A cobertura é como você as distingue sem confiar em nós.

A classificação é apoiada pelo registro de 548 domínios derivado do registro público de corretores de dados da CPPA da Califórnia, mais um conjunto prioritário curado. Uma varredura base consulta 12 domínios fixos de busca de pessoas; a cobertura é relatada sobre o registro, para que você possa ver exatamente quais dos restantes não foram consultados em sua chamada.

"coverage": {
  "expected": 548,
  "queried_hit": 9,
  "queried_empty": 3,
  "queried_failed": 0,
  "never_queried": 536,
  "never_queried_domains": [
    "advancedbackgroundchecks.com",
    "anywho.com",
    "checkpeople.com",
    "familytreenow.com",
    "peekyou.com"
    // ... capped per response; see never_queried_truncated
  ],
  "never_queried_truncated": true
}

queried_empty e never_queried são opostos em significado

queried_empty significa que perguntamos e o domínio não contém nada sobre esta identidade — a varredura está correta ao mostrar nada ali, e você pode agir com base na ausência. never_queried significa que não perguntamos: o silêncio é nosso e não diz nada sobre o domínio. Antes deste bloco ser publicado, os dois eram indistinguíveis na resposta, o que tornava um deles silenciosamente inutilizável.

A lista de nomes é limitada por resposta e never_queried_truncated informa quando isso ocorreu. O bloco carrega apenas contagens e nomes de domínios — um alvo site: identifica a quem perguntamos, nunca sobre quem perguntamos, então nenhuma parte da identidade que você enviou pode alcançá-lo. E o bloco inteiro é null, não zerado, em uma execução antiga o suficiente para preceder o registro de cobertura: expected: 0, never_queried: 0 seria lido como "sem lacunas", que é o oposto de "não conhecido".

Varreduras assíncronas

Uma varredura leva minutos, e a maioria dos gateways não manterá uma conexão por tanto tempo. Envie Prefer: respond-async e você recebe um id de trabalho imediatamente, depois consulte pela resposta. A forma síncrona permanece inalterada e continua sendo o padrão — nada que você já integrou é afetado.

Sua cota, limite de taxa e teto de gastos são todos verificados no envio. Um 202 significa que o trabalho foi aceito; uma recusa acontece ali mesmo, antes que qualquer coisa seja enfileirada e antes que qualquer coisa seja cobrada. O trabalho é medido uma vez, quando realmente é executado.

curl -X POST https://ai.sirveil.ai/api/v1/scan \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -H "Prefer: respond-async" \
  -d '{"identity":{"firstName":"Jane","lastName":"Doe","state":"TX"}}'

HTTP/1.1 202 Accepted
Location: /api/v1/jobs/9c2f0b17-...
{
  "job_id": "9c2f0b17-4d8a-4f2e-9c31-7a5b0e6d1f42",
  "status": "queued",
  "poll_url": "/api/v1/jobs/9c2f0b17-4d8a-4f2e-9c31-7a5b0e6d1f42",
  "estimated_seconds": 154,
  "queue": { "depth": 1, "position": 1 },
  "throughput": { "capacity_per_hour": 58, "drain_concurrency": 1 },
  "expires_at": "2026-08-12T18:22:41.117Z"
}

Depois consulte

curl https://ai.sirveil.ai/api/v1/jobs/9c2f0b17-4d8a-4f2e-9c31-7a5b0e6d1f42 \
  -H "Authorization: Bearer sk_live_your_key_here"

{ "job_id": "9c2f0b17-...", "status": "queued",
  "queue": { "depth": 3, "position": 2 }, "estimated_seconds": 214 }

# ... a little later ...
{ "job_id": "9c2f0b17-...", "status": "claimed", "started_at": "2026-08-11T18:24:02.410Z" }

# ... and finally ...
{ "job_id": "9c2f0b17-...", "status": "succeeded",
  "finished_at": "2026-08-11T18:26:36.882Z",
  "result": { ... identical to the synchronous body ... } }

Throughput: até 58 varreduras por hora

Publicado em vez de deixado para você descobrir. Uma varredura leva 154 segundos na mediana e até 203. O worker é invocado uma vez por minuto e executa 1 varredura por invocação, o que define o teto em 58 por hora. Enfileire 20 trabalhos e o último termina em aproximadamente 21 minutos.

Esse teto é calculado a partir do agendamento, não medido sob carga — ele assume que toda invocação reivindica um trabalho e todo trabalho termina. Planeje com base no estimated_seconds na sua resposta de trabalho, que reflete sua posição real na fila. Se você precisar de mais do que isso, diga antes de enfileirar o lote: o limite é uma configuração de implantação, não uma propriedade do produto.

A fila é compartilhada entre todos os clientes, então toda resposta de trabalho informa o queue.depth atual, seu queue.position e um estimated_seconds — você pode observá-lo se mover em vez de adivinhar. A consulta é gratuita: não cobra nada e não consome unidades do plano, então não há vantagem em consultar lentamente.

Se você precisar de mais do que isso, diga-nos antes de enfileirar o lote, não depois. O limite é uma configuração de implantação, não uma propriedade do produto.

Retenção: 24 horas, depois excluído

A identidade que você enviou e o resultado são mantidos por 24 horas para que você possa coletá-los, depois ambos são excluídos e o trabalho relata expired. O registro do trabalho em si sobrevive com seus tempos, então uma consulta tardia informa o que aconteceu em vez de retornar um 404 que você teria que interpretar. Um id de trabalho pertencente a outra conta é um 404, não um 403 — um 403 confirmaria que o id existe.

Erros e limites

Cinco limites separados podem interromper uma chamada, e eles falham de maneiras diferentes porque precisam de ações diferentes de você. O campo error nomeia qual foi atingido — sempre leia-o em vez de alternar apenas pelo status, porque 401, 400 e 429 cada um carrega mais de um código.

StatuserrorO que fazer
401missing_keyNenhum cabeçalho Authorization presente. Envie Authorization: Bearer sk_live_….
401invalid_keyUma chave foi enviada, mas está malformada, desconhecida ou revogada.
403tenant_suspendedA chave é válida, a conta não é. Não pode ser repetida — entre em contato conosco.
429rate_limitedChamadas demais neste minuto. Aguarde — Retry-After informa por quanto tempo.
429quota_exceededA cota de unidades incluídas da conta é um limite rígido: quando é gasta, novas chamadas são recusadas. Não há excedente, upgrade automático ou cobrança além do que foi acordado. Aguarde a reinicialização — Retry-After traz os segundos restantes. Assinaturas medidas do AWS Marketplace não possuem cota e nunca veem isso.
402spend_ceiling_reachedO teto de gastos em dólares da sua conta — uma proteção contra execuções descontroladas, não um limite que você comprou. Ele limita nosso custo de mercadorias, não sua fatura, e nunca é aumentado silenciosamente: peça, e nós o aumentamos explicitamente.
503search_unavailableSomente verificação. A busca está fora do ar, então recusamos em vez de vender um resultado vazio que pareceria "nada encontrado". Nada é cobrado. Tente novamente em breve.
429queue_depth_exceededSomente verificação assíncrona. Sua fila — ou a do serviço inteiro — está no limite de profundidade, então recusamos em vez de entregar um 202 que sabíamos que não poderíamos cumprir antes do trabalho expirar. Nada é cobrado. Retry-After informa o tempo de espera.
503capacity_reachedO serviço está temporariamente sem aceitar novos trabalhos. Seus limites de conta não são afetados e nada é cobrado. Tente novamente em breve.
400identity_requiredO corpo da requisição não continha um objeto identity. Veja também seed_not_supported (a verificação usa a identidade que você envia, não uma semente) e invalid_json.
400identity_incompletefirstName ou lastName estava ausente. O nome é a âncora contra a qual cada candidato é avaliado, então nenhum dos dois é opcional.
400invalid_domainSomente verificação. domain deve ser um hostname simples — whitepages.com, não uma URL completa e não um caminho.
400domain_excludedSomente verificação, e não pode ser repetida. Não executamos uma identidade contra sites de reconhecimento facial ou busca reversa de rosto em nome de ninguém. Esta é uma recusa de política e não é configurável por conta.

429 carrega três recusas diferentes e error as distingue: rate_limited é resolvida em segundos, queue_depth_exceeded é resolvida conforme sua fila é drenada, e quota_exceeded é resolvida quando sua janela de cobrança vira. Uma chamada com falha nunca é cobrada — você paga por respostas, não por tentativas.

Respostas de erro carregam os mesmos carimbos de pipeline_version, linkage_weights_version e calibration_version que as de sucesso, então uma requisição rejeitada pode ser rastreada até a versão que a rejeitou.

Preços

Baseado no uso, medido por chamada atendida. Não há assinatura, mínimo, cota a dimensionar antecipadamente, e nada a pagar em um mês em que você não nos chama.

OperaçãoPreço por chamadaO que é uma chamada
Verificação$0.10Uma verificação de indexação para uma identidade em um domínio.
Verificação completa$0.35Uma verificação completa de exposição para uma identidade: 12 domínios fixos de busca de pessoas, além das faixas de web aberta, violações e nomes de usuário.

Uma chamada com falha nunca é cobrada. Você paga por respostas, não por tentativas: um 400, um 401, um 403 e um 503 search_unavailable não custam nada, e a recusa é decidida antes que qualquer provedor de busca seja chamado.

Cada formato de verificação custa a mesma chamada. Síncrona, streaming e assíncrona são o mesmo trabalho cobrado uma vez; consultar um job não mede nada, então não há vantagem em consultar lentamente. Uma conexão interrompida, no entanto, não é reembolso — a verificação foi concluída. Leia a nota de timeout antes de chamar /v1/scan de forma síncrona.

Um teto de gastos em dólares fica em cada conta como proteção contra execuções descontroladas. É nosso, não algo que você comprou: limita nosso custo de mercadorias, e se disparar você recebe um 402 spend_ceiling_reached em vez de uma fatura que ninguém esperava. Avise-nos antes de enfileirar um lote grande e nós o aumentamos.

MCP para agentes

Um servidor MCP somente leitura acompanha o REST em /api/v1/mcp, versão de protocolo 2025-06-18. Ele expõe uma ferramenta, verify_indexed — pergunte se uma pessoa nomeada está indexada em um domínio de corretor de dados e receba a evidência de volta. Não há ferramenta de verificação e nenhum caminho de escrita.

indeterminate é uma resposta real desta ferramenta tanto quanto do REST. Um agente que a reporta a um usuário como "não encontrado" está alegando uma ausência que não foi observada.

Uma chamada de ferramenta MCP executa o trabalho de uma verificação e é cobrada pelo preço de verificação — $0.10 por chamada. Não é um wrapper de conveniência gratuito.

O handshake — initialize e tools/list — não precisa de chave, então um registro pode indexar o servidor sem uma conta. tools/call requer uma e resolve o mesmo tenant, cota e teto que toda chamada REST. O uso é registrado contra /v1/mcp em vez de /v1/verify para que você veja o que chegou por qual superfície, mas a cobrança é a mesma.

curl -X POST https://ai.sirveil.ai/api/v1/mcp \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "verify_indexed",
      "arguments": {
        "firstName": "Jane",
        "lastName": "Doe",
        "email": "jane.doe@example.com",
        "city": "Austin",
        "state": "TX",
        "domain": "whitepages.com"
      }
    }
  }'

Onde você pode comprar

AWS Marketplace. Você assina com a conta AWS que já tem, a AWS fatura o uso na conta que você já recebe, e reportamos cada chamada atendida contra as duas dimensões fixadas na criação do produto — verification e scan, com preços acima.

Não há cartão a inserir aqui e nenhum dado de pagamento para coletarmos — a AWS proíbe coletar informações de pagamento para um produto do Marketplace a qualquer momento, e não o fazemos. Quando a assinatura é concluída, a AWS o envia para nossa página de cumprimento, que pede o endereço de e-mail ao qual a assinatura pertence e emite sua chave de API na hora. Nada para instalar e sem esperar por nós.

Comece agora, sem falar com ninguém

Assine no AWS Marketplace com sua conta AWS existente e você será cobrado por chamada atendida — $0.10 por verificação e $0.35 por verificação completa — na fatura AWS que você já recebe. Sem taxa de assinatura, sem mínimo, sem ligação de vendas e sem cotação para esperar. Sua chave de API é emitida no momento em que a assinatura é concluída.

Ver no AWS Marketplace

Avaliando em vez de comprar, ou precisa de um preço de volume ou oferta privada? Envie um e-mail para support@sirveil.ai.