Skip to content

Error responses

Errors on /api/v1/* share one body shape, with the meaning carried by the HTTP status code:

json
{
	"message": "Bad Request",
	"errors": [
		{
			"field": "name",
			"message": "The name field is required"
		}
	]
}

Clients should branch on the status, not on message:

StatusMeaning
400Malformed request that carries no more specific status
401Token missing, expired or revoked — reconnect rather than retry
403Authenticated, but the resource belongs to someone else
404No such collection or link
422Validation failed; errors lists the offending fields
429Rate limit exceeded — see Rate limiting
500Unexpected server error

Released under the GPLv3 License.