---
title: "List Budget limit increase requests"
method: GET
path: "/budgets/limit-increase-requests"
tags: ["Approval requests"]
---

# List Budget limit increase requests

`GET /budgets/limit-increase-requests`

## Request

- Base URL: `https://api.replit.com/v1`
- URL: `https://api.replit.com/v1/budgets/limit-increase-requests`
- Auth: HTTP bearer

Returns Budget limit increase requests owned by the authenticated Account.

Requests can target an individual member limit, a Workspace default member
limit, or a shared group limit. Use `type=workspace_group_limit` to list
group requests. Only group requests include `groupId` and `group`.

Example request:

`GET /v1/budgets/limit-increase-requests?workspaceId=workspace123&type=workspace_group_limit`

Without a status filter, only pending requests are returned. The status parameter accepts a comma-separated list of statuses to return requests in any of those statuses.

Results are ordered by creation time, newest first. Pagination cursors are tied to the authenticated Account and the effective status, workspaceId, type, includeEvents, and limit settings. Reusing a cursor with different effective settings returns `invalid_request`. Explicit default values and reordered or repeated statuses do not change these settings.

Every item includes an opaque `reviewEtag` for that request. Copy the
complete quoted value unchanged into `If-Match` on the matching review
route; do not parse it or use the collection HTTP ETag. This enables review
without a detail GET. `includeEvents` changes only whether history is included, not the
`reviewEtag`; a detail GET remains optional when history or the detail ETag
is needed. Each request's ordered public history is included when
`includeEvents` is true.

## Query parameters

- `status` BudgetLimitIncreaseRequestStatus[]
- `workspaceId` string
- `type` 'workspace_default_user_limit' | 'workspace_user_limit' | 'workspace_group_limit': Budget limit targeted by the request. workspace_user_limit raises the requester's own member limit. workspace_default_user_limit raises the workspace default member limit. workspace_group_limit raises the shared aggregate limit of the group identified by groupId, not the requester's individual limit.
- `includeEvents` boolean
- `limit` integer
- `cursor` string

## Response `200`

Budget limit increase requests visible to the authenticated Account.

- BudgetLimitIncreaseRequestListResponse
  - `data` BudgetLimitIncreaseRequestListItem[], required
    - `id` string, uuid, required: Stable identifier for this request.
    - `type` 'workspace_default_user_limit' | 'workspace_user_limit' | 'workspace_group_limit', required: Budget limit targeted by the request. workspace_user_limit raises the requester's own member limit. workspace_default_user_limit raises the workspace default member limit. workspace_group_limit raises the shared aggregate limit of the group identified by groupId, not the requester's individual limit.
    - `status` 'pending' | 'approved' | 'fulfillment_started' | 'fulfilled' | 'fulfillment_failed' | 'denied' | 'canceled', required: Current lifecycle status of the request.
    - `workspaceId` string, required: Workspace whose Budget limit the request targets.
    - `workspace` ProjectWorkspace, required
      - `id` string, required
      - `name` string, required
      - `slug` string, required
    - `requesterUserId` string, required: Account user on whose behalf the request was created.
    - `requester` ApprovalRequester, required
      - `id` string, required
      - `username` string, required
      - `email` string, email, required
      - `firstName` string, nullable, required
      - `lastName` string, nullable, required
    - `limitAtRequestUsd` number, required: Budget limit that was in effect when the request was created.
    - `currentLimitUsd` number, nullable, required: Budget limit currently in effect for the request target. Null when the target no longer has a Budget limit or is no longer available.
    - `groupId` string: Stable group identifier captured when a workspace_group_limit request is created. Present only for group requests; does not change when the group is renamed or deleted.
    - `group` object, nullable: Current group identity for workspace_group_limit requests. Present only for group requests. Null if the group was deleted or no longer belongs to this Workspace.
      - `id` string, required
      - `name` string, required
    - `requestedAmountUsd` number, nullable, required: Limit the requester asked for. Null when the requester did not name an amount.
    - `approvedLimitUsd` number, nullable, required: Limit the reviewer approved. Null until the request is approved.
    - `appliedLimitUsd` number, nullable, required: Limit applied by fulfillment. Null until fulfillment; equals the approved limit once fulfilled.
    - `version` integer, required: Increments with every recorded event. Use reviewEtag, not this field, when reviewing a listed request.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `events` BudgetLimitIncreaseRequestEvent[]: Ordered public history, ascending by sequence. Present on list reads only when includeEvents=true.
      - `sequence` integer, required: Position in the request history. Sequence 1 is the creation event.
      - `eventType` 'request_started' | 'request_approved' | 'request_denied' | 'request_canceled' | 'request_fulfillment_started' | 'request_fulfilled' | 'request_fulfillment_failed', required
      - `fromStatus` 'pending' | 'approved' | 'fulfillment_started' | 'fulfilled' | 'fulfillment_failed' | 'denied' | 'canceled', required: Current lifecycle status of the request.
      - `toStatus` 'pending' | 'approved' | 'fulfillment_started' | 'fulfilled' | 'fulfillment_failed' | 'denied' | 'canceled', required: Current lifecycle status of the request.
      - `actor` union, required: Who performed the action recorded by this event.
        - object
          - `type` 'user', required
          - `userId` string, required
        - object
          - `type` 'api_key', required
          - `apiKeyId` string, uuid, required
        - object
          - `type` 'system', required
          - `systemId` string, required
      - `publicNote` string, nullable, required: Public note recorded with the event, such as a denial reason.
      - `occurredAt` string, date-time, required: When the event was recorded.
    - `reviewEtag` string, required: Opaque review token for this request. Copy the complete value unchanged into If-Match; do not parse it or use the collection HTTP ETag.
  - `pagination` union, required
    - object
      - `cursor` string, required: Opaque cursor for the next page.
      - `hasMore` true, required
    - object
      - `cursor` unknown, required
      - `hasMore` false, required

## Other responses

- `400`: The request parameters are invalid.
- `401`: The API key is missing, malformed, unknown, revoked, or expired.
- `403`: The API key lacks the required scope or Account entitlement.
- `404`: The requested resource does not exist or is not visible to this key.
- `429`: The API key or operation exceeded its rate limit.
- `500`: The server encountered an unexpected error.
- `503`: A required API dependency is temporarily unavailable.

## Changes

- **2026-09-29** `9f669d8cb57d`: 1 warning, 3 info
  - added the new `workspace_group_limit` enum value to the `data/items/type` response property for the response status `200`
  - added the new enum value `workspace_group_limit` to the `query` request parameter `type`
  - added the optional property `data/items/group` to the response with the `200` status
  - added the optional property `data/items/groupId` to the response with the `200` status
- **2026-09-19** `ba193431df44`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/replit/apis/replit-api/changes/budgets/limit-increase-requests/get.md)

---

[API](https://skmtc.dev/replit/apis/replit-api.md) - [All operations](https://skmtc.dev/replit/apis/replit-api/llms.txt) - [OpenAPI document](https://skmtc.dev/replit/apis/replit-api/revisions/03b316f7e71a?raw)
