For scriptID, it states that it is nullable in the schema. However, I got the bad request response because I used null in the scripId field.
I understand that scriptid has to be unique and not shareable. How can I determine which scriptids have not been used?
You cannot. The recommended way is to either upload new script content as demonstrated in the example previously sent or not to provide the script at all if it should not be changed. Working with existing script IDs is not recommended for users, it is leveraged by system tools only. The only case you can use it is to restore a script e.g. in case the new script was broken. The current script ID can be read from the GET /monitor/{id} response. Other script IDs should be irrelevant to you.
The content archive vs. content split is for historical reasons and may be simplified in the future.