Project activity
recent_work.json — what the team got done lately: the themes of the pull requests merged in the last 14 days, written by Study's model from their titles; one object per project.
Base path /api/v1/project-activity on https://ionwarp.com. Authenticate with Authorization: Bearer $DASH_API_KEY and name the project with the Project-ID header. Writes are validated in declared mode; an operation this resource does not declare answers 405 operation_not_supported.
List project activity
GET /api/v1/project-activity
curl "https://ionwarp.com/api/v1/project-activity" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_acme"Show me the project activitydata_query {
"collection": "project_activity"
}Returns a paginated list of project-activity objects, newest first.
{
"object": "list",
"data": [
{
"object": "project-activity",
"id": "obj_123",
"window_days": 14,
"pr_count": 12,
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
limit | number | page | Rows to return, 1–100. Defaults to 20. |
cursor | string | page | next_cursor from the previous page. |
Retrieve a project-activity
GET /api/v1/project-activity/learning-tests-run-under-bun
curl "https://ionwarp.com/api/v1/project-activity/learning-tests-run-under-bun" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_acme"What did the team get done lately?data_get {
"collection": "project_activity",
"object_id": "learning-tests-run-under-bun"
}Returns the project-activity object.
{
"object": "project-activity",
"id": "obj_123",
"window_days": 14,
"pr_count": 12,
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
id | string | path | The project-activity's id or slug. |
What comes back (read-only)
Every project-activity carries the envelope below. The fields under it are computed or stamped by the platform — they are returned, never sent.
| Field | Type | Description |
|---|---|---|
object | string | Always project-activity. |
id | string | Stable object id. Also accepted in place of slug on any path. |
slug | string | URL-safe name, unique within the collection. |
created_at | string | ISO-8601 timestamp of the first write. |
updated_at | string | ISO-8601 timestamp of the most recent write. The cursor sorts on this. |
version | number | Object schema version. |
window_days | number | Days of merged pull requests the summary covers. |
pr_count | number | Pull requests merged in the window that the summary was written from. |
themes | array | The areas the team pushed on — \{title, text, prs\}; every PR number was merged in the window. |
written_at | string | When the summary was written (ISO 8601). |
model | string | The model that wrote the themes; null for an empty window. |
dropped | object | Themes the validator dropped, by reason (uncited, over_limit, malformed). |
Errors
Failures use { error: { type, code, message, param } }. The full code table is generated at Error Codes.