You can use the older API, documentation here: https://www.inaturalist.org/pages/api+reference#get-observation_fields
For example, https://www.inaturalist.org/observation_fields.json?page=1 gets the first page of observation fields.
Here’s a python script that will output a csv of all observation fields (takes about 10 mins to run):
import requests
import json
import csv
import time
apiurl = 'https://www.inaturalist.org/observation_fields.json?page='
fileout = open('obsfields.csv', encoding='utf-8', mode='w+', newline='')
csvwriter = csv.writer(fileout, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
csvwriter.writerow(['id','name','datatype','user_id','description','created_at','updated_at','allowed_values','values_count','users_count','uuid'])
for page in range(1,485):
time.sleep(1)
try:
r = requests.get(apiurl + str(page))
for field in r.json():
csvwriter.writerow([field.get('id',''), field.get('name',''), field.get('datatype',''), field.get('user_id',''), field.get('description',''), field.get('created_at',''), field.get('updated_at',''), field.get('aallowed_values',''), field.get('values_count',''), field.get('users_count',''), field.get('uuid','')])
except:
print("error on page " + str(page))