It looks like Gisgraphy should fit your needs. Here's the output from an example query:
<results>
<numFound>1</numFound>
<QTime>519</QTime>
<result>
<name>Elenis Palaiologou</name>
<distance>9.3785112</distance>
<gid>207699655</gid>
<openstreetmapId>202995032</openstreetmapId>
<streetType>RESIDENTIAL</streetType>
<oneWay>true</oneWay>
<countryCode>CY</countryCode>
<length>143.038762237</length>
<lat>35.17133607836711</lat>
<lng>33.36918811504461</lng>
<isIn>Nicosia</isIn>
<isInAdm>Λευκωσία - Lefkoşa</isInAdm>
<adm1Name>Λευκωσία - Lefkoşa</adm1Name>
<adm2Name>Λευκωσία - Lefkoşa</adm2Name>
<fullyQualifiedName>Elenis Palaiologou, Nicosia, Λευκωσία - Lefkoşa</fullyQualifiedName>
<lanes>2</lanes>
<azimuthStart>63</azimuthStart>
<azimuthEnd>31</azimuthEnd>
<label>Elenis Palaiologou, Nicosia</label>
<labelPostal>Elenis Palaiologou, Nicosia</labelPostal>
<source>OSM</source>
</result>
<attributions>http://www.gisgraphy.com/attributions.html</attributions>
</results>
The attribute you are after is <streetType>RESIDENTIAL</streetType>
.
Gisgraphy offers API access. I haven't checked their prices, but it seems they have a free and a premium service. Apart from that, you can also install the software on your own server, as it is available at Github. For details on how to use the API, please refer to their API reference. "Street type" is dealt with in chapter 7.
Oh: And as you can see by <source>OSM</source>
it is using OpenStreetMap :)
http://services.gisgraphy.com/reversegeocoding/search?lat=${lat}&lng=${lon}&format=json
for a quick glance (just replace the variables accordingly, using decimal format). For free it only works in a web browser, but you can register for API access (haven't checked their pricing, though). – Izzy♦ Oct 4 '18 at 10:14