The Trade Me API is constantly evolving, but provided you follow some simple rules you should not be impacted by the vast majority of changes.
Note: these rules apply to data that the API returns back to the client. It is the responsibility of the API to be backwards compatible with data that the client sends to the API.
Don't assume that fields will always exist. Instead, assume that fields that don't exist are the default value for the type. For example, missing number fields should be assumed to be "0", missing text fields should be "" (or null) and missing boolean fields should be assumed to be "false".
Don't assume any particular field ordering. The order that fields are returned in is not significant in the API. The ordering may change however, so your code shouldn't rely on any particular ordering.
Don't make any assumptions about fields you aren't using. By ignoring fields you aren't using, you isolate yourself from changes to those fields. For example, your code should continue to work if a field that you are not using changes from a string to a boolean.
Don't assume new fields won't be added. We add new fields to the API all the time.
Don't assume new enumeration values won't be added. We don't just add new fields; sometimes we add new enumeration values as well.
Don't rely on bugs. Occasionally you may have to work around bugs in the API. If you do have to do this, you should ensure that your code continues to work if and when the bug is fixed.
Breaking Changes. Sometimes we are forced to make backwards incompatible changes. In cases where we think this will impact clients we will post it under Upcoming Changes, and notify via email.