PUTs to the API with a complete record you’ll get an error if you include computed fields. Since you get computed fields back like any other, the only way to find out which fields are computed is by either a) from the error messages when trying to update, excluding them one-by-one on the next requests, b) manually configuring them in the client.
For me, this is not a big deal, I get around it with the
PATCH verb, by maintaining a list of columns that have been updated. However, to lower the barrier of entry for API clients (
PUT is easier to support than
PATCH), you may want to consider just ignoring computed fields when updated through the API.
Alternatively, the imminent Metadata API changes may help with this as well…