Age Signal
5 min
age signal the age signal service provides phone based age signal, helping you determine whether the holder of a given phone number is confirmed to be 18 years or older it supports onboarding and access control decisions where an age check is required, without exposing date of birth or other personal information about the individual the service takes a single phone number and returns a simple, normalised age signal it is an age signal only and not a full identity verification it confirms an age threshold rather than establishing or validating a person's identity integration age signal can be called as a standalone service through the data zoo api you submit a phone number in international format, and the service returns the age signal in a single response coverage currently spans australia and germany result matrix scenario status matchstatus phoneno dob18plus phone matched and age 18+ confirmed 0 full match true true phone matched, age not confirmed 2 no match true omitted phone number not found 2 no match false false no usable data returned 2 no match false omitted source failure (timeout / error) 3 no match false omitted invalid request input 1 β β β status codes 0 β full match phone matched, and age confirmed 18+ 2 β no match request processed successfully but did not produce a confirmed 18+ result { "name" "1) age signal", "method" "post", "url" "https //idu test datazoo com/api/v2/verify", "description" "verification outcome returns an age signal (18+)\nconsumer consent β n/a\nmandatory input β phone number\noptional input β client reference\ncoverage β australia (+61), germany (+49)\nreturned data β phone signal, 18+ age signal (omitted where age cannot be confirmed)", "tab" "examples", "examples" { "languages" \[ { "id" "f2jmy98siubrop0bgc788", "language" "curl", "code" "curl location 'https //idu test datazoo com/api/v2/verify' \\\\\n header ' application/json' \\\\\n header 'authorization β’β’β’β’β’β’' \\\\\n data '{\n \\"service\\" \[\n \\"age signal\\"\n ],\n \\"countrycode\\" \\"global\\",\n \\"clientreference\\" \\"test 0001\\",\n \\"identityvariables\\" {\n \\"phoneno\\" \\"\\"\n }\n}", "customlabel" "" }, { "id" "eamhfvbbjygzygbseb7dh", "language" "curl", "code" "curl request post \\\\\n url https //idu test datazoo com/api/v2/verify \\\\\n header 'accept application/json' \\\\\n header 'content type application/json' \\\\\n header 'authorization string' \\\\\n data '{\n \\"data\\" {\n \\"service\\" \\"\\",\n \\"countrycode\\" \\"\\",\n \\"identityvariables\\" {\n \\"phoneno\\" \\"\\"\n }\n }\n }'", "customlabel" "" }, { "id" "uafxjxhnhbbshqssr6tu2", "language" "nodejs", "code" "var request = require('request');\nvar options = {\n 'method' 'post',\n 'url' 'https //idu test datazoo com/api/v2/verify',\n 'headers' {\n 'accept' 'application/json',\n 'content type' 'application/json',\n 'authorization' 'string'\n },\n body json stringify({\n \\"data\\" {\n \\"service\\" \\"\\",\n \\"countrycode\\" \\"\\",\n \\"identityvariables\\" {\n \\"phoneno\\" \\"\\"\n }\n }\n })\n\n};\nrequest(options, function (error, response) {\n if (error) throw new error(error);\n console log(response body);\n});\n", "customlabel" "" }, { "id" "outmkm13nyexfxosnk0t8", "language" "javascript", "code" "var myheaders = new headers();\nmyheaders append(\\"accept\\", \\"application/json\\");\nmyheaders append(\\"content type\\", \\"application/json\\");\nmyheaders append(\\"authorization\\", \\"string\\");\n\nvar raw = json stringify({\n \\"data\\" {\n \\"service\\" \\"\\",\n \\"countrycode\\" \\"\\",\n \\"identityvariables\\" {\n \\"phoneno\\" \\"\\"\n }\n }\n});\n\nvar requestoptions = {\n method 'post',\n headers myheaders,\n body raw,\n redirect 'follow'\n};\n\nfetch(\\"https //idu test datazoo com/api/v2/verify\\", requestoptions)\n then(response => response text())\n then(result => console log(result))\n catch(error => console log('error', error));", "customlabel" "" }, { "id" "h7ra qbzkbmtv qrtj1pe", "language" "python", "code" "import requests\nimport json\n\nurl = \\"https //idu test datazoo com/api/v2/verify\\"\n\npayload = json dumps({\n \\"data\\" {\n \\"service\\" \\"\\",\n \\"countrycode\\" \\"\\",\n \\"identityvariables\\" {\n \\"phoneno\\" \\"\\"\n }\n }\n})\nheaders = {\n 'accept' 'application/json',\n 'content type' 'application/json',\n 'authorization' 'string'\n}\n\nresponse = requests request(\\"post\\", url, headers=headers, data=payload)\n\nprint(response text)\n", "customlabel" "" }, { "id" "moj1og1m5djbfzhgxt6rw", "language" "ruby", "code" "require \\"uri\\"\nrequire \\"json\\"\nrequire \\"net/http\"\n\nurl = uri(\\"https //idu test datazoo com/api/v2/verify\\")\n\nhttps = net http new(url host, url port)\nhttps use ssl = true\n\nrequest = net http post new(url)\nrequest\[\\"accept\\"] = \\"application/json\\"\nrequest\[\\"content type\\"] = \\"application/json\\"\nrequest\[\\"authorization\\"] = \\"string\\"\nrequest body = json dump({\n \\"data\\" {\n \\"service\\" \\"\\",\n \\"countrycode\\" \\"\\",\n \\"identityvariables\\" {\n \\"phoneno\\" \\"\\"\n }\n }\n})\n\nresponse = https request(request)\nputs response read body\n", "customlabel" "" } ], "selectedlanguageid" "f2jmy98siubrop0bgc788" }, "results" { "languages" \[ { "id" " kllvb jxqiuu wuwqaf", "language" "200", "code" "{\n \\"countrycode\\" \\"global\\",\n \\"clientreference\\" \\"test 0001\\",\n \\"reportingreference\\" \\"dz da848335 0eaa 47d1 9127 c2ad06b12e46\\",\n \\"matchstatus\\" \\"full match\\",\n \\"searcherrormessage\\" \\"\\",\n \\"safeharbour\\" false,\n \\"searchstatus\\" \\"successful\\",\n \\"serviceresponses\\" {\n \\"age signal\\" {\n \\"status\\" 0,\n \\"sourcestatus\\" \\"successful\\",\n \\"errormessage\\" \\"\\",\n \\"identityverified\\" false,\n \\"safeharbourscore\\" \\"n/a\\",\n \\"namematchscore\\" \\"n/a\\",\n \\"addressmatchscore\\" \\"n/a\\",\n \\"verifications\\" {\n \\"dob18plus\\" true,\n \\"phoneno\\" true\n },\n \\"returneddata\\" {\n \\"category\\" \\"consumer\\"\n }\n }\n },\n \\"remarks\\" \[]\n}\n", "customlabel" "" }, { "id" "as5tj4glqvhlg7b69q21j", "language" "404", "code" "{\n \\"message\\" \\"ain't no cake like that \\"\n}", "customlabel" "" }, { "id" "8ehcmayv6 u12dkhsoug9", "language" "400 name", "code" "{\n \\"clientreference\\" \\"test 0001\\",\n \\"reportingreference\\" \\"dz 1fbbdd3d 8ca3 463c b425 1eb434be8333\\",\n \\"validationerrors\\" \[\n \\"invalid value for phoneno invalid format\\"\n ],\n \\"searcherrormessage\\" \\"the following data source requests failed validation age signal\\",\n \\"searchstatus\\" \\"not successful\\"\n}\n" } ], "selectedlanguageid" " kllvb jxqiuu wuwqaf" }, "request" { "pathparameters" \[], "queryparameters" \[], "headerparameters" \[ { "name" "authorization", "kind" "required", "type" "string", "description" "sessiontoken obtained via the authentication call", "" "sessiontoken obtained via the authentication call" }, { "name" "content type", "kind" "optional", "type" "string", "description" "application/json", "" "application/json" } ], "bodydataparameters" \[ { "name" "service", "kind" "required", "type" "array", "description" "age signal", "" "array" }, { "name" "countrycode", "kind" "required", "type" "string", "description" "global", "" "required" }, { "name" "clientreference", "kind" "optional", "type" "string", "description" "clientreference", "" "clientreference" }, { "name" "identityvariables", "kind" "optional", "type" "object", "description" "", "" "optional", "children" \[ { "name" "phoneno", "kind" "required", "type" "string", "description" "send phoneno in international format beginning with +61/61 (au) or +49/49 (de)" } ], "schema" \[ { "name" "phoneno", "kind" "required", "type" "string", "description" "send phoneno in international format beginning with +61/61 (au) or +49/49 (de)" } ] } ], "formdataparameters" \[] }, "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" }, "hastryitout" true, "response" \[ { "name" "countrycode", "kind" "optional", "type" "string", "description" "global", "children" \[] }, { "name" "clientreference", "kind" "optional", "type" "string", "description" "the client reference (if given as input) ", "children" \[] }, { "name" "reportingreference", "kind" "optional", "type" "string", "description" "a reference number generated which is unique to each transaction ", "children" \[] }, { "name" "validationerrors", "kind" "optional", "type" "string", "description" "returned with http status code 400 when the request contains invalid or improperly formatted input data ", "children" \[] }, { "name" "matchstatus", "kind" "optional", "type" "string", "description" "full match\\" when phone is matched and age confirmed 18+;\notherwise \n\\"no match\\" " }, { "name" "searcherrormessage", "kind" "optional", "type" "string", "description" "error message returned querying the data source", "children" \[] }, { "name" "safeharbour", "kind" "optional", "type" "boolean", "description" "false", "children" \[] }, { "name" "searchstatus", "kind" "optional", "type" "string", "description" "\\"successful\\" \n\\"not successful\\"", "children" \[] }, { "name" "serviceresponses", "kind" "optional", "type" "object", "description" "age signal details with \\"age signal\\" returned as the service identifier ", "children" \[ { "name" "status", "kind" "optional", "type" "integer", "description" "0 full match\n2 no match\n\nfull match\\" when phone is matched and age confirmed 18+;\notherwise \n\\"no match\\" \n" }, { "name" "sourcestatus", "kind" "optional", "type" "string", "description" "\\"successful\\"\n\\"not successful\\"" }, { "name" "errormessage", "kind" "optional", "type" "string", "description" "error message(s) from the data source example, \\"not allowed destination\\" " }, { "name" "identityverified", "kind" "optional", "type" "boolean", "description" "true or false" }, { "name" "safeharbourscore", "kind" "optional", "type" "string", "description" "\\"none\\"" }, { "name" "namematchscore", "kind" "optional", "type" "string", "description" "\\"n/a\\"" }, { "name" "addressmatchscore", "kind" "optional", "type" "string", "description" "\\"n/a\\"" }, { "name" "verifications", "kind" "optional", "type" "object", "description" "element level verification returned as true", "children" \[ { "name" "phoneno", "kind" "optional", "type" "boolean", "description" "true\nfalse" }, { "name" "dob18plus", "kind" "optional", "type" "boolean", "description" "true\nfalse" } ] }, { "name" "returneddata", "kind" "optional", "type" "object", "description" "returns additional data from the data source ", "children" \[ { "name" "category", "kind" "optional", "type" "string", "description" "consumer " } ] } ] } ], "autogeneratedanchorslug" "1 age signal", "legacyhash" "fcezgtjw30yomiu8dcjf7" }

