code: def check_api_error(api_response):
      print(api_response)
      
      if type(api_response) == dict and 'code' in api_response and api_response['code'] <> 200:
              print("Server response code: %s" % api_response['code'])
              print("Server response: %s" % api_response)
              raise exceptions.HTTPError('Unexpected response', response=api_response)
      if type(api_response) == dict and (api_response.get('status') == 'failed'):
          if 'ProgrammingError' in api_response.get('exception_cls'):
              raise DatabaseError(message='PyBossa database error.',
                                  error=api_response)
          if ('DBIntegrityError' in api_response.get('exception_cls') and
              'project' in api_response.get('target')):
              msg = 'PyBossa project already exists.'
              raise ProjectAlreadyExists(message=msg, error=api_response)
          if 'project' in api_response.get('target'):
              raise ProjectNotFound(message='PyBossa Project not found',
                                    error=api_response)
          if 'task' in api_response.get('target'):
              raise TaskNotFound(message='PyBossa Task not found',
                                 error=api_response)
          else:
              print("Server response: %s" % api_response)
              raise exceptions.HTTPError('Unexpected response', response=api_response)
docs: Check if returned API response contains an error.