---
title: "Get Card States"
method: GET
path: "/api/newspulse/cards/states"
tags: ["newspulse"]
---

# Get Card States

`GET /api/newspulse/cards/states`

## Request

- Base URL: `https://api.sambodh-ias.in` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sambodh-ias.in/api/newspulse/cards/states`
- Auth: none declared

Per-card state map for the current user, plus optional window progress.

Returns:
    {
      "states": { card_id: {read, tested, needs_revision, mastered} },
      "progress": {window_label, total_cards, tested_cards, untouched_cards}
                   (only if window_mode given)
    }

## Query parameters

- `window_mode` string, nullable: rolling_30 | calendar_month
- `window_value` string, nullable: YYYY-MM if calendar_month
- `card_ids` string, nullable: Comma-separated card ids to restrict the state map to (P17 perf fix). Omitting it keeps the old behaviour — every view/coverage/reaction row the user has ever produced — for backward compatibility during rollout; clients should migrate to always passing the ids of the cards currently on screen.

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/sambodh-ias/apis/sambodhias-v2.md) · [All operations](https://skmtc.dev/sambodh-ias/apis/sambodhias-v2/llms.txt) · [OpenAPI document](https://skmtc.dev/sambodh-ias/apis/sambodhias-v2/revisions/258843d1f806?raw)
