program test_gbif;
{$mode objfpc}{$H+}
uses SysUtils, fphttpclient, fpjson, jsonparser;
const
url = 'https://api.gbif.org/v1/species?name=';
searchStr = 'Myrcia lingua';
var
jData, jItem, jItems: TJSONData;
scientificname, status, valid_name, taxon_list: string;
begin
jData := GetJSON(TFPHTTPClient.SimpleGet(url + StringReplace(searchStr, ' ', '%20', [rfReplaceAll])));
jItems := jData.FindPath('results');
jItem := jItems.Items[0]; // Just want the first result
scientificname := jItem.FindPath('scientificname').AsString;
status := jItem.FindPath('taxonomicStatus').AsString;
valid_name := jItem.FindPath('accepted').AsString;
taxon_list := jItem.FindPath('kingdom').AsString + '; ' +
jItem.FindPath('phylum').AsString + '; ' +
jItem.FindPath('class').AsString + '; ' +
jItem.FindPath('order').AsString + '; ' +
jItem.FindPath('family').AsString;
jData.Free;
end.