---
title: "Set the accommodation of the attempt's person on this quiz"
description: "Replaces the person's own accommodation on the quiz (a different opening or closing time, time limit or number of attempts), creating it when there is none. The body is the whole accommodation: a field left out or null falls back to the quiz's own setting. Open attempts of the person have their deadline recalculated, and the change is audited.\n\n### Quire permissions\n\nRequired capability: `quiz/manage`.\n\nCredential scopes: `quiz_attempts:write`.\n\nThe acting subject must also be allowed to perform this action in the organisation."
image: "https://docs.quirelms.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.quirelms.com/llms.txt
> Use this file to discover all available pages before exploring further.

Path: Quire API › quiz_attempts

`POST /quiz_attempts/{id}/actions/override`

Replaces the person's own accommodation on the quiz (a different opening or closing time, time limit or number of attempts), creating it when there is none. The body is the whole accommodation: a field left out or null falls back to the quiz's own setting. Open attempts of the person have their deadline recalculated, and the change is audited.

\### Quire permissions

Required capability: `quiz/manage`.

Credential scopes: `quiz_attempts:write`.

The acting subject must also be allowed to perform this action in the organisation.

## Authentication

Requires one of the following:

- `apiKey`, http, header `Authorization`, scopes: `quiz_attempts:write`
- `oauth2`, oauth2, scopes: `quiz_attempts:write`

## Path parameters

- `overrideQuizAttempt.path.id` (string, required)

## Header parameters

- `overrideQuizAttempt.header.Quire-Version` (string, optional) — The dated API revision to serve this request at. Omitted, the request is served at the revision the credential was issued against. The response echoes the revision actually applied.
  - format `date`
- `overrideQuizAttempt.header.Idempotency-Key` (string, optional) — A caller-chosen key making this request safe to retry. A replay of a completed request returns the recorded response with `Idempotency-Replayed: true`. Reusing a key for a different request is refused.
  - maxLength 255

## Request body

_Required._

- `overrideQuizAttempt.time_open` (any of, optional) — When this person may start. Null, or absent, leaves the quiz's own opening time.
  - any of: `string`, `null`
- `overrideQuizAttempt.time_close` (any of, optional) — When this person's access closes. Null, or absent, leaves the quiz's own closing time.
  - any of: `string`, `null`
- `overrideQuizAttempt.time_limit_seconds` (any of, optional) — This person's time limit. Null, or absent, leaves the quiz's own.
  - any of: `integer`, `null`
- `overrideQuizAttempt.attempts_allowed` (any of, optional) — The attempts this person may make. Null, or absent, leaves the quiz's own.
  - any of: `integer`, `null`
- `overrideQuizAttempt.priority` (integer, optional)
  - min -1000000; max 1000000

## Example request

```json
{
  "time_open": "2019-08-24T14:15:22Z",
  "time_close": "2019-08-24T14:15:22Z",
  "time_limit_seconds": 31536000,
  "attempts_allowed": 100,
  "priority": -1000000
}
```

## Code samples

### cURL

```curl
curl --request POST \
  --url https://your-organisation.quirelms.com/api/v1/quiz_attempts/string/actions/override \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "time_open": "2019-08-24T14:15:22Z",
  "time_close": "2019-08-24T14:15:22Z",
  "time_limit_seconds": 31536000,
  "attempts_allowed": 100,
  "priority": -1000000
}
'
```

### TypeScript

```typescript
const url = 'https://your-organisation.quirelms.com/api/v1/quiz_attempts/string/actions/override';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json', Authorization: 'Bearer <token>'},
  body: JSON.stringify({
    time_open: '2019-08-24T14:15:22Z',
    time_close: '2019-08-24T14:15:22Z',
    time_limit_seconds: 31536000,
    attempts_allowed: 100,
    priority: -1000000
  })
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://your-organisation.quirelms.com/api/v1/quiz_attempts/string/actions/override"

payload = {
    "time_open": "2019-08-24T14:15:22Z",
    "time_close": "2019-08-24T14:15:22Z",
    "time_limit_seconds": 31536000,
    "attempts_allowed": 100,
    "priority": -1000000
}
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer <token>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
```

## Responses

### 200

Success.

#### Example

```json
{
  "id": "string",
  "external_id": "string",
  "quiz_id": "string",
  "activity_id": "string",
  "course_id": "string",
  "user_id": "string",
  "attempt_number": -9007199254740991,
  "state": "inprogress",
  "time_start": "string",
  "time_due": "string",
  "time_finish": "string",
  "sum_marks": 0,
  "created_at": "string",
  "updated_at": "string"
}
```

- `overrideQuizAttempt.response.200.id` (string, required)
- `overrideQuizAttempt.response.200.external_id` (string | null, required)
- `overrideQuizAttempt.response.200.quiz_id` (string, required)
- `overrideQuizAttempt.response.200.activity_id` (string, required)
- `overrideQuizAttempt.response.200.course_id` (string, required)
- `overrideQuizAttempt.response.200.user_id` (string, required)
- `overrideQuizAttempt.response.200.attempt_number` (integer, required)
  - min -9007199254740991; max 9007199254740991
- `overrideQuizAttempt.response.200.state` (string, required)
  - one of `"inprogress"`, `"overdue"`, `"finished"`, `"abandoned"`
- `overrideQuizAttempt.response.200.time_start` (string, required) — RFC 3339 timestamp in UTC.
- `overrideQuizAttempt.response.200.time_due` (any of, required)
  - any of: `string`, `null`
- `overrideQuizAttempt.response.200.time_finish` (any of, required)
  - any of: `string`, `null`
- `overrideQuizAttempt.response.200.sum_marks` (number | null, required)
- `overrideQuizAttempt.response.200.created_at` (string, required) — RFC 3339 timestamp in UTC.
- `overrideQuizAttempt.response.200.updated_at` (string, required) — RFC 3339 timestamp in UTC.

### 401

The credential is missing, malformed, expired or revoked.

#### Example

```json
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "code": "string",
  "category": "validation",
  "detail": "string",
  "request_id": "string",
  "errors": [
    {
      "path": "string",
      "code": "string",
      "detail": "string"
    }
  ],
  "retry_after": 0,
  "docs_url": "http://example.com"
}
```

- `overrideQuizAttempt.response.401.type` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.401.title` (string, required)
- `overrideQuizAttempt.response.401.status` (integer, required)
- `overrideQuizAttempt.response.401.code` (string, required)
- `overrideQuizAttempt.response.401.category` (string, required)
  - one of `"validation"`, `"authentication"`, `"authorization"`, `"not_found"`, `"conflict"`, `"precondition"`, `"quota"`, `"rate_limit"`, `"upstream"`, `"internal"`
- `overrideQuizAttempt.response.401.detail` (string, required)
- `overrideQuizAttempt.response.401.request_id` (string, required)
- `overrideQuizAttempt.response.401.docs_url` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.401.errors` (array<object>, optional)
  - `overrideQuizAttempt.response.401.errors.path` (string, required) — RFC 6901 JSON Pointer into the request body.
  - `overrideQuizAttempt.response.401.errors.code` (string, required)
  - `overrideQuizAttempt.response.401.errors.detail` (string, required)
- `overrideQuizAttempt.response.401.retry_after` (integer | null, optional)

### 403

The credential lacks the scope this operation requires, or the acting subject lacks the capability.

#### Example

```json
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "code": "string",
  "category": "validation",
  "detail": "string",
  "request_id": "string",
  "errors": [
    {
      "path": "string",
      "code": "string",
      "detail": "string"
    }
  ],
  "retry_after": 0,
  "docs_url": "http://example.com"
}
```

- `overrideQuizAttempt.response.403.type` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.403.title` (string, required)
- `overrideQuizAttempt.response.403.status` (integer, required)
- `overrideQuizAttempt.response.403.code` (string, required)
- `overrideQuizAttempt.response.403.category` (string, required)
  - one of `"validation"`, `"authentication"`, `"authorization"`, `"not_found"`, `"conflict"`, `"precondition"`, `"quota"`, `"rate_limit"`, `"upstream"`, `"internal"`
- `overrideQuizAttempt.response.403.detail` (string, required)
- `overrideQuizAttempt.response.403.request_id` (string, required)
- `overrideQuizAttempt.response.403.docs_url` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.403.errors` (array<object>, optional)
  - `overrideQuizAttempt.response.403.errors.path` (string, required) — RFC 6901 JSON Pointer into the request body.
  - `overrideQuizAttempt.response.403.errors.code` (string, required)
  - `overrideQuizAttempt.response.403.errors.detail` (string, required)
- `overrideQuizAttempt.response.403.retry_after` (integer | null, optional)

### 404

No such resource, or none this credential is permitted to know about.

#### Example

```json
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "code": "string",
  "category": "validation",
  "detail": "string",
  "request_id": "string",
  "errors": [
    {
      "path": "string",
      "code": "string",
      "detail": "string"
    }
  ],
  "retry_after": 0,
  "docs_url": "http://example.com"
}
```

- `overrideQuizAttempt.response.404.type` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.404.title` (string, required)
- `overrideQuizAttempt.response.404.status` (integer, required)
- `overrideQuizAttempt.response.404.code` (string, required)
- `overrideQuizAttempt.response.404.category` (string, required)
  - one of `"validation"`, `"authentication"`, `"authorization"`, `"not_found"`, `"conflict"`, `"precondition"`, `"quota"`, `"rate_limit"`, `"upstream"`, `"internal"`
- `overrideQuizAttempt.response.404.detail` (string, required)
- `overrideQuizAttempt.response.404.request_id` (string, required)
- `overrideQuizAttempt.response.404.docs_url` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.404.errors` (array<object>, optional)
  - `overrideQuizAttempt.response.404.errors.path` (string, required) — RFC 6901 JSON Pointer into the request body.
  - `overrideQuizAttempt.response.404.errors.code` (string, required)
  - `overrideQuizAttempt.response.404.errors.detail` (string, required)
- `overrideQuizAttempt.response.404.retry_after` (integer | null, optional)

### 409

The request conflicts with the current state, with a previous use of the same idempotency key, or with a concurrent write.

#### Example

```json
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "code": "string",
  "category": "validation",
  "detail": "string",
  "request_id": "string",
  "errors": [
    {
      "path": "string",
      "code": "string",
      "detail": "string"
    }
  ],
  "retry_after": 0,
  "docs_url": "http://example.com"
}
```

- `overrideQuizAttempt.response.409.type` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.409.title` (string, required)
- `overrideQuizAttempt.response.409.status` (integer, required)
- `overrideQuizAttempt.response.409.code` (string, required)
- `overrideQuizAttempt.response.409.category` (string, required)
  - one of `"validation"`, `"authentication"`, `"authorization"`, `"not_found"`, `"conflict"`, `"precondition"`, `"quota"`, `"rate_limit"`, `"upstream"`, `"internal"`
- `overrideQuizAttempt.response.409.detail` (string, required)
- `overrideQuizAttempt.response.409.request_id` (string, required)
- `overrideQuizAttempt.response.409.docs_url` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.409.errors` (array<object>, optional)
  - `overrideQuizAttempt.response.409.errors.path` (string, required) — RFC 6901 JSON Pointer into the request body.
  - `overrideQuizAttempt.response.409.errors.code` (string, required)
  - `overrideQuizAttempt.response.409.errors.detail` (string, required)
- `overrideQuizAttempt.response.409.retry_after` (integer | null, optional)

### 422

The request was understood and its content is not valid. `errors` names each field.

#### Example

```json
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "code": "string",
  "category": "validation",
  "detail": "string",
  "request_id": "string",
  "errors": [
    {
      "path": "string",
      "code": "string",
      "detail": "string"
    }
  ],
  "retry_after": 0,
  "docs_url": "http://example.com"
}
```

- `overrideQuizAttempt.response.422.type` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.422.title` (string, required)
- `overrideQuizAttempt.response.422.status` (integer, required)
- `overrideQuizAttempt.response.422.code` (string, required)
- `overrideQuizAttempt.response.422.category` (string, required)
  - one of `"validation"`, `"authentication"`, `"authorization"`, `"not_found"`, `"conflict"`, `"precondition"`, `"quota"`, `"rate_limit"`, `"upstream"`, `"internal"`
- `overrideQuizAttempt.response.422.detail` (string, required)
- `overrideQuizAttempt.response.422.request_id` (string, required)
- `overrideQuizAttempt.response.422.docs_url` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.422.errors` (array<object>, optional)
  - `overrideQuizAttempt.response.422.errors.path` (string, required) — RFC 6901 JSON Pointer into the request body.
  - `overrideQuizAttempt.response.422.errors.code` (string, required)
  - `overrideQuizAttempt.response.422.errors.detail` (string, required)
- `overrideQuizAttempt.response.422.retry_after` (integer | null, optional)

### 429

A rate limit or a concurrency cap was reached. `Retry-After` says when to try again.

#### Example

```json
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "code": "string",
  "category": "validation",
  "detail": "string",
  "request_id": "string",
  "errors": [
    {
      "path": "string",
      "code": "string",
      "detail": "string"
    }
  ],
  "retry_after": 0,
  "docs_url": "http://example.com"
}
```

- `overrideQuizAttempt.response.429.type` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.429.title` (string, required)
- `overrideQuizAttempt.response.429.status` (integer, required)
- `overrideQuizAttempt.response.429.code` (string, required)
- `overrideQuizAttempt.response.429.category` (string, required)
  - one of `"validation"`, `"authentication"`, `"authorization"`, `"not_found"`, `"conflict"`, `"precondition"`, `"quota"`, `"rate_limit"`, `"upstream"`, `"internal"`
- `overrideQuizAttempt.response.429.detail` (string, required)
- `overrideQuizAttempt.response.429.request_id` (string, required)
- `overrideQuizAttempt.response.429.docs_url` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.429.errors` (array<object>, optional)
  - `overrideQuizAttempt.response.429.errors.path` (string, required) — RFC 6901 JSON Pointer into the request body.
  - `overrideQuizAttempt.response.429.errors.code` (string, required)
  - `overrideQuizAttempt.response.429.errors.detail` (string, required)
- `overrideQuizAttempt.response.429.retry_after` (integer | null, optional)

### 500

Something failed at our end. Quote `request_id` when reporting it.

#### Example

```json
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "code": "string",
  "category": "validation",
  "detail": "string",
  "request_id": "string",
  "errors": [
    {
      "path": "string",
      "code": "string",
      "detail": "string"
    }
  ],
  "retry_after": 0,
  "docs_url": "http://example.com"
}
```

- `overrideQuizAttempt.response.500.type` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.500.title` (string, required)
- `overrideQuizAttempt.response.500.status` (integer, required)
- `overrideQuizAttempt.response.500.code` (string, required)
- `overrideQuizAttempt.response.500.category` (string, required)
  - one of `"validation"`, `"authentication"`, `"authorization"`, `"not_found"`, `"conflict"`, `"precondition"`, `"quota"`, `"rate_limit"`, `"upstream"`, `"internal"`
- `overrideQuizAttempt.response.500.detail` (string, required)
- `overrideQuizAttempt.response.500.request_id` (string, required)
- `overrideQuizAttempt.response.500.docs_url` (string, required)
  - format `uri`
- `overrideQuizAttempt.response.500.errors` (array<object>, optional)
  - `overrideQuizAttempt.response.500.errors.path` (string, required) — RFC 6901 JSON Pointer into the request body.
  - `overrideQuizAttempt.response.500.errors.code` (string, required)
  - `overrideQuizAttempt.response.500.errors.detail` (string, required)
- `overrideQuizAttempt.response.500.retry_after` (integer | null, optional)


Source: https://docs.quirelms.com/api/quiz_attempts/overrideQuizAttempt/index.md
