As far as I know, the appcfg service API is not documented anywhere. But you can fairly easy reengineer it by reading the client's code [1]. I've done that for implementing TyphoonAE's appcfg service that allows for uploading your app to TyphoonAE by using the original appcfg.py script from the SDK.
The appcfg service basically provides RPC-like web hooks for different tasks (phases) during the upload process. See some of the end-point URLs here [2]. For instance, let's take a look at the IndexDefinitionUpload class [3] of the original appcfg.py script. It implements the DoUpload method which actually makes a POST request to /api/datastore/index/add of the configured appcfg server while the payload contains the actual index definition as YAML. In this context, you might also want to have a look at the AbstractRpcServer [4].