I was doing some reading on the forum and noticed that a few posts on this topic did not really answer the question.
The answer is : (MUST RUN AS APPS)
- grant execute on fnd_profile to {custom_apex_schema}
- grant execute on FND_CORE_LOG to {custom_apex_schema}
- grant execute on FND_GLOBAL to {custom_apex_schema}
- grant select on fnd_profile_option_values to {custom_apex_schema}
- grant select on fnd_profile_options to {custom_apex_schema}
- create or replace synonym {custom_apex_schema}.fnd_profile_option_values for applsys.fnd_profile_option_values;
- create or replace synonym {custom_apex_schema}.fnd_profile_options for applsys.fnd_profile_options;