How to get all zip codes with their city and streets

I want to receive all zip codes of a country. In each zip code I want to have all streets and the city of it. How can I get that with one single query? I also want no duplicates. As output I want json

That’s quite a complex task. Do you want to use overpass api or do you have the OSM data in some kind of database?

I want to have all those data in my own database, so I just need the data only once. Only about updating the data with changed address data, I want to call the API more often to get it. Is there btw a query to get only changed data?

My second question is, is there a limit to how frequently you can call the API in a day? Would I get blocked after that amount of calls?

I’d probably use osm2pgsql with a “style” file that very much restricts the data that gets imported (to only postcodes, or almost only postcodes).