You can use this one here: https://www.ffiec.gov/geocode/
The page hits a couple different endpoints when a search is made. If all you need are the FIPS codes, you just need this one: https://geomap.ffiec.gov/FFIECGeocMap/GeocodeMap1.aspx/GetGeocodeData
You will need to make a post request with a body like this: {sSingleLine: "123 Main St, Watertown, MA", iCensusYear: "2018"}
Example in Python:
import requests
import json
address = "123 Main St, Watertown, MA"
geocode_url = 'https://geomap.ffiec.gov/FFIECGeocMap/GeocodeMap1.aspx/GetGeocodeData'
headers = {'content-type':'application/json'}
data = {'sSingleLine': address, 'iCensusYear': "2018"}
r = requests.post(geocode_url, data = json.dumps(data), headers=headers)
d = r.json()['d']
state_code = d['sStateCode']
county_code = d['sCountyCode']
msa_code = d['sMSACode']
tract_code = d['sTractCode']
Unfortunately, it doesn't look like it gives codes for city or place.