ApiRequest
The API request log: every write and every failed request made with your keys and sessions (successful reads aren't logged), newest first.
page = noclick.ApiRequest.list_page(method="POST", status="4xx", key="nk_live_ab12")class ApiRequestOne logged request. actor is key, session or owner;
route is the template (/v1/).
| id | str | |
| actor | str | None | |
| key_id | str | None | |
| user_id | str | None | |
| session_id | str | None | |
| method | str | |
| route | str | |
| path_params | dict[str, Any] | |
| status | int | None | |
| error_type | str | None | |
| duration_ms | int | None | |
| idempotency_replayed | bool | |
| operation_id | str | None | |
| request_id | str | None | |
| created_at | Any | |
| raw | dict[str, Any] | The response JSON exactly as the API sent it. |
listclassmethodasync
noclick.ApiRequest.list(
*, method=None, status=None, error_type=None, key=None, route=None, since=None,
until=None, limit=None, user_filter=None, user=..., client=None
) -> list[ApiRequest]Every matching request (or the first limit). status is a class
("4xx") or a code; key a key id or prefix.
NoneNoneNoneNoneNoneNoneNoneReturn at most this many.
None)Which users a read covers: noclick.ALL_USERS, noclick.NO_USER, a User, or your id for one. It filters without acting as that user.
None)Who the call acts for. Defaults to the user set by noclick.as_user (none: the account itself).
The client to send with; defaults to the module client built from NOCLICK_API_KEY.
None)Every matching request, newest first, fetched page by page.
See the writes one key had refused:
for request in noclick.ApiRequest.list(method="POST", status="4xx", key="nk_live_ab12", limit=50):
print(request.created_at, request.route, request.status, request.error_type)Or every request a spend cap turned away:
capped = noclick.ApiRequest.list(error_type="spend_cap_exceeded", limit=20)route takes the template, and status a single code:
limited = noclick.ApiRequest.list(route="/v1/agents/{agent_id}/messages", status=429)list_pageclassmethodasync
noclick.ApiRequest.list_page(
*, cursor=None, limit=None, method=None, status=None, error_type=None, key=None,
route=None, since=None, until=None, user_filter=None, user=..., client=None
) -> PageOne page of matching requests; pass next_cursor back as cursor.
The next_cursor of the page before; omit it for the first page.
None)Return at most this many.
None)NoneNoneNoneNoneNoneNoneNoneWhich users a read covers: noclick.ALL_USERS, noclick.NO_USER, a User, or your id for one. It filters without acting as that user.
None)Who the call acts for. Defaults to the user set by noclick.as_user (none: the account itself).
The client to send with; defaults to the module client built from NOCLICK_API_KEY.
None)A page whose data holds up to limit requests (at most 200) and whose next_cursor
is None on the last page.
page = noclick.ApiRequest.list_page(status="5xx", limit=200)
while True:
for request in page.data:
print(request.request_id, request.route, request.status)
if page.next_cursor is None:
break
page = noclick.ApiRequest.list_page(status="5xx", limit=200, cursor=page.next_cursor)