Identity & platformbilling
GET/admin/limit-increase-requests
Review queue: limit-increase requests across all namespaces (platform admin)
list_admin_limit_increase_requests
billing:admin
A token needs thebilling:adminscope: Review limit-increase requests and set namespace overridesGranted bywrite_api.Every operation this scope unlocksSingle-resource
x-gitmoap-isolation: {"kind":"single_or_self_scoped"}
Paginated
Pass thecursora page returns to get the next one.
Newest first, pending requests unless status asks for another. Only platform administrators,
signed in to a session, can read it; an access token never qualifies.
Parameters
Query
- statusstringoptionalFilter by status (default pending)
- limitinteger · int32optionalPage size, 1–100 (default 50)
- cursorstringoptionalPagination cursor
Responses
200Queue listedapplication/json
itemsarray of LimitIncreaseRequestView
- The LimitIncreaseRequestView schema
- created_atstring
- current_effectiveinteger · int640–∞
- justificationstring
- limit_keyLimitKeystorage_bytesmax_repos_per_groupmax_members_per_scopemax_teams_per_orgmax_members_per_teammax_custom_roles_per_orgmax_limits_per_scopemax_approval_rules_per_scopemax_scim_tokens_per_orgmax_ai_agents_per_orgmax_ai_concurrent_sessions_per_orgmax_ai_sessions_per_org_per_daymax_ai_revision_drafts_per_org_per_daymax_balance_adjustments_per_namespace_per_daymax_agent_workspace_minutes_per_monthai_management_fee_bpsmax_open_mrs_per_repomax_comments_per_mrmax_branches_per_repomax_tags_per_repomax_webhooks_per_scopemax_service_accounts_per_scopemax_branch_rules_per_scopemax_provider_connections_per_scopemax_reviewers_per_mrmax_reactions_per_commentmax_commit_statuses_per_commitmax_provider_installs_per_groupmax_concurrent_pipeline_runsmax_pipeline_runs_per_monthmax_pipeline_minutes_per_monthmax_pipeline_dag_nodesmax_push_bytesmax_package_bytesmax_release_asset_bytesmax_node_log_bytesmax_releases_per_repomax_pipelines_per_repomax_open_issues_per_scopemax_labels_per_scopemax_milestones_per_scopemax_blueprints_per_scopemax_wiki_pages_per_scopemax_services_per_scopemax_environments_per_scopemax_scorecards_per_scopemax_pipeline_components_per_scopemax_versions_per_pipeline_componentmax_comments_per_issuemax_relations_per_issuemax_children_per_issuemax_activities_per_issuemax_code_links_per_issuemax_mr_links_per_issuemax_anchors_per_issuemax_anchors_per_repomax_criteria_per_issuemax_criteria_per_repomax_code_todos_per_repomax_root_groupsA recognised limit name — every
PlanLimitscap plus the user-scopedmax_root_groups. The identity a limit-increase request and a namespace override are keyed by. - request_idLimitIncreaseRequestId (string · uuid)
- requested_byUserId (string · uuid)
- requested_valueinteger · int640–∞
- root_group_idGroupId (string · uuid)
- statusLimitRequestStatuspendingapproveddeniedappliedLifecycle of a limit-increase request.
Appliedis the terminal success state (the override was written);Approvedexists for symmetry but the approve path applies immediately, so a persisted request is never leftApproved-but-not-Applied. - updated_atstring
- applied_valueinteger · int64 or nulloptional0–∞
- decided_atstring or nulloptional
- decided_bystring or nulloptional
- decision_notestring or nulloptional
- next_cursorstring or nulloptional
200 exampleSynthesized example
{
"items": [
{
"created_at": "2026-10-16T11:49:53Z",
"current_effective": 6,
"justification": "justification-437d",
"limit_key": "storage_bytes",
"request_id": "2a090de4-ac53-4c64-b175-1bcc1cf04707",
"requested_by": "b7e2d1c0-9f8e-4d7c-a6b5-c4d3e2f1a0b9",
"requested_value": 86,
"root_group_id": "4c1d8e2f-6a3b-4f90-b7c5-1e2d3c4b5a69",
"status": "pending",
"updated_at": "2026-10-14T18:28:52Z"
},
{
"created_at": "2026-10-09T11:46:41Z",
"current_effective": 17,
"justification": "justification-c3f0",
"limit_key": "storage_bytes",
"request_id": "cc10d355-0baf-4ff2-8d78-97cff5c1ac9b",
"requested_by": "c9d8e7f6-a5b4-4c3d-9e2f-1a0b9c8d7e6f",
"requested_value": 65,
"root_group_id": "4c1d8e2f-6a3b-4f90-b7c5-1e2d3c4b5a69",
"status": "pending",
"updated_at": "2026-10-11T20:20:25Z"
}
],
"next_cursor": "next-cursor-db6d"
}
401Unauthenticated — no credential, or an invalid oneapplication/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
reasonorcode. - fieldstring or nulloptionalOn a
400that 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 oncodeotherwise. - required_scopestring or nulloptionalThe scope the access token was missing, on
INSUFFICIENT_SCOPE. - violationsanyoptionalPresent on the structured-validation errors (
PROVIDER_VALIDATION_FAILEDper-node,PIPELINE_VALIDATION_FAILEDDAG): 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-025e",
"message": "Draw the region map from operation density"
}
}
403Forbidden — the caller's access level or token scope is insufficientapplication/json
Error codes
- FORBIDDENYou are signed in but may not do this here;
reasonnames the permission or the rule that refused it - INSUFFICIENT_SCOPEThe access token lacks the scope this operation needs;
required_scopenames 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
reasonorcode. - fieldstring or nulloptionalOn a
400that 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 oncodeotherwise. - required_scopestring or nulloptionalThe scope the access token was missing, on
INSUFFICIENT_SCOPE. - violationsanyoptionalPresent on the structured-validation errors (
PROVIDER_VALIDATION_FAILEDper-node,PIPELINE_VALIDATION_FAILEDDAG): 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-a64b",
"message": "Label every synthesized example"
}
}
CLI
gitmoap billing list-admin-limit-increase-requests
- --cursorstringoptionalPagination cursor
- --limitnumberoptionalPage size, 1–100 (default 50)
- --statusstringoptionalFilter by status (default pending)