> ## 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.

# Generate board report

> Generate the next board read for an account. Returns the structured artifact and the export-ready markdown.

Generate the next board read for an account. Returns the structured artifact (composite read, top moves, evidence, ratios) and the export-ready markdown. Costs credits.

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

| Property          | Value                                     |
| ----------------- | ----------------------------------------- |
| **Auth**          | Required                                  |
| **Required plan** | Pro or higher                             |
| **Cost**          | 10 credits per generation                 |
| **Idempotent**    | No (each call generates a fresh artifact) |

## Body

| Field          | Type    | Required | Notes                                                 |
| -------------- | ------- | -------- | ----------------------------------------------------- |
| `productId`    | string  | yes      | Product to report against.                            |
| `period`       | string  | yes      | Reporting window. Format: `YYYY-Q[1-4]` or `YYYY-MM`. |
| `includeMoves` | boolean | no       | Default true. Set false to omit the moves section.    |

## Errors

| Status | Code                  | When                                   |
| ------ | --------------------- | -------------------------------------- |
| 401    | `AUTH_REQUIRED`       | No session.                            |
| 402    | `CREDIT_EXHAUSTED`    | No credits left in this billing cycle. |
| 403    | `FEATURE_GATED`       | Caller is on Free.                     |
| 403    | `ONBOARDING_REQUIRED` | Activation contract not complete.      |
| 500    | `INTERNAL_ERROR`      | Generation or write failed.            |
