GET /api/v1/orgs/{id}/insights · Operation ID: getOrgInsightsorgs:read. Teacher/co-teacher with insights.read, or student-tier own view; orgs:read and plan insights feature.curl --fail-with-body -X GET 'https://handwrites.io/api/v1/orgs/REPLACE_ORG_ID/insights' \
-H "Authorization: Bearer $HANDWRITE_API_TOKEN"| Name | In | Required | Details |
|---|---|---|---|
id | path | Yes | An organisation ID (org_…). |
range | query | No | Days ending today (default 30). |
from | query | No | First UTC day (yyyy-mm-dd); with to, at most 365 days. |
to | query | No | Last UTC day (default today). |
| Status | Meaning | Format |
|---|---|---|
| 200 | Insights. | application/json |
| 400 | invalid_request (the message names the field), validation_failed. | application/json |
| 401 | unauthorized: no token, or it's invalid, revoked or expired. | application/json |
| 403 | insufficient_scope, forbidden (you can see it but not do this), app_test_restricted, account_deleted (the account is scheduled for deletion; any request). | application/json |
| 404 | not_found: it doesn't exist or you can't see it (never 403 for documents you can't see). | application/json |
| 429 | rate_limited (burst or daily cap) or quota_exceeded (no characters left). | application/json |
| 500 | internal_error. | application/json |