{"_id":"55154daec859ac2f0001b48b","user":"54eb4fdedf7add210007b29b","parentDoc":null,"version":{"_id":"54eb63b859b1172100334fae","project":"54eb50e5615ffc1900305a16","forked_from":"54eb63a1867e1917009b711d","__v":27,"createdAt":"2015-02-23T17:30:32.501Z","releaseDate":"2015-02-23T17:30:32.501Z","categories":["54eb63b959b1172100334faf","54eb63b959b1172100334fb0","54eb63b959b1172100334fb1","54eb63b959b1172100334fb2","54ed8dd4ab373e2300f50eae","54ed99b2ab373e2300f50ede","55153a6de68daa2f00cff838","551546edbc466623002afe72","5515472ac28d6125001b8884","55154749c28d6125001b8885","555d9b4106dfec0d00d38ea7","5613e06e433e5735007c7708","5624bbb785a31117001c5403","56669e857cc81e0d00253f8e","568b8d837a42220d00498311","56a632277ef6620d00e2f18a","56d8147c3eb4dd0b00201aac","57a9ce2fac6db30e000d7efd","57a9cf4e944ea60e00dc3f74","58172386715dce0f00da4aa0","582dc59ee1b8692300c0dd03","589b19b4fec2730f0082e040","58b04a023529383900a759b5","58b92d1598157a0f004869bf","592e7685c58275000f20174f","59392839e376d4002f8a0474","59393064e376d4002f8a05a1","5947ae0d4005e2000f3a4fec","594a74df1d1de5001ab3517a","5954bc387a147f001b918915"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1"},"project":"54eb50e5615ffc1900305a16","__v":22,"category":{"_id":"551546edbc466623002afe72","pages":["551549c0bc466623002afe76","55154afbc859ac2f0001b486","55154daec859ac2f0001b48b","55154f36bc466623002afe7c","551550c5e68daa2f00cff84c","551551d4f854a31900368737","551552e7c859ac2f0001b494","551be4e3a0ee622b0087f69e","5527acc447b71d0d0044e6cd","552f84ad633a5b0d00e99daf","5537533df162750d00bbf7d0","554b3ffd6b448d0d00646d79","55506416fa289c0d0075e4f0","5550aaea00420e0d00d13113","55545865b450630d00041d80","55546906f9a7871700ef8e3c","555c4bf87e271d0d00f3c8c4","5564318c1fa8002300ea4bb0","556ffbd5910c090d00c432b6","557019f4cc189a21001ab258","55703aefcc189a21001ab2a3","5575a3c60b81dc230069c910","558ab69575eaf50d004e4cf3","55b0b41fb3171b3700b1539a","55ba2e48d72d1e1900276ac1","55ba45c804775a2f00628101","55c0b789344dc40d00f55933","55c0b8c837298d0d00088d88","55c0c095344dc40d00f55960","55d43e05b49ab11900328e2e","55d72c8c60fc730d00fc2738","55e6c564d678ad17001589ac","55e9b7780c9b420d0042b275","55f7cf2de32e9b0d00a2d4b6","56094efea7b2590d0089eb95","5613cdbeecbebc21003fa179","5613d8de6a092921004c30b8","5613de7c443514170060dbb6","5613e02823ecf6350009eefc","5613e4271db46e2100e142ad","5614d73c8113d20d00082e3e","561e11ae50e0a62100955946","561e2008efcf8217003adf77","5620f184b244890d001868e0","5620feb740e2c30d0002a899","562105ce40e2c30d0002a8a3","56210b3340e2c30d0002a8b3","56210c74b244890d0018690e","56249a0372ac510d00e49149","56249df185a31117001c53de","56249f0c85a31117001c53e1","5624a9e7c4bf501700bc5ec8","5624b29806e8040d005ed6a0","562507435a86b42300946324","563877854bfb360d00a463c1","5639e0f91846790d0089529a","565327d17d29410d004a0835","565457df04feff210074b17d","56545821ec189235002967af","565485099c4c6d0d00aeda02","5666f1f1f672550d000851ad","566abc7b74d574170070b700","566ad3c7c7c3cd1700265d14","566aede7b5ccc20d00817f71","566aef3147ebaf1900fe65d6"],"project":"54eb50e5615ffc1900305a16","version":"54eb63b859b1172100334fae","__v":65,"sync":{"url":"","isSync":false},"reference":true,"createdAt":"2015-03-27T12:02:53.314Z","from_sync":false,"order":11,"slug":"advanced-tutorials","title":"Advanced tutorials"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-03-27T12:31:42.402Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":true,"order":24,"body":"Promotional messages are sent to your customers, you have analyzed delivery reports and find out that your phone number database has a lot of invalid numbers. You may decide to clean it up with our Number Lookup solution.\n\nNumber Lookupt enables identifying unused and inactive numbers or the network which your customer is currently using. We’re offering [three distinct packages](doc:number-context) tailor made for three types of enterprise clients.\n\nIn order to clean up your database, you need to have our **Database Cleaning package** and perform Number Lookup with an HTTP POST request:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /number/1/query HTTP/1.1\\nHost: api.infobip.com\\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\\nContent-Type: application/json\\n\\n{  \\n   \\\"to\\\":[\\\"41793026834\\\"]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nIn this example we have used only one phone number for easy understanding. Depending of the package, response would be something like this:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"HTTP/1.1 200 OK\\nContent-Type: application/json\\n\\n{  \\n   \\\"results\\\":[  \\n      {  \\n         \\\"to\\\":\\\"41793026834\\\",\\n         \\\"mccMnc\\\":\\\"22801\\\",\\n         \\\"imsi\\\":\\\"228012123477789\\\",\\n         \\\"originalNetwork\\\":{  \\n            \\\"networkPrefix\\\":\\\"79\\\",\\n            \\\"countryPrefix\\\":\\\"41\\\"\\n         },\\n         \\\"ported\\\":false,\\n         \\\"roaming\\\":false,\\n         \\\"status\\\":{  \\n            \\\"groupId\\\":3,\\n            \\\"groupName\\\":\\\"DELIVERED\\\",\\n            \\\"id\\\":5,\\n            \\\"name\\\":\\\"DELIVERED_TO_HANDSET\\\",\\n            \\\"description\\\":\\\"Message delivered to handset\\\"\\n         },\\n         \\\"error\\\":{  \\n            \\\"groupId\\\":0,\\n            \\\"groupName\\\":\\\"OK\\\",\\n            \\\"id\\\":0,\\n            \\\"name\\\":\\\"NO_ERROR\\\",\\n            \\\"description\\\":\\\"No Error\\\",\\n            \\\"permanent\\\":false\\n         }\\n      }\\n   ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nBased on on the information you will receive in the Number Lookup response, you can learn whether that phone number is valid or not. Here is [the list of available Number Lookup parameters per package](doc:number-context) and also [the list of available statuses](doc:response-codes). \n\nFor example, 30 phone numbers are invalid and 70 are valid, so you decide to remove 30 invalid ones from your database. This will save you up to 30% of SMS sending costs and you can invite more active subscribers with the same budget.\n\n-----------\n#### **Tip:** Find out the difference between the  [Sync and Async Number Lookup](doc:number-context-sync-vs-async).","excerpt":"Number Lookup solution","slug":"clean-your-database","type":"basic","title":"Number Lookup: Database cleaning"}

Number Lookup: Database cleaning

Number Lookup solution

Promotional messages are sent to your customers, you have analyzed delivery reports and find out that your phone number database has a lot of invalid numbers. You may decide to clean it up with our Number Lookup solution. Number Lookupt enables identifying unused and inactive numbers or the network which your customer is currently using. We’re offering [three distinct packages](doc:number-context) tailor made for three types of enterprise clients. In order to clean up your database, you need to have our **Database Cleaning package** and perform Number Lookup with an HTTP POST request: [block:code] { "codes": [ { "code": "POST /number/1/query HTTP/1.1\nHost: api.infobip.com\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\nContent-Type: application/json\n\n{ \n \"to\":[\"41793026834\"]\n}", "language": "json" } ] } [/block] In this example we have used only one phone number for easy understanding. Depending of the package, response would be something like this: [block:code] { "codes": [ { "code": "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{ \n \"results\":[ \n { \n \"to\":\"41793026834\",\n \"mccMnc\":\"22801\",\n \"imsi\":\"228012123477789\",\n \"originalNetwork\":{ \n \"networkPrefix\":\"79\",\n \"countryPrefix\":\"41\"\n },\n \"ported\":false,\n \"roaming\":false,\n \"status\":{ \n \"groupId\":3,\n \"groupName\":\"DELIVERED\",\n \"id\":5,\n \"name\":\"DELIVERED_TO_HANDSET\",\n \"description\":\"Message delivered to handset\"\n },\n \"error\":{ \n \"groupId\":0,\n \"groupName\":\"OK\",\n \"id\":0,\n \"name\":\"NO_ERROR\",\n \"description\":\"No Error\",\n \"permanent\":false\n }\n }\n ]\n}", "language": "json" } ] } [/block] Based on on the information you will receive in the Number Lookup response, you can learn whether that phone number is valid or not. Here is [the list of available Number Lookup parameters per package](doc:number-context) and also [the list of available statuses](doc:response-codes). For example, 30 phone numbers are invalid and 70 are valid, so you decide to remove 30 invalid ones from your database. This will save you up to 30% of SMS sending costs and you can invite more active subscribers with the same budget. ----------- #### **Tip:** Find out the difference between the [Sync and Async Number Lookup](doc:number-context-sync-vs-async).