---
title: "项目列表"
method: GET
path: "/api/v1/users/projects"
tags: ["【用户】项目管理"]
---

# 项目列表

`GET /api/v1/users/projects`

项目列表

## Query parameters

- `cursor` string
- `limit` integer

## Response `200`

成功

- object
  - `code` integer
  - `data` DomainListProjectResp
    - `page` DbCursor
      - `cursor` string — 游标
      - `has_next_page` boolean — 是否有下一页
    - `projects` DomainProject[]
      - `auto_review_enabled` boolean — 是否开启自动审查
      - `collaborators` DomainCollaborator[]
        - `avatar_url` string
        - `email` string
        - `has_password` boolean
        - `id` string
        - `identities` DomainUserIdentity[]
          - `avatar_url` string
          - `email` string
          - `id` string
          - `identity_id` string
          - `platform` 'baizhi' | 'google' | 'github' | 'gitlab' | 'gitea' | 'gitee' | 'oidc'
          - `username` string
        - `is_blocked` boolean
        - `name` string
        - `permission` 'read_only' | 'read_write'
        - `role` 'individual' | 'enterprise' | 'subaccount' | 'admin' | 'gittask'
        - `status` 'active' | 'inactive' | 'banded'
        - `team` DomainTeam
          - `id` string
          - `name` string
        - `token` string
        - `wechat_mp_bound` boolean
      - `created_at` integer
      - `description` string
      - `env_variables` object
      - `full_name` string
      - `git_identity_id` string
      - `id` string
      - `image_id` string
      - `issues` DomainProjectIssue[]
        - `assignee` DomainUser
          - `avatar_url` string
          - `email` string
          - `has_password` boolean
          - `id` string
          - `identities` DomainUserIdentity[]
            - `avatar_url` string
            - `email` string
            - `id` string
            - `identity_id` string
            - `platform` 'baizhi' | 'google' | 'github' | 'gitlab' | 'gitea' | 'gitee' | 'oidc'
            - `username` string
          - `is_blocked` boolean
          - `name` string
          - `role` 'individual' | 'enterprise' | 'subaccount' | 'admin' | 'gittask'
          - `status` 'active' | 'inactive' | 'banded'
          - `team` DomainTeam
            - `id` string
            - `name` string
          - `token` string
          - `wechat_mp_bound` boolean
        - `created_at` integer
        - `design_document` string
        - `id` string
        - `priority` 1 | 2 | 3
        - `requirement_document` string
        - `status` 'open' | 'closed' | 'completed'
        - `summary` string
        - `title` string
        - `user` DomainUser
          - `avatar_url` string
          - `email` string
          - `has_password` boolean
          - `id` string
          - `identities` DomainUserIdentity[]
            - `avatar_url` string
            - `email` string
            - `id` string
            - `identity_id` string
            - `platform` 'baizhi' | 'google' | 'github' | 'gitlab' | 'gitea' | 'gitee' | 'oidc'
            - `username` string
          - `is_blocked` boolean
          - `name` string
          - `role` 'individual' | 'enterprise' | 'subaccount' | 'admin' | 'gittask'
          - `status` 'active' | 'inactive' | 'banded'
          - `team` DomainTeam
            - `id` string
            - `name` string
          - `token` string
          - `wechat_mp_bound` boolean
      - `name` string
      - `platform` 'github' | 'gitlab' | 'gitea' | 'gitee' | 'codeup' | 'cnb' | 'atomgit'
      - `repo_url` string
      - `tasks` DomainProjectTask[]
        - `branch` string
        - `cli_name` 'codex' | 'claude' | 'opencode'
        - `completed_at` integer
        - `content` string
        - `created_at` integer
        - `extra` DomainTaskExtraConfig
          - `issue_id` string
          - `plugin_ids` string[] — Plugin IDs 数组（仅 OpenCode 真正下发）
          - `project_id` string
          - `skill_ids` string[]
        - `full_name` string
        - `id` string, required
        - `image` DomainImage
          - `created_at` integer
          - `id` string
          - `is_default` boolean
          - `name` string
          - `owner` DomainOwner
            - `id` string
            - `name` string
            - `type` 'private' | 'public' | 'team'
          - `remark` string
        - `last_active_at` integer
        - `log_store` 'loki' | 'clickhouse'
        - `model` DomainModelBrief
          - `access_level` string
          - `context_limit` integer
          - `created_at` integer
          - `id` string
          - `interface_type` 'openai_chat' | 'openai_responses' | 'anthropic'
          - `is_free` boolean
          - `is_hidden` boolean
          - `last_check_at` integer
          - `last_check_error` string
          - `last_check_success` boolean
          - `model` string
          - `output_limit` integer
          - `owner` DomainOwner
            - `id` string
            - `name` string
            - `type` 'private' | 'public' | 'team'
          - `provider` string
          - `remark` string
          - `support_image` boolean
          - `temperature` number
          - `thinking_enabled` boolean
          - `updated_at` integer
          - `weight` integer
        - `repo_filename` string
        - `repo_url` string
        - `stats` DomainTaskStats
          - `input_tokens` integer
          - `llm_requests` integer
          - `output_tokens` integer
          - `total_tokens` integer
        - `status` 'pending' | 'processing' | 'error' | 'finished'
        - `sub_type` 'generate_docs' | 'generate_requirement' | 'generate_design' | 'generate_tasklist' | 'execute_task' | 'pr_review'
        - `summary` string
        - `title` string
        - `type` 'develop' | 'design' | 'review'
        - `user_id` string
        - `virtualmachine` DomainVirtualMachine
          - `conditions` GithubComChaitinMonkeyCodeBackendEntTypesCondition[]
            - `last_transition_time` integer
            - `message` string
            - `progress` integer
            - `reason` string
            - `status` 0 | 1 | 2 | 3
            - `type` 'Scheduled' | 'ImagePulled' | 'ProjectCloned' | 'ImageBuilt' | 'ContainerCreated' | 'ContainerStarted' | 'Ready' | 'Failed' | 'Hibernated'
          - `cores` integer
          - `created_at` integer
          - `environment_id` string
          - `host` DomainHost
            - `arch` string
            - `cores` integer
            - `default` boolean
            - `external_ip` string
            - `groups` DomainTeamGroup[]
              - …
            - `id` string
            - `is_default` boolean
            - `memory` integer
            - `name` string
            - `os` string
            - `owner` DomainOwner
              - …
            - `remark` string
            - `status` 'online' | 'offline'
            - `version` string
            - `virtualmachines` DomainVirtualMachine[]
            - `weight` integer
          - `hostname` string
          - `id` string
          - `life_time_seconds` integer
          - `memory` integer
          - `name` string
          - `os` string
          - `owner` DomainUser
            - `avatar_url` string
            - `email` string
            - `has_password` boolean
            - `id` string
            - `identities` DomainUserIdentity[]
              - …
            - `is_blocked` boolean
            - `name` string
            - `role` 'individual' | 'enterprise' | 'subaccount' | 'admin' | 'gittask'
            - `status` 'active' | 'inactive' | 'banded'
            - `team` DomainTeam
              - …
            - `token` string
            - `wechat_mp_bound` boolean
          - `ports` DomainVMPort[]
            - `error_message` string
            - `forward_id` string
            - `port` integer
            - `preview_url` string
            - `status` 'reserved' | 'connected'
            - `success` boolean
            - `white_list` string[]
          - `status` 'unknown' | 'pending' | 'online' | 'offline' | 'hibernated'
          - `version` string
      - `updated_at` integer
      - `user` DomainUser
        - `avatar_url` string
        - `email` string
        - `has_password` boolean
        - `id` string
        - `identities` DomainUserIdentity[]
          - `avatar_url` string
          - `email` string
          - `id` string
          - `identity_id` string
          - `platform` 'baizhi' | 'google' | 'github' | 'gitlab' | 'gitea' | 'gitee' | 'oidc'
          - `username` string
        - `is_blocked` boolean
        - `name` string
        - `role` 'individual' | 'enterprise' | 'subaccount' | 'admin' | 'gittask'
        - `status` 'active' | 'inactive' | 'banded'
        - `team` DomainTeam
          - `id` string
          - `name` string
        - `token` string
        - `wechat_mp_bound` boolean
  - `message` string

## Other responses

- `401` — 未授权
- `500` — 服务器内部错误

---

[API](https://skmtc.net/chaitin/apis/untitled-api.md) · [All operations](https://skmtc.net/chaitin/apis/untitled-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/chaitin/untitled-api/revisions/5a5929cb17f2/schema)
