I am creating a hundred or more fields on the account object. I was doing this to load test the account. Problem is none of those fields have their field level security set and I can't find a way to do this via the metadata api. Kind of defeats the purpose of using the api if I ultimately have to manually set each fields security level?
If you can fetch profiles using metadata api then you will only need to add required permission in those profiles and deploy them back.
It means, Profile object contains field permissions with other permission you only need to get those profile and update them.