---
title: "Request insights for the current window"
method: POST
path: "/projects/{projectId}/studies/{studyId}/insights"
tags: ["Studies"]
---

# Request insights for the current window

`POST /projects/{projectId}/studies/{studyId}/insights`

**No credits are consumed** — the model cost is on MCPJam. Runs a model over the study's current window and draws on the organization's `insightsPerDay` ledger, which counts REQUESTS and is SHARED with eval-run and swarm run insights, so a request here takes one from there.

`202`: scheduled, not done. Poll `GET .../windows/{windowId}/insights` with the returned `windowId` rather than re-requesting.

`409` when the current window has not been mined yet: the request was well formed and retrying it verbatim will not help until sessions have been processed.

## Request body

- StudyInsightsRequest — Optional. A bodyless POST is the ordinary case.
  - `force` boolean — Regenerate even when a completed generation already exists. COUNTS A SECOND TIME against the daily insight quota (no credits either way) — that is the whole point of the flag, so it is never inferred.

## Response `202`

Scheduled.

- StudyInsightsRequested
  - `studyId` string, required
  - `projectId` string, required
  - `windowId` string, required — The window this generation covers. Poll `GET .../windows/{windowId}/insights` with it.
  - `status` 'pending', required

## Other responses

- `400` — Malformed body or parameters.
- `401` — Missing, invalid, revoked, or orphaned key (`UNAUTHORIZED`) — or the **target MCP server** needs an OAuth grant (`OAUTH_REQUIRED`), which is a property of the server, not your key.
- `403` — Key is valid but not allowed to do this.
- `404` — Unknown project, server, or resource.
- `409` — The resource is not in a state that accepts this write — a stale `expectedRevision`, a duplicate name, or an environment that cannot currently be launched. The request was well-formed; re-read the resource and retry.
- `429` — Per-key rate limit exceeded (60 requests/minute sustained, bursts up to 10). Honor `Retry-After` and back off with jitter.
- `500` — Something failed on MCPJam's side.

## Changes

- **2026-09-22** `561e4fd0dfa2` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/mcpjam/apis/mcpjam-api/changes/projects/:projectId/studies/:studyId/insights/post.md)

---

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