You must have tried it in a web browser. Using curl sends different request headers. When you are using a web browser, it asks for text/html. Try ?format=text
This is the first API that I've encountered that works with cellphone numbers. I can see this being integrated into Android for incoming calls from unknown cellphone numbers.
We actually have this on iOS: it is called IntelliID; that said, the concept doesn't work very well, because by the time the phone gets its data connection warm enough and is able to do the minimum two round-trips over the incredibly high-latency cellular connection to get the data (and have to wait for the lookup itself, which seems to be an entire half a second for this API), you are pretty much fighting with the call timing out and going to voicemail.
My thoughts exactly! I easily get less than 60 calls per hour so this would be perfect. Interestingly, the caller ID for my number is tied to the first owner of my account before it was transferred to me (which happened many years ago).
An Android app is currently in development, and will be released free of charge. We are having an issue, however, because non-GSM carriers rarely allow data transmissions during a voice call, including the ringing state of incoming calls.
Give us a few more weeks of development for this, and it will be ready. The current working title of the Android app is "FreeCallerID," but we may change this before launch. Just look for the Round OpenCNAM logo to make sure you found the right app.
Without Voice-over-LTE, I'm not sure how you're going to get around it. It's not a carrier limitation, it's a limitation of CDMA radios and implementations.
Well, I've often used my mobile internet at the same time as talking in the phone (although it fails sometimes (and I don't have LTE)).
Also, there are many applications in the market that does exactly this. I haven't installed any of them since I basically don't trust anyone with "read/write contacts" and "full internet access" at the same time (perfectly valid permissions for apps like this, but that doesn't mean I trust them).
A search for "vemringde" gives you four apps that targets Sweden specifically (so they are probably quite useless outside of Sweden), one of them mentions that it only works while having a 3G connection.
It's only an issue for non-GSM phones i.e. CDMA phones used in the US and parts of Asia. CDMA does not allow data and voice to run at once over the same radio, while GSM does. Since LTE is an entirely IP network, voice can be run over it like any other IP network. Current phones/carriers do not support it though, but there's some talk that it will be introduced in the next year or so.
Two of the major carriers in the US use CDMA (Verizon and Sprint), while the other two major carriers use GSM (T-Mobile and AT&T). I'm having some trouble finding recent market share numbers for them, but it's mostly half and half.
Not over CDMA without the proper extension that enables simultaneous use of data and voice. And even then, the OS/driver stack has to implement it properly. I can assure you, even on LTE, it does not work on my Android 4.0.4 device.
I would ONLY be willing to use this if it returned better data than Twilio's CNAM lookups (costs $0.01) for a cheaper overall price.
So far, I've tested my number, and a few others, that I know have CNAM data that this service only provides a STATE for. Hopefully it will get better but it's not there yet for me.
Hi there. So, I'm the author of this article. Anyhow, for our free-tier users we don't provide realtime lookups.
Basically, we'll only return a result if we have a caller ID in our cache. So, if you get a 404 (no output), then try again a few seconds later after we've had time to do the lookup via our backend.
Sorry about that! Realtime lookups are currently restricted to API key users only.
> you can't get something working within 5 minutes of vising our website, we've failed our mission.
It took me five minutes on the website ... and I had to come back to HN and read the comments to get this working. Don't want to be discouraging, but maybe you should provide this information in the blog/website otherwise you have failed (for me atleast).
You might make this more obvious. Also, you might state how to distinguish between "sorry we need more time to look this up" and an actual 404 or error.
504 Gateway Timeout would be the obvious one, since if I'm reading this correctly it's essentially a timeout of zero; 5xx status codes are indicative of retriability later on.
But I think that sort of performance would make the free tier essentially worthless. “All you have to do is hit our API endpoint, and BAM, you get results back.” Except you really don't. Analogy: a caching DNS resolver that returned an instant SERVFAIL if the results weren't already in memory wouldn't be considered acceptable even for demo purposes anywhere that I've seen.
Hey premchai21, thanks for the feedback! You're completely right. I'll be making some adjustments to the way this operates over the coming days to make things much simpler.
I guess I disagree here (but who doesn't with HTTP status codes...). I try to reserve 5XX codes for actual errors. In this case, no error occurred, the response is just delayed.
I suppose being able to try out the API on the software level is useful, yes. I'm not sure how one is supposed to figure out whether results are likely to be good enough for a given application if they're so unpredictably degraded. I do suspect my perception is being colored by the website text, as quoted above.
This is awesome! I had a couple of free hours, so I hacked together a little Ruby app that validates a telephone number and full name pair. This could be used for sign-up security, etc. You can find the repo here: https://github.com/EricR/sinatra-cnam-lookup
For what it's worth, and for all those asking questions about Canadian numbers, caller id name is handled differently in Canada than in the states. When a carrier sends an outgoing call, they include the caller id name in the SS7 IAM (Initial Message), unlike the states where the receiving carrier has to do a database lookup on the number to retrieve the name. This likely explains why a lot of Canadian numbers are not returning any results, or incorrect results.
Personally, I think the Canadian system of including the name in the IAM works a lot better than having to do a DB lookup.
I believe this is also the case for public switched telephone network in the US. On a landline, the name and number of the calling party is transferred by Bell 202 and a lot of phones will display this information.
This discussion is about how the name is delivered to the telephone company being called, not from that company to your phone. In the US, the calling telephone company sends the number, the called company looks it up in a database, then sends the name they get to your phone. Everything but the delivery to the phone takes place over the SS7 network.
I wonder if the providers of this service have thought about crowd-sourcing the caller-id information, like http://mrnumber.com/ whose free tier harvests number->name mapping from users address books...
This would not work because of the sheer number of users who store nicknames, particularly uncomplimentary ones. Would you want your name displaying as "that douchebag" or "bar slut"?
As somehow it pulls up my (not) apparently unlisted home phone; also, it pulls up family members names for cellphones which are under my name on the contract.
So I am definitely interested in finding out where this data is being taken from?
Hey krrose27, we basically pull the information from a variety of sources, all publicly available. If we can get the caller ID name information, then it means any call made from those numbers to a caller ID capable phone (with caller ID service) will be able to see it also.
They do provide caller id information, but not in a query interface like this. You either get the caller id information after making a call or receiving a call. Assuming you have the number configured and it costs 1 cent per lookup with the associated call.
It seems odd that it only returns a province/state when just the area code provides more information than that. Example: any (647) or (416) area code will always be from Toronto, but numbers for both just return ONTARIO.
It's not restricted to US only, but all of the NANPA. North American Numbering Plan Administration covers everywhere that uses the country code +1. This includes all of Canada, many islands and territories, and a few other exotic locations.
I just tried my home number and the name it came up with was 'Nova Scotia'. My landline provider is based in Halifax, but I'm in PEI. I'm kind of used to that, though :)
This looks remarkably easy to use. Just a small tip: On opencname's home page, you suggest users try the following API call:
I tried it and received a different result: Perhaps you should update your home page to reflect this?