def post(self, benchmark_all=False):
        """
        Run benchmark

        Arguments
        ---------
        benchmark_all: boolean
            Run full benchmark (--benchmark-all)

        Returns
        -------
        result: JSON
            Message, HTTP code
        """
        try:
            marsh_schema = parse_json_schema().load(request.json)
            args = marsh_schema
        except ValidationError as errors:
            logger.debug('Validation error: {}'.format(errors))
            return errors.messages, 500
        logger.debug('Queuing benchmark job')
        job_id = uuid.uuid4().hex
        add_jobid(job_id)
        q = self.crack_q.q_connect()
        hc_args = {}
        if 'benchmark_all' in args:
            hc_args['benchmark_all'] = args['benchmark_all']
        hc_args['benchmark'] = True
        hc_args['name'] = 'Benchmark'
        hc_args['session'] = job_id
        try:
            q_args = {
                'job_id': job_id,
                'kwargs': hc_args,
                }
            self.crack_q.q_add(q, q_args)
            logger.debug('API Job {} added to queue'.format(job_id))
            logger.debug('Job Details: {}'.format(q_args))
            job = self.q.fetch_job(job_id)
            job.meta['email_count'] = 0
            job.meta['notify'] = True
            if current_user.email:
                if email_check(current_user.email):
                    job.meta['email'] = str(current_user.email)
                    job.meta['last_seen'] = str(current_user.last_seen)
                elif email_check(current_user.username):
                    job.meta['email'] = current_user.username
                    job.meta['last_seen'] = str(current_user.last_seen)
            job.meta['CrackQ State'] = 'Run/Restored'
            job.meta['Speed Array'] = []
            job.save_meta()
            return job_id, 202
        except Exception as err:
            logger.error('Error running benchmark: {}'.format(err))
        return {'msg': 'Invalid Request'}, 500

        Run benchmark

        Arguments
        ---------
        benchmark_all: boolean
            Run full benchmark (--benchmark-all)

        Returns
        -------
        result: JSON
            Message, HTTP code
        
crackq/cq_api.py