---
title: "List your unexpired reports"
method: GET
path: "/reports"
tags: ["Reports"]
---

# List your unexpired reports

`GET /reports`

## Request

- Base URL: `https://tasg.app/api/v1`
- URL: `https://tasg.app/api/v1/reports`
- Auth: HTTP bearer

Newest first, at most 50. Only the requester can see or download a report: it was built with their visibility.

## Response `200`

Your reports.

- object
  - `reports` ReportFile[], required
    - `id` string, uuid, required
    - `filename` string, required
    - `mime_type` string, required
    - `file_size` integer, required: Bytes.
    - `row_count` integer, required
    - `template` 'task_list' | 'status_report' | 'workload', required
    - `format` 'xlsx' | 'csv' | 'pdf' | 'md', required
    - `delivered_to` 'chat' | 'task' | 'email', required
    - `url` string, required: Relative download path; send your bearer token.
    - `download_url` string, nullable, required: Absolute link that works WITHOUT a bearer token for 24 hours (signed, bound to this file). Null when the instance cannot sign links.
    - `created_at` string, date-time, required
    - `expires_at` string, date-time, required: Files are deleted after 30 days.
    - `attachment` object: Present when delivered to a task.
      - `id` string, uuid, required
      - `task_id` string, uuid, required
      - `task_url` string, nullable
    - `email` object: Present when delivery was email; `note` says why it was not sent.
      - `sent` boolean, required
      - `to` string
      - `note` string

## Other responses

- `401`: Missing, invalid, expired or revoked credentials.
- `403`: Authenticated, but not allowed: not a member, insufficient project role or the API token lacks the required scope.
- `429`: Rate limited. Back off and retry after the window in the `RateLimit-*` headers.

---

[API](https://skmtc.dev/tasg/apis/tasg-api.md) · [All operations](https://skmtc.dev/tasg/apis/tasg-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tasg/apis/tasg-api/revisions/cd2a1dbaf5cf?raw)
