{"openapi":"3.1.0","info":{"title":"Replit API","version":"0.1.0","license":{"name":"Proprietary","url":"https://replit.com/terms-of-service"},"description":"API for Enterprise Account analytics and administration.\nAll operations are scoped to the Account that owns the presented API key.\n"},"servers":[{"url":"https://api.replit.com/v1","description":"Production"}],"security":[{"ApiKey":[]}],"tags":[{"name":"Account","description":"Account-level metadata and summaries."},{"name":"Workspaces","description":"Workspaces owned by the authenticated Account."},{"name":"Members","description":"Account and workspace membership data."},{"name":"Groups","description":"Workspace groups and group membership data."},{"name":"Usage","description":"Account usage and spend reporting."},{"name":"Projects","description":"Projects owned by workspaces in the authenticated Account."},{"name":"Deployments","description":"Deployments owned by a workspace in the authenticated Account."},{"name":"Budgets","description":"Account and workspace usage budgets and limits."}],"paths":{"/workspaces":{"get":{"operationId":"listWorkspaces","tags":["Workspaces"],"summary":"List Account workspaces","description":"Returns workspaces owned by the authenticated Account, ordered by creation time and then ID in descending order.","x-replit-required-scopes":["read:*"],"parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/WorkspaceSearch"}],"responses":{"200":{"description":"Workspace list.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workspace-list-response"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/workspaces/{workspaceId}":{"get":{"operationId":"getWorkspace","tags":["Workspaces"],"summary":"Get an Account workspace","description":"Returns one workspace owned by the authenticated Account.","x-replit-required-scopes":["read:*"],"parameters":[{"$ref":"#/components/parameters/WorkspaceIdPath"}],"responses":{"200":{"description":"Workspace details.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workspace-response"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/members":{"get":{"operationId":"listMembers","tags":["Members"],"summary":"List Account members","description":"Returns the union of Account members ordered by user ID, optionally restricted to one workspace.","x-replit-required-scopes":["read:*"],"parameters":[{"$ref":"#/components/parameters/WorkspaceIdQuery"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Role"},{"$ref":"#/components/parameters/MemberSearch"}],"responses":{"200":{"description":"Member list.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/member-list-response"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/groups":{"get":{"operationId":"listGroups","tags":["Groups"],"summary":"List workspace groups","description":"Returns the groups shown in the Workspace Groups UI across the authenticated Account.\n\nExample request:\n\n`GET /v1/groups?workspaceId=workspace123&limit=2`\n","x-replit-required-scopes":["read:*"],"parameters":[{"$ref":"#/components/parameters/WorkspaceIdQuery"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"description":"Group list.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/group-list-response"},"examples":{"workspaceGroups":{"summary":"Workspace groups","value":{"data":[{"id":"groupAdmins","workspaceId":"workspace123","name":"Admins","type":"admin"},{"id":"groupEngineering","workspaceId":"workspace123","name":"Engineering","type":"custom"}],"pagination":{"cursor":"opaque-signed-cursor","hasMore":true}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/groups/{groupId}/users":{"get":{"operationId":"listGroupUsers","tags":["Groups"],"summary":"List users in a group","description":"Returns active users from one group visible in the Workspace Groups UI.\n\nExample request:\n\n`GET /v1/groups/groupEngineering/users?limit=2`\n\nA missing, hidden, deleted, or cross-Account group returns `404 not_found`:\n\n```json\n{\n  \"error\": {\n    \"code\": \"not_found\",\n    \"message\": \"Group not found.\",\n    \"details\": null\n  }\n}\n```\n","x-replit-required-scopes":["read:*"],"parameters":[{"$ref":"#/components/parameters/GroupIdPath"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"description":"Group user list.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/group-user-list-response"},"examples":{"groupUsers":{"summary":"Active group users","value":{"data":[{"userId":"123"},{"userId":"456"}],"pagination":{"cursor":null,"hasMore":false}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/usage":{"get":{"operationId":"getUsage","tags":["Usage"],"summary":"Get Account usage and gross ledger cost","description":"Returns usage-ledger consumption and gross cost from the same provider used by Replit's Usage settings page.\nOmit workspaceId, groupId, userId, and projectId for Account-wide totals. Filters are intersected when combined.\n\ngroupId requires workspaceId and filters usage to users who are active group members when the request is processed. Deleted or disabled memberships, deleted users, and support seats are excluded. An explicit userId is intersected with current group membership. Users can belong to multiple groups, so totals from separate group requests are not additive. Ungrouped and unattributed usage is excluded from group-filtered requests. groupId supports totals, groupBy=member, groupBy=project, and groupBy=timeseries; it cannot be combined with groupBy=workspace. The response does not repeat the group ID or expose group names or internal Account identifiers.\n\nExample: `GET /v1/usage?workspaceId=workspace123&groupId=groupEngineering&groupBy=member`\n\nOmit all range parameters for the current billing period. billingPeriod cannot be combined with startTime or endTime.\nCustom ranges require both startTime and endTime, use inclusive start and exclusive end boundaries, and cannot exceed 366 days.\ngroupBy adds one paginated breakdown; granularity is valid only with groupBy=timeseries.\ngroupBy=member includes every selected metric type and is not limited to Agent usage.\n\nRecent usage can arrive after a response. Costs are gross usage-ledger values, not settled invoice totals. Account credits, discounts, and net charges are intentionally excluded.\n","x-replit-required-scopes":["read:*"],"parameters":[{"$ref":"#/components/parameters/WorkspaceIdQuery"},{"$ref":"#/components/parameters/GroupIdQuery"},{"$ref":"#/components/parameters/UserIdQuery"},{"$ref":"#/components/parameters/ProjectIdQuery"},{"$ref":"#/components/parameters/UsageBillingPeriod"},{"name":"startTime","in":"query","description":"Inclusive custom UTC interval boundary. Requires endTime.","schema":{"type":"string","format":"date-time"}},{"name":"endTime","in":"query","description":"Exclusive custom UTC interval boundary. Requires startTime.","schema":{"type":"string","format":"date-time"}},{"$ref":"#/components/parameters/UsageMetricTypes"},{"$ref":"#/components/parameters/UsageGroupBy"},{"$ref":"#/components/parameters/UsageGranularity"},{"$ref":"#/components/parameters/UsageLimit"},{"$ref":"#/components/parameters/UsageCursor"}],"responses":{"200":{"description":"Usage summary.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/usage-response"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/projects":{"get":{"operationId":"listProjects","tags":["Projects"],"summary":"List Account projects","description":"Returns projects from team workspaces owned by the authenticated Account, ordered by creation time and project ID descending.\nDeleted, admin-hidden, personal-workspace, and cross-Account projects are excluded.\n\nThe deployment filter uses Replit's eventually consistent live-deployment projection. A missing projection row is treated as not deployed.\n","x-replit-required-scopes":["read:*"],"parameters":[{"$ref":"#/components/parameters/WorkspaceIdQuery"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"},{"name":"search","in":"query","description":"Case-insensitive literal match on project title, slug, or description.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"hasDeployment","in":"query","description":"Restrict results by the current live-deployment projection.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Project list.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/project-list-response"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/deployments":{"get":{"operationId":"listDeployments","tags":["Deployments"],"summary":"List workspace deployments","description":"Returns deployments from one workspace owned by the authenticated Account, ordered by publish time and project ID descending.\nDeleted, admin-hidden, personal-workspace, and cross-Account projects are excluded.\nWhen projectId is supplied, the project must belong to the selected workspace or the list is empty.\n","x-replit-required-scopes":["read:*"],"parameters":[{"name":"workspaceId","in":"query","required":true,"description":"Workspace owned by the authenticated Account.","schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"},{"name":"projectId","in":"query","description":"Restrict results to one project in the selected workspace.","schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/deployment-status"}}],"responses":{"200":{"description":"Deployment list.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/deployment-list-response"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/deployments/{deploymentId}":{"get":{"operationId":"getDeployment","tags":["Deployments"],"summary":"Get a deployment","description":"Returns one deployment owned by a workspace in the authenticated Account.\nMissing, deleted, admin-hidden, personal-workspace, and cross-Account deployments return the same not-found response.\n","x-replit-required-scopes":["read:*"],"parameters":[{"$ref":"#/components/parameters/DeploymentIdPath"}],"responses":{"200":{"description":"Deployment details.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/deployment-response"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/budgets":{"get":{"operationId":"listBudgets","tags":["Budgets"],"summary":"List Account and Workspace budgets","description":"Returns spending controls for the authenticated Account and Agent usage limits for its Workspaces, groups, and members. Account spending controls apply to usage-based spend. Workspace, group, and member limits apply to Agent usage during the current billing cycle.\n\nAccount spending controls are included unless excluded by a type or Workspace filter. A null threshold means that control is not configured. Workspace, group, and member limits are included only when configured.\n\nWhen multiple filters are provided, all filters apply. Supplying workspaceId excludes Account spending controls. Therefore, combining workspaceId with type=account_spending_controls returns an empty page.\n\nResults are ordered by type, then workspaceId, then group or member ID. Pagination cursors are tied to the authenticated Account and the original type, workspaceId, and limit values. Reusing a cursor with different parameters returns invalid_request.\n","x-replit-required-scopes":["read:*"],"parameters":[{"$ref":"#/components/parameters/WorkspaceIdQuery"},{"name":"type","in":"query","description":"Filter results by budget type.","schema":{"$ref":"#/components/schemas/budget-type"}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"description":"Configured spending controls and Agent usage limits.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/budget-list-response"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}},"post":{"operationId":"updateBudget","tags":["Budgets"],"summary":"Set or clear a budget","description":"Sets, replaces, or clears one budget or limit using the same desired-state behavior as the Usage settings UI. Repeating an identical request leaves the existing state unchanged.","x-replit-required-scopes":["write:budgets"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/budget-update"}}}},"responses":{"200":{"description":"Resulting budget configuration, or null after clearing it.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/budget-update-response"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/BudgetServiceUnavailable"}}}}},"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","bearerFormat":"Replit API key","description":"Account API key beginning with `rpl_`."}},"headers":{"RequestId":{"description":"Stable identifier for this request, suitable for support inquiries.","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"example":"req_B7sD2V0nQ9f4"}},"RateLimitLimit":{"description":"Maximum requests allowed in the most constrained applicable rate-limit window.","required":true,"schema":{"type":"integer","minimum":1}},"RateLimitRemaining":{"description":"Requests remaining in the window reported by X-RateLimit-Limit.","required":true,"schema":{"type":"integer","format":"int64","minimum":0}},"RateLimitReset":{"description":"Unix timestamp in seconds when the window reported by X-RateLimit-Limit resets.","required":true,"schema":{"type":"integer","format":"int64","minimum":0}},"WwwAuthenticate":{"description":"Authentication challenge for the Replit API bearer-key scheme.","required":true,"schema":{"type":"string","example":"Bearer realm=\"Replit API\""}},"RetryAfter":{"description":"Seconds until another request may be attempted.","required":true,"schema":{"type":"integer","minimum":0}}},"schemas":{"workspace-summary":{"type":"object","additionalProperties":false,"required":["id","name","slug","memberCount","projectCount"],"properties":{"id":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$","example":"01HW01ABCDEF"},"name":{"type":"string","minLength":2,"maxLength":50,"example":"Engineering"},"slug":{"type":"string","minLength":2,"maxLength":28,"pattern":"^[0-9A-Za-z-]+$","example":"eng"},"memberCount":{"type":"integer","minimum":0},"projectCount":{"type":"integer","minimum":0}}},"account-summary-response":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["account","seats","workspaces","scim","settings"],"properties":{"account":{"type":"object","additionalProperties":false,"required":["id","name","createdAt"],"properties":{"id":{"type":"string","pattern":"^[1-9][0-9]*$","maxLength":20,"example":"12345"},"name":{"type":["string","null"],"minLength":1,"example":"Acme Engineering"},"createdAt":{"type":"string","format":"date-time"}}},"seats":{"description":"Seat totals include active users and pending invitations. Each person or invite is counted once at the highest role held across all Account workspaces. Admins combines Account admins with workspace admins; support seats are excluded.","type":"object","additionalProperties":false,"required":["admins","members","viewers","guests","membersCap"],"properties":{"admins":{"type":"integer","minimum":0},"members":{"type":"integer","minimum":0},"viewers":{"type":"integer","minimum":0},"guests":{"type":"integer","minimum":0},"membersCap":{"description":"Maximum paid-seat allocation across admins, members, and guests. Compare the cap with admins + members + guests; viewer seats are tracked separately and do not consume this cap.","type":["integer","null"],"minimum":0}}},"workspaces":{"description":"Up to 100 workspaces owned by the Account. Use GET /workspaces to page through every workspace when the Account has more.","type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/workspace-summary"}},"scim":{"type":"object","additionalProperties":false,"required":["enabled","isDirectorySyncActive"],"properties":{"enabled":{"description":"Whether the Account is backed by a WorkOS organization, which is provisioned when SCIM is set up and also underpins audit logs. True does not by itself guarantee an active directory sync; use isDirectorySyncActive for that.","type":"boolean"},"isDirectorySyncActive":{"description":"Whether the Account has completed WorkOS directory sync, meaning SCIM provisioning is actively running.","type":"boolean"}}},"settings":{"type":"object","additionalProperties":false,"required":["requirePrivateDeployments","restrictPublicDeploymentsToAdmins","requireGitRemoteBeforeDeployment","restrictGitRemoteBypassToAdmins","requireSecurityScanOnDeployment","restrictSecurityScanBypassToAdmins"],"properties":{"requirePrivateDeployments":{"description":"All deployments must be private.","type":"boolean"},"restrictPublicDeploymentsToAdmins":{"description":"Public deployments are allowed but only admins of the affected workspace may create them. Independent of requirePrivateDeployments.","type":"boolean"},"requireGitRemoteBeforeDeployment":{"description":"A connected Git remote is required before deploying.","type":"boolean"},"restrictGitRemoteBypassToAdmins":{"description":"Only admins of the affected workspace may bypass the Git remote requirement.","type":"boolean"},"requireSecurityScanOnDeployment":{"description":"A security scan is required on deployment.","type":"boolean"},"restrictSecurityScanBypassToAdmins":{"description":"Only admins of the affected workspace may bypass the security scan requirement.","type":"boolean"}}}}}}},"api-error":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","details"],"properties":{"code":{"type":"string","enum":["invalid_request","unauthenticated","forbidden","cross_workspace_access","workspace_not_found","not_found","budget_update_in_progress","rate_limited","internal_error","service_unavailable"]},"message":{"type":"string","minLength":1,"maxLength":500,"example":"The request parameters are invalid."},"details":{"description":"Structured context, or null when no details apply.","type":["object","null"],"maxProperties":20,"additionalProperties":true}}}}},"workspace":{"type":"object","additionalProperties":false,"required":["id","name","slug","memberCount","projectCount","admins","createdAt"],"properties":{"id":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$","example":"01HW01ABCDEF"},"name":{"type":"string","minLength":2,"maxLength":50,"example":"Engineering"},"slug":{"type":"string","minLength":2,"maxLength":28,"pattern":"^[0-9A-Za-z-]+$","example":"eng"},"memberCount":{"type":"integer","minimum":0},"projectCount":{"type":"integer","minimum":0},"admins":{"description":"Up to 100 workspace admins. This preview is truncated when the workspace has more; memberCount reflects the full membership size.","type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["userId","username"],"properties":{"userId":{"type":"string","pattern":"^[1-9][0-9]*$","maxLength":20},"username":{"type":"string","minLength":1,"maxLength":255}}}},"createdAt":{"type":"string","format":"date-time"}}},"pagination":{"oneOf":[{"type":"object","additionalProperties":false,"required":["cursor","hasMore"],"properties":{"cursor":{"description":"Opaque cursor for the next page.","type":"string","minLength":1,"maxLength":2048},"hasMore":{"type":"boolean","const":true}}},{"type":"object","additionalProperties":false,"required":["cursor","hasMore"],"properties":{"cursor":{"description":"Null when no page remains.","type":"null"},"hasMore":{"type":"boolean","const":false}}}]},"workspace-list-response":{"type":"object","additionalProperties":false,"required":["data","pagination"],"properties":{"data":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/workspace"}},"pagination":{"$ref":"#/components/schemas/pagination"}}},"workspace-response":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/workspace"}}},"member-role":{"type":"string","enum":["admin","member","viewer","guest"]},"member":{"type":"object","additionalProperties":false,"required":["user","workspaces","isAccountAdmin","lastSeen"],"properties":{"user":{"type":"object","additionalProperties":false,"required":["id","username","email","firstName","lastName"],"properties":{"id":{"type":"string","pattern":"^[1-9][0-9]*$","maxLength":20},"username":{"type":"string","minLength":1,"maxLength":255},"email":{"type":"string","format":"email","maxLength":320},"firstName":{"type":["string","null"],"maxLength":255},"lastName":{"type":["string","null"],"maxLength":255}}},"workspaces":{"description":"Up to 100 workspace memberships visible to the authenticated Account key.","type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["id","name","slug","role","isDisabled","joinedAt"],"properties":{"id":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"},"name":{"type":"string","minLength":2,"maxLength":50},"slug":{"type":"string","minLength":2,"maxLength":28,"pattern":"^[0-9A-Za-z-]+$"},"role":{"$ref":"#/components/schemas/member-role"},"isDisabled":{"description":"Whether this workspace membership is disabled.","type":"boolean"},"joinedAt":{"type":"string","format":"date-time"}}}},"isAccountAdmin":{"description":"Whether the user administers the Account independently of workspace roles.","type":"boolean"},"lastSeen":{"description":"Most recent recorded Replit activity, or null when unavailable.","type":["string","null"],"format":"date-time"}}},"member-list-response":{"type":"object","additionalProperties":false,"required":["data","pagination"],"properties":{"data":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/member"}},"pagination":{"$ref":"#/components/schemas/pagination"}}},"group":{"type":"object","additionalProperties":false,"required":["id","workspaceId","name","type"],"properties":{"id":{"description":"Opaque group identifier.","type":"string","minLength":1,"maxLength":255},"workspaceId":{"description":"Workspace that owns the group.","type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"},"name":{"type":"string","maxLength":255},"type":{"type":"string","enum":["custom","admin","member","guest"]}},"example":{"id":"group123","workspaceId":"workspace123","name":"Engineering","type":"custom"}},"group-list-response":{"type":"object","additionalProperties":false,"required":["data","pagination"],"properties":{"data":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/group"}},"pagination":{"$ref":"#/components/schemas/pagination"}}},"group-user":{"type":"object","additionalProperties":false,"required":["userId"],"properties":{"userId":{"description":"Replit user identifier returned by the Members API.","type":"string","pattern":"^[1-9][0-9]*$","maxLength":20}},"example":{"userId":"123"}},"group-user-list-response":{"type":"object","additionalProperties":false,"required":["data","pagination"],"properties":{"data":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/group-user"}},"pagination":{"$ref":"#/components/schemas/pagination"}}},"usage-metric":{"type":"object","additionalProperties":false,"required":["id","name","category","usage","usageUnit","costUsd"],"properties":{"id":{"description":"Stable public metric identifier. This value is independent of Replit's internal billing identifiers. Unmapped internal metrics are combined as other with no usage quantity.","type":"string","enum":["agent","replit_ai_integrations","tools","autoscale_deployment_compute","autoscale_deployment","autoscale_requests","azure_container_app_usage","azure_vm_compute","always_on_deployment_compute","scheduled_deployment_compute","scheduled_deployment_executions","deployment_data_transfer","development_compute","project_traffic","project_storage","production_database_compute","production_database_storage","production_database_logical_storage","production_database_pitr_storage","production_database_backup_storage","assistant_edits","agent_checkpoints","object_storage_advanced_operations","object_storage_basic_operations","object_storage","object_storage_data_transfer","other"]},"name":{"description":"Customer-facing metric name.","type":"string","minLength":1,"maxLength":100},"category":{"description":"Coarse category shared with the Replit Usage settings page.","type":"string","enum":["ai","project_hosting","project_traffic_and_data","storage","other"]},"usage":{"description":"Native metered quantity, or null when the metric is pre-rated.","type":["number","null"],"minimum":0},"usageUnit":{"description":"Unit for usage, or null when the metric is pre-rated.","type":["string","null"]},"costUsd":{"description":"Gross ledger cost recorded before Account credits, discounts, and invoice adjustments.","type":"number","minimum":0}}},"usage-group":{"type":"object","additionalProperties":false,"required":["key","totalCostUsd","metrics"],"properties":{"key":{"oneOf":[{"type":"object","additionalProperties":false,"required":["workspaceId"],"properties":{"workspaceId":{"type":"string","minLength":1,"maxLength":255}}},{"type":"object","additionalProperties":false,"required":["userId"],"properties":{"userId":{"type":"string","maxLength":20,"pattern":"^[1-9][0-9]*$"}}},{"type":"object","additionalProperties":false,"required":["projectId"],"properties":{"projectId":{"type":"string","minLength":1,"maxLength":255}}},{"type":"object","additionalProperties":false,"required":["date"],"properties":{"date":{"description":"UTC day for a timeseries group.","type":"string","format":"date"}}}]},"totalCostUsd":{"description":"Gross ledger cost attributable to this group.","type":"number","minimum":0},"metrics":{"type":"array","items":{"$ref":"#/components/schemas/usage-metric"}}}},"usage-response":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["interval","currency","totalCostUsd","metrics","groupBy","groups","attributableTotalCostUsd","unattributableTotalCostUsd","pagination"],"properties":{"interval":{"description":"Resolved half-open UTC interval used for the query.","type":"object","additionalProperties":false,"required":["startTime","endTime"],"properties":{"startTime":{"description":"Inclusive interval boundary.","type":"string","format":"date-time"},"endTime":{"description":"Exclusive interval boundary.","type":"string","format":"date-time"}}},"currency":{"type":"string","const":"USD"},"totalCostUsd":{"description":"Gross ledger cost recorded for the requested filters before Account credits, discounts, and invoice adjustments.","type":"number","minimum":0},"metrics":{"type":"array","items":{"$ref":"#/components/schemas/usage-metric"}},"groupBy":{"description":"Echoes the requested grouping, or null when totals only were requested.","type":["string","null"],"enum":["workspace","member","project","timeseries",null]},"groups":{"description":"Empty when groupBy is omitted. Entity groups are ordered by descending totalCostUsd; timeseries groups are ordered by ascending date.","type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/usage-group"}},"attributableTotalCostUsd":{"description":"Sum attributable to returned entity groups before pagination, or null unless grouping by member or project.","type":["number","null"],"minimum":0},"unattributableTotalCostUsd":{"description":"Difference between totalCostUsd and attributableTotalCostUsd, or null unless grouping by member or project.","type":["number","null"],"minimum":0},"pagination":{"description":"Groups pagination, or null when groupBy is omitted.","oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["nextCursor","hasMore","totalCount"],"properties":{"nextCursor":{"description":"Opaque cursor for the next groups page, or null when no page remains.","type":["string","null"],"maxLength":255},"hasMore":{"type":"boolean"},"totalCount":{"description":"Total groups matching the request before pagination.","type":"integer","minimum":0}}}]}}}}},"project-workspace":{"type":"object","additionalProperties":false,"required":["id","name","slug"],"properties":{"id":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"},"name":{"type":"string","minLength":2,"maxLength":50},"slug":{"type":"string","minLength":2,"maxLength":28,"pattern":"^[0-9A-Za-z-]+$"}}},"project":{"type":"object","additionalProperties":false,"required":["id","creatorId","title","slug","workspace","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"creatorId":{"description":"Current project owner user ID, or null when unavailable.","type":["string","null"],"pattern":"^[1-9][0-9]*$","maxLength":20},"title":{"type":"string","maxLength":60},"slug":{"type":"string","minLength":1,"maxLength":255},"workspace":{"$ref":"#/components/schemas/project-workspace"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"description":"Last project update time, or createdAt when no update timestamp exists.","type":"string","format":"date-time"}}},"project-list-response":{"type":"object","additionalProperties":false,"required":["data","pagination"],"properties":{"data":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/project"}},"pagination":{"$ref":"#/components/schemas/pagination"}}},"deployment-status":{"description":"Current serving build lifecycle status.","type":"string","enum":["pending","building","security_scanning","running","promoting","failed","success","updating_tier","suspending","suspended","resuming"]},"deployment-project":{"type":"object","additionalProperties":false,"required":["id","title"],"properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","maxLength":60}}},"deployment":{"type":"object","additionalProperties":false,"required":["id","project","workspace","url","deploymentPrivacy","status","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"project":{"$ref":"#/components/schemas/deployment-project"},"workspace":{"$ref":"#/components/schemas/project-workspace"},"url":{"description":"Primary routable deployment URL, or null when no provider URL or verified custom domain can be resolved.","type":["string","null"],"format":"uri"},"deploymentPrivacy":{"description":"Privacy of the current serving build.","type":"string","enum":["public","password","private"]},"status":{"$ref":"#/components/schemas/deployment-status"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"description":"Latest deployment or current serving build update timestamp, falling back to createdAt.","type":"string","format":"date-time"}}},"deployment-list-response":{"type":"object","additionalProperties":false,"required":["data","pagination"],"properties":{"data":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/deployment"}},"pagination":{"$ref":"#/components/schemas/pagination"}}},"deployment-response":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/deployment"}}},"budget-type":{"type":"string","enum":["account_spending_controls","workspace_default_user_limit","workspace_group_limit","workspace_user_limit"]},"budget-account":{"type":"object","additionalProperties":false,"required":["type","currency","period","usageAlertThresholdUsd","serviceShutdownLimitUsd"],"properties":{"type":{"const":"account_spending_controls"},"currency":{"const":"USD"},"period":{"const":"billing_cycle"},"usageAlertThresholdUsd":{"description":"Notification-only threshold. Null means no usage alert is configured. When both thresholds are set, this value is lower than serviceShutdownLimitUsd.","type":["number","null"],"minimum":0.01},"serviceShutdownLimitUsd":{"description":"Threshold that suspends usage-based services. Null means no service shutdown limit is configured.","type":["number","null"],"minimum":0.01}}},"budget-workspace":{"type":"object","additionalProperties":false,"required":["type","workspaceId","currency","period","amountUsd"],"properties":{"type":{"const":"workspace_default_user_limit"},"workspaceId":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"},"currency":{"const":"USD"},"period":{"const":"billing_cycle"},"amountUsd":{"type":"number","exclusiveMinimum":0}}},"budget-group":{"type":"object","additionalProperties":false,"required":["type","workspaceId","groupId","currency","period","amountUsd"],"properties":{"type":{"const":"workspace_group_limit"},"workspaceId":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"},"groupId":{"type":"string","minLength":1,"maxLength":255},"currency":{"const":"USD"},"period":{"const":"billing_cycle"},"amountUsd":{"type":"number","exclusiveMinimum":0}}},"budget-user":{"type":"object","additionalProperties":false,"required":["type","workspaceId","userId","currency","period","amountUsd"],"properties":{"type":{"const":"workspace_user_limit"},"workspaceId":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"},"userId":{"type":"string","pattern":"^[1-9][0-9]*$","maxLength":20},"currency":{"const":"USD"},"period":{"const":"billing_cycle"},"amountUsd":{"type":"number","exclusiveMinimum":0}}},"budget":{"oneOf":[{"$ref":"#/components/schemas/budget-account"},{"$ref":"#/components/schemas/budget-workspace"},{"$ref":"#/components/schemas/budget-group"},{"$ref":"#/components/schemas/budget-user"}]},"budget-list-response":{"type":"object","additionalProperties":false,"required":["data","pagination"],"properties":{"data":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/budget"}},"pagination":{"$ref":"#/components/schemas/pagination"}}},"budget-update-account":{"type":"object","description":"Full desired state for Account spending controls. When both thresholds are set, usageAlertThresholdUsd must be lower than serviceShutdownLimitUsd.","additionalProperties":false,"required":["type","currency","period","usageAlertThresholdUsd","serviceShutdownLimitUsd"],"properties":{"type":{"const":"account_spending_controls"},"currency":{"const":"USD"},"period":{"const":"billing_cycle"},"usageAlertThresholdUsd":{"type":["number","null"],"minimum":0.01},"serviceShutdownLimitUsd":{"type":["number","null"],"minimum":1,"maximum":2147483647,"multipleOf":1}}},"budget-update-workspace":{"type":"object","additionalProperties":false,"required":["type","workspaceId","currency","period","amountUsd"],"properties":{"type":{"const":"workspace_default_user_limit"},"workspaceId":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"},"currency":{"const":"USD"},"period":{"const":"billing_cycle"},"amountUsd":{"type":["number","null"],"exclusiveMinimum":0}}},"budget-update-group":{"type":"object","additionalProperties":false,"required":["type","workspaceId","groupId","currency","period","amountUsd"],"properties":{"type":{"const":"workspace_group_limit"},"workspaceId":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"},"groupId":{"type":"string","minLength":1,"maxLength":255},"currency":{"const":"USD"},"period":{"const":"billing_cycle"},"amountUsd":{"type":["number","null"],"exclusiveMinimum":0}}},"budget-update-user":{"type":"object","additionalProperties":false,"required":["type","workspaceId","userId","currency","period","amountUsd"],"properties":{"type":{"const":"workspace_user_limit"},"workspaceId":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"},"userId":{"type":"string","pattern":"^[1-9][0-9]*$","maxLength":20},"currency":{"const":"USD"},"period":{"const":"billing_cycle"},"amountUsd":{"type":["number","null"],"exclusiveMinimum":0}}},"budget-update":{"oneOf":[{"$ref":"#/components/schemas/budget-update-account"},{"$ref":"#/components/schemas/budget-update-workspace"},{"$ref":"#/components/schemas/budget-update-group"},{"$ref":"#/components/schemas/budget-update-user"}]},"budget-update-response":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"oneOf":[{"$ref":"#/components/schemas/budget"},{"type":"null"}]}}}},"responses":{"BadRequest":{"description":"The request parameters are invalid.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-error"}}}},"Unauthorized":{"description":"The API key is missing, malformed, unknown, revoked, or expired.","headers":{"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"},"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-error"}}}},"Forbidden":{"description":"The API key lacks the required scope or Account entitlement.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-error"}}}},"RateLimited":{"description":"The API key or operation exceeded its rate limit.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-error"}}}},"InternalError":{"description":"The server encountered an unexpected error.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-error"}}}},"ServiceUnavailable":{"description":"A required API dependency is temporarily unavailable.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-error"}}}},"NotFound":{"description":"The requested resource does not exist or is not visible to this key.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-error"}}}},"Conflict":{"description":"Another update for the requested budget is in progress.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-error"}}}},"BudgetServiceUnavailable":{"description":"The budget update is temporarily unavailable.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"description":"Seconds until another request may be attempted, when retry timing is known.","schema":{"type":"integer","minimum":0}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-error"}}}}},"parameters":{"Limit":{"name":"limit","in":"query","description":"Maximum number of records to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},"Cursor":{"name":"cursor","in":"query","description":"Opaque pagination cursor returned by the previous response.","schema":{"type":"string","minLength":1,"maxLength":2048}},"WorkspaceSearch":{"name":"search","in":"query","description":"Case-insensitive match on workspace name or slug.","schema":{"type":"string","minLength":1,"maxLength":200}},"WorkspaceIdPath":{"name":"workspaceId","in":"path","description":"Workspace identifier.","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"}},"WorkspaceIdQuery":{"name":"workspaceId","in":"query","description":"Restrict results to a workspace owned by the authenticated Account.","schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9]+$"}},"Role":{"name":"role","in":"query","description":"Return members with this role in at least one selected workspace.","schema":{"$ref":"#/components/schemas/member-role"}},"MemberSearch":{"name":"search","in":"query","description":"Case-insensitive match on username, email, first name, or last name.","schema":{"type":"string","minLength":1,"maxLength":200}},"GroupIdPath":{"name":"groupId","in":"path","description":"Opaque group identifier.","required":true,"schema":{"type":"string","minLength":1,"maxLength":255}},"GroupIdQuery":{"name":"groupId","in":"query","description":"Restrict usage to the current active members of one group in workspaceId. Group membership is evaluated when each request is processed.","schema":{"type":"string","minLength":1,"maxLength":255}},"UserIdQuery":{"name":"userId","in":"query","description":"Restrict results to usage attributed to a Replit user ID. Omit to include all users in the selected Account or workspace scope.","schema":{"type":"string","maxLength":20,"pattern":"^[1-9][0-9]*$"}},"ProjectIdQuery":{"name":"projectId","in":"query","description":"Restrict results to usage attributed to a Replit project ID.","schema":{"type":"string","minLength":1,"maxLength":255}},"UsageBillingPeriod":{"name":"billingPeriod","in":"query","description":"Select the current or previous billing period. Defaults to current when no custom range is supplied. Cannot be combined with startTime or endTime.","schema":{"type":"string","enum":["current","previous"]}},"UsageMetricTypes":{"name":"type","in":"query","description":"Restrict totals, metrics, and groups to one or more cataloged public metric identifiers. Repeat the parameter to select multiple values.","style":"form","explode":true,"schema":{"type":"array","maxItems":50,"items":{"type":"string","enum":["agent","replit_ai_integrations","tools","autoscale_deployment_compute","autoscale_deployment","autoscale_requests","azure_container_app_usage","azure_vm_compute","always_on_deployment_compute","scheduled_deployment_compute","scheduled_deployment_executions","deployment_data_transfer","development_compute","project_traffic","project_storage","production_database_compute","production_database_storage","production_database_logical_storage","production_database_pitr_storage","production_database_backup_storage","assistant_edits","agent_checkpoints","object_storage_advanced_operations","object_storage_basic_operations","object_storage","object_storage_data_transfer"]}}},"UsageGroupBy":{"name":"groupBy","in":"query","description":"Add one paginated breakdown dimension. Omit for totals only. Member grouping includes every selected metric type and is not limited to Agent usage.","schema":{"type":"string","enum":["workspace","member","project","timeseries"]}},"UsageGranularity":{"name":"granularity","in":"query","description":"Time bucket width for groupBy=timeseries. Day is the only Alpha value.","schema":{"type":"string","enum":["day"],"default":"day"}},"UsageLimit":{"name":"limit","in":"query","description":"Maximum groups to return. Ignored when groupBy is omitted.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},"UsageCursor":{"name":"cursor","in":"query","description":"Opaque groups cursor from the previous response. Reusing it with different filters returns invalid_request.","schema":{"type":"string","minLength":1,"maxLength":2048}},"DeploymentIdPath":{"name":"deploymentId","in":"path","description":"Deployment identifier.","required":true,"schema":{"type":"string","format":"uuid"}}}}}