List fencing bouts
const url = 'http://localhost:8000/api/bouts/';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url http://localhost:8000/api/bouts/ \ --header 'Authorization: Bearer <token>'The team’s bouts, newest first (at most 200). ?client=<uuid> narrows to one fencer.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Client UUID.
Responses
Section titled “Responses”object
Examples
[ { "id": "6d0f3c2a-1b4e-4c8a-9f21-7e5d3a9b0c11", "client": null, "name": "Pool vs Smith", "weapon": "foil", "analysed_at": null, "created_at": "2026-10-26T10:00:00Z" }]object
Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).
Example generated
{ "detail": "example"}object
Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).
Example generated
{ "detail": "example"}