Skip to content
GitmoapAPIBeta
Organizedashboard
GET/user/dashboard/summary

Read the caller's dashboard summary counters

get_my_dashboard_summary
  • dashboard:read
    A token needs the dashboard:read scope: Read your dashboard summary counters and your own activity breakdownGranted by mcp_agent, mcp_agent_write, read_api, write_api.Every operation this scope unlocks

The numbers a dashboard shows before anything else loads: the attention inbox badge, your open merge requests, pending review requests, open work items assigned to you, pipeline runs that failed in the last seven days, your current contribution streak, the storage use of up to ten of your organizations, and whether your getting-started checklist is complete. Each count stops at a ceiling, and truncated names the ones that reached it. A service account gets only the inbox badge.

Responses

200The dashboard's summary countersapplication/json
  • attentionAttentionCountsThe inbox badge, with its own truncated flag preserved for clients written against it.
    • The AttentionCounts schema
    • by_reasonobjectReasons with at least one pending item, keyed by the wire name.
    • pendinginteger · int64A capped count. When truncated, this is the cap and the client renders "99+".
    • truncatedboolean
  • authored_merge_requests_openinteger · int64
  • contributions_current_streakinteger · int64
  • count_capinteger · int64The ceiling each counter was computed under.
  • issues_assigned_openinteger · int64
  • namespacesarray of NamespaceSummaryView
    • The NamespaceSummaryView schema
    • full_pathstring
    • plan_tierPlanTierfreeproteamenterpriseThe subscription plan an organization is on, which sets its resource limits. From smallest to largest: free, pro, team, enterprise.
    • root_group_idGroupId (string · uuid)
    • storage_bytes_limitinteger · int640–∞
    • storage_bytes_usedinteger · int640–∞
    • storage_used_pctinteger · int32 or nulloptional0–∞Storage used as a percentage of the limit, rounded, at most 100. Absent when the plan has no storage limit, which is not the same as 0%.
  • onboarding_completeboolean
  • pipeline_runs_failed_7dinteger · int64
  • review_requests_pendinginteger · int64
  • truncatedarray of stringThe names of the counters that reached count_cap, whose values are therefore a minimum rather than the full count.
200 exampleSynthesized example
{
"attention": {
"by_reason": {},
"pending": 72,
"truncated": false
},
"authored_merge_requests_open": 68,
"contributions_current_streak": 66,
"count_cap": 6,
"issues_assigned_open": 84,
"namespaces": [
{
"full_path": "acme/payments-api",
"plan_tier": "free",
"root_group_id": "4c1d8e2f-6a3b-4f90-b7c5-1e2d3c4b5a69",
"storage_bytes_limit": 50,
"storage_bytes_used": 35
},
{
"full_path": "acme/payments-api",
"plan_tier": "free",
"root_group_id": "4c1d8e2f-6a3b-4f90-b7c5-1e2d3c4b5a69",
"storage_bytes_limit": 69,
"storage_bytes_used": 10
}
],
"onboarding_complete": false,
"pipeline_runs_failed_7d": 89,
"review_requests_pending": 67,
"truncated": [
"truncated-8cce"
]
}
401Not authenticatedapplication/json
Error codes
  • UNAUTHORIZEDNo credential was sent, or the one sent is invalid, expired or revoked
  • errorErrorBody
    • The ErrorBody schema
    • codestringThe coarse category, tied to the status: NOT_FOUND, CONFLICT, INSUFFICIENT_SCOPE. Every error has one; the API reference's error catalogue lists them all.
    • messagestringWhat went wrong, for a person. Written to be read, not parsed: match on reason or code.
    • fieldstring or nulloptionalOn a 400 that refused one field's value, the field, as its JSON path: email, items[0].name. Put the message under that input. Absent on every other error.
    • reasonstring or nulloptionalThe specific code, when the error has one: LAST_ORGANIZATION_OWNER, BRANCH_PROTECTED. The message starts with it too. Match on this when it is present, and on code otherwise.
    • required_scopestring or nulloptionalThe scope the access token was missing, on INSUFFICIENT_SCOPE.
    • violationsanyoptionalPresent on the structured-validation errors (PROVIDER_VALIDATION_FAILED per-node, PIPELINE_VALIDATION_FAILED DAG): a JSON array of the offending elements, so a caller can fix every one in a single round-trip. Absent (omitted) on every other error.
401 exampleSynthesized example
{
"error": {
"code": "code-e3aa",
"message": "Pin a page's payload to the build that rendered it"
}
}
403The token does not allow reading the dashboardapplication/json
Error codes
  • FORBIDDENYou are signed in but may not do this here; reason names the permission or the rule that refused it
  • INSUFFICIENT_SCOPEThe access token lacks the scope this operation needs; required_scope names it
  • PERMISSION_REQUIREDYou need a permission you do not hold here; the message names it
  • errorErrorBody
    • The ErrorBody schema
    • codestringThe coarse category, tied to the status: NOT_FOUND, CONFLICT, INSUFFICIENT_SCOPE. Every error has one; the API reference's error catalogue lists them all.
    • messagestringWhat went wrong, for a person. Written to be read, not parsed: match on reason or code.
    • fieldstring or nulloptionalOn a 400 that refused one field's value, the field, as its JSON path: email, items[0].name. Put the message under that input. Absent on every other error.
    • reasonstring or nulloptionalThe specific code, when the error has one: LAST_ORGANIZATION_OWNER, BRANCH_PROTECTED. The message starts with it too. Match on this when it is present, and on code otherwise.
    • required_scopestring or nulloptionalThe scope the access token was missing, on INSUFFICIENT_SCOPE.
    • violationsanyoptionalPresent on the structured-validation errors (PROVIDER_VALIDATION_FAILED per-node, PIPELINE_VALIDATION_FAILED DAG): a JSON array of the offending elements, so a caller can fix every one in a single round-trip. Absent (omitted) on every other error.
403 exampleSynthesized example
{
"error": {
"code": "code-fcc7",
"message": "Stream pipeline status into the run header"
}
}

CLI

gitmoap dashboard get-my-dashboard-summary

Used in these guides