---
title: "Export 90 days of component status history as CSV"
method: GET
path: "/v1/stacks/{stack_id}/export/component-history"
tags: ["Stacks"]
---

# Export 90 days of component status history as CSV

`GET /v1/stacks/{stack_id}/export/component-history`

## Request

- Base URL: `https://statusstack.com/api`
- URL: `https://statusstack.com/api/v1/stacks/{stack_id}/export/component-history`
- Auth: HTTP bearer

Returns a CSV attachment with the columns `Component`, `Status`, `Date/Time`,
covering the last 90 days. Each row is a status change, so a component whose
status did not change in that time has no row.

## Response `200`

CSV attachment

## Other responses

- `401`: No bearer credentials, or credentials that do not resolve to an API key or Sanctum token. Produced by `ApiAuthentication` ahead of the route, so every operation in the v1 group can return it.
- `403`: The API key lacks the required permission, or a policy denied the action. The two come from different layers and return different bodies, so this is a union rather than one shape.
- `404`: No such stack, or it lies outside the API key's team scope. On these operations the two are deliberately indistinguishable — `guardApiKeyTeamScope()` 404s rather than 403s — so a scoped key cannot probe for stacks it may not see.
- `429`: The `v1-api` rate limit (120 requests per minute) was exceeded. Applies to every operation in the v1 group.

---

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