System resources: difference between custom and lookup?



What is the difference between these two resources available from api/v2/system/: custom and lookup?

Do they have a different purpose?

One thing I have noticed is that, although they both expect the value to be a string, the customs allow an object as a value (this contradicts their schema by the way) .

Thanks in adavnce!