Jayant's answer is the better approach for an organization-wide review, and I wanted to add another approach that is limited but quicker for single-object checks.
You can run Tooling API queries from the Developer Console if you tick the "Use Tooling API" box. You can run queries like this one to get back required field lists for one object at a time:
SELECT QualifiedApiName
FROM FieldDefinition
WHERE EntityDefinition.QualifiedAPIName = 'Account'
AND IsNillable = false
AND DataType NOT IN ('Checkbox', 'Formula (Checkbox)')
AND PublisherId != 'System'
This gets to the fields that are required by using whether they're nillable as a proxy - we just drop Checkboxes, because they're never null
and can't be database-level required. Note that system fields like SystemModStamp
and Id
are included, because they cannot be set to null
, unless we include the PublisherId != 'System'
clause.
Note, of course, that neither the Tooling nor Metadata API approaches at the field level will tell you whether a field is required at the page layout level or by a validation rule - this is only database-level requirement.