Each call uses the "action" header

This API uses a unified “action” HTTP header that specifies which action to perform on the object name specified in the Request Path.

This header may include a variety of “fields” and acceptable HTTP methods include GET, POST, or PUT depending on the operation.

The Edge network can proxy all of the different methods currently used by various clients. (This includes GET, PUT, POST and DELETE.) To keep the API simple, the “action” header is authoritative. If you want to use action-specific HTTP methods, the Edge network can convert methods like DELETE and others to POST and include an “action” header.

Action header "version" and authentication

The header itself includes a version number and any other arguments the operation requires. The version (which at present is always “1”) identifies the protocol, which eliminates backward compatibility concerns. Any request with the “action” HTTP header is treated as an API request and is authenticated with a shared key authentication scheme. If this authentication fails, the request is denied with an HTTP 403 error.

Action header “field” syntax: query string encoding

Action headers can contain required and optional “fields.” Each field is separated by an ampersand (“&”) and its contents must be input using standard “query string encoding” (URL encoding). For example, if the upload action also included a field entitled target which requires the variable, /files/new file-1.txt, it would be input as follows:

version=1&action=upload&target=%2Ffiles%2Fnew%20file-1.txt
Note: Query string encoding also supports the use of a plus sign (“ + ”) to designate a whitespace.