Natero provides some support for setting dimensions via the JS API via the identifyAccount call (in the details object). However, it is much less flexible.

For the JS API, since we manually setup workflows to process that data, every hour we need to know which dimensions and their types prior to seeing them in the data. If those dimensions change, you must notify us so that we can change the workflows. 

For the Account API, it is completely under your control, and the results are available immediately. Both calls are REST HTTP calls. 

The JS API version is best if you are sending these events client side and are using either Segment or our Natero JS library. Otherwise we recommend using the Account API.