> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dacard.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Close a quarter

> Mark a quarter complete and generate the quarter-close artifact.

Mark a quarter complete and generate the quarter-close artifact. Locks the period: subsequent score changes don't retroactively change the close artifact. Used at the end of a planning cycle.

```bash theme={null}
curl -X POST https://app.dacard.ai/api/quarter-close \
  -H "Authorization: Bearer $DACARD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "productId": "prod_abc",
    "period": "2026-Q1"
  }'
```

| Property           | Value                                           |
| ------------------ | ----------------------------------------------- |
| **Auth**           | Required                                        |
| **Required scope** | Caller must own the product                     |
| **Cost**           | 10 credits                                      |
| **Idempotent**     | Yes (second call returns the existing artifact) |

## Body

| Field       | Type   | Required | Notes                           |
| ----------- | ------ | -------- | ------------------------------- |
| `productId` | string | yes      | Product the quarter belongs to. |
| `period`    | string | yes      | Format: `YYYY-Q[1-4]`.          |

## Reading the artifact

```bash theme={null}
curl -X GET "https://app.dacard.ai/api/quarter-close?productId=prod_abc&period=2026-Q1" \
  -H "Authorization: Bearer $DACARD_API_KEY"
```

GET returns the existing artifact for an already-closed period, or 404 if the quarter isn't closed yet.

## Errors

| Status | Code                  | When                                      |
| ------ | --------------------- | ----------------------------------------- |
| 401    | `AUTH_REQUIRED`       | No session.                               |
| 402    | `CREDIT_EXHAUSTED`    | No credits.                               |
| 403    | `ONBOARDING_REQUIRED` | Activation contract not complete.         |
| 404    | `Quarter not closed`  | GET on a quarter that hasn't been closed. |
| 500    | `INTERNAL_ERROR`      | Generation or write failed.               |
