> For the complete documentation index, see [llms.txt](https://docs.ibexa.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ibexa.ai/developers/rest-api/reports/list-reports.md).

# List Reports

List reports in the caller's organisation, optionally filtered.

Supports pagination via `skip` and `limit`, and filtering by `search`, `agent_id`, `status`, and `daterange`. Filters compose: when multiple are supplied, the result set is the intersection.

```json
{"openapi":"3.1.0","info":{"title":"Ibexa Agentic Marketing Platform","version":"0.1.0"},"security":[{"OAuth2PasswordBearer":[]}],"components":{"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/api/v1/login/access-token"}}}},"schemas":{"ReportStatus":{"type":"string","enum":["DRAFT","IN_REVIEW","PUBLISHED"],"title":"ReportStatus","description":"Enum representing the status of a report.\n\nState machine with four operations:\n- submit_for_review: DRAFT -> IN_REVIEW\n- publish: IN_REVIEW -> PUBLISHED\n- unpublish: PUBLISHED -> IN_REVIEW\n- return_to_draft: IN_REVIEW -> DRAFT, or PUBLISHED -> DRAFT\n\nStatus flow: DRAFT <-> IN_REVIEW <-> PUBLISHED, with a direct\nPUBLISHED -> DRAFT shortcut via return_to_draft.\n\n- DRAFT: Report is being authored and not yet submitted for review\n- IN_REVIEW: Report is under review before publication\n- PUBLISHED: Report is published"},"ReportListResponseSchema":{"properties":{"reports":{"items":{"$ref":"#/components/schemas/ReportListItemSchema"},"type":"array","title":"Reports"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["reports","total_count"],"title":"ReportListResponseSchema","description":"Response schema for the paginated report list endpoint."},"ReportListItemSchema":{"properties":{"id":{"type":"integer","title":"Id"},"organisation_id":{"type":"integer","title":"Organisation Id"},"title":{"type":"string","title":"Title"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"status":{"$ref":"#/components/schemas/ReportStatus"},"owner_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Owner Id"},"agent_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Id"},"owner":{"anyOf":[{"$ref":"#/components/schemas/ReportUserSchema"},{"type":"null"}]},"agent":{"anyOf":[{"$ref":"#/components/schemas/ReportAgentSchema"},{"type":"null"}]},"execution_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Execution Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","organisation_id","title","summary","status","owner_id","agent_id","owner","agent","execution_id","created_at","updated_at"],"title":"ReportListItemSchema","description":"Response schema for a report in a list."},"ReportUserSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"}},"type":"object","required":["id","email","full_name"],"title":"ReportUserSchema","description":"Basic user info embedded in report list responses."},"ReportAgentSchema":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"identifier":{"type":"string","title":"Identifier"},"is_enabled":{"type":"boolean","title":"Is Enabled"}},"type":"object","required":["id","name","identifier","is_enabled"],"title":"ReportAgentSchema","description":"Basic agent info embedded in report list responses."}}},"paths":{"/api/v1/reports/":{"get":{"tags":["reports","public"],"summary":"List Reports","description":"List reports in the caller's organisation, optionally filtered.\n\nSupports pagination via `skip` and `limit`, and filtering by `search`,\n`agent_id`, `status`, and `daterange`. Filters compose: when multiple are\nsupplied, the result set is the intersection.","operationId":"reports-list_reports","parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"Case-insensitive substring match on title.","title":"Search"},"description":"Case-insensitive substring match on title."},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by agent ID.","title":"Agent Id"},"description":"Filter by agent ID."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ReportStatus"},{"type":"null"}],"description":"Filter by status.","title":"Status"},"description":"Filter by status."},{"name":"daterange","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date range as 'start,end' (ISO 8601 dates). Either part can be omitted, e.g. '2024-01-01,2024-12-31', '2024-01-01,' or ',2024-12-31'. A single date without a comma (e.g. '2024-01-01') is also accepted.","title":"Daterange"},"description":"Date range as 'start,end' (ISO 8601 dates). Either part can be omitted, e.g. '2024-01-01,2024-12-31', '2024-01-01,' or ',2024-12-31'. A single date without a comma (e.g. '2024-01-01') is also accepted."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportListResponseSchema"}}}},"401":{"description":"User not authenticated","content":{"application/json":{}}}}}}}}
```
