All response entities are JSON.

Response statuses:

Status codeStatus Message
200 OKThe operation succeeded.
201 CreatedThe operation succeeded and resulted in a new handle or new handle values being created.
400 Bad RequestReturned for a incorrectly formatted or otherwise invalid request.
Also returned for a request for a handle for which a server is not responsible.
401 UnauthorizedThe operation requires an authorized caller, but the call in not authenticated.
403 ForbiddenThe caller is authenticated but not authorized to perform the operation.
404 Not FoundThe handle in question does not exist.
409 ConflictA request to PUT a handle or handle values specified not to overwrite, but the handle or handle
values already exist.
500 Internal Server ErrorSomething unexpected has gone wrong on the server.

Many response entities include a "responseCode" property which is the Handle protocol response code. Some common response codes and the corresponding HTTP status codes are:

Status codeStatus Message
1Success (200 OK or 201 Created)
2An unexpected error on the server (500 Internal Server Error)
100Handle not found (404 Not Found)
101Handle already exists (409 Conflict)
102Invalid handle (400 Bad Request)
200Values not found (in resolution, 200 OK; otherwise 400 Bad Request)
201Value already exists (409 Conflict)
202Invalid value (400 Bad Request)
301Server not responsible for handle (400 Bad Request)
402Authentication needed (401 Unauthorized)
40xOther authentication errors (403 Forbidden)

The bulk of request and response entities are JSON representations of handle values. The syntax for this is described at the end of this document.