あなたはすでに何を試しましたか?
「最も難しい」部分は、入力したアドレスを確認することかもしれませんが、これを非常に簡単にする API がいくつかあります。私は SmartyStreets で働いていますが、LiveAddress APIはそのようなサービスの 1 つです。シンプルな HTTPS リクエストで、推奨/候補アドレスのリストを提供できます。例えば:
https://api.smartystreets.com/street-address?street=1600+amphitheatre+parkway&city=mtn+view&state=ca&zipcode=&auth-id=<your auth ID>&auth-token=<your API key>
結果は次のようになります。
[
    {
        "input_index":0,
        "candidate_index":0,
        "delivery_line_1":"1600 Amphitheatre Pkwy",
        "last_line":"Mountain View CA 94043-1351",
        "delivery_point_barcode":"940431351000",
        "components":
        {
            "primary_number":"1600",
            "street_name":"Amphitheatre",
            "street_suffix":"Pkwy",
            "city_name":"Mountain View",
            "state_abbreviation":"CA",
            "zipcode":"94043",
            "plus4_code":"1351",
            "delivery_point":"00",
            "delivery_point_check_digit":"0"
        },
        "metadata":
        {
            "record_type":"S",
            "county_fips":"06085",
            "county_name":"Santa Clara",
            "carrier_route":"C058",
            "congressional_district":"14",
            "rdi": "Commercial",
            "latitude": 37.41907,
            "longitude": -122.07764,
            "precision": "Zip7"
        },
        "analysis":
        {
            "dpv_match_code":"Y",
            "dpv_footnotes":"AABB",
            "dpv_cmra":"N",
            "dpv_vacant":"N",
            "ews_match":false,
            "footnotes":"B#N#"
        }
    }
]
住所があいまいな場合は、いくつかのオプションが返されます。ユーザーに表示して、ユーザーがいずれかを選択できるようにすることができます。
郵便番号についても言及しましたが、郵便番号と都市/州も検証するための SmartyStreets エンドポイントがあります。
地図上にマーカーを表示するために、Google Maps API にはこれに使用できる関数があります。