How can I identify foreign key fields and related objects with the REST API metadata?

A fixed choice list (FCL) is a field that contains a list of static values populated from an FND lookup type. The field's specific list values are populated from a lookup type that you select when you define the field.

Dynamic choice lists (DCL) are the fields that show you several values to select from. You select the most relevant one for your task. It’s populated from an existing object's actual data, which you can add filters to. Based on how you define the field, the list is dynamically populated at runtime and its values can change depending on the user's context.

You can identify if the field is an FCL by looking at lov.attributeMap.source. If the value is LookupCode, then it’s an FCL; otherwise, it would be DCL.

Or, you can also use the lovResourcePath element in the LOV to construct a URL that will give you all the LOV values for the target. You can then use the resource element and filter element to construct the API to get the list of lookup codes.

Sample URL

{{server_url}}/{resource element}/{filter}
Below is an example of the LOV element:
    "lov" : {

     "childRef" : "YesNoLOV",

     "attributeMap" : [ {

      "source" : "LookupCode",

      "target" : "BudgetedFlag"

     } ],

     "displayAttributes" : [ "Meaning" ],

     "lovResourcePath" : [ {

      "resource" : "fndStaticLookups",

      "filter" : "?finder=LookupTypeFinder%3BBindLookupType%3DYES_NO"

     } ]

    }

    }

Example of URL

{{server_url}}/fndStaticLookups?finder=LookupTypeFinder%3BBindLookupType%3DYES_NO

This will give you all the LOV values that apply to the target which is BudgetedFlag in this case.

For more information see What are dynamic choice lists? and What's the difference between fixed choice lists and dynamic choice lists?