I wrote some code that creates a map and allows users to click on the map. The click takes the lat,lng (of click) and queries a government's GIS database and returns the parcel number. They can also use the default search widget and search by address, which ultimately does the same thing.
I also added a polygon layer that outlines parcels and another polygon layer that outlines houses.
I am NOT USING AN API KEY. I am NOT using esriConfig.
The code works and seems fairly easy to disseminate. I just add:
<script src="https://js.arcgis.com/4.20/"></script>
And the code just works. Basemap layers and Geocoding are a part of the Pricing, although nothing is stopping my code from running.
The Questions is: Do I still need an API key? If so, does the search widget use a Geocoding credit? Does the adding a layer or loading the basemap use a Basemap credit?
If not, why not? (But also not complaining)
Extra Info:
To Query I use -> {featurelayerlink}/query?geometry={lat} {lng}&...etc
To Add a Layer I use -> map.add(new FeatureLayer({ url: featureLayerURL, ...etc }))
To Make the map -> map = new Map({ basemap: "streets", });