In questa pagina
NoCall

API

Riferimento API

API · ProBeta
Chiave API e crediti
In questa pagina

Autenticazione

Attenzione

Ti servono dei crediti: i 20 al mese inclusi in un account Pro attivo, o crediti acquistati nella pagina del tuo account. Un account senza né gli uni né gli altri riceve 403 pro_required.

Importante

Questa chiave viene mostrata una sola volta. Conservala in modo sicuro sul tuo server.

Crea una API key nel tuo account e copia il valore mostrato una sola volta. Configura NOCALL_API_KEY come segreto sul server. Usa HTTPS; non inserire mai la chiave nel codice del browser, repository, screenshot o log.

Invia la chiave completa in Authorization: Bearer, con uno spazio dopo Bearer. Non usare X-API-Key e non inserire la chiave nell’URL.

Su /v1/data/* + /v2/*, una chiave valida sostituisce la prova ByteGuard del browser. Scadenza, revoca, abbonamento, crediti e limiti vengono comunque verificati. Non autorizza altre rotte. openapi.json e products sono pubblici.

HTTP
Authorization: Bearer <NOCALL_API_KEY>

La prima richiesta

Tutti i 44 tool sono disponibili tramite API: chiama POST /v2/<tool-id>, oppure POST /v2/tools con il campo tool nel corpo. Ogni tool ha il proprio corpo JSON, documentato nella sua guida. data.result contiene il risultato del tool. Usa gli identificatori riportati nella tabella.

Genera una nuova Idempotency-Key per ogni nuova operazione. Mantienila solo per ripetere la stessa operazione con gli stessi dati.

bash
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/tools' \
  --header "Authorization: Bearer $NOCALL_API_KEY" \
  --header 'Content-Type: application/json' \
  --header "Idempotency-Key: $REQUEST_ID" \
  --data '{"tool":"who-calls","phone":"+12025550123","country":"US"}'

API v2 · tools

Tutti i 44 tool sono disponibili tramite API: chiama POST /v2/<tool-id>, oppure POST /v2/tools con il campo tool nel corpo. Ogni tool ha il proprio corpo JSON, documentato nella sua guida. data.result contiene il risultato del tool. Usa gli identificatori riportati nella tabella.

toolA cosa servePOSTEsempio inventato
who-callsChi mi chiama?/v2/who-calls{"phone":"+12025550123","country":"US"}
phone-exposureIl mio numero è stato divulgato?/v2/phone-exposure{"phone":"+12025550123","country":"US"}
phone-intelligenceIntelligence telefonica/v2/phone-intelligence{"phone":"+12025550123","country":"US"}
phone-riskRischio telefonico/v2/phone-risk{"phone":"+12025550123","country":"US"}
carrier-lookupRicerca operatore/v2/carrier-lookup{"phone":"+12025550123","country":"US"}
verified-businessRicerca inversa azienda verificata/v2/verified-business{"phone":"+12025550123","country":"US"}
phone-formatsFormati dei numeri/v2/phone-formats{"phone":"+34912345678","country":"ES"}
callback-costQuanto costa richiamare?/v2/callback-cost{"phone":"806123456","country":"ES"}
prefix-originDi dove è questo prefisso?/v2/prefix-origin{"phone":"910","country":"ES"}
number-validatorVerifica e formatta un numero di telefono/v2/number-validator{"phone":"+12025550123","country":"US"}
line-typeÈ un cellulare o un fisso?/v2/line-type{"phone":"+34600111222","country":"ES"}
premium-rateÈ un numero a sovrapprezzo?/v2/premium-rate{"phone":"806","country":"ES"}
wangiriControllo wangiri: questa chiamata persa è una truffa?/v2/wangiri{"phone":"+216","country":"ES"}
commercial-400Questa chiamata commerciale è legale?/v2/commercial-400{"phone":"+34400000000","country":"ES"}
number-researchAnalizza un numero con l’IA/v2/number-research{"phone":"+12025550123","country":"US","language":"en"}
dial-codeTi chiedono di digitare un codice?/v2/dial-code{"code":"**21*+34600000000#","country":"ES"}
call-scam-checkQuesta chiamata è una truffa?/v2/call-scam-check{"answers":{"impersonation":true,"sms_code":true,"pressure":true},"country":"ES"}
sms-checkControlla se un SMS è una truffa/v2/sms-check{"message":"Your parcel is held. Pay the fee at https://example.invalid/pay","sender":"Correos","language":"en","country":"GB"}
sms-brandQuesto SMS di un marchio è autentico?/v2/sms-brand{"brand":"correos","link":"https://correos-envio.example.invalid/pago","country":"ES"}
sms-senderChi mi ha mandato questo SMS?/v2/sms-sender{"sender":"Correos","country":"ES"}
sms-codeTi chiedono un codice ricevuto via SMS?/v2/sms-code{"unrequested":true,"asked":true,"sensitive":true,"shared":false}
sms-reportDove segnalare un SMS truffa/v2/sms-report{"sender":"Correos","tapped":false,"gaveData":false,"country":"ES"}
sms-campaignsCampagne di SMS truffa/v2/sms-campaigns{}
sms-redactTogli i tuoi dati da un SMS/v2/sms-redact{"message":"BBVA: su tarjeta 4111 1111 1111 1111 ha sido bloqueada. Llame al +34 612 34 56 78 o entre en https://bbva-seguro.com/login"}
callback-numberDevo chiamare il numero di questo messaggio?/v2/callback-number{"text":"Your account is locked. Call us now on 0909 879 0000 or +216 71 123 456","country":"GB"}
prefix-directoryPrefissi/v2/prefix-directory{"country":"ES","serviceClass":"premium","page":1,"limit":3}
operator-directoryOperatori/v2/operator-directory{"country":"ES","operator":"Movistar"}
calling-codesPrefissi internazionali/v2/calling-codes{"query":"216","language":"en"}
spam-directoryNumeri spam/v2/spam-directory{"country":"US","category":"SCAM","page":1,"limit":20}
trendsApprofondimenti/v2/trends{"country":"ES"}
smishingChe cos’è lo smishing?/v2/smishing{"message":"CORREOS: su paquete está retenido. Pague urgente las tasas en https://correos-entrega.info/pago","country":"ES"}
link-checkControlla un link/v2/link-check{"url":"http://192.168.1.1/login","country":"ES"}
safety-toolsStrumenti di sicurezza/v2/safety-tools{"text":"URGENTE: su cuenta BBVA ha sido bloqueada, verifique en https://bbva-seguro.com/login","mode":"email","country":"ES"}
sms-filterFiltro spam SMS/v2/sms-filter{"country":"ES"}
qr-checkQuesto codice QR è sicuro?/v2/qr-check{"payload":"BCD\n002\n1\nSCT\n\nAparcamientos Ejemplo SL\nES9121000418450200051332\nEUR49.90\n\n\nMulta de aparcamiento 4471","country":"ES"}
email-headersQuesta email è autentica?/v2/email-headers{"headers":"Delivered-To: [email protected]\nReceived: from mail.bank.example (mail.bank.example [192.0.2.10]) by mx.google.com with ESMTPS id x1 for <[email protected]>; Tue, 27 Oct 2026 09:00:00 -0700\nAuthentication-Results: mx.google.com; dkim=pass [email protected] header.s=s1; spf=pass (google.com: domain of [email protected] designates 192.0.2.10 as permitted sender) [email protected]; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bank.example\nFrom: \"Bank Alerts\" <[email protected]>\nReply-To: [email protected]\nSubject: Your statement is ready\nMessage-ID: <[email protected]>","country":"ES"}
mx-lookupRecord MX di un dominio/v2/mx-lookup{"domain":"example.com"}
spf-checkVerifica SPF/v2/spf-check{"domain":"example.com"}
dmarc-checkVerifica DMARC/v2/dmarc-check{"domain":"example.com"}
dkim-checkVerifica DKIM/v2/dkim-check{"domain":"example.com","selector":"s1"}
email-verifyVerifica indirizzo email/v2/email-verify{"email":"[email protected]"}
website-ageDa quanto esiste questo sito?/v2/website-age{"url":"https://www.example.com/login","country":"ES"}
domain-popularityPopolarità di un dominio/v2/domain-popularity{"url":"https://shop.example.com/cart","country":"ES"}
website-legitQuesto sito è affidabile?/v2/website-legit{"url":"https://[email protected]/login","country":"ES"}

Endpoint disponibili

Mostriamo solo dati tecnici verificati o pubblici. Identità private e segnali di protezione restano nascosti.

API v1 · phone è obbligatorio: una stringa fino a 64 caratteri, preferibilmente in formato E.164. country è un codice paese supportato di due lettere, facoltativo con valore predefinito ES. Content-Type deve essere application/json.

HTTPURLA cosa serveRequisiti
POST/v2/toolsUsare con l’APIAuthorization: Bearer · Pro
GET/v2/toolsCatalogo prodotti NoCallAuthorization: Bearer · Pro
GET/v2/openapi.jsonOpenAPI 3.1—
POST/v2/who-callsChi mi chiama?Authorization: Bearer · Pro
POST/v2/phone-exposureIl mio numero è stato divulgato?Authorization: Bearer · Pro
POST/v2/phone-intelligenceIntelligence telefonicaAuthorization: Bearer · Pro
POST/v2/phone-riskRischio telefonicoAuthorization: Bearer · Pro
POST/v2/carrier-lookupRicerca operatoreAuthorization: Bearer · Pro
POST/v2/verified-businessRicerca inversa azienda verificataAuthorization: Bearer · Pro
POST/v2/phone-formatsFormati dei numeriAuthorization: Bearer · Pro
POST/v2/callback-costQuanto costa richiamare?Authorization: Bearer · Pro
POST/v2/prefix-originDi dove è questo prefisso?Authorization: Bearer · Pro
POST/v2/number-validatorVerifica e formatta un numero di telefonoAuthorization: Bearer · Pro
POST/v2/line-typeÈ un cellulare o un fisso?Authorization: Bearer · Pro
POST/v2/premium-rateÈ un numero a sovrapprezzo?Authorization: Bearer · Pro
POST/v2/wangiriControllo wangiri: questa chiamata persa è una truffa?Authorization: Bearer · Pro
POST/v2/commercial-400Questa chiamata commerciale è legale?Authorization: Bearer · Pro
POST/v2/number-researchAnalizza un numero con l’IAAuthorization: Bearer · Pro
POST/v2/dial-codeTi chiedono di digitare un codice?Authorization: Bearer · Pro
POST/v2/call-scam-checkQuesta chiamata è una truffa?Authorization: Bearer · Pro
POST/v2/sms-checkControlla se un SMS è una truffaAuthorization: Bearer · Pro
POST/v2/sms-brandQuesto SMS di un marchio è autentico?Authorization: Bearer · Pro
POST/v2/sms-senderChi mi ha mandato questo SMS?Authorization: Bearer · Pro
POST/v2/sms-codeTi chiedono un codice ricevuto via SMS?Authorization: Bearer · Pro
POST/v2/sms-reportDove segnalare un SMS truffaAuthorization: Bearer · Pro
POST/v2/sms-campaignsCampagne di SMS truffaAuthorization: Bearer · Pro
POST/v2/sms-redactTogli i tuoi dati da un SMSAuthorization: Bearer · Pro
POST/v2/callback-numberDevo chiamare il numero di questo messaggio?Authorization: Bearer · Pro
POST/v2/prefix-directoryPrefissiAuthorization: Bearer · Pro
POST/v2/operator-directoryOperatoriAuthorization: Bearer · Pro
POST/v2/calling-codesPrefissi internazionaliAuthorization: Bearer · Pro
POST/v2/spam-directoryNumeri spamAuthorization: Bearer · Pro
POST/v2/trendsApprofondimentiAuthorization: Bearer · Pro
POST/v2/smishingChe cos’è lo smishing?Authorization: Bearer · Pro
POST/v2/link-checkControlla un linkAuthorization: Bearer · Pro
POST/v2/safety-toolsStrumenti di sicurezzaAuthorization: Bearer · Pro
POST/v2/sms-filterFiltro spam SMSAuthorization: Bearer · Pro
POST/v2/qr-checkQuesto codice QR è sicuro?Authorization: Bearer · Pro
POST/v2/email-headersQuesta email è autentica?Authorization: Bearer · Pro
POST/v2/mx-lookupRecord MX di un dominioAuthorization: Bearer · Pro
POST/v2/spf-checkVerifica SPFAuthorization: Bearer · Pro
POST/v2/dmarc-checkVerifica DMARCAuthorization: Bearer · Pro
POST/v2/dkim-checkVerifica DKIMAuthorization: Bearer · Pro
POST/v2/email-verifyVerifica indirizzo emailAuthorization: Bearer · Pro
POST/v2/website-ageDa quanto esiste questo sito?Authorization: Bearer · Pro
POST/v2/domain-popularityPopolarità di un dominioAuthorization: Bearer · Pro
POST/v2/website-legitQuesto sito è affidabile?Authorization: Bearer · Pro
GET/v1/data/accountChiave API e creditiAuthorization: Bearer
POST/v1/data/phone-lookupsIntelligence telefonicaAuthorization: Bearer · Pro
POST/v1/data/phone-risk-checksRischio telefonicoAuthorization: Bearer · Pro
POST/v1/data/carrier-lookupsRicerca operatoreAuthorization: Bearer · Pro
POST/v1/data/reverse-phone-lookupsRicerca inversa azienda verificataAuthorization: Bearer
POST/v1/data/phone-exposure-checksIl mio numero è stato divulgato?Authorization: Bearer · Pro
POST/v1/data/bulk-lookupsRicerche telefoniche massiveAuthorization: Bearer
GET/v1/data/productsCatalogo prodotti NoCall—
GET/v1/data/openapi.jsonOpenAPI 3.1—

Risposte

Nota

Esempio inventato, non una ricerca reale. Non chiamare e non aprire i suoi link.

data contiene il risultato; meta include requestId, unitsCharged e l’utilizzo se pertinente. L’estratto fittizio mostra il saldo dopo una richiesta. Anche un risultato valido senza dati costa 1 credito; errori di convalida o del fornitore e lettura del saldo sono gratuiti. L’assenza di dati non prova che il numero sia sicuro. Consulta OpenAPI per gli schemi completi.

JSON · who-calls
{
  "data": {
    "tool": "who-calls",
    "result": {
      "phoneNumber": "+12025550123",
      "found": true,
      "updatedAt": "2026-10-01T09:30:00.000Z",
      "risk": {
        "score": 72,
        "level": "high"
      },
      "reportCount": 14,
      "categories": [
        "TELEMARKETING"
      ],
      "verified": false,
      "carrier": null,
      "verifiedBusiness": null
    }
  },
  "meta": {
    "requestId": "req_example",
    "unitsCharged": 1,
    "usage": {
      "periodStart": "2026-10-01",
      "unitLimit": 20,
      "unitsUsed": 3,
      "unitsRemaining": 17
    }
  }
}
tooldata.result
who-callsphoneNumber, found, updatedAt, risk, reportCount, categories, verified, carrier, verifiedBusiness
phone-exposureatRisk
phone-intelligencephoneNumber, found, updatedAt, risk, reportCount, categories, verified, carrier, verifiedBusiness, commentCount, aiRiskLevel, prefixRisk
phone-riskphoneNumber, found, updatedAt, risk, signals
carrier-lookupphoneNumber, found, updatedAt, carrier
verified-businessphoneNumber, found, updatedAt, verifiedBusiness
phone-formatse164, national, international, callingCode, country, valid
callback-costtier, scope, callingCode, registry
prefix-originkind, planLoaded, numberType, foreignCode, national, row, complete, rows, factsType
number-validatorvalid, possible, country, callingCode, type, e164
line-typee164, valid, type, lineKind
premium-ratecategory, callbackRisk, prefix, callingCode, source
wangiriverdict, code, nanpArea, entry
commercial-400verdict, prefix
number-researchanswer, sources, countryCode, language, cached
dial-codecode, kind, action, service, forwardsTo, calls, risk, undo, operator
call-scam-checkverdict, signals, actions, reportChannel
sms-checkverdict, confidence, reason
sms-brandverdict, host, brand, officialDomains, sightings
sms-senderkind, tooLong, brand, lookalike, digits, code
sms-codeverdict, severity, serviceRecoverySteps, stepCodes
sms-reportchannel, verified, stepCodes, reportFields
sms-campaignstotalCampaigns, totalSightings, topBrands, topDomains
sms-redacttext, counts, total
callback-numbernumbers, signals, attention
prefix-directorycountryCode, callingCode, planVersion, total, page, limit, hasMore, rows
operator-directoryoperators, specialPrefixes
calling-codesrows, total
spam-directoryview, totals, categories, topReported, category, total, page, limit, hasMore, rows
trendstotals, activity24h, verification, freshness, categoryDistribution, phoneTypes, topOperators, growthTimeline, topPrefixes, searchTrends, communityDistribution, impersonationRanking, aiBreakdown
smishingverdict, score, attention, signals, hosts, linkFlags, brand, brandSlug
link-checkhost, hostAscii, official, brand, hosts, linkFlags, signals, attention
safety-toolsattention, signals, hosts, linkFlags
sms-filtercountry, version, updatedAt, source, counts
qr-checkpayload, signals, attention, hosts, linkFlags, link, numbers
email-headersfromDomain, fromDomainAscii, displayName, replyToDomain, returnPathDomain, senderDomain, subject, auth, authenticated, brand, official, freeMail, signals, attention
mx-lookupdomain, domainAscii, found, records, nullMx, implicitMx, acceptsMail, provider, signals, attention
spf-checkdomain, domainAscii, found, record, recordCount, terms, allResult, lookups, includes, signals, valid, attention
dmarc-checkdomain, domainAscii, found, record, foundAt, inherited, policy, subdomainPolicy, effectivePolicy, percentage, alignment, reports, signals, valid, attention
dkim-checkdomain, domainAscii, selectorGiven, selectorsTried, keys, signals, attention
email-verifydomain, domainAscii, status, syntaxValid, acceptsMail, mx, disposable, role, freeMail, suggestion, signals, attention
website-agedomain, domainAscii, rdapAvailable, found, registeredDomain, registered, updated, expires, ageDays, registrar, status, campaigns, signals, attention
domain-popularitydomain, domainAscii, ranked, rank, rankedDomain, refSubnets, refIps, listSize, updated, source
website-legitdomain, domainAscii, verdict, official, brand, ageDays, registered, ranked, rank, campaigns, signals, linkFlags, attention, checks

Crediti e limiti

Nota

Con Pro hai 20 crediti gratis ogni mese

Ogni chiamata all'API costa 1 credito. Si usano prima quelli mensili.

La rigenerazione disattiva le chiavi precedenti. Il saldo dei crediti resta invariato.

cURL
curl 'https://api.nocall.io/v1/data/account' \
  --header "Authorization: Bearer $NOCALL_API_KEY"

Tentativi successivi e richieste in blocco

Genera una nuova Idempotency-Key per ogni nuova operazione. Mantienila solo per ripetere la stessa operazione con gli stessi dati.

Idempotency-Key è facoltativo per richieste singole e obbligatorio per i blocchi: 8–128 caratteri (lettere, cifre, punti, trattini, underscore o due punti). Per riprovare, conserva la stessa chiave, rotta, API key e corpo. Una risposta ripetuta non viene addebitata di nuovo. Controlla il saldo dopo una risposta ambigua.

Un blocco accetta fino a 50 elementi. product seleziona una delle operazioni dell’esempio. Prima di iniziare serve saldo per tutti gli elementi validi; vengono addebitati solo i risultati validi completati. Le richieste simultanee condividono il saldo: se finisce prima dell’addebito finale, la richiesta restituisce 429 senza addebito.

Idempotency-Key
8–128 ASCII: A–Z a–z 0–9 . _ : -
TTL: 24 h
product
phone-lookup
phone-risk
carrier-lookup
reverse-phone-lookup
phone-exposure
cURL
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v1/data/bulk-lookups' \
  --header "Authorization: Bearer $NOCALL_API_KEY" \
  --header 'Content-Type: application/json' \
  --header "Idempotency-Key: $REQUEST_ID" \
  --data '{"product":"phone-risk","inputs":[{"phone":"+12025550123","country":"US"}]}'

Risoluzione dei problemi

HTTPInterpretare il risultato
401Chiave assente, formato Bearer errato, chiave scaduta o revocata. Controlla l’header o genera una nuova chiave nel tuo account.
403Ti servono dei crediti: i 20 al mese inclusi in un account Pro attivo, o crediti acquistati nella pagina del tuo account. Un account senza né gli uni né gli altri riceve 403 pro_required.
400 / 422Controlla JSON, phone, country e Idempotency-Key. Gli errori di convalida non consumano crediti.
409La chiave di idempotenza è già stata usata con un altro corpo oppure la richiesta è in corso. Per ripetere la stessa operazione, conserva il corpo e attendi.
429Crediti esauriti o limite di richieste raggiunto. Consulta /account e X-RateLimit-Remaining. Rispetta Retry-After se presente. ai_busy indica che l’IA è occupata: la richiesta non viene addebitata; riprova dopo Retry-After.
500 / 503Servizio o fornitore non disponibile, oppure beta disattivata. Attendi e riprova con la stessa Idempotency-Key; evita cicli di tentativi immediati. tool_warming indica che il tool è ancora in avvio: la richiesta non viene addebitata; riprova dopo Retry-After.