Every JSON API call currently works without a contract. In theory it should have one, but in reality it doesn't unless the server (hopefully) validates. Either can change at any time without informing each other.
WSDL based APIs on the other hand have clearly defined contracts at both ends but there's more overhead involved.