# canvas\_logs

## Tables in canvas\_logs namespace

### web\_logs <a href="#dap_schemas.canvas_logs.web_logs" id="dap_schemas.canvas_logs.web_logs"></a>

Stores the Canvas web application server access/request logs.

Logs include all interactions made with your instance of Canvas, therefore some interactions are done by users that are not present in the `users` table (originated from another institution). Note: Logs older than the retention limit of 30 days are no longer available via DAP API.

**Properties:**

* **id** (UUID) - <mark style="color:purple;">**`primary key`**</mark> The unique identifier for a logged web request.
* **timestamp** (datetime) - Timestamp when the request was made in UTC.
* **user\_id** ([canvas.users](https://developerdocs.instructure.com/services/dap/dataset/dataset-namespaces/pages/zdvm4Hvd7IRbvpXEbjzE#dap_schemas.canvas.users) | None) - The unique ID of the user that made the request.
* **real\_user\_id** ([canvas.users](https://developerdocs.instructure.com/services/dap/dataset/dataset-namespaces/pages/zdvm4Hvd7IRbvpXEbjzE#dap_schemas.canvas.users) | None) - If the request was processed by one user masquerading as another, then this column contains the real user ID of the user.
* **course\_id** ([canvas.courses](https://developerdocs.instructure.com/services/dap/dataset/dataset-namespaces/pages/zdvm4Hvd7IRbvpXEbjzE#dap_schemas.canvas.courses) | None) - Course that owned the request.
* **quiz\_id** ([canvas.quizzes](https://developerdocs.instructure.com/services/dap/dataset/dataset-namespaces/pages/zdvm4Hvd7IRbvpXEbjzE#dap_schemas.canvas.quizzes) | None) - Identifies the quiz if the request is for a quiz.
* **discussion\_id** ([canvas.discussion\_topics](https://developerdocs.instructure.com/services/dap/dataset/dataset-namespaces/pages/zdvm4Hvd7IRbvpXEbjzE#dap_schemas.canvas.discussion_topics) | None) - Identifies the discussion if the request is for a discussion.
* **conversation\_id** ([canvas.conversations](https://developerdocs.instructure.com/services/dap/dataset/dataset-namespaces/pages/zdvm4Hvd7IRbvpXEbjzE#dap_schemas.canvas.conversations) | None) - Identifies the conversation if the request is for a conversation.
* **assignment\_id** ([canvas.assignments](https://developerdocs.instructure.com/services/dap/dataset/dataset-namespaces/pages/zdvm4Hvd7IRbvpXEbjzE#dap_schemas.canvas.assignments) | None) - Identifies the assignment if the request is for an assignment.
* **url** (str) - The path and the query string components of the requested URL.
* **http\_method** ([HTTPMethod](#dap_schemas.canvas_logs.httpmethod)) - HTTP method/verb (GET, POST, PUT, etc.) that was sent with the request.
* **http\_status** ([HTTPStatus](#dap_schemas.canvas_logs.httpstatus)) - HTTP status code of the request (e.g. 200 OK).
* **http\_version** ([HTTPVersion](#dap_schemas.canvas_logs.httpversion)) - HTTP protocol version (e.g. HTTP/2.0).
* **remote\_ip** (IPv4Address | IPv6Address) - IP (IPv4 or IPv6) address that was recorded for the request.
* **interaction\_micros** (int32) - Total time required to service the request in microseconds.
* **web\_application\_controller** ([Controller](#dap_schemas.canvas_logs.controller) | str | None) - The controller that the Canvas web application used to service this request.
* **web\_application\_action** ([Action](#dap_schemas.canvas_logs.action) | str | None) - The action in the Canvas web application used to service this request.
* **web\_application\_context\_type** ([ContextType](#dap_schemas.canvas_logs.contexttype) | None) - Containing object type that the Canvas web application used to service this request.
* **web\_application\_context\_id** (int64 | None) - Containing object ID that the Canvas web application used to service this request.
* **session\_id** (UUID | None) - ID of the user's session where this request was made.
* **developer\_key\_id** ([canvas.developer\_keys](https://developerdocs.instructure.com/services/dap/dataset/dataset-namespaces/pages/zdvm4Hvd7IRbvpXEbjzE#dap_schemas.canvas.developer_keys) | None) - ID of the developer who accessed this resource if the request was made by a developer.
* **participated** (bool) - Shows whether the HTTP request is considered a participation for the user.
* **user\_agent** (None | Literal\[`'__dap_oversized_truncated__'`] | Annotated\[str, MaxLength(255)]) - The user agent string sent by the HTTP client.

## Types in canvas\_logs namespace

### Action <a href="#dap_schemas.canvas_logs.action" id="dap_schemas.canvas_logs.action"></a>

Web application actions.

**Members:**

* **unspecified** = `'__dap_unspecified__'`

### ContextType <a href="#dap_schemas.canvas_logs.contexttype" id="dap_schemas.canvas_logs.contexttype"></a>

Web application context types.

**Members:**

* **account** = `'Account'`
* **assessment\_question** = `'AssessmentQuestion'`
* **assignment** = `'Assignment'`
* **content\_migration** = `'ContentMigration'`
* **course** = `'Course'`
* **course\_section** = `'CourseSection'`
* **group** = `'Group'`
* **quiz\_submission** = `'Quizzes::QuizSubmission'`
* **sis\_batch** = `'SisBatch'`
* **student\_enrollment** = `'StudentEnrollment'`
* **user** = `'User'`
* **user\_profile** = `'UserProfile'`

### Controller <a href="#dap_schemas.canvas_logs.controller" id="dap_schemas.canvas_logs.controller"></a>

Web application controllers.

**Members:**

* **unspecified** = `'__dap_unspecified__'`

### HTTPMethod <a href="#dap_schemas.canvas_logs.httpmethod" id="dap_schemas.canvas_logs.httpmethod"></a>

HTTP methods used in the Canvas API.

**Members:**

* **CONNECT** = `'CONNECT'`
* **DELETE** = `'DELETE'`
* **GET** = `'GET'`
* **HEAD** = `'HEAD'`
* **OPTIONS** = `'OPTIONS'`
* **PATCH** = `'PATCH'`
* **POST** = `'POST'`
* **PUT** = `'PUT'`
* **TRACE** = `'TRACE'`
* **SEARCH** = `'SEARCH'`
* **PROPFIND** = `'PROPFIND'`
* **LOCK** = `'LOCK'`
* **REPORT** = `'REPORT'`
* **PURGE** = `'PURGE'`
* **MKCOL** = `'MKCOL'`
* **PROPPATCH** = `'PROPPATCH'`
* **CHECKOUT** = `'CHECKOUT'`
* **UNLOCK** = `'UNLOCK'`
* **MERGE** = `'MERGE'`
* **NOTIFY** = `'NOTIFY'`
* **MOVE** = `'MOVE'`
* **COPY** = `'COPY'`
* **UNSUBSCRIBE** = `'UNSUBSCRIBE'`
* **MKACTIVITY** = `'MKACTIVITY'`
* **SUBSCRIBE** = `'SUBSCRIBE'`
* **ACL** = `'ACL'`

### HTTPStatus <a href="#dap_schemas.canvas_logs.httpstatus" id="dap_schemas.canvas_logs.httpstatus"></a>

**Members:**

* **CONTINUE** = `100`
* **SWITCHING\_PROTOCOLS** = `101`
* **PROCESSING** = `102`
* **EARLY\_HINTS** = `103`
* **OK** = `200`
* **CREATED** = `201`
* **ACCEPTED** = `202`
* **NON\_AUTHORITATIVE\_INFORMATION** = `203`
* **NO\_CONTENT** = `204`
* **RESET\_CONTENT** = `205`
* **PARTIAL\_CONTENT** = `206`
* **MULTI\_STATUS** = `207`
* **ALREADY\_REPORTED** = `208`
* **IM\_USED** = `226`
* **MULTIPLE\_CHOICES** = `300`
* **MOVED\_PERMANENTLY** = `301`
* **FOUND** = `302`
* **SEE\_OTHER** = `303`
* **NOT\_MODIFIED** = `304`
* **USE\_PROXY** = `305`
* **TEMPORARY\_REDIRECT** = `307`
* **PERMANENT\_REDIRECT** = `308`
* **BAD\_REQUEST** = `400`
* **UNAUTHORIZED** = `401`
* **PAYMENT\_REQUIRED** = `402`
* **FORBIDDEN** = `403`
* **NOT\_FOUND** = `404`
* **METHOD\_NOT\_ALLOWED** = `405`
* **NOT\_ACCEPTABLE** = `406`
* **PROXY\_AUTHENTICATION\_REQUIRED** = `407`
* **REQUEST\_TIMEOUT** = `408`
* **CONFLICT** = `409`
* **GONE** = `410`
* **LENGTH\_REQUIRED** = `411`
* **PRECONDITION\_FAILED** = `412`
* **REQUEST\_ENTITY\_TOO\_LARGE** = `413`
* **REQUEST\_URI\_TOO\_LONG** = `414`
* **UNSUPPORTED\_MEDIA\_TYPE** = `415`
* **REQUESTED\_RANGE\_NOT\_SATISFIABLE** = `416`
* **EXPECTATION\_FAILED** = `417`
* **IM\_A\_TEAPOT** = `418`
* **MISDIRECTED\_REQUEST** = `421`
* **UNPROCESSABLE\_ENTITY** = `422`
* **LOCKED** = `423`
* **FAILED\_DEPENDENCY** = `424`
* **TOO\_EARLY** = `425`
* **UPGRADE\_REQUIRED** = `426`
* **PRECONDITION\_REQUIRED** = `428`
* **TOO\_MANY\_REQUESTS** = `429`
* **REQUEST\_HEADER\_FIELDS\_TOO\_LARGE** = `431`
* **UNAVAILABLE\_FOR\_LEGAL\_REASONS** = `451`
* **INTERNAL\_SERVER\_ERROR** = `500`
* **NOT\_IMPLEMENTED** = `501`
* **BAD\_GATEWAY** = `502`
* **SERVICE\_UNAVAILABLE** = `503`
* **GATEWAY\_TIMEOUT** = `504`
* **HTTP\_VERSION\_NOT\_SUPPORTED** = `505`
* **VARIANT\_ALSO\_NEGOTIATES** = `506`
* **INSUFFICIENT\_STORAGE** = `507`
* **LOOP\_DETECTED** = `508`
* **NOT\_EXTENDED** = `510`
* **NETWORK\_AUTHENTICATION\_REQUIRED** = `511`

### HTTPVersion <a href="#dap_schemas.canvas_logs.httpversion" id="dap_schemas.canvas_logs.httpversion"></a>

HTTP protocol version.

**Members:**

* **http09** = `'0.9'`
* **http10** = `'1.0'`
* **http11** = `'1.1'`
* **http20** = `'2.0'`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developerdocs.instructure.com/services/dap/dataset/dataset-namespaces/dataset-canvaslogs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
