🔒

Signal Number Validation & Identity Lookup APIs

Check in real time whether a phone number is registered on Signal and enrich registered numbers with public identity metadata.

RESTful JSON API for lead validation, identity resolution, CRM enrichment, and anti-fraud signals.

Try the interactive demo

Overview

💡

Base URL https://api.opendata-api.com

Every call needs an API key. Paste it once below — it's attached to each request automatically.

GET /api/project/signal/check

Check Signal Registration

Details

The lightest, fastest call: returns only whether a phone number is a registered Signal account, without fetching identity metadata. Ideal for real-time form validation, sign-up gating, and high-volume list screening. Pass the full international number (digits, optional leading +); the API normalizes to digits only. registered is three-state: true = registered, false = not registered, null = undetermined (transient — see message, e.g. timeout).

ParameterInValue
number* query
curl -X GET 'https://api.opendata-api.com/api/project/signal/check?key=<API_KEY>&number=<number>'
GET /api/project/signal/user-info

Get Signal Identity by Number

Details

Full lookup for a single number: registration status plus the public identity of the account when registered — ACI (Account Identifier UUID), PNI (Phone Number Identifier, usually PNI:<uuid>), optional plaintext profile metadata (identityKey, unrestrictedUnidentifiedAccess, capabilities, badges), a machine status (found / not_found / timeout / ...), a human-readable message, and durationMs. fieldsEncrypted=true for strangers indicates that display name / about / avatar are withheld by Signal's end-to-end profile encryption (not a tool limitation). Use this when you need identity enrichment, not just a yes/no.

ParameterInValue
number* query
curl -X GET 'https://api.opendata-api.com/api/project/signal/user-info?key=<API_KEY>&number=<number>'
GET /api/project/signal/profile

Get Signal Profile Metadata by ACI

Details

Fetch unversioned public profile metadata for a known ACI (UUID). Returns plaintext fields only: identityKey, unidentifiedAccess, unrestrictedUnidentifiedAccess, capabilities, badges, and uuid (same as ACI). Name / about / avatar are never present on this path for non-contacts. Obtain the ACI first via the user-info endpoint.

ParameterInValue
aci* query
curl -X GET 'https://api.opendata-api.com/api/project/signal/profile?key=<API_KEY>&aci=<aci>'